Ready to Rock

Preview:

Citation preview

.Net 2.0 ile Gelen .Net 2.0 ile Gelen Yenilikler Yenilikler .Net 2.0 ile Gelen .Net 2.0 ile Gelen Yenilikler Yenilikler Burak Selim ŞenyurtBurak Selim ŞenyurtMVP (Visual Developer – Visual C#)MVP (Visual Developer – Visual C#)

Ajanda – Visual Studio Ajanda – Visual Studio 20052005 ClickOnce TekniğiClickOnce Tekniği

RefactoringRefactoring

Class DesignerClass Designer

Debugger VisualizerDebugger Visualizer

Ajanda – C# 2.0Ajanda – C# 2.0 GenericsGenerics

Kısmi Tipler (Partial Types)Kısmi Tipler (Partial Types)

Yeni İterasyon Tekniği (Yield Kullanımı)Yeni İterasyon Tekniği (Yield Kullanımı)

İsimsiz Metodlar (Anonymous Methods)İsimsiz Metodlar (Anonymous Methods)

Kısmi Tipler (Partial Types)Kısmi Tipler (Partial Types)

Static SınıflarStatic Sınıflar

Nullable Değer TürleriNullable Değer Türleri

Ajanda – Ado.Net 2.0Ajanda – Ado.Net 2.0 ConnectionStrings Kavramı ve StringBuildersConnectionStrings Kavramı ve StringBuilders Veri Sağlayıcıdan Bağımsız Mimari (Data Provider Veri Sağlayıcıdan Bağımsız Mimari (Data Provider

Independent Architect)Independent Architect) MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active

Result Sets)Result Sets) Toplu Güncelleştirme (Batch Update)Toplu Güncelleştirme (Batch Update) Asenkron Komut Yürütmek (Asynchronous Asenkron Komut Yürütmek (Asynchronous

Command Executing)Command Executing) Bulk Data Kopyalama MekanizmasıBulk Data Kopyalama Mekanizması Yeni Transaction MimarisiYeni Transaction Mimarisi Binary SerileştirmeBinary Serileştirme

Ajanda – Asp.Net 2.0Ajanda – Asp.Net 2.0

On-Demand Compiling Çalışma ModeliOn-Demand Compiling Çalışma Modeli Cross Page PostingCross Page Posting Master Pages Master Pages Veri Kaynağı Kontrolleri (Data Source Controls)Veri Kaynağı Kontrolleri (Data Source Controls) Temalar (Themes)Temalar (Themes) Site Navigasyonu (Site Navigation)Site Navigasyonu (Site Navigation) Profil Yönetimi (Profile Management)Profil Yönetimi (Profile Management) Konfigurasyon Yönetimi (Configuration Konfigurasyon Yönetimi (Configuration

Management)Management) Üyelik Yönetimi (Membership Management)Üyelik Yönetimi (Membership Management)

Visual Studio 2005 ile Visual Studio 2005 ile Gelen Yenilikler Gelen Yenilikler

Visual Studio 2005 ile Visual Studio 2005 ile Gelen Yenilikler Gelen Yenilikler

Visual Studio 2005 - ClickOnceVisual Studio 2005 - ClickOnce

Web uygulamalarının sağladığı Web uygulamalarının sağladığı dağıtım dağıtım (deployment) kolaylığının(deployment) kolaylığının, windows , windows tabanlı uygulamalar içinde tabanlı uygulamalar içinde sağlanabilmesini amaçlar.sağlanabilmesini amaçlar.

Visual Studio 2005 - RefactoringVisual Studio 2005 - Refactoring

Kodların yeniden gözden geçirilmesi Kodların yeniden gözden geçirilmesi dahada dahada kolaylaştırılmıştırkolaylaştırılmıştır.. Yeniden isimlendirme (Rename)Yeniden isimlendirme (Rename) Alanlardan (Field) özelliklere (Property) hızlı Alanlardan (Field) özelliklere (Property) hızlı

geçişgeçiş Metodlaştırma (Extract Method)Metodlaştırma (Extract Method) Arayüz (Interface) çıkartmaArayüz (Interface) çıkartma Parametre sıralarını değiştirmeParametre sıralarını değiştirme

Visual Studio 2005 – Class DesignerVisual Studio 2005 – Class Designer

Uygulamaların yazılımcı dostu UML Uygulamaların yazılımcı dostu UML diagramları ile diagramları ile tam entegrasyonunutam entegrasyonunu sağlar.sağlar.

Sınıf diagramlarında Sınıf diagramlarında yapılan yapılan değişikliklerin, uygulamalaradeğişikliklerin, uygulamalara, , uygulamalarda yapılan değişikliklerin uygulamalarda yapılan değişikliklerin şemalaraşemalara yansıtılmasını sağlar. yansıtılmasını sağlar.

Visual Studio 2005 – Debugger Visual Studio 2005 – Debugger VisualizerVisualizer

Çalışma zamanındaÇalışma zamanında tabular veya xml tabular veya xml bazlı nesnelerin içeriğinin bazlı nesnelerin içeriğinin

Xml, Xml, Html, Html, Text ve Table Text ve Table

formatında izlenebilmesini sağlar.formatında izlenebilmesini sağlar.

Class DesignerClass DesignerClickOnceClickOnce

RefactoringRefactoringDebugger VisualizerDebugger Visualizer

