Erkan BALABAN Yazılım Uzmanı NTV

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Yazılım Geliştirme ve Java
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
SharePoint İş Süreçleri Yönetimi
Silverlight Daron Yöndem INETA Türkiye Başkanı
LINQ { C# 3.0 ve Language Integrated Query }
Tuğba DEMİREL
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
C Programlama Diline Giriş
Polymorphism.  Bir işlem birden fazla tip üzerinde çalışabilir  Metot temel tip arayüzünü kullanır  İşlem çalışan metot tarafından yapılır.
Thread (İş parçacığı/iplik)
Fork and Join Framework
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
T-SQL-2.Konu Akış Kontrolleri.
Nesne Tabanlı Programlama
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
NESNEYE YÖNELİK PROGRAMLAMA
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
NESNE TABANLI PROGRAMLAMA -METOTLAR-
METODLAR.
C# Metot Overloading (Aşırı yükleme)
METODLAR Canan Işıl. 1 İçindekiler Açıklamalar, Örnekler, Sorularınız? Kaynakça, Teşekkürler..
NESNEYE DAYALI PROGRAMLAMA
.Net teknolojisi ve C# Yasin Gedik Dokuz Eylül Üniversitesi (4. Sınıf) Microsoft Danışman Öğrenci
Chapter 7: Using Methods. Metotları ve Kodlamayı Gizlemeyi Anlama Metot – Kapsüllenmiş ifadeler serisini gerçekleştiren bir görev – Kullanılan metodun.
İş Parçacıkları Thread(s)
LINQ (Language Integrated Query)
Microsoft’ta Devrim Visual Studio 2010 Kariyer Üstü Prestij.
.NET Teknolojileri .NET mimarisi VB.NET, C.NET, C#.NET
Görsel Programlama Dr. Muhammet Balcılar
Metotlar.
FONKSİYONLAR.
JAVA İLE PROGRAMLAMAYA GİRİŞ
METOTLAR.
Önceki Dersi Hatırlama !!
SIP PLATFORMU  Genel Özellikleri  SIP (Session Initiation Protocol) tabanlı IVR (Interactive Voice Response) platformudur.
Microsoft® WPF- Silverlight
~KOŞUL İFADELERİ~.
JAVA’DA DÖNGÜLER.
EDUTIME Java Day 8 Serdar TÜRKEL.
BTP205 – Görsel Programlama I
Kalıtım , Sınıf Asli Ergün.
Demet AYDIN METODLAR Demet AYDIN
JAVA’DA DİZİLER Dr.Galip AYDIN.
Chapter 1: A First Program Using C#
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
M İ CROSOFT RPC YÜKLENECEK PROGRAMLAR Microsoft Visual Studio 2008 Microsoft SDK 7.0  FamilyID=c17ba a63e-
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
 2006 Pearson Education, Inc. All rights reserved. Görsel C# ile Windows Programlama Güz 2009 (2. Hafta)
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
DISASTER RECOVERY SOLUTION
METOTLAR.
Microsoft Windows Server 2003 © Yenilikler ERCAN SAPMAZ.
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
BIL MOBiL PROGRAMLAMA TEKNiKLERi Yard. Doç. Dr. Oğuzhan Topsakal
ANDDROID ASYNCTASK Mobil Programlama. ANDDROID ASYNCTASK –ARKA PLAN UYGULAMALARI Neden arka plan i ş lemleri? Android uygulamalarında uzun sürecek i ş.
Mobil Uygulama Geliştirme Teknikleri
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
C Programlama Dili Bilgisayar Mühendisliği.
Dosya Yönetimi.
Veri Tipleri 12/4/2018.
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
İşletim Sistemleri (Operating Systems)
Sunum transkripti:

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

C#’ın evrimi C# 5 Asynchronous Programming 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

Asenkron ve arkadaşları Asynchronous Synchronous Parallel Multi threading

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

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.

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

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.

Asenkron programlama Programlamada yeni norm olacak

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.

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.

TAP? Task-based Asynchronous Pattern

TPL vs TAP TPL TAP CPU yükü fazla olan işlemlerde kullanılır. Main thread / programın dışında çalıştırılır. CPU yükü fazla olmayan işlemlerde kullanılır. Resim download etme, network işlemleri,vb Multiplethreading ve multi core’un avantajlarını kullanır. Multithread veya multicore kullanmaz. Core’lar boşta kalır. İşlemleri concurrency kullanarak çözer. TAP bu özelliği extend eder. UI serbest kalır ve uygulama pekçok thread açmaz. TAP sadece UI’da kullanılmaz. Multithread ortamlarda da kullanılabilir.

Await Async

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.

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.

Örnek public async Task<string> GetXmlAsync(string url) { var client = new HttpClient(); var response = await client.GetAsync(url); var text = response.Content.ReadAsString(); return text; }

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

Demo 2 Multiple await

Demo 3 Veritabanından asekron veri çekme

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

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.

Exception Handling Demo - sql sorgusunun yanlış olması

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 = "") var err = string.Format("{0}:{1} – {2}: {3}", file, line, member, message); // log error message to db }

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

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

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