SlideShare ist ein Scribd-Unternehmen logo
1 von 35
http://fatihboy.com
http://enterprisecoding.com
Bildirimsel




Eşzamanlılık            Dinamik
2005 - C# 2.0
                       Generics

2002 - C# 1.0
                    Managed Kod
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;
}
2007 - C# 3.0
                              LINQ

    2005 - C# 2.0
                          Generics

2002 - C# 1.0
                     Managed Kod
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;
2010 - C# 4.0
                                       Dinamik programlama

          2007 - C# 3.0
                                LINQ

    2005 - C# 2.0
                          Generics

2002 - C# 1.0
                     Managed Kod
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);
Bildirimsel
            C# 3.0




                        Dinamik
Eşzamanlılık
                         C# 4
... - 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
var veri = VeriyiIndir(...);
VeriyiIsle(veri);




VeriyiIndirAsync(... , veri => {
    VeriyiIsle(veri);
});
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);
                                }
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);
                                }
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);
                                }
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);
                                }
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);
                                }




                  
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);
                                }




                                 
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);
                                }

                  



                                                        
... - 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
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
DERLEYICI API’SI




                          DERLEYICI PIPELINE




                                                         Yayınlayıcı
              Semboller
Ayrıştırıcı                                  Bağlayıcı




                                                             IL
              Meta-Veri
               ithali
• 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
http://fatihboy.com
http://enterprisecoding.com

Weitere ähnliche Inhalte

Was ist angesagt?

Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2
Max Kleiner
 
Iss letcure 7_8
Iss letcure 7_8Iss letcure 7_8
Iss letcure 7_8
Ali Habeeb
 
Hibernate Import.Sql I18n
Hibernate Import.Sql I18nHibernate Import.Sql I18n
Hibernate Import.Sql I18n
yifi2009
 

Was ist angesagt? (20)

maxbox starter72 multilanguage coding
maxbox starter72 multilanguage codingmaxbox starter72 multilanguage coding
maxbox starter72 multilanguage coding
 
.NET @ apache.org
 .NET @ apache.org .NET @ apache.org
.NET @ apache.org
 
WebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemonWebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemon
 
Non blocking io with netty
Non blocking io with nettyNon blocking io with netty
Non blocking io with netty
 
The Ring programming language version 1.10 book - Part 102 of 212
The Ring programming language version 1.10 book - Part 102 of 212The Ring programming language version 1.10 book - Part 102 of 212
The Ring programming language version 1.10 book - Part 102 of 212
 
Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2
 
network programing lab file ,
network programing lab file ,network programing lab file ,
network programing lab file ,
 
Jan Stępień - GraalVM: Fast, Polyglot, Native - Codemotion Berlin 2018
Jan Stępień - GraalVM: Fast, Polyglot, Native - Codemotion Berlin 2018Jan Stępień - GraalVM: Fast, Polyglot, Native - Codemotion Berlin 2018
Jan Stępień - GraalVM: Fast, Polyglot, Native - Codemotion Berlin 2018
 
Iss letcure 7_8
Iss letcure 7_8Iss letcure 7_8
Iss letcure 7_8
 
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and FanoutOpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
 
Node.js cluster
Node.js clusterNode.js cluster
Node.js cluster
 
TDC2016POA | Trilha JavaScript - JavaScript Promises na Prática
TDC2016POA | Trilha JavaScript - JavaScript Promises na PráticaTDC2016POA | Trilha JavaScript - JavaScript Promises na Prática
TDC2016POA | Trilha JavaScript - JavaScript Promises na Prática
 
Better Open Source Enterprise C++ Web Services
Better Open Source Enterprise C++ Web ServicesBetter Open Source Enterprise C++ Web Services
Better Open Source Enterprise C++ Web Services
 
Return of c++
Return of c++Return of c++
Return of c++
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
 
How to Leverage Go for Your Networking Needs
How to Leverage Go for Your Networking NeedsHow to Leverage Go for Your Networking Needs
How to Leverage Go for Your Networking Needs
 
