Onların arasındaki fark ne?
Ne zaman birini diğerine tercih ederim?
Onların arasındaki fark ne?
Ne zaman birini diğerine tercih ederim?
Yanıtlar:
Bu cevap, artık mevcut olmayan bir makaleye dayanmaktadır:
Makalenin özeti:
"Temel olarak, WCF, çeşitli iletişim mekanizmaları kullanarak iletişim kurabilen uygulamalar oluşturmanıza olanak tanıyan bir hizmet katmanıdır. Bununla, Eşler Arası, Adlandırılmış Kanallar, Web Hizmetleri vb. Kullanarak iletişim kurabilirsiniz.
Bunları karşılaştıramazsınız çünkü WCF, birlikte çalışabilir uygulamalar oluşturmak için bir çerçevedir. İsterseniz, bunu bir SOA etkinleştirici olarak düşünebilirsiniz. Ne anlama geliyor?
WCF, ABC olarak bilinen bir şeye uygundur; burada A iletişim kurmak istediğiniz hizmetin adresidir, B bağlayıcıyı ve C sözleşmeyi temsil eder. Bu önemlidir çünkü kodu mutlaka değiştirmeden bağlamayı değiştirmek mümkündür. Sözleşme çok daha güçlüdür çünkü sözleşmenin uygulamadan ayrılmasını zorlar. Bu, sözleşmenin bir arayüzde tanımlandığı ve tüketicinin aynı sözleşme fikrini kullanarak bağlı olduğu somut bir uygulama olduğu anlamına gelir. Veri modeli soyutlanmıştır. "
... sonra ...
"Web Hizmeti yerine diğer iletişim teknolojileriyle (örn. Eşler Arası, Adlandırılmış Kanallar) iletişim kurmamız gerektiğinde WCF kullanmalıyız"
Gönderen WCF ve Web Hizmetleri arasında ki fark nedir?
WCF, Microsoft'un önceki tüm web hizmeti teknolojilerinin yerini almıştır. Ayrıca, geleneksel olarak "web hizmetleri" olarak kabul edilenden çok daha fazlasını yapar.
WCF "web hizmetleri", WCF aracılığıyla etkinleştirilen çok daha geniş bir uzaktan iletişim yelpazesinin parçasıdır. WCF'de bir şeyler yaparken geleneksel ASMX'e göre çok daha yüksek derecede esneklik ve taşınabilirlik elde edeceksiniz çünkü WCF, Microsoft tarafından sunulan tüm farklı dağıtılmış programlama altyapılarını özetlemek için sıfırdan tasarlanmıştır. WCF'deki bir uç nokta, TCP / ikili üzerinden olduğu gibi, SOAP / XML üzerinden de kolaylıkla iletişim kurabilir ve bu ortamı değiştirmek basitçe bir yapılandırma dosyası modudur. Teorik olarak, bu, iş ihtiyaçlarını, hedeflerini vb. Taşırken veya değiştirirken gereken yeni kod miktarını azaltır.
ASMX, WCF'den daha eskidir ve ASMX'in yapabildiği her şey WCF'yi (ve daha fazlasını) yapabilir. Temel olarak, WCF'nin Microsoft dünyasında iletişim kurmak için iki uygulamayı elde etmenin tüm farklı yollarını mantıksal olarak gruplandırmaya çalıştığını görebilirsiniz; ASMX bu pek çok yoldan sadece biriydi ve artık WCF yetenekler çatısı altında toplanıyor.
Web Hizmetlerine yalnızca HTTP üzerinden erişilebilir ve WCF'nin esnek olduğu durumsuz ortamda çalışır, çünkü hizmetleri farklı türden uygulamalarda barındırılabilir. WCF hizmetlerini barındırmaya yönelik yaygın senaryolar IIS, WAS, Kendi kendine barındırma, Yönetilen Windows Hizmeti'dir.
En büyük fark, Web Hizmetlerinin Kullanmasıdır
XmlSerializer. Ancak WCFDataContractSerializer, performans açısından daha iyi olan kullanırXmlSerializer.
Web Hizmeti , SOAP'a dayanır ve verileri XML biçiminde döndürür. Yalnızca HTTP protokolünü destekler. Açık kaynak kodlu değildir ancak xml'yi anlayan herhangi bir istemci tarafından kullanılabilir. Yalnızca IIS'de barındırılabilir.
WCF ayrıca SOAP'a dayanır ve verileri XML biçiminde döndürür. Web hizmetinin (ASMX) evrimidir ve TCP, HTTP, HTTPS, Named Pipes, MSMQ gibi çeşitli protokolleri destekler. WCF ile ilgili temel sorun, sıkıcı ve kapsamlı yapılandırmasıdır. Açık kaynak kodlu değildir ancak xml'yi anlayan herhangi bir istemci tarafından kullanılabilir. Uygulamada veya IIS'de veya pencere hizmeti kullanılarak barındırılabilir.
Temel ve birincil fark, ASP.NET web hizmetinin yalnızca HTTP üzerinden SOAP mesajlarını değiştirmek için tasarlanmıştır; WCF Hizmeti, herhangi bir aktarım protokolü (HTTP, TCP, MSMQ veya NamedPipes vb.) Üzerinden herhangi bir format (SOAP varsayılandır) kullanarak mesaj alışverişinde bulunabilir.
Web hizmeti ile WCF arasındaki fark nedir?
Web hizmeti, verileri bir uygulamadan diğerine aktarırken yalnızca HTTP protokolünü kullanır.
Ancak WCF, iletileri taşımak için ASP.NET Web hizmetlerinden daha fazla protokolü destekler. WCF, HTTP'nin yanı sıra İletim Kontrol Protokolü (TCP), adlandırılmış kanallar ve Microsoft Message Queuing (MSMQ) kullanarak ileti göndermeyi destekler.
Web Hizmetinde bir hizmet geliştirmek için aşağıdaki kodu yazacağız
[WebService]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string Test(string strMsg)
{
return strMsg;
}
}
WCF'de bir hizmet geliştirmek için aşağıdaki kodu yazacağız
[ServiceContract]
public interface ITest
{
[OperationContract]
string ShowMessage(string strMsg);
}
public class Service : ITest
{
public string ShowMessage(string strMsg)
{
return strMsg;
}
}Web Hizmeti mimari olarak daha sağlam değildir. Ancak WCF, mimari olarak daha sağlamdır ve en iyi uygulamaları destekler.
Web Hizmetleri XmlSerializer'ı kullanır ancak WCF DataContractSerializer'ı kullanır. XmlSerializer ile karşılaştırıldığında performansta hangisi daha iyi?
Dahili (güvenlik duvarının arkasında) hizmetten hizmete aramalar için, SOAP'tan çok daha hızlı olan net: tcp bağını kullanıyoruz.
WCF, ASP.NET Web Hizmetlerinden% 25 —% 50 daha hızlı ve .NET Uzaktan Kumandadan yaklaşık% 25 daha hızlıdır.
Ne zaman birini diğerine tercih ederim?
WCF, diğer platformlarda geliştirilen ve diğer Teknolojileri kullanan diğer uygulamalar arasında iletişim kurmak için kullanılır.
Örneğin, .net platformundan başka bir işletim sisteminde (Unix veya Linux gibi) çalışan başka bir uygulamaya veri aktarmam gerekiyorsa ve başka bir aktarım protokolü (WAS veya TCP gibi) kullanıyorsa, o zaman yalnızca veri aktarmak mümkündür WCF kullanarak.
Burada, bir uygulama arasında başka bir uygulamaya veri aktarılırken platform, uygulama protokolü konusunda herhangi bir kısıtlama yoktur.
Web servisine kıyasla güvenlik çok yüksektir
En büyük fark zaman aşımıdır, WCF Hizmeti yanıt olmadığında zaman aşımına uğrar, ancak web hizmeti bu özelliğe sahip değildir.