This presentation provides an introduction to Ansible OpenSource IT automation and Cloud orchestration engine. It comes with an overview of what Ansible is and how it can compete (and outcome) legacy automation systems such as Chef or Puppet. Based on real-life experience, Ansible tips & tricks will be provided as how to automate your servers' deployment ever more easily. Additional software will be presented, allowing people to describe their full Cloud application topology, getting the best out of OpenStack APIs and Ansible Playbooks to fully automatize one's application's deployment and continuous integration.
Yaklaşık olarak 15 yıldır aktif olarak yazılım geliştirme işinde yer alıyorum. Son 4 yıldır ise bir bankanın kurumsal çözümlerinde çalışıyorum. Tüm yazılım hayatım boyunca ağırlıklı olarak .Net platformu üzerinde çalıştım. Zaman ilerledikçe sürekli olarak aynı şeylerle uğraşmanın beni paslandırdığını gördüm. İçimdeki araştırmacı kişiliği uyandıracak beni tekrardan keyiflendirecek bir şeyler gerekiyordu. Sonuç olarak çok sıkıldığım bir günün devamında yeni ne öğrenebilirim diye araştırmaya karar verdim. Daha önceden Java ile ilgili bir maceram olmuş ve 24 bölümlük bir makale serisi hazırlayabilmiştim. O zamanlar epeyce keyif alıyordum. Bu kez düşünce yapım biraz daha farklıkaştı. Çocuklara nasıl programlama öğretilebilir fikrinden yola çıktım. İlk iş bir Lego yapmaktı.ve devamı geldi...
Finans sektöründe nasıl daha verimli yazılımcılar olabiliriz. Yıllara dayanan tecrübe, gözlem ve biraz araştırmanın sonucu olarak hazırlanan maddeler ile cevap bulmaya çalışıyoruz.
Often called as the Swiss Army Knife of Embedded Linux, BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. It is written with size-optimization
and limited resources in mind. Here is a presentation that details about BusyBox.
File system is an approach on how the data can be
organized in order to have a meaningful read or write in a
system. File systems provides a very easy way of identifying data like where it begins and ends. The group of such data can be called as “Files”. The method used to manage these groups of data can be called as “File systems”
In Embedded system a set of applications used to perform a complex task or to create a product, which is typically another computer program or a system of programs. Tools are linked (or chained) together by specific stages. Output or resulting environment state of the tool becomes input or starting environment for the next one. By default the host contains some development tools which are called native tool-chain. Here is the presentation that shares mode details on components of tool-chain and how to build them for your own embedded distribution.
Getting started with setting up embedded platform requires audience to understand some of the key aspects of Linux. Starting with basics of Linux this presentation talks about basic commands, vi editor, shell scripting and advanced commands
For new age touch-based embedded devices, Android is becoming a popular OS going beyond mobile phones. With its roots from Embedded Linux, Android framework offers benefits in terms of rich libraries, open-source and multi-device support. Emertxe’s hands-on Embedded Android Training Course is designed to customize, build and deploy custom Embedded OS on ARM target. Rich set of projects will make your learning complete.
Embedded Android system development workshop is focused on integrating new device with Android framework. Our hands-on approach makes Emertxe as the best institute to learn android system development training. This workshop deep dives into Android porting, Android Hardware Abstraction Layer (HAL), Android Services and Linux device driver ecosystem. This workshop based training program will enable you to efficiently integrate new hardware with Android HAL / Framework.
Data Structures, which is also called as Abstract Data Types (ADT) provide powerful options for programmer. Here is a tutorial which talks about various ADTs - Linked Lists, Stacks, Queues and Sorting Algorithms
There is a surge in number of sensors / devices that are getting connected under the umbrella of Internet-Of-Things (IoT). These devices need to be integrated into the Android system and accessed via applications, which is covered in the course. Our Android system development course curriculum over weekends with practicals ensures you learn all critical components to get started.
This presentation provides an introduction to Ansible OpenSource IT automation and Cloud orchestration engine. It comes with an overview of what Ansible is and how it can compete (and outcome) legacy automation systems such as Chef or Puppet. Based on real-life experience, Ansible tips & tricks will be provided as how to automate your servers' deployment ever more easily. Additional software will be presented, allowing people to describe their full Cloud application topology, getting the best out of OpenStack APIs and Ansible Playbooks to fully automatize one's application's deployment and continuous integration.
Yaklaşık olarak 15 yıldır aktif olarak yazılım geliştirme işinde yer alıyorum. Son 4 yıldır ise bir bankanın kurumsal çözümlerinde çalışıyorum. Tüm yazılım hayatım boyunca ağırlıklı olarak .Net platformu üzerinde çalıştım. Zaman ilerledikçe sürekli olarak aynı şeylerle uğraşmanın beni paslandırdığını gördüm. İçimdeki araştırmacı kişiliği uyandıracak beni tekrardan keyiflendirecek bir şeyler gerekiyordu. Sonuç olarak çok sıkıldığım bir günün devamında yeni ne öğrenebilirim diye araştırmaya karar verdim. Daha önceden Java ile ilgili bir maceram olmuş ve 24 bölümlük bir makale serisi hazırlayabilmiştim. O zamanlar epeyce keyif alıyordum. Bu kez düşünce yapım biraz daha farklıkaştı. Çocuklara nasıl programlama öğretilebilir fikrinden yola çıktım. İlk iş bir Lego yapmaktı.ve devamı geldi...
Finans sektöründe nasıl daha verimli yazılımcılar olabiliriz. Yıllara dayanan tecrübe, gözlem ve biraz araştırmanın sonucu olarak hazırlanan maddeler ile cevap bulmaya çalışıyoruz.
Often called as the Swiss Army Knife of Embedded Linux, BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. It is written with size-optimization
and limited resources in mind. Here is a presentation that details about BusyBox.
File system is an approach on how the data can be
organized in order to have a meaningful read or write in a
system. File systems provides a very easy way of identifying data like where it begins and ends. The group of such data can be called as “Files”. The method used to manage these groups of data can be called as “File systems”
In Embedded system a set of applications used to perform a complex task or to create a product, which is typically another computer program or a system of programs. Tools are linked (or chained) together by specific stages. Output or resulting environment state of the tool becomes input or starting environment for the next one. By default the host contains some development tools which are called native tool-chain. Here is the presentation that shares mode details on components of tool-chain and how to build them for your own embedded distribution.
Getting started with setting up embedded platform requires audience to understand some of the key aspects of Linux. Starting with basics of Linux this presentation talks about basic commands, vi editor, shell scripting and advanced commands
For new age touch-based embedded devices, Android is becoming a popular OS going beyond mobile phones. With its roots from Embedded Linux, Android framework offers benefits in terms of rich libraries, open-source and multi-device support. Emertxe’s hands-on Embedded Android Training Course is designed to customize, build and deploy custom Embedded OS on ARM target. Rich set of projects will make your learning complete.
Embedded Android system development workshop is focused on integrating new device with Android framework. Our hands-on approach makes Emertxe as the best institute to learn android system development training. This workshop deep dives into Android porting, Android Hardware Abstraction Layer (HAL), Android Services and Linux device driver ecosystem. This workshop based training program will enable you to efficiently integrate new hardware with Android HAL / Framework.
Data Structures, which is also called as Abstract Data Types (ADT) provide powerful options for programmer. Here is a tutorial which talks about various ADTs - Linked Lists, Stacks, Queues and Sorting Algorithms
There is a surge in number of sensors / devices that are getting connected under the umbrella of Internet-Of-Things (IoT). These devices need to be integrated into the Android system and accessed via applications, which is covered in the course. Our Android system development course curriculum over weekends with practicals ensures you learn all critical components to get started.
Monolitik Uygulamalarda Teknik Borçlanma ile Mücadele (Teori)Burak Selim Şenyurt
Developer Summit 2021'de gerçekleştirdiğim ve monolitik sistemlerde (özellikle legacy kabul edilen katmanlı modellerde) teknik borçla nasıl mücadele edileceğine dair anlatımın yer aldığı sunumdur. Sunumda teknik borçla ilgili istatistikler, tanım, mücadele şekilleri, yazılım mimariler arasındaki farklılıklara da yer verilmektedir.
Beş Dakikalik Yolu Bir Saatte Gitmek - Bir AntiPattern MacerasıBurak Selim Şenyurt
Teknik borçlanmanın ve ürünleri sevimsiz hale getiren etkenlerin başında da AntiPattern'ler geliyor. Doğuş Techdili Mekan sohbetleri kapsamında gerçekleştirdiğimiz etkinlikteki sunumum.
Kod tabanınız çok mu geniş? Takım çok mu kalabalık? Ufak bir değişikliği üretim ortamına almak için geçişi beklemeniz mi gerekiyor? Dönüşmeye karar verdiniz, eğitimler aldınız peki ya geçmişten kalan teknik borçların farkında mısınız?
Corona Virüs salgını sebebiyle ötelenen bir Üniversite ektiğinliğinde, çoğunluğu bilgisayar ve yazılım olmak üzere farklı mühendislik branşlarından oluşan genç ve hevesli zihinlere "Bugün Yarınların için Ne Yapacaksın?" isimli mesleki gelişim ve kariyer temalı bir sunum gerçekleştirecektim...
Sunumu destekleyen yazıya buradan ulaşabilirsiniz: https://bit.ly/2y8GAUI
Zonguldak Bülent Ecevit Üniversitesi tarafından düzenlenene etkinliği de buradan izleyebilirsiniz: https://youtu.be/6n4wj5zGSjQ
Teknolojinin birkaç yıl önce başlayan teknolojik dönüşümünün yarattığı kaosu çeşitli açılardan anlamladırmaya çalışırken, biz yazılımcıların bazen de over-engineering gitmesinin bunu körüklediğini anlatmaya çalıştığım sunumum.
Klaus Martin Schwab ın endişesinden, Ford'un Tesla karşısında panikleyip yaptığı hatalara, Agile-Waterfall ikileminden projelerinin başarı oranlarına ve nihayetinden basit bir problemi çözmek için ne kadar karmaşık düşünebileceğimize uzanan 25 dakikalık bir içeriktir.
Celal Bayar Üniversitesi Bilişimde Kariyer Zirvesi(http://www.bilisimdekariyerzirvesi.com/ ) etkinliği için hazırladığım sunumdur. Sunumda teknolojinin geçmişten günümüze hızla değişiminden dikey ve yatay uzmanlıklara, Endüstri 4.0 yeniliklerinden Gartner araştırma raporlarına, çalışma tekniklerinden takip edilmesi gereken kaynaklara farklı bir çok konuda bilgiler verilmeye çalışılmıştır.
Bu oturumumuzda kurumsal uygulamaları tanımaya çalışacağız. Temel karaktresitik özelliklerini, çeşitlerini, zorlu yanlarını açıklığa kavuşturacağız. Enterprise Mimari ile olan ilişkisine de bakacağız.
4. Ajanda – Ado.Net 2.0
ConnectionStrings Kavramı ve StringBuilders
Veri Sağlayıcıdan Bağımsız Mimari (Data Provider
Independent Architect)
MARS Çoklu Aktif Sonuç Kümeleri (Multiple Active Result
Sets)
Toplu Güncelleştirme (Batch Update)
Asenkron Komut Yürütmek (Asynchronous Command
Executing)
Bulk Data Kopyalama Mekanizması
Yeni Transaction Mimarisi
Binary Serileştirme
5. Ajanda – Asp.Net 2.0
On-Demand Compiling Çalışma Modeli
Cross Page Posting
Master Pages
Veri Kaynağı Kontrolleri (Data Source Controls)
Temalar (Themes)
Site Navigasyonu (Site Navigation)
Profil Yönetimi (Profile Management)
Konfigurasyon Yönetimi (Configuration Management)
Üyelik Yönetimi (Membership Management)
7. Visual Studio 2005 - ClickOnce
Web uygulamalarının sağladığı dağıtım
(deployment) kolaylığının, windows tabanlı
uygulamalar içinde sağlanabilmesini amaçlar.
8. Visual Studio 2005 - Refactoring
Kodların yeniden gözden geçirilmesi dahada
kolaylaştırılmıştır.
Yeniden isimlendirme (Rename)
Alanlardan (Field) özelliklere (Property) hızlı geçiş
Metodlaştırma (Extract Method)
Arayüz (Interface) çıkartma
Parametre sıralarını değiştirme
9. Visual Studio 2005 – Class Designer
Uygulamaların yazılımcı dostu UML diagramları
ile tam entegrasyonunu sağlar.
Sınıf diagramlarında yapılan değişikliklerin,
uygulamalara, uygulamalarda yapılan
değişikliklerin şemalara yansıtılmasını sağlar.
10. Visual Studio 2005 – Debugger
Visualizer
Çalışma zamanında tabular veya xml bazlı
nesnelerin içeriğinin
Xml,
Html,
Text ve Table
formatında izlenebilmesini sağlar.
11. Class Designer
ClickOnce
Refactoring
Debugger Visualizer
13. C# 2.0 - Generics
Türden bağımsız olarak algoritma geliştirmek için
kullanılan dilin güçlü bir yapısıdır.
Değişik türler ile çalışacak birden fazla tip yazmak
yerine tek bir tip kullanılabilmesini sağlar.
Gereksiz boxing ve unboxing süreçlerini ortadan
kaldırır.
14. C# 2.0 - Generics
Uygulama Alanları
Koleksiyonlar
(Collections)
Sınıflar Yapılar
(Classes) (Structs)
Metodlar
(Methods)
Arayüzler
(Interfaces)
Temsilciler
(Delegates)
17. Generics Mimaride Kısıtlamalar
Generic tipler için çeşitli zorunluluklar (Constraints)
tanımlayabiliriz.
Koşul Syntax
Değer tipi olma zorunluluğu where Tip : struct
Referans tipi olma zorunluluğu where Tip : class
Constructor zorunluluğu where Tip : new()
Türeme zorunluluğu where Tip : <Temel Sınıf>
Interface zorunluluğu where Tip : <Interface>
19. C# 2.0 – Yeni İterasyon Tekniği (Yield
Kullanımı)
Kullanıcı tanımlı tiplere ait nesne dizileri üzerinde
foreach iterasyonunun tip güvenli ve daha kolay
uygulanabilmesini amaçlar.
20. C# 2.0 – Yeni İterasyon Tekniği (Yield
Kullanımı)
C# 1.0/1.1 için Iteratif Uygulama Deseni
22. C# 2.0 – İsimsiz Metodlar (Anonymous
Methods)
Temsilcileri(delegates) işaret edecekleri
metodların sahip oldukları kod blokları ile bir
seferde tanımlayabilmeyi amaçlar.
Metod blokları, çalışma zamanında kendisini
çağıracak olan temsilci nesnesine eklenir.
Dışarıdan parametre alabilirler ve geriye değer
döndürebilirler.
Metod ile birlikte kullanılan temsilcinin
bilinmesine gerek yoktur. delegate anahtar
sözcüğü bu işi üstlenir.
23. C# 2.0 – İsimsiz Metodlar (Anonymous
Methods)
Klasik temsilci (delegate) yaklaşımı.
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);
24. C# 2.0 – İsimsiz Metodlar (Anonymous
Methods)
Yeni temsilci (delegate) yaklaşımı.
dlgCircle tNew = delegate(double pi, double r)
{
return pi * r * r;
};
double alan = tNew(3.14, 10);
25. C# 2.0 – İsimsiz Metodlar (Anonymous
Methods)
Çok kanallı programlama (Multi Threading) için klasik
yaklaşım.
static void UpCounter()
{
for (int i = 0; i < 100; i++)
{
Console.Write("+");
Thread.Sleep(100);
}
}
Thread t1 = new Thread(new ThreadStart(UpCounter));
t1.Start();
26. C# 2.0 – İsimsiz Metodlar (Anonymous
Methods)
Çok kanallı programlama (Multi Threading) için yeni
yaklaşım.
static void UpCounter(){
for (int i = 0; i < 100; i++){
Console.Write("+"); trdUpCounter.Start();
Thread.Sleep(100); trdDownCounter.Start();
}
}
Thread trdUpCounter = new Thread(delegate(){ UpCounter(); });
Thread trdDownCounter = new Thread(delegate(){
for (int i = 1; i <100; i++){
Console.Write("-");
Thread.Sleep(150);
}
});
27. C# 2.0 – İsimsiz Metodlar (Anonymous
Methods)
Event – Driven (Olay güdümlü) programlama için klasik
yaklaşım.
this.btnAnonymous.Click += new
System.EventHandler(this.btnAnonymous_Click);
private void btnAnonymous_Click(object sender, EventArgs e)
{
}
29. C# 2.0 – Kısmi Tipler (Partial Types)
Kısmi tipler, bir tipin bütününü oluşturan
soyutsal parçalardır.
Sınıflar (Class), Arayüzler (Interface), Yapılar
(Struct) kısmi olarak tanımlanıp kullanılabilir.
Çoğunlukla görsel taraf ile kod tarafının
ayrıştırılmasında kullanılır.
31. C# 2.0 – Kısmi Tipler (Partial Types)
partial class DbManager{
public DbManager(string conStr){}
public void SetCommand(string qryStr){}
public void Metod() { }
}
partial class DbManager{
private SqlConnection con;
private SqlCommand cmd;
public SqlConnection Conn
{
get { return con; }
set { con = value; }
}
public SqlCommand Cmnd
{
get { return cmd; }
set { cmd = value; }
}
}
32. C# 2.0 – Static Sınıflar
Sadece static üyeler içeren, örneklendirilemeyen ve
kalıtım için kullanılamayan 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;}
}
...
33. C# 2.0 – Static Sınıflar
Static sınıflara ait nesne örnekleri üretilemez.
Static sınıflara ait nesne tanımlamaları
yapılamaz.
Yapıcı metodlar (constructors) içermez.
Sadece static üyeler den oluşur.
Türetme (Inheritance) için kullanılamaz.
34. C# 2.0 - Nullable Types
Değer türlerinin (Value Types), referans türleri
(reference types) gibi null değer taşıyabilmesi
özelliği.
int? degerTipi;
degerTipi = null;
Veritabanı uygulamaları için yararlı bir özelliktir.
System.Nullable<T> sınıfı yardımıyla kendi
değer türlerimizi nullable olarak kullanabiliriz.
36. Ado.Net 2.0 – ConnectionStrings Kullanımı
Bağlantı bilgisinin herhangibir .Net uygulamasında
aynı şekilde saklanmasını sağlar.
Yeni Configuration API sayesinde kod tarafından
kolayca yönetilebilir.
<configuration>
<connectionStrings>
<add name="AdvConStr" connectionString="data
source=Manchester;database=AdventureWorks;integrated Security=true"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Web (Web.config) Desktop (App.config)
ConfigurationManager.ConnectionStrings["AdvConStr"].ConnectionString;
37. Ado.Net 2.0 – ConnectionStringBuilder
Nesneleri
Data Provider (Veri Sağlayıcı) seçimine göre daha kolay
ConnectionString oluşturulmasını sağlayan yeni tipler.
SqlConnectionStringBuilder sqlConStrBdr = new
SqlConnectionStringBuilder();
sqlConStrBdr.DataSource = "Manchester";
sqlConStrBdr.InitialCatalog = "AdventureWorks";
sqlConStrBdr.IntegratedSecurity = true;
sqlConStrBdr.AsynchronousProcessing = true;
sqlConStrBdr.MultipleActiveResultSets=true;
Console.WriteLine(sqlConStrBdr.ConnectionString);
SqlConnectionStringBuilder
OleDbConnectionStringBuilder
OracleConnectionStringBuilder
OdbcConnectionStringBuilder
DbConnectionStringBuilder
38. Ado.Net 2.0 – Veri Sağlayıcı Bağımsız
Mimari (Data Provider Independent Architect)
Tüm veri sağlayıcı bağımlı nesneleri tek bir çatı
altında toplar.
Çok biçimliliği kullanarak çalışma zamanında veri
sağlayıcılar arasındaki geçişi kolaylaştırır.
Tüm istekler managed (yönetimli) nesneler
vasıtasıyla kolayca gerçekleştirilir.
Gerçek bir kullanım alan Enterprise Library
içerisindeki Data Access Application Block’ tur.
39. Ado.Net 2.0 – Veri Sağlayıcı Bağımsız
Mimari (Data Provider Independent Architect)
•Provider Toplayıcı
•Factory Üretici
•Gerekli Ürün
Üretici
40. Ado.Net 2.0 – Veri Sağlayıcı Bağımsız
Mimari (Data Provider Independent Architect)
DbProviderFactories
Sistemde yüklü olan tüm veri sağlayıcılarının
elde edilmesini sağlar.
DbProviderFactory
Seçilen veri sağlayıcıyı kullanarak uygun
Connection, Command, DataAdapter, Parameter,
DataReader, CommandBuilder vb. nesnelerinin
üretilmesinden sorumludur.
43. Ado.Net 2.0 – MARS Çoklu Aktif Sonuç
Kümeleri (Multiple Active Result Sets)
Aynı açık bağlantı üzerinden birden fazla sonuç
kümesini elde edebileceğimiz sql sorgularının tek
bir bağlantı üzerinden çalıştırılabilmesi.
Çalışma Şartları;
Veri tabanı sunucusunun MARS desteğinin
olması gerekir.
Bağlantı katarı bilgisinde varsayılan değeri false
olan MultipleActiveResultSets özelliği true
olmalıdır.
44. Ado.Net 2.0 – MARS Çoklu Aktif Sonuç
Kümeleri (Multiple Active Result Sets)
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);}
45. Ado.Net 2.0 – MARS Çoklu Aktif Sonuç
Kümeleri (Multiple Active Result Sets)
Ado.Net 1.0 / 1.1
46. Ado.Net 2.0 – MARS Çoklu Aktif Sonuç
Kümeleri (Multiple Active 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);
47. Ado.Net 2.0 – MARS Çoklu Aktif Sonuç
Kümeleri (Multiple Active Result Sets)
49. Ado.Net 2.0 – Toplu Güncelleştirme
(Batch Update)
Birden fazla sql ifadesinin tek bir seferde çalıştırılması.
public override int UpdateBatchSize {get;set;}
DataAdapter için güncelleme işlemlerinin toplu olarak
hangi periyotta gerçekleştirileceğini belirtir.
UpdateBatchSize
Komut Çalışma Şekli
Değeri
Sunucunun desteklediği en büyük
0 boyutta 1 kerede
Hepsi ayrı ayrı (UpdateBatchSize devre
1 dışı)
n n seferde 1’ er kere
50. Ado.Net 2.0 – Asenkron Komut Yürütmek
(Asynchronous Command Executing)
Birden fazla sql komutunun Command nesneleri yardımıyla,
eş zamanlı ve uygulamanın çalışmasına paralel olarak
yürütülebilmesi imkanı.
53. Ado.Net 2.0 – Asenkron Komut Yürütmek
(Asynchronous Command Executing)
Polling Modeli
IAsyncResult tipinden nesne örneği ile sahip olunan
process’ in tamamlanıp tamamlanmadığı sürekli olarak
kontrol edilir.
55. Ado.Net 2.0 – Asenkron Komut Yürütmek
(Asynchronous Command Executing)
Callback Modeli
Asenkron olarak çalışan sql komutlarının işleyişlerinin
sona erdiği noktalarda yürürlüğe giren metodları
bünyesinde barındıran bir tekniktir.
57. Ado.Net 2.0 – Asenkron Komut Yürütmek
(Asynchronous Command Executing)
Callback Modeli
public IAsyncResult BeginExecuteNonQuery (AsyncCallback
(
callback, object stateObject);
public IAsyncResult BeginExecuteReader (AsyncCallback
(
callback, object stateObject);
public IAsyncResult BeginExecuteXmlReader (AsyncCallback
(
callback, object stateObject);
58. Ado.Net 2.0 – Asenkron Komut Yürütmek
(Asynchronous Command Executing)
Eş zamanlı yürütülen komutlar tamamlanıncaya kadar
uygulamanın ve diğer komutların beklemesini istediğimizde.
Farklı sunucularda çalışacak ve dönüş değerleri ilerleyen kod
satırlarında kullanılacak olan eş zamanlı sorgularda tercih
edilebilir.
Wait Modeli
WaitOne WaitAll WaitAny
60. Ado.Net 2.0 – Bulk Data Kopyalama
Mekanizması
Bir veritabanı tablosundan, başka bir hedef
tabloya veri taşıma işleminin,Yönetimsel Kod
(Managed Code) ile gerçekleştirilebilmesi.
Transfer işlemi bir transaction içerisinde yürütülür.
Kaynak ve hedef tablolar farklı sunuculardaki
farklı veritabanlarında bulunabilir.
63. Ado.Net 2.0 – Transactions Mimarisi
Veri Sağlayıcı (Data Provider)’ dan bağımsız bir
yapı sunar.
Otomatik olarak transactionların açılması ve
kapatılması sağlanmıştır.
Dağıtık (Distributed) Transaction modelinde
COM+ nesnelerin yazılmasına (dolayısıyla
ContextUtil kullanılmasına) gerek yoktur.
DTC Dağıtık Transaction Yöneticisi (Distributed
Transaction Coordinator) otomatik olarak devreye
girer.
64. Ado.Net 2.0 – Transactions Mimarisi
Mimari temel olarak iki tip transaction modeli
içerir.
LightWeight OleTx
Transactions Transactions
Tek veri kaynağı Farklı veri kaynakları
üzerinde çalışır. üzerinde ortak çalışır.
65. Ado.Net 2.0 – Transactions Mimarisi
LightWeight 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();
}
}
67. Ado.Net 2.0 – Binary Serileştirme
DataTable ve DataSet nesneleri için gerçek
anlamda binary serileştirme imkanı sağlanmıştır.
RemotingFormat = SerializationFormat.Binary;
69. Ado.Net 2.0 – OnDemand Compiling
Web uygulamasına ait kodların, yeniden
derlemeye gerek duyulmadan güncellenmesidir.
Kaynak kod dosyası veya sunu katındaki
üyelerdeki değişikliklerin, kullanımdaki sürüme
gelecek ilk talep ile birlikte yanısıtılmasını sağlar.
71. Asp.Net 2.0 - CrossPage Posting
Bir form’ dan, başka bir form’ a verilerin Post Back
tekniğine göre taşınabilmesini sağlar.
Hedef form üzerinden, kaynak forma ait
referanslar ele alınabilir.
Form.aspx Hedef.aspx
CrossPage
Postback
72. Asp.Net 2.0 - CrossPage Posting
Bir sayfaya birden fazla sayfadan Cross Page
Post Back işlemi yapılabilir.
Form1.aspx
Hedef.aspx
CrossPage
Postback
Form2.aspx
74. Asp.Net 2.0 – Master Pages
Master Page, uygulandığı diğer aspx
sayfalarının nasıl görünmesi gerektiğine
karar veren bir şablondur.
ContentPlaceHolder bileşeni sayesinde,
Master Page' leri uygulayan diğer aspx
sayfalarının, istenilen içeriğe sahip
olması sağlanır.
Master Page’ ler normal bir aspx sayfası
gibi tasarlanabilir, html, image, server
control gibi üyeleri içerebilir.
75. Asp.Net 2.0 - MasterPages
Default.aspx
Statik Öğeler
Dinamik
İçerik
76. Asp.Net 2.0 - MasterPages
Master Page' i uygulayan bir aspx sayfası tarayıcıda
açıldığında tarayıcıya gelen sayfa, Master Page ile
aspx sayfasının birleştirilmesi sonucu ortaya çıkan
başka bir aspx sayfasıdır.
78. Asp.Net 2.0 - Veri Kaynağı Kontrolleri
SqlDataSource
Sunu Katmanı
AccessDataSource
ObjectDataSource
Veri Kaynağı Kontrolleri XmlDataSource
SiteMapDataSource
Veri Kaynağı
79. Asp.Net 2.0 - Veri Kaynağı Kontrolleri
ObjectDataSource
ObjectDataSource
Sunu Katmanı
İş nesnesi
SelectMetodu()
SelectMetodu()
ObjectData
ObjectData InsertMetodu()
InsertMetodu() Veritabanı
Veritabanı
Source
Source UpdateMetodu()
UpdateMetodu()
Kontrolü
Kontrolü DeleteMethodu()
DeleteMethodu()
CRUD
CRUD
81. Asp.Net 2.0 - Temalar
Bir web projesinin çeşitli bölümlerinin, tamamının ya da
web projesini barındıran sunucunun tümüne ait web
uygulamalarının, belirli font, renk gibi özelliklere göre
ortak bir noktadan şekillendirilmesine imkan sağlar.
Temalar değişik seviyelerde (sayfa, uygulama,
makine) uygulanabilir.
Temaların içerdiği skin’ ler yardımıyla sunucu
kontrolleri için ortak görsel şablonlar oluşturulabilir.
84. Asp.Net 2.0 - Site Navigation
Web sitelerinde kullanıcıların nerede olduklarını
bilmelerine ve diğer sayfalar arasında kolayca
gezinmelerine yardımcı olan yeni bir yaklaşım
modelidir.
Site içeriği XML tabanlı tutulur. Bu site yönetimi
için büyük esneklik sağlar.
85. Asp.Net 2.0 - Site Navigation
SiteMapPath
SiteMapPath
(Web Control)
(Web Control)
SiteMap
SiteMap SiteMapDataSource
SiteMapDataSource
(Xml)
(Xml) (Xml)
(Xml)
TreeView
TreeView Menu
Menu
(Web Control)
(Web Control) (Web Control)
(Web Control)
88. Asp.Net 2.0 - Üyelik ve Rol Yönetimi
Kolay ve genişletilmiş güvenlik, kullanıcı, erişim
ve rol yönetimlerini içerir.
Hem görsel araçlar’ lar (Asp.Net Web
Application Administration) hemde yönetimli
sınıflar (managed class-MemberShip)
yardımıyla uygulanabilir.
Sql Server 2005 ve daha pek çok veritabanını
üyelik sistemi için destekler.
89. Asp.Net 2.0 - Üyelik ve Rol Yönetimi
Sunucu Kontrolleri
Sunucu Kontrolleri MemberShip API
MemberShip API
<asp:Login>
<asp:Login>
MemberShip Providers
MemberShip Providers
AspNetSqlProvider X Provider
Access Sql X
90. Asp.Net 2.0 – Profile Yönetimi
Web uygulamalarının kişiselleştirilmesini
kolaylaştırmak amacıyla geliştirilmiş yeni bir
yönetim modelidir.
Membership sisteminin alt parçalarından
birisidir.
92. Asp.Net 2.0 – Konfigurasyon Yönetimi
Web uygulamalarında konfigurasyon bilgisinin
yönetimli kod (managed code) tarafından ele
alınabilmesi sağlanmıştır.
Web.config gibi konfigurasyon dosyalarında
bilgi düzenleme, parametre ekleme, şifreleme
işlemlerinde kullanılabilir.
Web uygulamalarının daha kolay ve daha güçlü
yönetim sağlar.