1. C# 4.0 ile Gelen YeniliklerBurak Selim ŞENYURTMVP(Connected System Developer)Innova – Uygulama Geliştirme Danışmanıwww.buraksenyurt.comwww.nedirtv.comselim@bsenyurt.com http://twitter.com/bsenyurthttp://friendfeed.com/burakselimsenyurt
2. Akşam Sınıfı Eğitim PlanıC# 4.0.Net 4.0 ile Paralel Programlama (22 Haziran 2010 Salı)WCF ile Servis Yaklaşımı (20 Temmuz 2010 Salı)WCF Eco System (20 Ağustos 2010 Cuma)Windows Server AppFabric(Dublin) (20 Eylül 2010 Pazartesi)Workflow Foundation 4.0 (20 Ekim 2010 Çarşamba)Asp.Net 4.0 (23 Kasım 2010 Salı)Visual Basic 2010 (20 Aralık 2010 Pazartesi)WPF 4.0 ile Windows Programlama (20 Ocak 2011 Perşembe)
3. GündemC# TarihçesiDynamic vs StaticC# 4.0 YenilikleriDynamic OlmakDemo (Reflection Tarafında dynamic, IronPython ile Konuşmak)DLR(Dynamic Language Runtime)Optional & Named ParametersDemo (Word ile Etkileşim)COM Interop Özellikleri Demo (Generic Covariance/Contravariance)Co-Contra Variance GenericsSoru&Cevap
10. C# 4.0 YenilikleriDynamic(Dinamik olarak türlendirilebilen nesneler)Optionalve NamedParametrelerArttırılmış COM Interoperability desteğiCoVariance – ContraVariance Generics
11. Dynamic OlmakStatic 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
14. 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.
15. 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!
#6: 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.
#8: 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.
#11: 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.
#15: 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.
#17: .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.
#18: .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.
#19: .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.