C# 2.0 ile Gelen C# 2.0 ile Gelen Yenilikler Yenilikler C# 2.0 ile Gelen C# 2.0 ile Gelen Yenilikler Yenilikler

C# 2.0 - GenericsC# 2.0 - Generics

Türden bağımsızTürden bağımsız olarak algoritma geliştirmek olarak algoritma geliştirmek için kullanılan dilin güçlü bir yapısıdır. için kullanılan dilin güçlü bir yapısıdır.

Değişik türler ile çalışacak Değişik türler ile çalışacak birden fazla tip birden fazla tip yazmak yerine tek bir tipyazmak yerine tek bir tip kullanılabilmesini kullanılabilmesini sağlar.sağlar.

Gereksiz boxing ve unboxing süreçlerini Gereksiz boxing ve unboxing süreçlerini ortadan ortadan kaldırırkaldırır..

C# 2.0 - GenericsC# 2.0 - Generics Uygulama AlanlarıUygulama Alanları

Koleksiyonlar(Collections)Koleksiyonlar(Collections)

Sınıflar(Classes)

Yapılar(Structs)

Arayüzler(Interfaces)

Metodlar(Methods)

Temsilciler(Delegates)

GenericsGenerics Koleksyion SınıflarıKoleksyion Sınıfları

KoleksiyonKoleksiyon ArayüzleriArayüzleri

Koleksiyon Temel SınıflarıKoleksiyon Temel Sınıfları

YararlıYararlı SınıflarSınıflar

List<T>List<T>Dictionary<K,V>Dictionary<K,V>SortedDictionary<SortedDictionary<K,V>K,V>Stack<T>Stack<T>Queue<T>Queue<T>

IList<T>IDictionary<K,V>ICollection<T>IEnumerable<T>IEnumerator<T>IComparable<T>IComparer<T>

Collection<T>KeyedCollection<T>ReadOnlyCollection<T>

Nullable<T>EventHandler<T>Comparer<T>

GenericsGenerics

GenericsGenerics Mimaride Mimaride KısıtlamalarKısıtlamalar Generic tipler için çeşitli Generic tipler için çeşitli zorunluluklar (Constraints)zorunluluklar (Constraints)

tanımlayabiliriz.tanımlayabiliriz.

Koşul Syntax

Değer tipi olma zorunluluğu where Tip : structwhere Tip : struct

Referans tipi olma zorunluluğu where Tip : classwhere Tip : class

Constructor zorunluluğu where Tip : new()where Tip : new()

Türeme zorunluluğu where Tip : <Temel where Tip : <Temel Sınıf>Sınıf>

Interface zorunluluğu where Tip : where Tip : <Interface><Interface>

Generic Koleksiyonlar (Collections)Generic Koleksiyonlar (Collections)Generic Struct (Yapı)Generic Struct (Yapı)

Generic Performance TestGeneric Performance Test

Kullanıcı tanımlı tiplere ait nesne dizileri Kullanıcı tanımlı tiplere ait nesne dizileri üzerinde üzerinde foreachforeach iterasyonunun iterasyonunun tip güvenlitip güvenli ve ve daha kolaydaha kolay uygulanabilmesini amaçlar. uygulanabilmesini amaçlar.

C# 2.0 – Yeni İterasyon Tekniği C# 2.0 – Yeni İterasyon Tekniği (Yield Kullanımı)(Yield Kullanımı)

C# 2.0 – Yeni İterasyon Tekniği C# 2.0 – Yeni İterasyon Tekniği (Yield Kullanımı)(Yield Kullanımı)

C# 1.0/1.1 için Iteratif Uygulama Deseni

Yeni İterasyon TekniğiYeni İterasyon Tekniği(Yield Kullanımı)(Yield Kullanımı)

Temsilcileri(delegates) işaret edecekleri Temsilcileri(delegates) işaret edecekleri metodların metodların sahip oldukları kod blokları ile sahip oldukları kod blokları ile bir seferde tanımlayabilmeyibir seferde tanımlayabilmeyi amaçlar. amaçlar.

Metod blokları, Metod blokları, çalışma zamanındaçalışma zamanında kendisini çağıracak olan temsilci nesnesine kendisini çağıracak olan temsilci nesnesine eklenir. eklenir.

Dışarıdan Dışarıdan parametreparametre alabilirler ve alabilirler ve geriye geriye değerdeğer döndürebilirler. döndürebilirler.

Metod ile birlikte Metod ile birlikte kullanılan temsilcinin kullanılan temsilcinin bilinmesine gerek yokturbilinmesine gerek yoktur. . delegatedelegate anahtar anahtar sözcüğü bu işi üstlenir. sözcüğü bu işi üstlenir.

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

KlasikKlasik temsilci (delegate) temsilci (delegate) yaklaşımı.yaklaşımı.

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

public delegate double dlgCircle(double a, double b);

static double TestMethod(double pi, double r){

return pi * r * r;}

dlgCircle tOld = new dlgCircle(TestMethod);double result=tOld(1, 4);

YeniYeni temsilci (delegate) temsilci (delegate) yaklaşımı.yaklaşımı.

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

dlgCircle tNew = delegate(double pi, double r){

return pi * r * r;};

double alan = tNew(3.14, 10);

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

static void UpCounter(){

for (int i = 0; i < 100; i++){

Console.Write("+");Thread.Sleep(100);

}}

Thread t1 = new Thread(new ThreadStart(UpCounter));t1.Start();

