Son yıllardaki hızlı gelişimden bilişim sektörü de nasibini almaya başladı. Microsoft’un atağı ile artık hemen herkes çok kolay bir şekilde kendi evinde yazılım geliştiriyor. Yenilikler hız kesmeden devam ededursun ben bu gün dotnet framework ‘un son versiyonu olan 3.5’deki “LINQ” (Language Integrated Query) ye değinmek istiyorum. (LINQ = Link diye okunur)
Konuyu objektif bir şekilde takip edebilmeniz için LINQ hakkındaki yorumumu sona saklıyorum.

Uzun yıllardır ilişkisel veritabanı ile çalışıyoruz, fakat “LINQ” bu konuyu öyle bir yere bağlamış durumdaki bundan daha iyisi olabilir mi diye düşünüyorum çoğu zaman. LINQ sayesinde herhangi bir veritabanındaki(!) (Access, MsSql, Oracle gibi) tabloları ve alanları sanki bir nesne gibi kullanmaya başlıyoruz artık. Nasıl ki bir class’daki tanımlanan bir elemanı çağırabiliyorsak artık bir veritabanında bulunan herhangi bir tablonun herhangi bir alanını otomatik bir şekilde projemize dahil edebiliyoruz!

Bir devrim niteliği taşıyan bu özellik sayesinde bir veritabanına bağlanıp veri çekip gridview’e basmamızı sağlayan kod yalnızca 5 satır! Klasik SQL sorgusunda 20-30 satırlık bir kod ile tablodaki her alanı tek tek yazmak gerekirken LINQ sayesinde bu zorluktan kurtuluyoruz.
Daha açık bir şekilde anlatmak gerekirse aşağıdaki kod bir select sorgusuna ait.

Kod:
acentaDataContext goster = new acentaDataContext();
    var sorgu = from b in goster.Bayilers 
                    select b;

    Repeater1.DataSource = sorgu;
    Repeater1.DataBind();
Bir sorgu sanırım bu kadar basite indirgenebilir. Ama sunu belirtmek gerekir LINQ sadece veri tabanını sorgulamıyor tüm veri kaynaklarını “unified” (bkz: http://seslisozluk.com/?word=unified ) bir programlama modeli getiriyor. Zaten LINQ ‘i bu kadar ayrıcalıklı kılan da bu özelligi. Mesela XML i sorgulaması gibi, ama yakın gelecekte LINQ excel word e kadar herşeyi sorgular durumda olacak ve işin rengi o zaman değisecek. Çünkü verinin nerde nasıl formatlanacağı maalesef her zaman belli değil. Sonuçta hepsi XML e dönüşecek ama LINQ tek bir sorgulama modeli getirecek. Yani artık işimiz çok kolay.

LINQ içerisinden tablolar ve alanlar görsel olarak dizayn edilip kod içerisinde tabloları nesne olarak kullanma ayrıcalığı getirmiş. Şahsen ben beğendim ama şu an daha gelişme aşamasında. Viewer dizayn edilemiyor mesela. Veritabanındaki hazır tabloları storred procedure lerini kullanabilmemiz ayrı bir güzellik. Ve kod içerisinde veritabanını oluşturmak için üçbeş satır yazmak yeterli oluyor.(bkz: 2 paragraf yukarısı)

Son olarak söylemek istediklerime geleyim; LINQ kullanın, ama LINQ’den önce temel programlama mantığını iyi oturtmaya bakın. Çünkü LINQ ile çok basit olan sorgulama olayı programlama mantığı yanlış oturtulursa gerçekten can sıkıcı bir durum haline geliyor. (bkz: ben ) 2. Projemde LINQ’i artık profesyonel olarak kullanmayı hedefliyorum. O yüzden LINQ’e ait ne kadar doküman, video, bloq varsa takip etmeye çalışıyorum. Zaman bulduğum ilk anda LINQ’in çok basit haliyle kullanımına ait bir döküman yazacağım.

Ha bu arada bu benim uzun zamandan sonra ilk yazım. O yüzden cümle düşüklükleri ve konudan sapmalar olabilir. Mazur görün. O kadar programlama çalıştıktan sonra ancak bu kadar oluyor

Derleyen:
Hasan Aytekin

Yararlanılan kaynak : http://www.besay.com.tr/forum/yaf_po...iz-BURAYA.aspx