SlideShare ist ein Scribd-Unternehmen logo
1 von 19
C# 4.0 ile Gelen Yenilikler Burak Selim ŞENYURT MVP(Connected System Developer) Innova – Uygulama Geliştirme Danışmanı www.buraksenyurt.com www.nedirtv.com selim@bsenyurt.com  http://twitter.com/bsenyurt http://friendfeed.com/burakselimsenyurt
Gündem C# Tarihçesi Dynamic vs Static C# 4.0 Yenilikleri Dynamic Olmak Demo DLR(Dynamic Language Runtime) Optional & Named Parameters Demo COM Interop Özellikleri Demo Co-Contra Variance Generics Soru&Cevap
CLR 1.0 .Net Framework 1.0/1.1 Tarihçe CLR 4.0 .Net Framework 4.0 CLR 2.0 .Net Framework 2.0/3.0/3.5
Dynamic vs Static Dynamic ,[object Object]
Derleme Yok (No Compilation) ,[object Object],Static ,[object Object]
Rekabet gücü yüksek(Performant)
Akıllı araçlar(Tools)
Daha iyi ölçeklenebilirlik(Scale)Ruby, Python, IronPython... C# ,Vb.Net...
C# 4.0 Yenilikleri Dynamic(Dinamik olarak türlendirilebilen nesneler) Optionalve NamedParametreler Arttırılmış COM Interoperability desteği CoVariance – ContraVariance Generics
Dynamic Olmak Static tip kontrolünün atlanıp bunun yerine, tipin çalışma zamanında çözümlenmesi(Resolve). Python, Ruby gibi dinamik dillerden gelen nesneler, IDispatcharayüzü ile ulaşılabilen COMnesneleri, Reflectionile erişilen standart .Net tipleri, HTMLDOMnesneleri
Dynamic Olmak Çağırılabilen üyeler Metod(Method) Özellik(Property) Alan(Field) Indeksleyici(Indexer) Operatör Temsilci Çağırısı(Delegate Invocation) Kısıtlar Dynamic metod çağrılarında Anonymous Method’ lar parametre olarak aktarılamaz. Dynamic nesneler üzerinde LINQ sorguları çalıştırılamaz. dynamic != var
DEMO Dynamic & IronPython
DLR(Dynamic Language Runtime) DLR, CLR üzerinde host edilen normal bir Assembly’ dır. System.Core’ un bir parçasıdır. Staticve Dynamicdiller arasında iş birliği sağlar. .Net Framework 4.0’ ın bir parçasıdır. IronPyhton, IronRuby, IronScheme(Codeplex) gibi DLR dilleri vardır. C# ve VB.Net gibi dillerden hostedilmeyi sağlayan program arayüzünü(API)sunar. dynamic keyword’ ünün çalışma zamanı bileşenleri DLR’ ı kullanır.
Optional & Named Parameters Özellike COM nesnelerinin kullanımında tüm parametreleri girme zorunluluğunun ortadan kalkması Parametrelere adlarıileistenen sırada erişilebilmesi. Parametreler için değervermezorunluluğunun ortadan kalkması. Office Development!
Office ile Etkileşim DEMO
Optional & Named Parameters Eski Stil; Word.Document document=wordApp.Documents.Open(ref filePath, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); Yeni Stil; wrdApp2.Documents.Open(filePath, ReadOnly: isReadOnly);
COM Interop Özellikleri Dynamic Import PIA(Primary Interop Assembly) Bağımsız Derlemek Ref İhlali(Ommiting Ref) object missing = Missing.Value; wordApp.Documents.Open(ref filePath, ref missing, ref  missing, ref missing.....) wordApp.Documents.Open(filePath, Missing.Value, Missing.Value, Missing.Value.....)
Generic Covariance  Generic Contravariance DEMO
Covariance Rectangle Shape List of Rectangles List of Shapes Shape Rectangle Circle

Weitere ähnliche Inhalte

Andere mochten auch

Presentación power point1
Presentación power point1Presentación power point1
Presentación power point1
gueste549f1
 

Andere mochten auch (13)

C# Akademi 2005
C# Akademi 2005C# Akademi 2005
C# Akademi 2005
 
Depesca
DepescaDepesca
Depesca
 
Comunitat Treball Comunitari maig 2010
Comunitat Treball Comunitari maig 2010Comunitat Treball Comunitari maig 2010
Comunitat Treball Comunitari maig 2010
 
Windows Server App Fabric Introduction
Windows Server App Fabric IntroductionWindows Server App Fabric Introduction
Windows Server App Fabric Introduction
 
Idea blog
Idea blogIdea blog
Idea blog
 
Presentación power point1
Presentación power point1Presentación power point1
Presentación power point1
 
Wcf Eco System
Wcf Eco SystemWcf Eco System
Wcf Eco System
 