Çok kanallı programlama (Multi Threading)Çok kanallı programlama (Multi Threading) için için klasik yaklaşım.klasik yaklaşım.

Çok kanallı programlama (Multi Threading) Çok kanallı programlama (Multi Threading) için için yeni yaklaşım.yeni yaklaşım.

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

static void UpCounter(){for (int i = 0; i < 100; i++){

Console.Write("+");Thread.Sleep(100);

}}Thread trdUpCounter = new Thread(delegate(){ UpCounter(); });

Thread trdDownCounter = new Thread(delegate(){

for (int i = 1; i <100; i++){Console.Write("-");Thread.Sleep(150);

}});

trdUpCounter.Start();trdUpCounter.Start();trdDownCounter.StartrdDownCounter.Start();t();

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

this.btnAnonymous.Click += new System.EventHandler(this.btnAnonymous_Click);

private void btnAnonymous_Click(object sender, EventArgs e){}

Event – Driven (Olay güdümlü) programlama Event – Driven (Olay güdümlü) programlama için için klasik yaklaşım.klasik yaklaşım.

C# 2.0 – İsimsiz Metodlar C# 2.0 – İsimsiz Metodlar (Anonymous Methods)(Anonymous Methods)

this.btnAnonymous.Click += delegate(object sender, System.EventArgs arg){

MessageBox.Show("Onay 1")};

Event – Driven (Olay güdümlü) programlamaEvent – Driven (Olay güdümlü) programlama için için yeni yaklaşım.yeni yaklaşım.

Kısmi tipler, bir tipin bütününü oluşturan Kısmi tipler, bir tipin bütününü oluşturan soyutsal parçalardırsoyutsal parçalardır. .

SınıflarSınıflar (Class), (Class), ArayüzlerArayüzler (Interface), (Interface), YapılarYapılar (Struct) kısmi olarak tanımlanıp (Struct) kısmi olarak tanımlanıp kullanılabilir.kullanılabilir.

Çoğunlukla görsel taraf ile kod tarafının Çoğunlukla görsel taraf ile kod tarafının ayrıştırılmasında kullanılır.ayrıştırılmasında kullanılır.

C# 2.0 – Kısmi Tipler (Partial C# 2.0 – Kısmi Tipler (Partial Types)Types)

C# 2.0 – Kısmi Tipler (Partial C# 2.0 – Kısmi Tipler (Partial Types)Types)

C# 2.0 – Kısmi Tipler (Partial C# 2.0 – Kısmi Tipler (Partial Types)Types) partial class DbManager{partial class DbManager{

public DbManager(string conStr){}public DbManager(string conStr){} public void SetCommand(string public void SetCommand(string qryStr){}qryStr){} public void Metod() { }public void Metod() { }}}

partial class DbManager{partial class DbManager{private SqlConnection private SqlConnection

con;con;private SqlCommand private SqlCommand

cmd;cmd;public SqlConnection public SqlConnection

ConnConn{{

get { return get { return con; }con; }

set { con = set { con = value; }value; }

}}public SqlCommand public SqlCommand

CmndCmnd{{

get { return cmd; get { return cmd; }}

set { cmd = set { cmd = value; }value; }

}}}}

C# 2.0 – Static SınıflarC# 2.0 – Static Sınıflar SSadece adece static üyelerstatic üyeler içeren,içeren,

örneklendirilemörneklendirilemeeyenyen ve ve kalıtımkalıtım için için kullanılamayankullanılamayan sınıflardır. sınıflardır.public static class CommonMath

{public static double Total(double

valueA, double valueB){}public static double pi = 3.14;public static double PI{

get{return pi;}set{pi = value;}

}...

Static sınıflara ait Static sınıflara ait nesne örneklerinesne örnekleri üretilemez.üretilemez.

Static sınıflara ait Static sınıflara ait nesne tanımlamalarınesne tanımlamaları yapılamaz.yapılamaz.

Yapıcı metodlar (Yapıcı metodlar (constructorsconstructors) içermez.) içermez. Sadece static üyelerSadece static üyeler den oluşur. den oluşur. Türetme (Inheritance) için kullanılamaz.Türetme (Inheritance) için kullanılamaz.

C# 2.0 – Static SınıflarC# 2.0 – Static Sınıflar

C# 2.0 - C# 2.0 - Nullable TypesNullable Types

Değer türlerinin (Value Types), referans Değer türlerinin (Value Types), referans türleri (reference types) gibi türleri (reference types) gibi nullnull değer değer taşıyabilmesitaşıyabilmesi özelliği. özelliği.

int? degerTipi;degerTipi = null;

Veritabanı uygulamalarıVeritabanı uygulamaları için yararlı bir için yararlı bir özelliktir.özelliktir.

System.Nullable<T>System.Nullable<T> sınıfı yardımıyla kendi sınıfı yardımıyla kendi değer türlerimizi nullable olarak değer türlerimizi nullable olarak kullanabiliriz.kullanabiliriz.

Ado.Net 2.0 ile Gelen Ado.Net 2.0 ile Gelen Yenilikler Yenilikler

Ado.Net 2.0 ile Gelen Ado.Net 2.0 ile Gelen Yenilikler Yenilikler

Bağlantı bilgisinin herhangibir .Net Bağlantı bilgisinin herhangibir .Net uygulamasında uygulamasında aynı şekilde saklanmasınıaynı şekilde saklanmasını sağlar.sağlar.

Yeni Yeni Configuration APIConfiguration API sayesinde kod sayesinde kod tarafından tarafından kolayca yönetilebilirkolayca yönetilebilir..

Ado.Net 2.0 – ConnectionStrings Ado.Net 2.0 – ConnectionStrings KullanımıKullanımı

<configuration> <connectionStrings> <add name="AdvConStr" connectionString="data source=Manchester;database=AdventureWorks;integrated Security=true" providerName="System.Data.SqlClient"/> </connectionStrings></configuration>

ConfigurationManager.ConnectionStrings["AdvConStr"].ConnectionString;

Web (Web.config)Web (Web.config) Desktop (App.config)Desktop (App.config)

Data Provider (Veri Sağlayıcı) seçimine göre Data Provider (Veri Sağlayıcı) seçimine göre daha daha kolay ConnectionStringkolay ConnectionString oluşturulmasını sağlayan yeni oluşturulmasını sağlayan yeni tipler.tipler.

Ado.Net 2.0 – ConnectionStringBuilder Ado.Net 2.0 – ConnectionStringBuilder NesneleriNesneleri

SqlConnectionStringBuilder sqlConStrBdr = new SqlConnectionStringBuilder();sqlConStrBdr.DataSource = "Manchester";sqlConStrBdr.InitialCatalog = "AdventureWorks";sqlConStrBdr.IntegratedSecurity = true;sqlConStrBdr.AsynchronousProcessing = true;sqlConStrBdr.MultipleActiveResultSets=true;Console.WriteLine(sqlConStrBdr.ConnectionString);

SqlConnectionStringBuilderSqlConnectionStringBuilder

OleDbConnectionStringBuilderOleDbConnectionStringBuilder

OracleConnectionStringBuilderOracleConnectionStringBuilder

OdbcConnectionStringBuilderOdbcConnectionStringBuilder

DbConnectionStringBuilderDbConnectionStringBuilder

Tüm veri sağlayıcı bağımlı nesneleri Tüm veri sağlayıcı bağımlı nesneleri tek bir tek bir çatıçatı altında toplar. altında toplar.

Çok biçimliliği kullanarak çalışma Çok biçimliliği kullanarak çalışma zamanında zamanında veri sağlayıcılar arasındaki veri sağlayıcılar arasındaki geçişigeçişi kolaylaştırır. kolaylaştırır.

Tüm istekler Tüm istekler managed (yönetimli) nesneler managed (yönetimli) nesneler vasıtasıylavasıtasıyla kolayca gerçekleştirilir. kolayca gerçekleştirilir.

Gerçek bir kullanım alan Enterprise Library Gerçek bir kullanım alan Enterprise Library içerisindeki içerisindeki Data Access Application BlockData Access Application Block’ ’ tur.tur.

Ado.Net 2.0 – Veri Sağlayıcı Bağımsız Ado.Net 2.0 – Veri Sağlayıcı Bağımsız Mimari (Data Provider Independent Mimari (Data Provider Independent Architect)Architect)

Ado.Net 2.0 – Veri Sağlayıcı Bağımsız Ado.Net 2.0 – Veri Sağlayıcı Bağımsız Mimari (Data Provider Independent Mimari (Data Provider Independent Architect)Architect)

•Provider ToplayıcıProvider Toplayıcı•Factory ÜreticiFactory Üretici

•Gerekli Ürün Gerekli Ürün ÜreticiÜretici

Ado.Net 2.0 – Veri Sağlayıcı Bağımsız Ado.Net 2.0 – Veri Sağlayıcı Bağımsız Mimari (Data Provider Independent Mimari (Data Provider Independent Architect)Architect)

Sistemde yüklü olan tüm Sistemde yüklü olan tüm veri veri sağlayıcılarının elde edilmesinisağlayıcılarının elde edilmesini sağlar. sağlar.

Seçilen veri sağlayıcıyı kullanarak uygun Seçilen veri sağlayıcıyı kullanarak uygun Connection, Command, DataAdapter, Connection, Command, DataAdapter, Parameter, DataReader, CommandBuilder Parameter, DataReader, CommandBuilder vb. nesnelerinin vb. nesnelerinin üretilmesindenüretilmesinden sorumludur. sorumludur.

DbProviderFactories

DbProviderFactoryDbProviderFactory

Veri Sağlayıcı Bağımsız MimariVeri Sağlayıcı Bağımsız Mimari(Data Provider Independent (Data Provider Independent

Architecture)Architecture)

Ado.Net 2.0 – MARSAdo.Net 2.0 – MARS

Ado.Net 2.0 – MARS Çoklu Aktif Ado.Net 2.0 – MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active Sonuç Kümeleri (Multiple Active Result Sets)Result Sets) AAynı açık bağlantı üzerinden birden fazla ynı açık bağlantı üzerinden birden fazla

sonuçsonuç kümesini elde edebileceğimiz sql kümesini elde edebileceğimiz sql sorgularınınsorgularının tek bir bağlantı üzerindentek bir bağlantı üzerinden çalıştırılçalıştırılabilmesi.abilmesi.

Çalışma Şartları;Çalışma Şartları;

Veri tabanı sunucusunun Veri tabanı sunucusunun MARS desteğininMARS desteğinin olması gerekir.olması gerekir.

Bağlantı katarı bilgisinde varsayılan değeri Bağlantı katarı bilgisinde varsayılan değeri false olan false olan MultipleActiveResultSetsMultipleActiveResultSets özelliği özelliği truetrue olmalıdır. olmalıdır.

