LINQ { C# 3.0 ve Language Integrated Query } MEHMET MECİT GÖK NO:06104420.

Slides:



Advertisements
Benzer bir sunumlar
LINQ Language Integrated Query
Advertisements

LINQ { C# 3.0 ve Language Integrated Query }
LINQ (Language Integrated Query)
LINQtoSQL Silverligth Uygulamalarında LinqtoSql. LINQ (Language Integrated Query) özellikle dil içerisinde, Sql tarzı sorgular yazabilmemizi ve bunları.
Görsel C# ile Windows Programlama
NVA KALİTE TEST ÖLÇ. HİZ. EĞT. VE BELG. SAN.TİC. LTD. ŞTİ. Hazırlayan= E. Burak SARAÇOĞLU.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
ANLATIM TÜRLERİNİ SINIFLANDIRMA. Edebî türler veya metin türleri olarak bilinen yazılarda farklı anlatım birlikleri bir araya gelir. Bir hikâyede betimleme,
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
DESTEK EĞİTİM HİZMETLERİ. İÇİNDEKİLER  DESTEK EĞİTİM HİZMETLERİ OKULLARDA DESTEK EĞİTİM HİZMETİ NERELERDE VERİLİR? NEDEN DESTEK EĞİTİM? DESTEK EĞİTİM.
Veri Tabanı Yönetim Sistemleri Hafta 1. 2 Temel Kavramlar Veri Olguların, kavramların, veya talimatların, insan tarafından veya otomatik yolla iletişim,
Beşinci hafta. Müfredat programı Ödev teslim Projelerini teslim edenler; Belediye Projesi -> Tamam Ulaşım Projesi -> Geldi ama kavramsal tasarım yerine.
PROLOG. Prolog Programlarının özellikleri: - Programming in Logic teriminin kısaltılmasıyla adlandırılmıştır. - Semboller üzerinde çalışma prensibi üzerine.
% A10 B20 C30 D25 E15 Toplam100.  Aynı grafik türü (Column-Sütun) iki farklı veri grubu için de kullanılabilir. 1. Sınıflar2. Sınıflar A1015 B20 C3015.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
BÖLÜM 4 PROGRAMLAMA DİLLERİ. PROGRAMLAMA DİLLERİNDE KULLANILAN VERİ TİPLERİ Bilgisayarda işlenen veriler iki türdür: Sayısal Alfasayısal.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
Çağrı Kuçat SQL Yapısı.
OLASILIK TEOREMLERİ Permütasyon
Bağlama ve Kapsam Kavramları
7. Hafta İçeriği 1.Kalıtım (Inheritance) 2.Soyut sınıf (abstract class) 3.Sealed sınıf(sealed class) 4.Çok biçimlilik (polymorphism)polymorphism.
LINQ { C# 3.0 ve Language Integrated Query } Uğur UMUTLUOĞLU.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Bölüm 2 C Dilinin Temelleri
EBSCOhost Collection Manager Arama Profilleri
METOTLAR.
T- Testİ: ORTALAMALAR ARASI FARKLARIN TEST EDİLMESİ
ARAÇ GEREÇLERİN EĞİTİMDEKİ YERİ VE ÖNEMİ
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
GELECEK PİYASASI İŞLEMLERİ
STORAGE BÜŞRA KARADENİZ
Sunucu Çeşitleri Mehmet Ali Uluekmekçi.
5. HAFTA Öğr. Gör. Yunus KÖKVER
Ofis Yazılımları – Veritabanı Programları
Nesneye Dayalı Kavramlar Uygulama 2
İŞBİRLİKLİ ÖĞRENME YAKLAŞIMI
EMPATİK İLETİŞİM 1.
MATEMATİK DERSİ ÖĞRETİM PROGRAMI
Mobil uygulama geliştirme pelin yıldırım Fatma bozyiğit
3.hafta METODLAR.
NİŞANTAŞI ÜNİVERSİTESİ
Arduino Programlama Dili
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
Doğrusal Mantık Yapısı İle Problem Çözme
Nesneye Dayalı Programlama 1
Kurucular(Yapıcılar), Yıkıcılar
Bilgisayar Bilimi Koşullu Durumlar.
PERFORMANS KAVRAMI PERFORMANSIN BOYUTLARI
Nesneye Dayalı Programlama 1
BİL 112 Programlamaya Giriş
VERİTABANI YÖNETİM SİSTEMLERİ 3-Normalizasyon
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
DAHİLİ SINIFLAR(INNER CLASSES)
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
Evren-Örneklem, Örnekleme Yöntemleri 1
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Nesneye Dayalı Programlama 1
Sınıf Öğretmenlerinin Eğitsel Amaçlı İnternet Kullanım Öz Yeterlikleri
Bilimsel Araştırma Yöntemleri
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

LINQ { C# 3.0 ve Language Integrated Query } MEHMET MECİT GÖK NO:

AJANDA LINQ’e Neden İhtiyaç DuyulduLINQ’e Neden İhtiyaç Duyuldu LINQ’e Hazırlık: C# 3.0 ile Gelen YeniliklerLINQ’e Hazırlık: C# 3.0 ile Gelen Yenilikler –Implicitly Typed Local Variables –Object and Collection Initializers –Anonymous Types –Extension Methods –Lambda Expressions –Auto Implemented Property –Partial Methods

AJANDA LINQ (Language Integrated Query)LINQ (Language Integrated Query) –LINQ to Object –LINQ to DataSet –LINQ to SQL –LINQ to XML C# 3.0 Yenilikleri LINQ’in Neresinde?C# 3.0 Yenilikleri LINQ’in Neresinde?

LINQ’e Neden İhtiyaç Duyuldu Nesne tabanlı bir ortamda nesneler hakkında bilgilere kolay ulaşabilmek, nesneler üzerinde arama, sıralama, gruplama gibi işlemleri kolaylaştırmak büyük bir ihtiyaç haline geldiNesne tabanlı bir ortamda nesneler hakkında bilgilere kolay ulaşabilmek, nesneler üzerinde arama, sıralama, gruplama gibi işlemleri kolaylaştırmak büyük bir ihtiyaç haline geldi Bu tip işlemleri, kullanılan dilden farklı ikinci bir bileşene(dile, yazılıma veya projeye eklenecek farklı katmanlara) ihtiyaç duymadan gerçekleştirebilmek oldukça önemliydiBu tip işlemleri, kullanılan dilden farklı ikinci bir bileşene(dile, yazılıma veya projeye eklenecek farklı katmanlara) ihtiyaç duymadan gerçekleştirebilmek oldukça önemliydi

LINQ’e Neden İhtiyaç Duyuldu Veritabanındaki tablolara.NET nesnesi olarak uygulama içerisinde sorgulamakVeritabanındaki tablolara.NET nesnesi olarak uygulama içerisinde sorgulamak XML dosyalarındaki verileri XPath ve Xquery kullanmadan, SQL ifadesi yazar gibi sorgulamakXML dosyalarındaki verileri XPath ve Xquery kullanmadan, SQL ifadesi yazar gibi sorgulamak Koleksiyon ve dizi nesnelerini sorgulamakKoleksiyon ve dizi nesnelerini sorgulamak Ve bu sorgulamaları dil ile entegre şekilde oluşturabilmekVe bu sorgulamaları dil ile entegre şekilde oluşturabilmek

LINQ’e Hazırlık: C# 3.0.NET Framework 3.5’teki en önemli yenilik LINQ’dir ve bu sürümde duyurulan C# 3.0’a katılan özelliklerin temel amacı LINQ’e destek vermeleridir.NET Framework 3.5’teki en önemli yenilik LINQ’dir ve bu sürümde duyurulan C# 3.0’a katılan özelliklerin temel amacı LINQ’e destek vermeleridir Getirilen yenilikler LINQ için gerekli parçalardır ve LINQ projesinin daha tutarlı hale gelmesini sağlamıştırGetirilen yenilikler LINQ için gerekli parçalardır ve LINQ projesinin daha tutarlı hale gelmesini sağlamıştır

Implicitly Typed Local Variables var anahtar kelimesiyle tanımlanan değişkenin tipinin bildirilmesi zorunluluğu ortadan kalkmıştırvar anahtar kelimesiyle tanımlanan değişkenin tipinin bildirilmesi zorunluluğu ortadan kalkmıştır var bir değişken tipi değildir, değişken tanımlama yoludur. Tanımlanan değişkenin gerçek tipi derleme zamanında belirlenirvar bir değişken tipi değildir, değişken tanımlama yoludur. Tanımlanan değişkenin gerçek tipi derleme zamanında belirlenir IL kodlarında gerçek tip yer alacağı için performans kaybı söz konusu değildirIL kodlarında gerçek tip yer alacağı için performans kaybı söz konusu değildir

Implicitly Typed Local Variables var yeniSayi = 25; var yeniSehir = "İstanbul"; var yeniMusteri = new Customer("Bülent Sözge"); var yeniListe = new List (); int sayi = 25; string sehir = "İstanbul"; Customer musteri = new Customer("Bülent Sözge"); List liste = new List (); Standart tanımlama yolu var kelimesi kullanılarak yapılan tanımlamalar

Object and Collection Initializers Nesne örneği oluşturulurken alanlara ilk değerlerinin atılmasını sağlar. Böylece nesnenin parametreli yapıcı metotlarının yazılmasına gerek kalmazNesne örneği oluşturulurken alanlara ilk değerlerinin atılmasını sağlar. Böylece nesnenin parametreli yapıcı metotlarının yazılmasına gerek kalmaz Koleksiyonların tanımlanması esnasında dizilerde olduğu gibi elemanlarının atanmasını sağlarKoleksiyonların tanımlanması esnasında dizilerde olduğu gibi elemanlarının atanmasını sağlar

Object and Collection Initializers Personel p = new Personel() { Id = 8, Isim = "Burak Batur", DogumYeri = "Denizli" }; Isim = "Burak Batur", DogumYeri = "Denizli" }; List oyuncular = new List () { “Rüştü", “Servet" }; { “Rüştü", “Servet" }; Personel p = new Personel(8, "Burak Batur", "Denizli"); List oyuncular = new List (); oyuncular.Add("Rüştü");oyuncular.Add("Servet"); C# 2.0 Yazımı C# 3.0 Yazımı

Anonymous Types Önceden hazırlanmamış bir sınıfın derleme zamanında yapılan tanımlamaya göre otomatik olarak oluşmasına ve kullanılmasına izin verilmektedirÖnceden hazırlanmamış bir sınıfın derleme zamanında yapılan tanımlamaya göre otomatik olarak oluşmasına ve kullanılmasına izin verilmektedir Oluşan yeni tip var ile tanımlanan değişkene atanırOluşan yeni tip var ile tanımlanan değişkene atanır

Anonymous Types var oyuncu = new { FormaNo = 14, Isim = "Arda", Mevki = "Orta Saha" }; Console.WriteLine(oyuncu.Isim); Daha önceden oyuncu ile ilgili bir sınıf yazılmamasına rağmen böyle bir sınıf varmış gibi nesne örneklenebilirDaha önceden oyuncu ile ilgili bir sınıf yazılmamasına rağmen böyle bir sınıf varmış gibi nesne örneklenebilir Anonim tip object initializer yardımıyla oluşturulur ve sadece var kelimesi yardımıyla tanımlanabilirAnonim tip object initializer yardımıyla oluşturulur ve sadece var kelimesi yardımıyla tanımlanabilir

Extension Methods Varolan tipe yeni bir metot eklenebilirVarolan tipe yeni bir metot eklenebilir Örneğin kendi yazdığımız bir metodun String sınıfının üyesi olması ve projedeki tüm String değişkenler üzerinden bu metodun çağrılması sağlanabilirÖrneğin kendi yazdığımız bir metodun String sınıfının üyesi olması ve projedeki tüm String değişkenler üzerinden bu metodun çağrılması sağlanabilir

Extension Methods static class StringExtensions { public static string TersCevir(this string s) { char[] cDizi = s.ToCharArray(); Array.Reverse(cDizi); return new string(cDizi); }

Lambda Expressions Delegate nesnelerinin işaretleyeceği metotların daha kolay yazılabilmesini sağlarDelegate nesnelerinin işaretleyeceği metotların daha kolay yazılabilmesini sağlar C# 2.0 ile getirilen anonymous method’ların daha sadeleştirilmiş halidirC# 2.0 ile getirilen anonymous method’ların daha sadeleştirilmiş halidir

Lambda Expressions C# 1.1’de temsilci nesnesinin metot işaretlemesi delegate int ToplamaDelegate(int sayi1, int sayi2); static void Main(string[] args) { ToplamaDelegate toplaTemsilci11 = new ToplamaDelegate(Topla); } static int Topla(int x, int y) { return x + y; }

Lambda Expressions C# 2.0’da anonymous method tanımlaması (İsimsiz bir metodun yazılması yeterlidir) delegate int ToplamaDelegate(int sayi1, int sayi2); static void Main(string[] args) { ToplamaDelegate toplaTemsilci20 = delegate(int x, int y) { return x + y; }; }

Lambda Expressions C# 3.0’da lambda expression tanımlaması (=> operatörünün işlemi işaretlemesi yeterlidir) delegate int ToplamaDelegate(int sayi1, int sayi2); static void Main(string[] args) { ToplamaDelegate toplaTemsilci30 = (x, y) => x + y; }

Auto Implemented Property Sınıf tasarımını kolaylaştırmak için field, get ve set bloğu tanımlamadan sade bir yazımla property’nin otomatik oluşmasını sağlarSınıf tasarımını kolaylaştırmak için field, get ve set bloğu tanımlamadan sade bir yazımla property’nin otomatik oluşmasını sağlar Yazılan property üyesinin içerisinde bulunacak get; set; ifadeleri otomatik olarak get ve set bloklarının içerisini doldurur. Gerekli olan field yine derleyici tarafından üretilirYazılan property üyesinin içerisinde bulunacak get; set; ifadeleri otomatik olarak get ve set bloklarının içerisini doldurur. Gerekli olan field yine derleyici tarafından üretilir

Auto Implemented Property C# 2.0 class Sinif_3_0 { public int Sayi { get; set; } class Sinif_2_0 { private int _sayi; public int Sayi { get { return _sayi; } set { _sayi = value; } C# 3.0

Partial Methods Partial sınıfın bir parçasında metot tanımlaması, diğer parçasında metodun çalıştıracağı kodlar yer alabilirPartial sınıfın bir parçasında metot tanımlaması, diğer parçasında metodun çalıştıracağı kodlar yer alabilir Sınıfı tasarlayan programcının metodu tanımlaması, programcının metodun içeriğini oluşturması için idealdirSınıfı tasarlayan programcının metodu tanımlaması, programcının metodun içeriğini oluşturması için idealdir Sadece private erişim belirleyicisi alır ve geri dönüş değeri void olabilirSadece private erişim belirleyicisi alır ve geri dönüş değeri void olabilir