it-swarm.com.de

Web Service gegen WCF Service

Was ist der Unterschied zwischen ihnen?

Wann würde ich mich für eins über das andere entscheiden?

108
Developer

Diese Antwort basiert auf einem Artikel, der nicht mehr existiert:

Zusammenfassung des Artikels:

"Grundsätzlich ist WCF eine Service-Schicht, mit der Sie Anwendungen erstellen können, die über eine Vielzahl von Kommunikationsmechanismen kommunizieren können. Mit ihr können Sie über Peer-to-Peer, Named Pipes, Web-Services usw. kommunizieren.

Sie können sie nicht vergleichen, da WCF ein Framework zum Erstellen interoperabler Anwendungen ist. Wenn Sie möchten, können Sie sich das als SOA Enabler vorstellen. Was bedeutet das?

Nun, WCF entspricht einem so genannten ABC, wobei A die Adresse des Dienstes ist, mit dem Sie kommunizieren möchten, B die Bindung und C den Vertrag. Dies ist wichtig, da die Bindung geändert werden kann, ohne dass der Code geändert werden muss. Der Vertrag ist viel mächtiger, weil er die Trennung des Vertrages von der Implementierung erzwingt. Dies bedeutet, dass der Vertrag in einer Schnittstelle definiert ist und dass es eine konkrete Implementierung gibt, an die der Verbraucher mit der gleichen Idee des Vertrags gebunden ist. Das Datenmodell wird abstrahiert. "

... später ...

"sollte WCF verwenden, wenn wir mit anderen Kommunikationstechnologien (z. B. Peer-to-Peer, Named Pipes) anstatt mit Webdiensten kommunizieren müssen"

63
nzpcmad

Von Was ist der Unterschied zwischen WCF und Web Services?

WCF ist ein Ersatz für alle früheren Webdiensttechnologien von Microsoft. Es macht auch viel mehr als das, was traditionell als "Webdienste" angesehen wird.

WCF- "Webdienste" sind Teil eines viel breiteren Spektrums der durch WCF ermöglichten Fernkommunikation. Mit WCF erhalten Sie ein viel höheres Maß an Flexibilität und Portabilität als mit herkömmlichem ASMX, da WCF von Grund auf darauf ausgelegt ist, alle von Microsoft angebotenen verteilten Programminfrastrukturen zusammenzufassen. Ein Endpunkt in WCF kann genauso einfach über SOAP/XML wie über TCP/Binär kommuniziert werden und dieses Medium zu wechseln ist einfach eine Konfigurationsdatei mod. Theoretisch reduziert dies die Menge an neuem Code, die zum Portieren oder Ändern von Geschäftsanforderungen, Zielen usw. benötigt wird.

ASMX ist älter als WCF und alles, was ASMX kann, kann WCF (und mehr). Grundsätzlich können Sie WCF so sehen, dass es versucht, alle verschiedenen Arten der Kommunikation zwischen zwei Apps in der Microsoft-Welt logisch zusammenzufassen. ASMX war nur eine dieser vielen Möglichkeiten und wird nun unter dem WCF-Funktionsumfang zusammengefasst.

Auf Webdienste kann nur über HTTP zugegriffen werden und sie funktionieren in statusfreien Umgebungen, in denen WCF flexibel ist, da ihre Dienste in verschiedenen Arten von Anwendungen gehostet werden können. Häufige Szenarien für das Hosten von WCF-Diensten sind IIS, WAS, Self-Hosting und Managed Windows Service.

Der Hauptunterschied besteht darin, dass Webdienste XmlSerializer verwenden. Aber WCF verwendet DataContractSerializer, was eine bessere Leistung im Vergleich zu XmlSerializer bietet.

31
Joe

Web Service basiert auf SOAP und gibt Daten in XML-Form zurück. Es unterstützt nur das HTTP-Protokoll. Es ist kein Open Source, kann aber von jedem Client verwendet werden, der XML versteht Es kann nur auf IIS gehostet werden.