try{  SqlConnection con=new SqlConnection(bağlantı);  SqlDataReader dr1;  SqlDataReader dr2;  SqlDataReader dr3;  SqlCommand cmd1=new SqlCommand("SELECT * FROM Customers",con);  SqlCommand cmd2=new SqlCommand("SELECT * FROM Orders",con);  SqlCommand cmd3=new SqlCommand("SELECT * FROM [Order Details]",con);  con.Open();             dr1=cmd1.ExecuteReader();  dr2=cmd2.ExecuteReader();  dr3=cmd3.ExecuteReader(); con.Close();

}

catch(Exception hata)

{ Console.WriteLine(hata.Message);}

Ado.Net 2.0 – MARS Çoklu Aktif Ado.Net 2.0 – MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active Sonuç Kümeleri (Multiple Active Result Sets)Result Sets)

Ado.Net 2.0 – MARS Çoklu Aktif Ado.Net 2.0 – MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active Sonuç Kümeleri (Multiple Active Result Sets)Result Sets)

Ado.Net 1.0 / 1.1

Ado.Net 2.0 – MARS Çoklu Aktif Ado.Net 2.0 – MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active Sonuç Kümeleri (Multiple Active Result Sets)Result Sets)

Ado.Net 1.0 / 1.1

SqlCommand cmd1=new SqlCommand("SELECT * FROM Customers",con1);SqlCommand cmd2=new SqlCommand("SELECT * FROM Orders",con2);SqlCommand cmd3=new SqlCommand("SELECT * FROM [Order Details]",con3);

Ado.Net 2.0 – MARS Çoklu Aktif Ado.Net 2.0 – MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active Sonuç Kümeleri (Multiple Active Result Sets)Result Sets)

MARS (Mutliple Active Result Sets)MARS (Mutliple Active Result Sets)

Ado.Net 2.0 – Toplu Güncelleştirme Ado.Net 2.0 – Toplu Güncelleştirme (Batch Update)(Batch Update)Birden fazla sql ifadesinin Birden fazla sql ifadesinin tek bir seferdetek bir seferde

çalıştırılması.çalıştırılması.

DataAdapter için gDataAdapter için güncelleme işlemlerinin üncelleme işlemlerinin toplu toplu olarak hangi periyottaolarak hangi periyotta gerçekleştirileceğini gerçekleştirileceğini belirtir. belirtir.

public override int UpdateBatchSize {get;set;}

UpdateBatchSizUpdateBatchSize e

DeğeriDeğeriKomut Çalışma ŞekliKomut Çalışma Şekli

00 Sunucunun desteklediği en büyük Sunucunun desteklediği en büyük boyutta 1 keredeboyutta 1 kerede

11 Hepsi ayrı ayrı (UpdateBatchSize Hepsi ayrı ayrı (UpdateBatchSize devre dışı)devre dışı)

nn n seferde 1’ er keren seferde 1’ er kere

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)Birden fazla sql komutunun Command nesneleri Birden fazla sql komutunun Command nesneleri

yardımıyla, yardımıyla, eş zamanlıeş zamanlı ve ve uygulamanın çalışmasına uygulamanın çalışmasına paralelparalel olarak yürütülebilmesi imkanı. olarak yürütülebilmesi imkanı.

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)

BeginExecuteNonQuery

BeginExecuteReaderBeginExecuteXmlRead

erEndExecuteNonQueryEndExecuteReaderEndExecuteXmlReader

IAsyncResult

Anahtar İlişkiAnahtar İlişki

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)

Polling Modeli

IAsyncResult tipinden nesne örneği ile sahip IAsyncResult tipinden nesne örneği ile sahip olunan olunan process’ inprocess’ in tamamlanıp tamamlanmadığı tamamlanıp tamamlanmadığı sürekli sürekli olarakolarak kontrol edilir. kontrol edilir.

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing) Polling Modeli

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)

Callback Modeli

AAsenkron olarak çalışan sql komutlarının senkron olarak çalışan sql komutlarının işleyişlerinin sona erdiği noktalardaişleyişlerinin sona erdiği noktalarda yürürlüğe yürürlüğe giren giren metodlarımetodları bünyesinde barındıran bir bünyesinde barındıran bir tekniktir.tekniktir.

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing) Callback Modeli

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)

Callback Modeli

public IAsyncResult BeginExecuteNonQuery public IAsyncResult BeginExecuteNonQuery ((AsyncCallback callback, object stateObje callback, object stateObjecct);t);

public IAsyncResult BeginExecuteReader public IAsyncResult BeginExecuteReader ((AsyncCallback callback, object stateObje callback, object stateObjecct);t);

public IAsyncResult BeginExecuteXmlReader public IAsyncResult BeginExecuteXmlReader ((AsyncCallback callback, object stateObje callback, object stateObjecct); t);

Ado.Net 2.0 – Asenkron Komut Ado.Net 2.0 – Asenkron Komut Yürütmek (Asynchronous Command Yürütmek (Asynchronous Command Executing)Executing)

Wait Modeli

Eş zamanlı yürütülen komutlar tamamlanıncaya kadar Eş zamanlı yürütülen komutlar tamamlanıncaya kadar uygulamanın ve diğer komutların uygulamanın ve diğer komutların beklemesinibeklemesini istediğimizde.istediğimizde.

