C#.NET 1
 

Yukarıdaki iki dosyayı aynı anda derlediğimizde eğer kısmi türler kavramı olmasaydı derleme zamanında hata alırdırk. Çünkü aynı isim alanında birden fazla aynı isimli sınıf bildirimi yapılmış. Halbuki kısmi türler ile bu iki sınıf bildirimi aynı sınıf olarak ele alınır, ve birleştirilir. Yani deneme isimli sınıfın Metot1() ve Metot2() adında iki tane metodu olmuş olur.

Bir türe ait elemanları tek bir dosya içinde toplamak Nesne Yönelimli Programlama açısından her ne kadar önemli olsada bazen farklı dosyalarla çalışmak kodlarımızın yönetilebilirliğini artırabilmektedir.
 

Not : Bu yazı "MSDN Magazine" deki "Future Features of C#" başlıkla bildiri baz alınarak hazırlanmıştır.

 

Bu günlerde hepimiz .Net Framework 3.0 ve getirileri üzerine yoğunlaşmış durumdayız. Özellikle mimari anlamda yapılan köklü değişimler söz konusu. Bu köklü değişiklikler; Windows uygulamalarının yeni yüzü olan WPF (Windows Presentation Foundation) ve XAML (eXtensible Application Markup Language), dağıtık mimariyi tek çatı altında toplamayı başaran WCF (Windows Communication Foundation), akış şemaları ve iş süreçlerinin .Net plaformuna dahil edilmesini sağlayan WF(Workflow Foundation) ve CardSpace olarak sıralanabilir. Ancak bunların dışında Microsoft’ un gelecek vizyonu içerisinde yer alan en önemli konulardan biriside C# 3.0 konusudur. Bildiğiniz gibi C#, sıfırdan geliştirilmiş ve atası olan nesne yönelimli dillerin en iyi özelliklerini bünyesinde birleştirerek bunu güçlü bir Framework üzerinde kullanabilmemizi sağlayan bir dildir. Zaman içerisinde C# 2.0 ile gelen yenilikler şu anda tüm C# geliştiricilerin hayatının bir parçası haline gelmiştir. Şimdi herkesin gözü C# 3.0 üzerinde.

C# 3.0, beraberinde LINQ (Language Integrated Query), DLINQ (Database Language Integrated Query) ve XLINQ (Xml Language Integrated Query) gibi yeni teknolojileride getirmekte ve desteklemektedir. Biz bu makalemizde daha fazla LINQ ifadesi yazmaya çalışacağız. Onbir basit LINQ ifadesi ile dil tabanlı sorguları daha yakından tanımaya başlıyacak ve elimizdeki gücün farkına varacağız. Bildiğiniz gibi LINQ (Language Integrated Query) özellikle dil içerisinde, Sql tarzı sorgular yazabilmemizi ve bunları var olan IEnumerable<T> türevli tipler üzerinde kullanabilmemizi sağlamaktadır. Ancak özellikle LINQ içerisinde kullanılabilen operatörler göz önüne alındığında, oldukça etkili sonuçlar alabileceğimiz  ortadır. Temel olarak LINQ içerisindeki operatörler aşağıdaki başlıklar altında toplanmıştır. (Elbetteki bu bilgiler hala deneme aşamasında olan bir sürece aittir ve değişebilir.)

  • Kısıtlama Operatörleri (Restriction Operators) -> Where
  • Gruplama Operatörleri (Grouping Operators) -> Group
  • Sıralama Operatörleri (Ordering Operators) -> OrderBy, ThenBy, Reverse
  • Bölümleme Operatörleri (Partitioning Operators) -> Take, Skip, TakeWhile, SkipWhile
  • Seçme Operatörleri (Projection Operators) -> Select
  • Set Operatörleri (Set Operators) -> Distinct, Union, Intersect, Except
  • Dönüştürme Operatörleri (Conversion Operators) -> ToArray, ToList, ToDictionary, OfType
  • Eleman Operatörleri (Element Operators) -> First, FirstOrDefault, ElementAt
  • Üretim Operatörleri (Generation Operators) -> Range, Repeat
  • Gruplama Fonksiyonu Operatörleri (Aggregate Operators) -> Count, Sum, Min, Max, Averaga, Fold
  • Ölçüm Operatörleri (Quantifiers Operators) -> Any, All
  • Çeşitli Operatöler (Miscellaneous Operators) -> Concat, EqualAll
  • Özel Seri Operatörleri (Custom Sequence Operators) -> Combine

Şimdi gelin bu operatörlerin bir kısmını incelemeye çalışalım. Öncesinde program ortamında ele alabileceğimiz bazı veri kümelerine ihtiyacımız olacak. Bu veri kümeleri tamamıyla test amaçlı olacaktır. Bunun için AdventureWorks veritabanında yer alan Product ve ProductSubCategory tablolarından faydalanabiliriz. Amacımız ilk olarak buradaki tablolardan test amacıyla kullanabileceğimiz veri kümelerini program ortamı içerisinde yer alan generic koleksiyonlara aktarmaktır. LINQ konusu söz konusu olduğu içinde, C# 3.0 dili özelliklerinden de faydalanmaya çalışacağız.
 

Yardımcı sınıfımızın kodları aşağıdaki gibidir.

 
 
  Bugün 62 ziyaretçi (70 klik) buradaydı  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol