MS .Net Framework

WCF ABC

WCF’in ABC sini öğrenmeden önce, bir WCF servisine istemciler (clients) tarafından nasıl erişildiğini anlamak gerekir. Herhangi bir WCF servisi herhangi bir istemci (client) ile Endpoint vasıtasıyla iletişim kurar ve her endpoint WCF servisinin mesaj alışverişi yapacağı farklı bir iletişim noktasıdır.

WCF

Başka bir deyişle WCF servisi aslında endpoint topluluğudur ve her endpoint dış dünya ile haberleşme noktasıdır. Herhangi bir client uygulaması bir yada birden fazla endpoint ile mesaj alışverişinde bulunabilir. Her endpoint ise Address, Binding, ve Contract bileşenlerine sahip olmalıdır.

WCF

Oluşturacağınız herhangi bir WCF servisi,  arkaplanda hangi yöntemi/teknolojiyi kullanırsa kullansın mutlaka bu üç temel bileşene sahip olmalıdır.
(daha&helliip;)

WCF Nedir?

WCF Temelleri

Windows Communication Foundation WCF, servis-yönelimli mimariyi temel alarak dağıtık-uygulamalar geliştirmek için kullanılan, dağıtık mimari modelleri ve teknolojileri tek çatı altında birleştiren ve içerisinde bir çok hazır bileşen barındıran bir Framework API‘sidir. (Bknz. Service Oriented Architecture)

Ayrıca WCF mimarisi, .NET Remoting, XML Web Servisleri, Web Service Enhancements (WSE), Enterprise Services/COM+ ve Microsoft Message Queue(MSMQ) gibi bir çok dağıtık uygulama geliştirme modelinin tek bir programlama modeli içerisinde geliştiriciye sunmaktadır.
(daha&helliip;)

Singleton Design Pattern

SingletonSingleton tasarım deseni yazılım mühendisliğinin en çok bilinen tasarım desenlerinden birisidir. Temel olarak basit bir singleton sınıf tasarlandığında kendisinden sadece bir instance oluşturmamıza izin verir ve her instance çağırımında aynı instance kullanılmış olur. Genel olarak singleton sınıflardan bir instance oluşturulurken herhangi bir parametre kullanılarak instance oluşturulmaz aksi halde oluşturulan singleton instance’ın ikinci bir çağırımında farklı bir parametre kullanımı farklı problemlere neden olur! (Eğer aynı instance aynı parametreler ile farklı çağırımlarda kullanılmak isteniyorsa factory pattern daha uygun bir kullanım olacaktır.) Ayrıca singleton sınıfları lazy olarak oluşturmak singleton desenin tipik bir gereksinimidir.

(daha&helliip;)

C# XML Serialization

Bu makaleyi okumaya başlamadan önce C# Serialization ve DeSerialization makalemi okumanızı tavsiye ederim.

XML Serilization, bir sınıfın public özelliklerini yada bir metodun parametrelerini ve geri dönüş değerlerini XML stream içerisine serileştirir. XML serileştirme metod, indexer, private özellikler, read-only özellikleri (read-only koleksiyonlar hariç) içermez. Çünkü XML genel bir standart olduğundan, XML stream herhangi bir platform üzerindeki herhangi bir uygulama tarafından işlenebilmelidir. Örneğin ASP.NET Web Servisleri, servis iletişiminde verileri Internet ve Intranet üzerinden göndermek için XML serileştirme kullanarak XML stream’ler oluşturarak iletmektedir. Buna karşın ters-serileştirme işlemindede bu XML stream’ler alınarak nesne tekrar oluşturulmaktadır.

Binary serileştirmenin aksine XML serileştirme tip sistem güvenilirliğini korumamaktadır (not preserves type system fidelity). Diğer bir deyişle tip bilgilerini içermemektedir. Örneğin Company namespace’i içerisinde yer alan Employee nesnemizin olduğunu düşünelim, bu nesne XML serileştirme ile serileştirilip sonrasında ters-serileştirildiğinde aynı tipte olacağının bir garantisi yoktur.

XML serileştirme ve ters-serileştirme işlemleri System.Xml.Serialization.XmlSerializer sınıfından faydalanılarak gerçekleştirilmektedir. Bu sınıfın en önemli metodları Serialize ve Deserialize‘dır.
(daha&helliip;)

C# Binary Serialization

Bu makaleyi okumaya başlamadan önce C# Serialization ve DeSerialization makalemi okumanızı tavsiye ederim.

Binary serileştirme tip sistem güvenilirliğini korumaktadır (preserves type system fidelity). Yani nesnelerin serileştirme sırasında tip bilgilerini sakladığından tip sistem güvenilirliğide korunmuş olur. Örneğin MyClass sınıfı tipinde bir nesne serileştirilirken, ters-serileştirme sırasında MyClass sınıfı tipindeki nesnenin tekrar oluşturulacağından emindir.

Tip sistem güvenirliği (type system fidelity) mekanizması serileştirme ve ters-serileştirmede işleminde aynı sistem tipinin kullanılması için katkıda bulunur. Tip sistem güvenirliğinden dolayı binary serileştirme nesneleri istemci (client) ve sunucu (server) arasında göndermek için kullanışlıdır. XML serileştirme tip sistem güvenirliğini desteklememektedir.

Binary serileştirme işlemi sırasında, nesnenin public ve private tüm özellikleri, tipin ait olduğu sınıfı ve hangi assembly içerisinde yer aldığı bilgileri byte stream’e dönüştürülerek bu verileri içerecek bir stream’e yazılır. Ters-serileştirme işlemi sırasında, nesnenin bire bir aynısı tip bilgilerine bakılarak tekrar oluşturulur.
(daha&helliip;)