Weitere ähnliche Inhalte Ähnlich wie C#'ın geleceğine bir bakış webiner (20) Kürzlich hochgeladen (20) C#'ın geleceğine bir bakış webiner4. 2005 - C# 2.0
Generics
2002 - C# 1.0
Managed Kod
5. public static IEnumerable<int> To(this int ilk, int son) {
for (var l = ilk; l <= son; l++) {
yield return l;
}
}
foreach (int i in 5.To(15)) {
j = i*i;
}
6. 2007 - C# 3.0
LINQ
2005 - C# 2.0
Generics
2002 - C# 1.0
Managed Kod
7. List<int> ogrenciIdleri = new List<int>();
foreach (Ogrenci ogrenci in ogrenciler) {
if (ogrenci.BolumID == 1) {
ogrenciIdleri.Add(ogrenci.ID);
}
}
var ogrenciIdleri = ogrenciler
.Where(ogrenci => ogrenci.BolumID == 1)
.Select(ogrenci => ogrenci.ID);
var ogrenciIdleri = from ogrenci in ogrenciler
where ogrenci.BolumID == 1
select ogrenci.ID;
8. 2010 - C# 4.0
Dinamik programlama
2007 - C# 3.0
LINQ
2005 - C# 2.0
Generics
2002 - C# 1.0
Managed Kod
9. object hesapMakinesi = HesapMakinesiniGetir();
Type hesapMakinesiTuru = hesapMakinesi.GetType();
object sonuc = hesapMakinesiTuru.InvokeMember("Ekle",
BindingFlags.InvokeMethod,
null, hesapMakinesi, new object[] { 1, 2});
int toplam = Convert.ToInt32(sonuc);
dynamic hesapMakinesi = HesapMakinesiniGetir();
int toplam = hesapMakinesi.Ekle(1, 2);
12. ... - C# v.Next
Asenkron Programlama
2010 - C# 4.0
Dinamik programlama
2007 - C# 3.0
LINQ
2005 - C# 2.0
Generics
2002 - C# 1.0
Managed Kod
14. var veri = VeriyiIndir(...);
VeriyiIsle(veri);
VeriyiIndirAsync(... , veri => {
VeriyiIsle(veri);
});
21. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
22. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
23. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
24. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
25. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
26. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
27. async void DoWorkAsync() {
var t1 = ProcessFeedAsync("enterprisecoding.com/feed");
var t2 = ProcessFeedAsync("enterprisecoding.tv/feed");
await Task.WhenAll(t1, t2);
DisplayMessage("Done");
} async Task ProcessFeedAsync(string url) {
var text = await DownloadFeedAsync(url);
var doc = ParseFeedIntoDoc(text);
await SaveDocAsync(doc);
ProcessLog.WriteEntry(url);
}
28. ... - C# v.Next Next
CaaS
... - C# v.Next
Asenkron Programlama
2010 - C# 4.0
Dinamik programlama
2007 - C# 3.0
LINQ
2005 - C# 2.0
Generics
2002 - C# 1.0
Managed Kod
29. Sınıf
Meta-programlama Read-Eval-Print
public Foo Loop
Dil Nesne Modeli alan (REPL)
private X
string
.NET
Kaynak Kodu .NET
Kaynak Kodu Assembly
Kaynak Kodu Derleyici .NET
Assembly
Assembly
30. DERLEYICI API’SI
DERLEYICI PIPELINE
Yayınlayıcı
Semboller
Ayrıştırıcı Bağlayıcı
IL
Meta-Veri
ithali
34. • Visual Studio Async CTP
http://msdn.com/async
• Visual Studio «Roslyn» CTP
http://msdn.com/roslyn
• Enterprisecoding
http://fth.by/roslynmakaleleri
http://fth.by/asyncmakaleler