Farklı sunucularda çalışacak ve dönüş değerleri ilerleyen Farklı sunucularda çalışacak ve dönüş değerleri ilerleyen kod satırlarında kod satırlarında kullanılacakkullanılacak olan eş zamanlı sorgularda olan eş zamanlı sorgularda tercih edilebilir.tercih edilebilir.

WaitOne WaitAll WaitAny

PollingPollingCallbackCallback

WaitHandleWaitHandle

Ado.Net 2.0 – Bulk Data Kopyalama Ado.Net 2.0 – Bulk Data Kopyalama MekanizmasıMekanizması

BBir veritabanı tablosundan, başka bir hedef ir veritabanı tablosundan, başka bir hedef tabloya tabloya veri taşımaveri taşıma işleminin,Yönetimsel işleminin,Yönetimsel Kod Kod (Managed Code)(Managed Code) ile ile gerçekleştirilebilmesi.gerçekleştirilebilmesi.

TransferTransfer işlemi bir işlemi bir transactiontransaction içerisinde içerisinde yürütülüryürütülür..

Kaynak ve hedef tablolar Kaynak ve hedef tablolar farklıfarklı sunuculardaki sunuculardaki farklı veritabanlarındafarklı veritabanlarında bulunabilir.bulunabilir.

Ado.Net 2.0 – Bulk Data Kopyalama Ado.Net 2.0 – Bulk Data Kopyalama MekanizmasıMekanizması

Bulk Data Bulk Data Kopyalama MekanizmasıKopyalama Mekanizması

Ado.Net 2.0 – Transactions MimarisiAdo.Net 2.0 – Transactions Mimarisi

Veri Sağlayıcı (Data Provider)’ dan Veri Sağlayıcı (Data Provider)’ dan bağımsızbağımsız bir yapı sunar.bir yapı sunar.

OtomatikOtomatik olarak transactionların olarak transactionların açılmasıaçılması ve ve kapatılmasıkapatılması sağlanmıştır. sağlanmıştır.

Dağıtık (Distributed) TransactionDağıtık (Distributed) Transaction modelinde modelinde COM+ nesnelerin yazılmasına (dolayısıyla COM+ nesnelerin yazılmasına (dolayısıyla ContextUtil kullanılmasına) ContextUtil kullanılmasına) gerek yokturgerek yoktur..

DTC Dağıtık Transaction Yöneticisi DTC Dağıtık Transaction Yöneticisi (Distributed Transaction Coordinator) (Distributed Transaction Coordinator) otomatik olarakotomatik olarak devreye girer. devreye girer.

Ado.Net 2.0 – Transactions MimarisiAdo.Net 2.0 – Transactions Mimarisi

LightWeight LightWeight TransactionsTransactionsLightWeight LightWeight TransactionsTransactions

OleTxTransactions

OleTxTransactions

Mimari temel olarak iki tip transaction Mimari temel olarak iki tip transaction modeli içerir.modeli içerir.

Tek veri kaynağı Tek veri kaynağı üzerinde çalışır.üzerinde çalışır.Tek veri kaynağı Tek veri kaynağı üzerinde çalışır.üzerinde çalışır.

Farklı veri Farklı veri kaynakları kaynakları

üzerinde ortak üzerinde ortak çalışır.çalışır.

Farklı veri Farklı veri kaynakları kaynakları

üzerinde ortak üzerinde ortak çalışır.çalışır.

Ado.Net 2.0 – Transactions MimarisiAdo.Net 2.0 – Transactions Mimarisi

LightWeight TransactionsLightWeight TransactionsLightWeight TransactionsLightWeight Transactions

using (TransactionScope tsScope = new TransactionScope()) { using (SqlConnection con = new SqlConnection("data source=localhost;database=AdventureWorks;integrated security=SSPI")) { SqlCommand cmd = new SqlCommand("INSERT INTO Books (BookPrice,Name,Category,PubDate) VALUES (1000,'C#','Computer','1.1.2006')", con); con.Open(); cmd.ExecuteNonQuery(); tsScope.Complete(); }}

Transaction MimarisiTransaction Mimarisi

Ado.Net 2.0 – Binary SerileştirmeAdo.Net 2.0 – Binary Serileştirme

DataTable ve DataSet nesneleri için gerçek DataTable ve DataSet nesneleri için gerçek anlamda binary serileştirme imkanı anlamda binary serileştirme imkanı sağlanmıştır.sağlanmıştır.

RemotingFormat = SerializationFormat.Binary;RemotingFormat = SerializationFormat.Binary;

Asp.Net 2.0 ile Gelen Asp.Net 2.0 ile Gelen Yenilikler Yenilikler

Asp.Net 2.0 ile Gelen Asp.Net 2.0 ile Gelen Yenilikler Yenilikler

Ado.Net 2.0 – OnDemand CompilingAdo.Net 2.0 – OnDemand Compiling

Web uygulamasına ait kodların, Web uygulamasına ait kodların, yeniden yeniden derlemeye gerek duyulmadanderlemeye gerek duyulmadan güncellenmesidir.güncellenmesidir.

Kaynak kod dosyası veya sunu katındaki Kaynak kod dosyası veya sunu katındaki üyelerdeki değişikliklerin, kullanımdaki üyelerdeki değişikliklerin, kullanımdaki sürüme gelecek ilk talep ile birlikte sürüme gelecek ilk talep ile birlikte yanısıtılmasını sağlar.yanısıtılmasını sağlar.

