VS 2010 C# 4.0 New Features

20
4.0 ile Gelen Yenilikler Selim ŞENYURT onnected System Developer) a – Uygulama Geliştirme Danışmanı uraksenyurt.com edirtv.com bsenyurt.com witter.com/bsenyurt riendfeed.com/burakselimsenyurt

description

Burak Selim şenyurt C# 4.0 yeni Özellikleri

Transcript of VS 2010 C# 4.0 New Features

Page 1: VS 2010 C# 4.0 New Features

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

Page 2: VS 2010 C# 4.0 New Features

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)

Page 3: VS 2010 C# 4.0 New Features

Gündem

C# Tarihçesi Dynamic vs Static C# 4.0 Yenilikleri Dynamic Olmak

Demo (Reflection Tarafında dynamic, IronPython ile Konuşmak)

DLR(Dynamic Language Runtime) Optional & Named Parameters

Demo (Word ile Etkileşim) COM Interop Özellikleri Demo (Generic Covariance/Contravariance) Co-Contra Variance Generics Soru&Cevap

Page 4: VS 2010 C# 4.0 New Features

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

Page 5: VS 2010 C# 4.0 New Features

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...

Page 6: VS 2010 C# 4.0 New Features

C# 4.0 Yenilikleri

Dynamic (Dinamik olarak türlendirilebilen nesneler)

Optional ve Named Parametreler Arttırılmış COM Interoperability desteği CoVariance – ContraVariance Generics

Page 7: VS 2010 C# 4.0 New Features

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).

Page 8: VS 2010 C# 4.0 New Features

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

Page 9: VS 2010 C# 4.0 New Features

Reflection Tarafında DynamicIronPython ile Konuşmak

DEMO

Page 10: VS 2010 C# 4.0 New Features

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.

Page 11: VS 2010 C# 4.0 New Features

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!

Page 12: VS 2010 C# 4.0 New Features

Office ile Etkileşim

DEMO

Page 13: VS 2010 C# 4.0 New Features

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;

Page 14: VS 2010 C# 4.0 New Features

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.....)

Page 15: VS 2010 C# 4.0 New Features

Generic Covariance Generic Contravariance

DEMO

Page 16: VS 2010 C# 4.0 New Features

Covariance

Shape

Rectangle

Circle

Rectangle Shape

List of Rectangles

List of Shapes

Page 17: VS 2010 C# 4.0 New Features

Contravariance

Shape

Rectangle

Circle

Rectangle Shape

Comprasion of

Rectangles

Comprasion of Shapes

Page 18: VS 2010 C# 4.0 New Features

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

Page 20: VS 2010 C# 4.0 New Features

Soru & cevap