WCF basiert ebenfalls auf SOAP und gibt Daten in XML-Form zurück. Dies ist die Weiterentwicklung des Webdienstes (ASMX). und unterstützen verschiedene Protokolle wie TCP, HTTP, HTTPS, Named Pipes, MSMQ. Das Hauptproblem bei WCF ist die langwierige und umfangreiche Konfiguration. Es ist kein Open Source, sondern kann von jedem Client verwendet werden, der XML versteht. Es kann mit gehostet werden in der Anwendung oder auf IIS oder mit Windows-Dienst.

29
CSK

Der grundlegende und primäre Unterschied besteht darin, dass der ASP.NET-Webdienst so konzipiert ist, dass er SOAP Nachrichten nur über HTTP austauscht, während der WCF-Dienst Nachrichten in einem beliebigen Format (standardmäßig SOAP) über ein beliebiges Transportprotokoll (z. B. HTTP) austauschen kann. TCP, MSMQ oder NamedPipes etc.

16
Imran Ghani

Was ist der Unterschied zwischen Webservice und WCF?

  1. Der Webdienst verwendet nur das HTTP-Protokoll, wenn Daten von einer Anwendung zu einer anderen Anwendung übertragen werden.

    WCF unterstützt jedoch mehr Protokolle zum Transportieren von Nachrichten als ASP.NET-Webdienste. WCF unterstützt das Senden von Nachrichten über HTTP sowie das Transmission Control Protocol (TCP), Named Pipes und Microsoft Message Queuing (MSMQ).

  2. Um einen Service in Web Service zu entwickeln, schreiben wir den folgenden Code

    [WebService]
    public class Service : System.Web.Services.WebService
    {
      [WebMethod]
      public string Test(string strMsg)
      {
        return strMsg;
      }
    }
    

    Um einen Dienst in WCF zu entwickeln, schreiben wir den folgenden Code

    [ServiceContract]
    public interface ITest
    {
      [OperationContract]
      string ShowMessage(string strMsg);
    }
    public class Service : ITest
    {
      public string ShowMessage(string strMsg)
      {
         return strMsg;
      }
    }
    
  3. Web Service ist architektonisch nicht robuster. WCF ist jedoch architektonisch robuster und fördert Best Practices.

  4. Webdienste verwenden XmlSerializer, aber WCF verwendet DataContractSerializer. Was ist leistungsfähiger als XmlSerializer?

  5. Für interne Service-to-Service-Anrufe (hinter der Firewall) verwenden wir die net: tcp-Bindung, die viel schneller als SOAP ist.

    WCF ist 25% bis 50% schneller als ASP.NET-Webdienste und ungefähr 25% schneller als .NET Remoting.

Wann würde ich mich für eins über das andere entscheiden?

  • WCF wird zur Kommunikation zwischen anderen Anwendungen verwendet, die auf anderen Plattformen entwickelt wurden und andere Technologien verwenden.

    Wenn ich zum Beispiel Daten von der .net-Plattform auf eine andere Anwendung übertragen muss, die auf einem anderen Betriebssystem (wie Unix oder Linux) ausgeführt wird und ein anderes Übertragungsprotokoll (wie WAS oder TCP) verwendet, können nur Daten übertragen werden mit WCF.

  • Hier besteht keine Einschränkung der Plattform, Übertragungsprotokoll der Anwendung beim Übertragen der Daten zwischen einer Anwendung zu einer anderen Anwendung.

  • Die Sicherheit ist im Vergleich zum Webservice sehr hoch

4
Ali Azam

Der Hauptunterschied ist die Zeitüberschreitung. Der WCF-Dienst hat eine Zeitüberschreitung, wenn keine Antwort eingeht, der Webdienst verfügt jedoch nicht über diese Eigenschaft.

2
user5898334