Yazilim Zirvesi2008 Wcfwf40 Edit
Yazilim Zirvesi2008 Wcfwf40 EditYazilim Zirvesi2008 Wcfwf40 Edit
Yazilim Zirvesi2008 Wcfwf40 Edit
 
Bankacılık ve SOA
Bankacılık ve SOABankacılık ve SOA
Bankacılık ve SOA
 
Enterprise Applications
Enterprise ApplicationsEnterprise Applications
Enterprise Applications
 
Finans Sektöründe Verimli Yazılımcı Olabilmek
Finans Sektöründe Verimli Yazılımcı OlabilmekFinans Sektöründe Verimli Yazılımcı Olabilmek
Finans Sektöründe Verimli Yazılımcı Olabilmek
 
Welcome!
Welcome!Welcome!
Welcome!
 
SOA Gerçekleri
SOA GerçekleriSOA Gerçekleri
SOA Gerçekleri
 

Ähnlich wie C# 4 0 New Features

Ähnlich wie C# 4 0 New Features (20)

Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
C#4.0
C#4.0C#4.0
C#4.0
 
C Sharp ve .NET
C Sharp ve .NETC Sharp ve .NET
C Sharp ve .NET
 
C Sharp ve .NET
C Sharp ve .NETC Sharp ve .NET
C Sharp ve .NET
 
C++ konferansi
C++ konferansiC++ konferansi
C++ konferansi
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
 
C konferansi
C konferansiC konferansi
C konferansi
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
C sharp-indir
C sharp-indirC sharp-indir
C sharp-indir
 
Php egitimi-kartal
Php egitimi-kartalPhp egitimi-kartal
Php egitimi-kartal
 
Php teknikeri
Php teknikeriPhp teknikeri
Php teknikeri
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytar
 
Php kursu-kartal
Php kursu-kartalPhp kursu-kartal
Php kursu-kartal
 
Php egitimi-diyarbakir
Php egitimi-diyarbakirPhp egitimi-diyarbakir
Php egitimi-diyarbakir
 
C++ proje
C++ projeC++ proje
C++ proje
 
yazılımmuh10.pptx
yazılımmuh10.pptxyazılımmuh10.pptx
yazılımmuh10.pptx
 
Php testleri
Php testleriPhp testleri
Php testleri
 
C sharp-dokumani
C sharp-dokumaniC sharp-dokumani
C sharp-dokumani
 
C sharp-testi
C sharp-testiC sharp-testi
C sharp-testi
 
Php kursu-diyarbakir
Php kursu-diyarbakirPhp kursu-diyarbakir
Php kursu-diyarbakir
 

C# 4 0 New Features

  • 1. C# 4.0 ile Gelen Yenilikler Burak Selim ŞENYURT MVP(Connected System Developer) Innova – Uygulama Geliştirme Danışmanı www.buraksenyurt.com www.nedirtv.com selim@bsenyurt.com http://twitter.com/bsenyurt http://friendfeed.com/burakselimsenyurt
  • 2. Gündem C# Tarihçesi Dynamic vs Static C# 4.0 Yenilikleri Dynamic Olmak Demo DLR(Dynamic Language Runtime) Optional & Named Parameters Demo COM Interop Özellikleri Demo Co-Contra Variance Generics Soru&Cevap
  • 3. CLR 1.0 .Net Framework 1.0/1.1 Tarihçe CLR 4.0 .Net Framework 4.0 CLR 2.0 .Net Framework 2.0/3.0/3.5
  • 4.
  • 5.
  • 8. Daha iyi ölçeklenebilirlik(Scale)Ruby, Python, IronPython... C# ,Vb.Net...
  • 9. C# 4.0 Yenilikleri Dynamic(Dinamik olarak türlendirilebilen nesneler) Optionalve NamedParametreler Arttırılmış COM Interoperability desteği CoVariance – ContraVariance Generics
  • 10. Dynamic Olmak Static tip kontrolünün atlanıp bunun yerine, tipin çalışma zamanında çözümlenmesi(Resolve). Python, Ruby gibi dinamik dillerden gelen nesneler, IDispatcharayüzü ile ulaşılabilen COMnesneleri, Reflectionile erişilen standart .Net tipleri, HTMLDOMnesneleri
  • 11. Dynamic Olmak Çağırılabilen üyeler Metod(Method) Özellik(Property) Alan(Field) Indeksleyici(Indexer) Operatör Temsilci Çağırısı(Delegate Invocation) Kısıtlar Dynamic metod çağrılarında Anonymous Method’ lar parametre olarak aktarılamaz. Dynamic nesneler üzerinde LINQ sorguları çalıştırılamaz. dynamic != var
  • 12. DEMO Dynamic & IronPython
  • 13. DLR(Dynamic Language Runtime) DLR, CLR üzerinde host edilen normal bir Assembly’ dır. System.Core’ un bir parçasıdır. Staticve Dynamicdiller arasında iş birliği sağlar. .Net Framework 4.0’ ın bir parçasıdır. IronPyhton, IronRuby, IronScheme(Codeplex) gibi DLR dilleri vardır. C# ve VB.Net gibi dillerden hostedilmeyi sağlayan program arayüzünü(API)sunar. dynamic keyword’ ünün çalışma zamanı bileşenleri DLR’ ı kullanır.
  • 14. Optional & Named Parameters Özellike COM nesnelerinin kullanımında tüm parametreleri girme zorunluluğunun ortadan kalkması Parametrelere adlarıileistenen sırada erişilebilmesi. Parametreler için değervermezorunluluğunun ortadan kalkması. Office Development!
  • 16. Optional & Named Parameters Eski Stil; Word.Document document=wordApp.Documents.Open(ref filePath, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); Yeni Stil; wrdApp2.Documents.Open(filePath, ReadOnly: isReadOnly);
  • 17. COM Interop Özellikleri Dynamic Import PIA(Primary Interop Assembly) Bağımsız Derlemek Ref İhlali(Ommiting Ref) object missing = Missing.Value; wordApp.Documents.Open(ref filePath, ref missing, ref missing, ref missing.....) wordApp.Documents.Open(filePath, Missing.Value, Missing.Value, Missing.Value.....)
  • 18. Generic Covariance Generic Contravariance DEMO
  • 19. Covariance Rectangle Shape List of Rectangles List of Shapes Shape Rectangle Circle
  • 20. Contravariance Rectangle Shape Comprasion of Rectangles Comprasion of Shapes Shape Rectangle Circle
  • 21. Co-Contra Variance Generics .Net 4.0 öncesinde generic koleksiyonlar invarianceyapıdadır. Sadece tanımlanan tiple çalışılmaktadır. Ancak.Net 4.0 ile generic tipler CoVariantveya ContraVariantolarak kullanılabilmektedir.

