1- Application Domain ve Assembly Kavramı
Bu bölümde .NET proseslerinin ne şekilde birbirinden izole edildiği, application domain ve assembly konuları ele alınmaktadır. Assembly yapısı, metadata yapısı, GAC(Global Assembly Cache) ele alınmaktadır.
2- Reflection.Emit ve Code Generation Mantığı
Bu bölümde .NET altyapısının çalışma zamanında kod üretme, derleme ve çalıştırma prosesleri incelenmektedir. Özellikle dinamik altyapıların hazırlanması ve dinamik iş kurallarının uygulamaları adaptasyonu ele alınmaktadır.
3- Serialization & Deserialization Kütüphanesi
.NET içerisinde bulunan en önemli kütüphanelerden biri olan Serialization, uygulamaların daha esnek olmasını sağlamaktadır. WCF, Remoting, Web Servisleri gibi bir çok önemli yapıda kullanılan yapının, kullanım ve genişleyebilirlik özellikleri detaylı olarak ele alınmaktadır.
4- .NET ile Multithread Uygulamalar Geliştirme
Enterprise uygulamaların vageçilmez mimarilerinde kullanılan Thread mekanizması detaylı olarak ele alınmaktadır. Thread’lerin senkronizasyonunda kullanılan Monitor, Lock, Semaphore gibi alt konular incelenmektedir. Ayrıca ortak kullanılan kaynakların Thread’ler tarafından güvenli kullanımını (thread-safety,ThreadPool, MTA, STA) sağlayacak teknikler(interlocked, double-check) incelenmektedir.
5- Paralel Programlama Eklentileri ve PLINQ
.NET 4.0 ile birlikte gelen paralel programlama eklentileri (koleksiyonlar, paralel sınıfları,task sınıfı) detaylı olarak ele alınmaktadır. Özellikle yoğun veriler üzerinde paralel işlemler yapıldığında Thread mantığı eksik kalmaktadır. Paralel eklentiler bu boşluğu doldurmaktadır.
6- .NET Stream Nesneleri ile Çalışma, Stream Mantığı
MemoryStream, FileStream, CryptoStream ve NetworkStream gibi temel sınıfların taban sınıfı olan Stream yapısı detaylı olarak incelenmektedir. Stream sınıflarını kullanırken yardımcı bir takım sınıflara da(StreamReader, StreamWriter,BinaryReader,BinaryWriter,Encoding vs.) değinilmektedir.
7- Crytography Kütüphanesi
Verilerin güvenli bir şekilde taşımayı sağlayan simetrik şifreleme algoritmaları , veri doğrulaması sağlayan Hash algoritmaları ve SSL, Dijital imza gibi platformlarda kullanılan asimetrik şifreleme algoritmaları incelenmektedir.
8- .NET 4.0 DLR (Dynamic Language Runtime)
.NET CLR üzerine .NET 4.0 ile birlikte gelen DLR katmanının detayları ele alınmaktadır. Projeler için özel dinamik nesne geliştirme, diğer dinamik dillerle entegrasyon gibi alt konular da bölüm içerisinde işlenmektedir.
9- Platform Interoperability ve Unsafe Code
.NET platformu dışında geliştirilen bileşenlerin(COM veya ActiveX) .NET içerisinden kullanımı ele alınmaktadır. Native DLL’lerin kullanımı ve yüksek performans gerektiren uygulamalarda Unsafe Code yazma tekniğine değinilmektedir.
10- İleri Veri Erişim Konuları
.NET’in en önemli kütüphanesi olan ADO.NET’in ileri konuları ele alınmaktadır. Concurrency Modelling, Transaction, Distributed Transaction ve Isolation Level konuları detaylı olarak işlenmektedir.
11- Reflection Mimarisi
Günümüzde bir çok modern mimarinin temelini oluşturan plugin tabanlı programlama yapılmasını sağlayan Reflection mimarisi detaylı olarak ele alınmaktadır. Assembly’lerin dinamik olarak yüklenmesi, çalışma zamanında nesne yaratılması, dinamik metot çağrımı ve Type yapısı işlenmektedir.
12- Attribute Kullanımı ve Tanımı
Kodların bildirimsel bir şekilde ek bilgilerle donatılmasını ve bu bilgilerin Reflection sınıfları tarafından yorumlanarak anlamlandırılması ele alınmaktadır. Örnek olarak Attribute kullanarak bir ORM’nin tasarımı temel düzeyde incelenecektir.
13- Plugin Tabanlı Uygulama Geliştirme
Reflection, Attribute’ler, Assembly ve Type yapıları kullanılarak bir uygulamayı Plugin tabanlı olarak nasıl geliştirilebileceği anlatılmaktadır. Plugin Tabanlı uygulamalar sayesinde, ana uygulamanın kaynak kodlarına müdahale etmeden zaman içerisinde yazılıma yeni modüllerin yada özelliklerin eklenmesi sağlanmaktadır. Bu tarz bir uygulamanın geliştirilmesi derinlemesine incelenecektir.
14- Socket Programlama (Client/Server Uygulama Geliştirme)
Günümüzün modern kurumsal masaüstü uygulamalarında kullanılan Server-Client mimarinin oluşturulmasını sağlayan Socket sınıfı ve yardımcı diğer sınıflar ile en alt seviyede ağ programlama anlatılmaktadır. Güncel Server-Client mimariler incelenerek bunlardan komut tabanlı iletişim protokolü implementasyonu yapılacaktır.
15- Microsoft Enterprise Library
Microsoft’un açık kaynak kodlu olarak sunduğu Enterprise Library içerisinde veri erişimi, loglama, exception yönetimi, şifreleme, validasyon, cache yönetimi gibi sorunlara hazır çözümler sunulmaktadır. Daha hızlı uygulama geliştirmek için kullanılabilen konfigürasyon temelli Enterprise Library, yazılım geliştiren gruplara zaman ve maliyet açısından avantaj sağlamaktadır.