Разлика между WCF срещу Web Services

WCF е заместител на всички по-ранни технологии за уеб услуги. Той е разработен от Microsoft. Той замества това, което традиционно се счита за „уеб услуги“. Уеб услугата се базира на SOAP, който връща данни в XML форма. Той просто поддържа HTTP протокола. Той също не е с отворен код и може да бъде консумиран от всеки клиент, който разбира XML. Той може да бъде хостван само в IIS.

Какво е WCF?

WCF се базира на SOAP и връща данни в XML форма. Това е разширение на уеб услугата (ASMX) и поддържа различни протоколи като HTTP, HTTPS, TCP, Named Pipes, MSMQ и др. WCF има проблем със своята досадна и обширна конфигурация. Той не е с отворен код, но може да бъде използван от всеки клиент, който разбира XML. Той може да бъде хостван на множество платформи, както в приложението или в IIS, или с помощта на прозоречна услуга.

В какви сценарии трябва да се използва WCF?

  • За извършване на бизнес транзакции WCF ни предоставя сигурен сървър.
  • Двама или повече души могат да комуникират, а също и да обменят данни в реално време, използвайки чат услуга, изградена върху WCF.
  • Приложение за табло, което проучва една или повече услуги за информация и я представя логически.
  • Излагане на работен поток, който се реализира с помощта на Windows Workflow Foundation като WCF услуга.

Какво е уеб услуга?

Както беше обсъдено по-горе, Web Services работят в среда без гражданство. Достъп до него може да се извършва само през HTTP. WCF услугите могат да бъдат хоствани в различни видове приложения. Следователно, за разлика от Web Services, WCF е по-гъвкав.

WCF може да бъде домакин в различни сценарии. Такива сценарии включват услуги като WAS, IIS, самостоятелно хостинг, услуга за управляван Windows и т.н.

Сравнение между главата на WCF срещу Web Services (Инфографика)

По-долу е топ 9 разликата между WCF срещу Web Services

Основни разлики между WCF и Web Services

И двете WCF срещу уеб услугите са популярни решения на пазара; нека да обсъдим някои от основните разлики между WCF срещу уеб услуги

  • Докато прехвърля данни от едно приложение към друго приложение, уеб услугата използва само HTTP протокол. От друга страна, за транспортиране на данни, WCF поддържа повече протоколи в сравнение с уеб услугите на ASP.NET. Освен изпращане на съобщения чрез HTTP, WCF поддържа и протокол за контрол на предаването (TCP), опашка за съобщения на Microsoft (MSMQ) и имена тръби.
  • WCF е архитектурно по-здрав от Web Service.
  • XmlSerializer се използва в уеб услуги. WCF използва DataContractSerializer, което е по-добро в сравнение с XmlSerializer по отношение на производителността.
  • Когато комуникираме между множество приложения, разработени на различни платформи, използваме WCF. Използването на WCF е единственото възможно за прехвърляне на данни в случай, че прехвърляме данни от .NET платформа към всяко друго приложение, което работи на други операционни системи като Unix или Linux.
  • Сигурността в WCF е много висока в сравнение с уеб услугата.

WCF vs Таблица за сравнение на уеб услуги

По-долу е 9 най-високото сравнение между WCF и Web Services

Основата на сравнението между WCF срещу Web Services

WCF

Уеб услуги

Въведение версияWCF услугата беше въведена с .NET версия 3.0.Уеб услугата съществува в .net рамка от версия 1.0.
Протокол за получаване и изпращане на съобщенияWCF услугите използват SOAP по подразбиране, но съобщенията могат да бъдат във всеки формат и да се предават чрез използване на всеки транспортен протокол като WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (Point to Point) и т.н.Уеб услугите на ASP.NET могат да изпращат и получават съобщения, използвайки SOAP през само HTTP или HTTPS.
Разширение на файлWcf услугите имат разширение „.svc“.Уеб услугите имат разширение „.asmx“
директиваСтраницата svc използва директивата „ServiceHost“.Страницата asmx използва директивата „WebService“
Техника на сериализацияТой използва DataContractSerializer в System.RunTime.Serialization пространство за имена за сериализация.За сериализация уеб услугите на ASP.NET се базират на XmlSerializer в пространството от имена на System.XML.Serialization. Някои от ограниченията на XmlSerializer са:

  • Възможност за сериализиране на публични имоти / полета.
  • Сериализирано е възможно само за класове за колекция, изпълняващи Icollection или IEnumerable.
  • Сериализацията не е възможна за класове, изпълняващи IDictionary, например, HashTable.
  • Изричното посочване на полета или свойства, които трябва да бъдат сериализирани в XML, и идентифицирането на полета, които трябва да бъдат игнорирани от сериализатор, не е възможно.

