Visual C# 4.0
-
Upload
murat-baseren -
Category
Technology
-
view
1.130 -
download
2
description
Transcript of Visual C# 4.0
C# 4.0 ile Gelen Yenilikler
Burak Selim ŞENYURTMVP(Connected System Developer)
Innova – Uygulama Geliştirme Danışmanı[email protected] http://twitter.com/bsenyurthttp://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
C# 1.0 Managed Code Kavramı
C# 2.0 Generic Mimari
C# 3.0 Language INtegrated Query
C# 4.0 Dynamic Programlama
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
•Bilinçsiz türlendirme(Implicitly Typed)
•Derleme Yok (No Compilation)
•Basit ve kısa
Static
•Güçlü(Robust)
•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)
Optional ve Named Parametreler Arttırılmış COM Interoperability desteği CoVariance – ContraVariance Generics
Dynamic Olmak
Python, Ruby gibi dinamik dillerden gelen nesneler,
IDispatch arayüzü ile ulaşılabilen COM nesneleri, Reflection ile erişilen standart .Net tipleri, HTML DOM nesneleri
Static tip kontrolünün atlanıp bunun yerine, tipin çalışma zamanında çözümlenmesi(Resolve).
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
Dynamic & IronPython
DEMO
DLR(Dynamic Language Runtime)
DLR, CLR üzerinde host edilen normal bir Assembly’ dır.
System.Core’ un bir parçasıdır. Static ve Dynamic diller 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 host edilmeyi 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ı ile istenen sırada erişilebilmesi.
Parametreler için değer verme zorunluluğunun ortadan kalkması.
Office Development!
Office ile Etkileşim
DEMO
Optional & Named Parameters
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);
Eski Stil;
wrdApp2.Documents.Open(filePath, ReadOnly: isReadOnly);
Yeni Stil;
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
Shape
Rectangle
Circle
Rectangle Shape
List of Rectangles
List of Shapes
Contravariance
Shape
Rectangle
Circle
Rectangle Shape
Comprasion of
Rectangles
Comprasion of Shapes
Co-Contra Variance Generics
.Net 4.0 öncesinde generic koleksiyonlar invariance yapıdadır. Sadece tanımlanan tiple çalışılmaktadır.
Ancak .Net 4.0 ile generic tipler CoVariant veya ContraVariant olarak kullanılabilmektedir.
InvarianceBir geri dönüş veya parametre tipinin birebir istenen tipte olması.
CoVariance
Parametre /dönüş tipinin tanımlanandan daha alt bir tip olarak kullanılabilmesi.
A<T> için A<TDerived> kullanılabilmesi
ContraVariance
Parametre/dönüş tipinin tanımlanandan daha üst bir tip olarak kullanılabilmesi.
A<T> için A<TBase> kullanılabilmesi
Soru & cevap
Kaynaklar
http://channel9.msdn.com/
http://msdn.microsoft.com/en-gb/vcsharp/dd819407.aspx