Hinweis der Redaktion

  1. Dinamik dil program kodları tamamen derlenmeyip, sadece program çalışacağı zaman client tarafından yorumlanarak çalışır. Yani compile edilme olayı olmadan yorumlayıcısı vasıtasıyla direkt olarak çalışırlar. Bu da başta web siteleri olamak üzere pek çok projede artı olarak yorumlanabilir. En önemli özelliklerinden "tip tanımlamaları" yani statik dillerdeki gibi verinizin tipini kullanmadan önce tanımlamamıza gerek kalmamaktadır. Yani Integer bir değer gireceksek daha önceden int olarak tanımlamamıza gerek yoktur.
  2. IronPython, IronRuby gidi dinamik dillerde üretilen sınıfların metadata tanımlamalarına static bir dil içerisinde ulaşalımaz.Çözüm dynamic olmaktır.
  3. Kaynaklar : http://www.buraksenyurt.com/post/C-40-Dynamic-Olmak.aspx
  4. DLR .NET 4.0’ ın bir parçasıdır. DLR ;Ruby, Python gibi dinamik dillerin .Net Framework üzerindeki implementasyonu amacıyla kullanılır. DLR, CLR’ ın üzerinde oturmakta ve CLR dilleri ile dinamik diller arasında köprü görevini üstlenmektedir. Burada yer alan ara dil servisleri şu anda IronRuby ve IronPython dillerinin geliştirme versiyonları için geçerlidir.
  5. Kaynaklar : http://www.buraksenyurt.com/post/C-40-Dynamic-Olmak.aspx
  6. No PIA – COM nesneleri ile .Net Framework arasında köprü görevini üstlenen Primary Interop Assemblies’ in en çok bilinenleri arasında Microsoft Office Primary Interop Assemblies yer alır. Normal şartlarda deployement işlemi sırasında gerkekli PIA referanslarınında yüklenmesi, taşınması gerekmektedir. No-PIA özelliğine göre PIA’ ların .Net Assembly’ ı içerisine gömülerek taşınması mümkündür. Ayrıca PIA’ nın embed edilen kısmı sadece gerekli olan kısmıdır.Ref Ihlali – Normalde ref tipinden olan parametreler için temporary değişkenlerin tanımlanıp referans bazlı geçirilmesi gerekir. C# 4.0 ref parametreler için değer bazlı geçişlere izin verir. Kendisi arka planda gerekli temporary değişkenleri oluşturur.
  7. .Net 4.0 ‘ daki generic koleksiyonların covariance ve contravariance olarak kullanılabilmelerini sağlamak için interface ve delegate tiplerinde out T ve in T kullanımları getirilmiştir.
  8. .Net 4.0 ‘ daki generic koleksiyonların covariance ve contravariance olarak kullanılabilmelerini sağlamak için interface ve delegate tiplerinde out T ve in T kullanımları getirilmiştir.
  9. .Net 4.0 ‘ daki generic koleksiyonların covariance ve contravariance olarak kullanılabilmelerini sağlamak için interface ve delegate tiplerinde out T ve in T kullanımları getirilmiştir.