7 Kasım 2012 Çarşamba

ASMX VE WCF (SVC) SERVİSLERİNİN KARŞILAŞTIRMASI



1.       VERİ TAŞIMA PROTOKOLLERİ (Transport Protocols)
Asmx servisleri sunucu olarak Internet Information Services (IIS) ile iletişim için HTTP Protokolünü kullanır. Bir ASMX servisine .asmx uzantılı bir dosyanın URL’si ile erişilir. Örneğin:http://www.geziniyorum.net/TarihiYerler.asmx
WCF Servisleri de HTTP Protokolünü kullanır. Fakat ASMX Servislerinden farklı olarak diğer veri taşıma protokollerini kullanılma seçeneği sunar. WCF tarafından şu protokoller desteklenmektedir:
·         Hypertext Transfer Protocol (HTTP)
·         Transmission Control Protocol (TCP)
·         Message Queuing (MSMQ)
·         Named pipes
WCF servisleri ile birlikte birçok farklı sunucu da kullanılabilir. Örneğin HTTP Protokolü ile IIS kullanılabilir. Windows servisleri ve bağımsız uygulamalar diğer protokoller için sunucu olarak kullanılabilir.
IIS’ten sunulan bir WCF servise ulaşmak ASMX servisine ulaşmaya benzer.  Sadece dosya uzantısı (svc) farklıdır. Bununa birlikte bir WCF Servisi “asmx” uzantılı olacak şekilde yapılandırılabilir. Diğer veri taşıma protokollerini kullanan servislere ilgili protokolün metotları kullanılarak erişilir.
Bir ASMX servisi WCF Servisine dönüştürülürken seçilecek protokol servisi kullanacak istemci uygulamalarına göre belirlenir. Eğer ASMX istemci uygulamalarını desteklemeniz gerekiyorsa HTTP Protokolünü ve “BasicHttpBinding” kullanmanız gerekir.
2.       GÜVENLİK (Security)
Genellikle ASMX Servislerinde kimliklendirme ve yetkilendirme IIS ve ASP.NET güvenlik ayarları ve taşıma katmanı güvenliği ile yapılır. Ayrıca mesaj katmanı güveliği gibi ek güvenlik yeteneklerini sağlamak için Web Service Extensions (WSE) kullanılabilir.
WCF ASMX güvenlik bileşenlerini kullanabilir. Bunlara ek olarak WCF istikrarlı güvenlik programlama modeline imkân sağlayan kendi iç güvenlik sistemine sahiptir. Güvenlik bir ASMX servisi WCF’e dönüştürmenin önemli sebeplerinden biridir.

3.       SOAP EKLENTİLERİ (SOAP Extensions)
Geliştiriciler SOAP mesajlarını direkt olarak etkilemek için ASP.NET’in SOAP Eklentileri özelliğini kullanabilirler. SOAP Eklentileri ile SOAP mesajlarının arasına girerek kendi kodumuzu mesajların arasına ekleyebiliriz. Böylece SOAP kabiliyetlerini daha da geliştirmiş oluruz. Örneğin güvenlik, yönlendirme gibi özellikler SOAP Eklentileri ile gerçekleştirilebilir. Bu özelliğin olumsuz tarafı ise SOAP mesajının diğer İşletim Sistemleri ile birlikte çalışmasında sıkıntılar çıkarmasıdır.
WCF SOAP Eklentilerini desteklemez fakat SOAP mesajları üzerinde işlem yapmak için başka ek bileşenleri vardır. Mesela Behaviour özelliği kullanılabilir.

4.       HATA YÖNETİMİ (Exception Handling)
ASMX Servislerinde beklenmedik hatalar her zaman SOAP hatası olarak istemci uygulamalara döndürülür. Bir ASMX Servisi ayrıca, istemciye döndürülen SOAP hatası üzerinde daha fazla kontrol imkânı sağlayan “SoapException” sınıfı da döndürebilir.
Yinwe de beklenmedik bir hata oluştuğunda WCF’in varsayılan yapılandırması SOAP hata mesajları içinde önemli bilgi döndürmeyerek hassas verileri korur.
ASMX Servislerindeki “SoapException” sınıfına benzer olarak “FaultException<T>” tipini kullanarak özel hatalar da fırlatılabilir. “<T>” Hata bilgilerini içeren döndürülecek verinin tipidir.
5.       DURUM YÜNETİMİ (State Management)
6.       MESAJ YAPISI (Message Structure and Serialization)
ASMX VE WCF (SVC) SERVİSLERİNİN FARKLARI

Hiç yorum yok:

Yorum Gönder