OnDemand CompilingOnDemand Compiling

Asp.Net 2.0 - CrossPage PostingAsp.Net 2.0 - CrossPage Posting

BBir ir form’ dan, başka bir form’ a verilerin form’ dan, başka bir form’ a verilerin Post BackPost Back tekniğine göre tekniğine göre taşınabilmesini taşınabilmesini sağlar.sağlar.

Hedef form üzerinden, Hedef form üzerinden, kaynak forma ait kaynak forma ait referanslarreferanslar ele alınabilir. ele alınabilir.

CrossPage CrossPage PostbackPostback

Hedef.aspxHedef.aspxForm.aspxForm.aspx

Asp.Net 2.0 - CrossPage PostingAsp.Net 2.0 - CrossPage Posting

Bir sayfaya Bir sayfaya birden fazla sayfadanbirden fazla sayfadan Cross Cross Page Post Back işlemi yapılabilir.Page Post Back işlemi yapılabilir.

CrossPage CrossPage PostbackPostback

Hedef.aspxHedef.aspx

Form1.aspxForm1.aspx

Form2.aspxForm2.aspx

Cross Page PostingCross Page Posting

Asp.Net 2.0 – Master PagesAsp.Net 2.0 – Master Pages

Master Page, uygulandığı diğer aspx Master Page, uygulandığı diğer aspx sayfalarının sayfalarının nasıl görünmesinasıl görünmesi gerektiğine karar veren bir gerektiğine karar veren bir şablondurşablondur..

ContentPlaceHolderContentPlaceHolder bileşeni bileşeni sayesinde, Master Page' leri sayesinde, Master Page' leri uygulayan diğer aspx sayfalarının, uygulayan diğer aspx sayfalarının, istenilen içeriğeistenilen içeriğe sahip olması sahip olması sağlanır. sağlanır.

Master Page’ ler normal bir aspx Master Page’ ler normal bir aspx sayfası gibi sayfası gibi tasarlanabilirtasarlanabilir,, html, html, image, server control gibi üyeleri image, server control gibi üyeleri içerebilir. içerebilir.

Asp.Net 2.0 - MasterPagesAsp.Net 2.0 - MasterPages

Statik ÖğelerStatik Öğeler

Dinamikİçerik

Default.aspx

Asp.Net 2.0 - MasterPagesAsp.Net 2.0 - MasterPages

Master Page' i uygulayan bir aspx sayfası Master Page' i uygulayan bir aspx sayfası tarayıcıda açıldığında tarayıcıya gelen sayfa, tarayıcıda açıldığında tarayıcıya gelen sayfa, Master Page ile aspx sayfasının birleştirilmesiMaster Page ile aspx sayfasının birleştirilmesi sonucu ortaya çıkan başka bir aspx sayfasıdır.sonucu ortaya çıkan başka bir aspx sayfasıdır.

Master PagesMaster Pages

SqlDataSourceSqlDataSource AccessDataSourceAccessDataSource ObjectDataSourceObjectDataSource XmlDataSourceXmlDataSource SiteMapDataSourceSiteMapDataSource

Sunu Katmanı

Veri Kaynağı

Veri Kaynağı Kontrolleri

Asp.Net 2.0 - Veri Kaynağı Asp.Net 2.0 - Veri Kaynağı KontrolleriKontrolleri

VeritabanıVeritabanıObjectDataObjectDataSourceSource

KontrolüKontrolü

ObjectDataObjectDataSourceSource

KontrolüKontrolü

SelectMetodu()SelectMetodu()InsertMetodu()InsertMetodu()

UpdateMetodu()UpdateMetodu()DeleteMethodu()DeleteMethodu()

CRUDCRUD

SelectMetodu()SelectMetodu()InsertMetodu()InsertMetodu()

UpdateMetodu()UpdateMetodu()DeleteMethodu()DeleteMethodu()

CRUDCRUD

İş nesnesiİş nesnesi

Sunu KatmanıSunu Katmanı

Asp.Net 2.0 - Veri Kaynağı Asp.Net 2.0 - Veri Kaynağı KontrolleriKontrolleri ObjectDataSourceObjectDataSourceObjectDataSourceObjectDataSource

Veri Kaynağı KontrolleriVeri Kaynağı Kontrolleri

Asp.Net 2.0 - TemalarAsp.Net 2.0 - Temalar

Bir web projesinin çeşitli bölümlerinin, Bir web projesinin çeşitli bölümlerinin, tamamının ya da web projesini barındıran tamamının ya da web projesini barındıran sunucunun tümüne ait web uygulamalarının, sunucunun tümüne ait web uygulamalarının, belirli font, renkbelirli font, renk gibi özelliklere göre gibi özelliklere göre ortak bir ortak bir noktadan şekillendirilmesinenoktadan şekillendirilmesine imkan sağlar. imkan sağlar.

Temalar değişik seviyelerde Temalar değişik seviyelerde (sayfa, uygulama, (sayfa, uygulama, makinemakine) uygulanabilir. ) uygulanabilir.

Temaların içerdiği Temaların içerdiği skinskin’ ler yardımıyla ’ ler yardımıyla sunucu sunucu kontrolleri içinkontrolleri için ortak görsel şablonlar ortak görsel şablonlar oluşturulabilir.oluşturulabilir.

Asp.Net 2.0 - TemalarAsp.Net 2.0 - Temalar

TemalarTemalar(Themes)(Themes)

