1 / 27

C # 5 Yeni Özellikler

C # 5 Yeni Özellikler. Erkan BALABAN Yazılım Uzmanı NTV. C# 5. Asynchronous Programming. C#’ın evrimi. C# 4. Dynamic. C# 3. LINQ. C# 2. Generics. C# 1. Managed Code. C# 5’te neler yeni?. Asynchronous programming Windows Runtime Support Caller Info Attributes.

yessica
Télécharger la présentation

C # 5 Yeni Özellikler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C# 5 Yeni Özellikler Erkan BALABAN Yazılım Uzmanı NTV

  2. C# 5 Asynchronous Programming C#’ın evrimi C# 4 Dynamic C# 3 LINQ C# 2 Generics C# 1 Managed Code

  3. C# 5’te neler yeni? Asynchronous programming Windows Runtime Support Caller Info Attributes

  4. Asenkron ve arkadaşları Asynchronous Synchronous Parallel Multi threading

  5. Synchronous Bilinen / genel yöntem Blok 0larak çalışır. UI, arkadaki kodun çalışmasını bitirmesini bekler.

  6. Multithreading Operasyonları diğer thread’lere dağıtır. Main ve diğer thread’lerle senkronizasyonu bizim yapmamız gerekir. Thread’lerin çalışma koşullarını biz kontrol ederiz.

  7. Parallelism Tanım olarak multithread’dir. Task / kaynak havuzunda çalışır. Konsept olarak birden fazla core’u, işlemciyi kullanabilir.

  8. Asynchronous Nedir, Ne Değildir? Parallel programlama değildir. Uygulamadaki kodlar aynı thread’de çalışmaya devam eder. Kodun UI’dan alınıp arkaya konulması demektir. Yani;  Metodun çalışması bitene kadar UI cevap verebilir.  Metod arkada çalışır.  Metod işini bitirdiğinde UI’ya sonucu iletebilir.  Böylece kullanıcı takılma yaşamaz.

  9. Asenkron programlama Programlamada yeni norm olacak

  10. Neden Asynchronous Programming? Tabletler günümüzde daha fazla kullanılmaya başlandı. 2011’de PC satışlarının % 15’i tablet pc olacak. (IDC) Ipad, Android tablet, RIM, .... Yakında Windows 8 tabletler çıkacak. Tabletlerle birlikte UI daha fazla önem kazanacak. Çünkü UI’ın daha hızlı / kısa sürede cevap verebiliyor olması gerekiyor. Herne kadar yapılması gereken işlem tamamlanmamış olsa bile. Örneğin haber okuma gibi. Haberin özeti, ilgili resimler, ilintili haberler, haber detayı vs UI’ın daha fazla cevap verebiliyor olması gerekiyor. UI’yı bloklamadan uzun süren işlemleri yapabilmek gerekiyor.

  11. Under the hood Tek çekirdekli / işlemcili bilgisayarlarda concurrency Aynı anda birden fazla uygulama çalıştırırız!!! Bir karsonun iki masayla aynı anda ilgilenmesi gibi. Asenkron çalışma da benzer mantıktır. İşler küçük parçalara bölünür. Parçalar sıraya konur, kuyruğa alınır. Kuyruktan sırası gelen iş alınır ve işlemci tarafından çalıştırılır. Bu işlem aynı thread’de gerçekleşir. Birden fazla core / CPU olmadan multitask çalışma Her iş için bir task oluşturulur ve caller, task’in tamamlanması bekler. Aktivite tamamlandığında – metod tamamlandığında – caller’da bir senkronizasyon yapılır.

  12. TAP? Task-based Asynchronous Pattern

  13. TPL vs TAP

  14. Await Async

  15. Await Derleme sırasında compiler «continuation code» generate eder. Callback’leri otomatik olarak yakalar. Callback yakaladığında caller’a geri döner. Kodun normal akışını devam ettirebilmesi için task’in tamamlanmasını bekler. Kodu çağıran metoda hataları ve cancellation token’ları yayar.

  16. Async Compiler’a metodun asenkron olduğunu belirtir. Metodu asenkron olarak işaretler. Asenkron olarak işaretlenmiş metodlar en az bir tane await içermelidir. Bu metodlar birden fazla await içerebilir. Async olarak işaretlenmiş metodlar beklenebilir. (can be awaited) Asenkron metodlar void olabilir, Task veya Tast<T> döndürebilir.

  17. Örnek public asyncTask<string> GetXmlAsync(string url) { varclient = new HttpClient(); var response = awaitclient.GetAsync(url); vartext = response.Content.ReadAsString(); returntext; }

  18. Demo 1 Sync vs Async UI response Async nasıl yazılır?

  19. Demo 2 Multiple await

  20. Demo 3 Veritabanından asekron veri çekme

  21. Asenkron programlama modelleri Windows Runtime  IAsyncOperation<T> .NET Framework  Task<T> Javascript  Promises

  22. Asenkron hakkında notlar Asenkron kullanırken işler küçük parçalara bölünür ve işlerin tamamlanmaları beklenir. Burada dikkat edilmesi gereken işleri ne kadar çok sayıda parçaya böldüğümüzdür. Fazla sayıda küçük parçaya bölmek iyi değildir. TAP herne kadar iyi olsa da her derde deva değildir. Kullanırken dikkat etmek ve iyi ölçmek gerekir. İşlem 50 milisaniyeden fazla zaman alıyorsa asenkron yapılabilir. Async metodlar cascading olarak çağırılabilir.

  23. Exception Handling Demo - sql sorgusunun yanlış olması

  24. Caller Info Attributes __FILE__ ve __LINE__ public static class Logger { public static void LogDB(string message, [CallerFilePath] string file = "", [CallerLineNumber] int line = 0, [CallerMemberName] string member = "") { varerr= string.Format("{0}:{1} – {2}: {3}",file, line, member, message); // log error message to db } }

  25. Caller Info Attributes Logger.LogDB(″Kullanıcı adı ve şifre hatalı″);

  26. Link Visual Studio Asynchronous Programming http://msdn.microsoft.com/en-us/vstudio/async

  27. Teşekkürler ... erkanbalaban.com.tr erkan@erkanbalaban.com.tr

More Related