wcf - exchange - asmx wsdl




Was sind die Unterschiede zwischen WCF- und ASMX-Webdiensten? (4)

Ich bin völlig verwirrt zwischen WCF und ASMX Web Services. Ich habe in meiner früheren Phase viele Web-Services verwendet, und jetzt gibt es dieses neue Ding namens WCF. Ich kann immer noch WCF erstellen, das als Web-Service funktioniert. Ich denke, es wird mehr Sachen in WCF geben.

Was sind die Unterschiede zwischen WCF und Webdiensten? Wann sollte jeder benutzt werden?


ASMX Web Services können nur über HTTP (traditioneller Webservice mit .asmx) aufgerufen werden. Der WCF-Dienst oder eine WCF-Komponente kann von jedem Protokoll (wie http, tcp usw.) und einem beliebigen Transporttyp aufgerufen werden.

Zweitens sind ASMX-Webdienste nicht flexibel. WCF Services sind jedoch flexibel. Wenn Sie eine neue Version des Dienstes erstellen, müssen Sie nur ein neues Ende anzeigen. Daher sind Services agil und das ist ein sehr praktischer Ansatz, der die aktuellen Geschäftstrends betrachtet.

Wir entwickeln WCF als Verträge, Schnittstellen-, Betriebs- und Datenverträge. Als Entwickler konzentrieren wir uns mehr auf die Business-Logik-Services und müssen uns nicht um den Channel-Stack kümmern. WCF ist eine einheitliche Programmier - API für jede Art von Diensten, so dass wir den Dienst erstellen und Konfigurationsinformationen verwenden, um den Kommunikationsmechanismus wie HTTP / TCP / MSMQ usw. Einzurichten


Dies ist eine sehr alte Frage, aber ich glaube nicht, dass die Vorteile von ASMX angemessen dargestellt wurden. ASMX Web Services sind zwar nicht besonders flexibel, aber sehr einfach zu verwenden und zu verstehen. Während WCF flexibler ist, ist es auch komplexer, aufzustehen und zu konfigurieren.

ASMX-Webdienste sind bereit, aufzustehen und als Webservice-Referenz hinzuzufügen, sobald Sie die Datei hinzufügen. (vorausgesetzt, Ihr Projekt baut)

Für den einfachen Entwicklungs-Workflow von create webservice -> run webservice -> add webservice reference , hat ein ASMX-Webservice sehr wenig, was schief gehen kann, nicht viel, was Sie falsch konfigurieren können, und das ist seine Stärke.

Als Antwort auf diejenigen, die behaupten, dass WCF ASMX ersetzt, würde ich antworten, dass WCF einen optimierten KISS-Konfigurationsmodus hinzufügen müsste, um ASMX vollständig zu ersetzen.

Beispiel web.config für einen ASMX-Webservice:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings />
  <system.web>
    <compilation targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>
</configuration>

Keith Elder vergleicht hier ASMX mit WCF . Hör zu.

Ein weiterer Vergleich von ASMX und WCF kann hier gefunden werden - ich stimme nicht zu 100% mit allen Punkten überein, aber es könnte Ihnen eine Idee geben.

WCF ist grundsätzlich "ASMX on Stereoids" - es kann alles sein, was ASMX könnte - und noch viel mehr! .

ASMX ist:

  • einfach und einfach zu schreiben und zu konfigurieren
  • nur in IIS verfügbar
  • nur über HTTP aufrufbar

WCF kann sein:

  • gehostet in IIS, ein Windows-Dienst, eine Winforms-Anwendung, eine Konsolen-App - Sie haben völlige Freiheit
  • verwendet mit HTTP (REST und SOAP), TCP / IP, MSMQ und vielen weiteren Protokollen

Kurz: WCF ersetzt ASMX vollständig.

Überprüfen Sie das WCF Developer Center auf MSDN .

Update: Link scheint tot zu sein - versuchen Sie Folgendes: Was ist Windows Communication Foundation?


WCF ersetzt vollständig die ASMX-Webdienste. ASMX ist die alte Art, Webdienste zu machen, und WCF ist die aktuelle Art, Webdienste zu betreiben. Alle neuen SOAP-Web-Service-Entwicklungen auf dem Client oder dem Server sollten mit WCF durchgeführt werden.





asmx