Asp.Net 2.0 - Site NavigationAsp.Net 2.0 - Site Navigation

Web sitelerinde kullanıcıların Web sitelerinde kullanıcıların neredenerede olduklarını bilmelerine ve diğer sayfalar olduklarını bilmelerine ve diğer sayfalar arasında arasında kolayca gezinmelerinekolayca gezinmelerine yardımcı yardımcı olan yeni bir yaklaşım modelidir. olan yeni bir yaklaşım modelidir.

Site içeriği Site içeriği XML tabanlıXML tabanlı tutulur. Bu site tutulur. Bu site yönetimi için yönetimi için büyük esneklikbüyük esneklik sağlar. sağlar.

Asp.Net 2.0 - Site NavigationAsp.Net 2.0 - Site Navigation

SiteMap(Xml)

SiteMap(Xml)

SiteMapPathSiteMapPath(Web Control)(Web Control)SiteMapPathSiteMapPath

(Web Control)(Web Control)

MenuMenu(Web Control)(Web Control)

MenuMenu(Web Control)(Web Control)

TreeViewTreeView(Web Control)(Web Control)

TreeViewTreeView(Web Control)(Web Control)

SiteMapDataSourceSiteMapDataSource(Xml)(Xml)

SiteMapDataSourceSiteMapDataSource(Xml)(Xml)

Asp.Net 2.0 - Site NavigationAsp.Net 2.0 - Site Navigation

Site NavigationSite Navigation

Asp.Net 2.0 - Üyelik ve Rol Asp.Net 2.0 - Üyelik ve Rol YönetimiYönetimi Kolay ve genişletilmiş Kolay ve genişletilmiş güvenlik, kullanıcı, güvenlik, kullanıcı,

erişim ve rolerişim ve rol yönetimleriniyönetimlerini içerir. içerir. Hem görsel araçlar’ lar Hem görsel araçlar’ lar (Asp.Net Web (Asp.Net Web

Application Administration)Application Administration) hemde hemde yönetimli sınıflar yönetimli sınıflar (managed class-(managed class-MemberShip)MemberShip) yardımıyla uygulanabilir. yardımıyla uygulanabilir.

Sql Server 2005Sql Server 2005 ve daha pek çok ve daha pek çok veritabanını üyelik sistemi için destekler.veritabanını üyelik sistemi için destekler.

Asp.Net 2.0 - Üyelik ve Rol Asp.Net 2.0 - Üyelik ve Rol YönetimiYönetimi

Sunucu KontrolleriSunucu Kontrolleri<asp:Login><asp:Login>

Sunucu KontrolleriSunucu Kontrolleri<asp:Login><asp:Login> MemberShip APIMemberShip APIMemberShip APIMemberShip API

MemberShip ProvidersMemberShip Providers

AspNetSqlProviderAspNetSqlProvider X ProviderX Provider

AccessAccess SqlSql XX

Asp.Net 2.0 – Profile YönetimiAsp.Net 2.0 – Profile Yönetimi

Web uygulamalarının Web uygulamalarının kişiselleştirilmesinikişiselleştirilmesini kolaylaştırmakkolaylaştırmak amacıyla geliştirilmiş yeni amacıyla geliştirilmiş yeni bir yönetim modelidir.bir yönetim modelidir.

MembershipMembership sisteminin alt parçalarından sisteminin alt parçalarından birisidir.birisidir.

Asp.Net 2.0 – Profile YönetimiAsp.Net 2.0 – Profile Yönetimi

<profile>    <properties>        <add name="Kategorim" type="System.String" defaultValue="Dvd"/>        <add name="KarsilamaMesajim" type="System.String" defaultValue="Kişisel Mesajınız"/>        <add name="SonGirisZamanim" type="System.DateTime"/>        <add name="ButonFontBuyuklugu" type="System.Int32" defaultValue="12"/>    </properties></profile>

Profile.SonGirisZamanim = DateTime.Now;Profile.KarsilamaMesajim = txtMesaj.Text;Profile.Kategorim = ddlKategoriler.SelectedItem.Text;Profile.Save();

Konfigurasyon tarafı. Konfigurasyon tarafı. (web.config)(web.config)

Managed Code Tarafı.Managed Code Tarafı.

Asp.Net 2.0 – Konfigurasyon Asp.Net 2.0 – Konfigurasyon YönetimiYönetimi Web uygulamalarında Web uygulamalarında konfigurasyonkonfigurasyon

bilgisinin bilgisinin yönetimli kod (managed code) yönetimli kod (managed code) tarafındantarafından ele alınabilmesi sağlanmıştır. ele alınabilmesi sağlanmıştır.

Web.configWeb.config gibi konfigurasyon gibi konfigurasyon dosyalarında dosyalarında bilgi düzenleme, parametre bilgi düzenleme, parametre ekleme, şifrelemeekleme, şifreleme işlemlerinde işlemlerinde kullanılabilir.kullanılabilir.

Web uygulamalarının Web uygulamalarının daha kolay ve daha daha kolay ve daha güçlü yönetimgüçlü yönetim sağlar. sağlar.

TeşekkürlerTeşekkürler

Burak Selim ŞENYURTBurak Selim ŞENYURT

MVP (Visual Developer – Visual C#)MVP (Visual Developer – Visual C#)selim@bsenyurt.comselim@bsenyurt.com

www.bsenyurt.comwww.bsenyurt.com

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Recommended