Хостинг механизъмWCF услугите могат да бъдат хоствани в множество платформи като IIS, услуги за активиране на Windows (WAS), услуги за управляван Windows или самостоятелно хостинг и т.н.Услугата ASP.net може да бъде хоствана само в IIS.
необработена работа с изключениеИзключенията, които не са обработени, не се връщат на клиентите като SOAP грешки.Изключенията, които не са обработени, се връщат на клиенти като SOAP грешки в уеб услугите на ASP.NET.
Поддръжка на много нишкиMulti-threading се поддържа от WCF услуги.Няма поддръжка за многонишково влагане в уеб услугите.
производителностWCF е по-бърз в сравнение с Web ServicesТъй като уеб услугите използват сериализатори, следователно те са по-бавни от WCF услугите по отношение на производителността.

Пример за WCF срещу уеб услуги

По-долу е примерът на WCF срещу Web Services, както следва:

Уеб услуги

Следният фрагмент на кода ни показва как да разработим услуга в Web Service.

(WebService) public class MyService
(
(WebMethod) public SumClass SumOfNums(string JsonStr)
(
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize(JsonStr);
return new SumClass().GetSumClass(ObjSumClass.First, ObjSumClass.Second);
)
)
public class SumClass
(
public int First, Second, Sum;
public SumClass GetSumClass(int Num1, int Num2)
(
var ObjSum = new SumClass
(
Sum = Num1 + Num2,
);
return ObjSum;
)
)

WCF

Следният фрагмент на кода ни показва как да развием услуга в WCF

ServiceContract) blic class MyService : WebService
(
(OperationContract) public SumClass SumOfNums(string JsonStr)
(
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize(JsonStr);
return new SumClass().GetSumClass(ObjSumClass.First, ObjSumClass.Second);
)
)
(DataContract) public class SumClass
(
(DataMember) public int First;
(DataMember) public int Second;
(DataMember) public int Sum;
public SumClass GetSumClass(int Num1, int Num2)
(
var ObjSum = new SumClass
(
Sum = Num1 + Num2,
);
return ObjSum;
)
)

Заключение - WCF срещу уеб услуги

От горната дискусия, WCF услугата определено е усъвършенствана технология, която уеб услугата. WCF е по-бърз от уеб услугата по отношение на производителността. WCF осигурява по-добра сигурност, поддържа различни протоколи, както и формати на съобщения. Единствената забързана зона на WCF за разработчиците е неговата конфигурационна част. Този проблем обаче се реши и с WCF4.0 чрез въвеждане на конфигурационни настройки по подразбиране. Забелязва се, че до.NET3.5, визуалното студио предоставя директен шаблон за уеб услуги. От.NET4.0 не получаваме директен шаблон за уеб услуга. Следователно трябва да създадем уеб приложение и да добавим уеб услуга към него.

Препоръчителни статии

Това е ръководство за най-високата разлика между WCF срещу Web Services. Тук също обсъждаме ключовите разлики на WCF срещу Web Services с инфографиката и таблицата за сравнение. Може да разгледате и следните статии, за да научите повече.

  1. Сравнение - Ubuntu срещу Windows 10
  2. Мобилно приложение срещу уебсайтове - полезни сравнения
  3. Спящ режим срещу хибернация-най-много разлики
  4. Microsoft Azure vs Amazon Web Services