Was ist der Unterschied zwischen ihnen?
Wann würde ich mich für einen über den anderen entscheiden?
Was ist der Unterschied zwischen ihnen?
Wann würde ich mich für einen über den anderen entscheiden?
Antworten:
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, Webdienste 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 etwas, das als ABC bekannt ist, wobei A die Adresse des Dienstes ist, mit dem Sie kommunizieren möchten, B für die Bindung steht und C für den Vertrag steht. Dies ist wichtig, da es möglich ist, die Bindung zu ändern, ohne den Code unbedingt zu ändern. Der Vertrag ist viel leistungsfähiger, weil er die Trennung des Vertrags von der Implementierung erzwingt. Dies bedeutet, dass der Vertrag in einer Schnittstelle definiert ist und 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 dem Webdienst kommunizieren müssen"
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 Fernkommunikation, die über WCF ermöglicht wird. In WCF erhalten Sie ein viel höheres Maß an Flexibilität und Portabilität als bei herkömmlichem ASMX, da WCF von Grund auf so konzipiert ist, dass alle von Microsoft angebotenen verteilten Programmierinfrastrukturen zusammengefasst werden. Ein Endpunkt in WCF kann über SOAP / XML genauso einfach kommuniziert werden wie über TCP / Binär. Das Ändern dieses Mediums ist einfach ein Mod für die Konfigurationsdatei. Theoretisch reduziert dies die Menge an neuem Code, die beim 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 kann man WCF als Versuch ansehen, die verschiedenen Möglichkeiten, zwei Apps in der Welt von Microsoft zur Kommunikation zu bringen, logisch zusammenzufassen. ASMX war nur eine dieser vielen Möglichkeiten und wird daher jetzt unter dem Dach der WCF zusammengefasst.
Auf Webdienste kann nur über HTTP zugegriffen werden, und es funktioniert in einer zustandslosen Umgebung, in der WCF flexibel ist, da seine Dienste in verschiedenen Arten von Anwendungen gehostet werden können. Häufige Szenarien für das Hosten von WCF-Diensten sind IIS, WAS, Selbsthosting und verwalteter Windows-Dienst.
Der Hauptunterschied besteht darin, dass Webdienste verwendet werden
XmlSerializer
. Aber WCF verwendet,DataContractSerializer
was im Vergleich zu in der Leistung besser istXmlSerializer
.
Der Webdienst basiert auf SOAP und gibt Daten in XML-Form zurück. Es wird nur das HTTP-Protokoll unterstützt. Es ist kein Open Source, kann aber von jedem Client verwendet werden, der XML versteht. Es kann nur auf IIS gehostet werden.
WCF basiert auch auf SOAP und gibt Daten in XML-Form zurück. Es ist die Weiterentwicklung des Webdienstes (ASMX) und unterstützt verschiedene Protokolle wie TCP, HTTP, HTTPS, Named Pipes und MSMQ. Das Hauptproblem bei WCF ist die langwierige und umfangreiche Konfiguration. Es ist kein Open Source, kann aber von jedem Client verwendet werden, der XML versteht. Es kann mit in der Anwendung oder auf IIS oder mithilfe des Fensterservices gehostet werden.
Der grundlegende und primäre Unterschied besteht darin, dass der ASP.NET-Webdienst nur SOAP-Nachrichten über HTTP austauschen kann, während der WCF-Dienst Nachrichten in einem beliebigen Format (SOAP ist Standard) über ein beliebiges Transportprotokoll austauschen kann, z. B. HTTP, TCP, MSMQ oder NamedPipes usw.
Was ist der Unterschied zwischen Webdienst und WCF?
Der Webdienst verwendet nur das HTTP-Protokoll, während Daten von einer Anwendung zu einer anderen Anwendung übertragen werden.
WCF unterstützt jedoch mehr Protokolle für den Nachrichtentransport 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).
Um einen Dienst 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;
}
}
Der Webdienst ist architektonisch nicht robuster. WCF ist jedoch architektonisch robuster und fördert Best Practices.
Webdienste verwenden XmlSerializer, WCF verwendet jedoch DataContractSerializer. Welche Leistung ist im Vergleich zu XmlSerializer besser?
Für interne Service-to-Service-Aufrufe (hinter der Firewall) verwenden wir die net: tcp-Bindung, die viel schneller als SOAP ist.
WCF ist 25% - 50% schneller als ASP.NET Web Services und ungefähr 25% schneller als .NET Remoting.
Wann würde ich mich für einen über den anderen entscheiden?
WCF wird verwendet, um zwischen anderen Anwendungen, die auf anderen Plattformen entwickelt wurden, und unter Verwendung anderer Technologien zu kommunizieren.
Wenn ich beispielsweise 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, ist es nur möglich, Daten zu übertragen mit WCF.
Hier gibt es keine Einschränkung der Plattform, des Übertragungsprotokolls der Anwendung beim Übertragen der Daten zwischen einer Anwendung und einer anderen Anwendung.
Die Sicherheit ist im Vergleich zum Webdienst sehr hoch
Der Hauptunterschied besteht in der Zeitüberschreitung. Der WCF-Dienst hat eine Zeitüberschreitung, wenn keine Antwort erfolgt, der Webdienst verfügt jedoch nicht über diese Eigenschaft.