Programming language for the cloud infrastructure
Programming language for the cloud infrastructureProgramming language for the cloud infrastructure
Programming language for the cloud infrastructure
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
 
Hibernate Import.Sql I18n
Hibernate Import.Sql I18nHibernate Import.Sql I18n
Hibernate Import.Sql I18n
 
Fidl analysis
Fidl analysisFidl analysis
Fidl analysis
 

Ähnlich wie C#'ın geleceğine bir bakış webiner

Introduction to the New Asynchronous API in the .NET Driver
Introduction to the New Asynchronous API in the .NET DriverIntroduction to the New Asynchronous API in the .NET Driver
Introduction to the New Asynchronous API in the .NET Driver
MongoDB
 
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache FlinkMaximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Flink Forward
 
Windows Phone 8 - 3.5 Async Programming
Windows Phone 8 - 3.5 Async ProgrammingWindows Phone 8 - 3.5 Async Programming
Windows Phone 8 - 3.5 Async Programming
Oliver Scheer
 
The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)
jeffz
 
Node js
Node jsNode js
Node js
hazzaz
 

Ähnlich wie C#'ın geleceğine bir bakış webiner (20)

Welcome to an asynchronous world 1.29s
Welcome to an asynchronous world 1.29sWelcome to an asynchronous world 1.29s
Welcome to an asynchronous world 1.29s
 
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNextMicrosoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
 
An introduction to Apache Thrift
An introduction to Apache ThriftAn introduction to Apache Thrift
An introduction to Apache Thrift
 
Async Programming in C# 5
Async Programming in C# 5Async Programming in C# 5
Async Programming in C# 5
 
Introduction to the New Asynchronous API in the .NET Driver
Introduction to the New Asynchronous API in the .NET DriverIntroduction to the New Asynchronous API in the .NET Driver
Introduction to the New Asynchronous API in the .NET Driver
 
Binary Studio Academy: Concurrency in C# 5.0
Binary Studio Academy: Concurrency in C# 5.0Binary Studio Academy: Concurrency in C# 5.0
Binary Studio Academy: Concurrency in C# 5.0
 
Iron python
Iron pythonIron python
Iron python
 
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache FlinkMaximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
 
Windows Phone 8 - 3.5 Async Programming
Windows Phone 8 - 3.5 Async ProgrammingWindows Phone 8 - 3.5 Async Programming
Windows Phone 8 - 3.5 Async Programming
 
The Future of C# and Visual Basic
The Future of C# and Visual BasicThe Future of C# and Visual Basic
The Future of C# and Visual Basic
 
The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)
 
Next .NET and C#
Next .NET and C#Next .NET and C#
Next .NET and C#
 
Fij
FijFij
Fij
 
High-level Programming Languages: Apache Pig and Pig Latin
High-level Programming Languages: Apache Pig and Pig LatinHigh-level Programming Languages: Apache Pig and Pig Latin
High-level Programming Languages: Apache Pig and Pig Latin
 
2008 - TechDays PT: WCF, JSON and AJAX for performance and manageability
2008 - TechDays PT: WCF, JSON and AJAX for performance and manageability2008 - TechDays PT: WCF, JSON and AJAX for performance and manageability
2008 - TechDays PT: WCF, JSON and AJAX for performance and manageability
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
 
Node js
Node jsNode js
Node js
 
Node.js - async for the rest of us.
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.
 
Node intro
Node introNode intro
Node intro
 
Async/Await Best Practices
Async/Await Best PracticesAsync/Await Best Practices
Async/Await Best Practices
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

C#'ın geleceğine bir bakış webiner

  • 2.
  • 4. 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);
  • 10. Bildirimsel C# 3.0 Dinamik Eşzamanlılık C# 4
  • 11.
  • 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
  • 13.
  • 14. var veri = VeriyiIndir(...); VeriyiIsle(veri); VeriyiIndirAsync(... , veri => { VeriyiIsle(veri); });
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 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
  • 31.
  • 32.
  • 33.
  • 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