Статьи

Разница между веб-сервисом и WCF

Обзор В
моей предыдущей статье было представлено  введение в WCF   (Windows Communication Framework). Теперь мы обсудим различия между концепциями веб-сервисов и WCF.

Веб-службы (ASMX)
Веб-службы используются для отправки / получения сообщений с использованием простого протокола доступа к объектам (SOAP) только через HTTP. 

Он доступен в пространстве имен «System.Web.Services. WebService Class »с конструктором, методами, процветанием и событиями.

Код

using System;    
using System.Collections.Generic;    
using System.Web;    
using System.Web.Services;    
    
namespace HelloWorldServices    
{    
    /// <summary>    
    /// Summary description for Service1    
    /// </summary>    
    [WebService(Namespace = "http://tempuri.org/")]    
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    
    [System.ComponentModel.ToolboxItem(false)]    
    public class Service1 : System.Web.Services.WebService    
    {    
    
        [WebMethod]    
        public string HelloWorld()    
        {    
            return "Hello World";    
        }    
    }    
}  

WCF
WCF используется для обмена сообщениями в любом формате через любой транспортный протокол, такой как HTTP, TCP / IP, MSMQ, именованные каналы и т. Д. Его формат по умолчанию — SOAP.

Примечание.  Microsoft Message Queuing (MSMQ) — это службы очереди сообщений, разработанные Microsoft.
Простой объектный протокол доступа (SOAP) — это протокол обмена сообщениями, разработанный W3C.

Код: IService1.cs

using System;    
using System.Collections.Generic;    
using System.Linq;    
using System.Runtime.Serialization;    
using System.ServiceModel;    
using System.ServiceModel.Web;    
using System.Text;    
    
namespace HelloWorldWCFService    
{    
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.    
    [ServiceContract]    
    public interface IService1    
    {    
    
        [OperationContract]    
        string GetData(int value);    
    
        [OperationContract]    
        CompositeType GetDataUsingDataContract(CompositeType composite);    
    
        // TODO: Add your service operations here    
    }    
    
    
    // Use a data contract as illustrated in the sample below to add composite types to service operations.    
    [DataContract]    
    public class CompositeType    
    {    
        bool boolValue = true;    
        string stringValue = "Hello ";    
    
        [DataMember]    
        public bool BoolValue    
        {    
            get { return boolValue; }    
            set { boolValue = value; }    
        }    
    
        [DataMember]    
        public string StringValue    
        {    
            get { return stringValue; }    
            set { stringValue = value; }    
        }    
    }    
}    

Service1.svc 

using System;    
using System.Collections.Generic;    
using System.Linq;    
using System.Runtime.Serialization;    
using System.ServiceModel;    
using System.ServiceModel.Web;    
using System.Text;    
    
namespace HelloWorldWCFService    
{    
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.    
    public class Service1 : IService1    
    {    
        public string GetData(int value)    
        {    
            return string.Format("You entered: {0}", value);    
        }    
    
        public CompositeType GetDataUsingDataContract(CompositeType composite)    
        {    
            if (composite == null)    
            {    
                throw new ArgumentNullException("composite");    
            }    
            if (composite.BoolValue)    
            {    
                composite.StringValue += "Suffix";    
            }    
            return composite;    
        }    
    }    
} 

Различия между веб-сервисами и таблицей WCF

S.Number функции WCF
1 Он доступен в пространстве имен «System.Web. Services.WebService Class». Он доступен в пространстве имен «System.ServiceModel»
2 Поддерживается хостинг только IIS Поддерживаются такие хостинги, как IIS, Self Hosting (консольный хостинг), службы активации Windows, службы Windows
3 Используется только для сериализатора XML Используется только для DataContractSerializer
4 Поддерживается односторонняя связь и запрос-ответ Поддерживается односторонняя, двусторонняя (дуплексная) связь и запрос-ответ
5 Поддерживается привязка, такая как XML 1.0, механизм оптимизации передачи сообщений (MTOM), пользовательский Поддерживается привязка, такая как XML 1.0, механизм оптимизации передачи сообщений (MTOM), двоичные и пользовательские
6 Поддерживается транспортный протокол, такой как HTTP, TCP и пользовательский. Это поддерживаемый транспортный протокол, такой как HTTP, TCP, Именованные каналы, MSMQ, P2P и пользовательский.
7 Поддерживается протокол безопасности Это поддерживаемый протокол безопасности, транзакции и надежное сообщение

Заключение

Эта статья поможет понять различия между веб-сервисами и WCF в .NET.