Ich bin völlig verwirrt zwischen WCF und ASMX-Webdiensten. Ich habe in meinem früheren Stadium viele Webdienste verwendet, und jetzt gibt es dieses neue Ding mit dem Namen WCF. Ich kann immer noch WCF erstellen, die als Webdienst fungiert. Ich denke, es wird mehr Zeug in der WCF geben.
Was sind die Unterschiede zwischen WCF und Webdiensten? Wann sollte jeder verwendet werden?
Keith Elder vergleicht ASMX mit WCF hier. Hör zu.
Ein weiterer Vergleich von ASMX und WCF ist hier zu finden - Ich stimme nicht zu 100% mit allen Punkten überein, aber es könnte Ihnen eine Idee geben.
WCF ist im Grunde genommen "ASMX on stereoids" - es kann alles sein, was ASMX kann - plus viel mehr! .
ASMX ist:
WCF kann sein:
Kurz gesagt: WCF soll ASMX vollständig ersetzen.
Überprüfen Sie das WCF Developer Center auf MSDN .
Update: Link scheint nicht mehr zu funktionieren - versuchen Sie Folgendes: Was ist Windows Communication Foundation?
ASMX-Webdienste können nur über HTTP aufgerufen werden (traditioneller Webdienst mit .asmx). Der WCF-Dienst oder eine WCF-Komponente kann von jedem Protokoll (wie http, tcp usw.) und jedem Transporttyp aufgerufen werden.
Zweitens sind ASMX-Webdienste nicht flexibel. WCF-Dienste sind jedoch flexibel. Wenn Sie eine neue Version des Dienstes erstellen, müssen Sie nur ein neues Ende anzeigen. Daher sind Dienstleistungen agil und dies ist ein sehr praktischer Ansatz, wenn man die aktuellen Geschäftsentwicklungen betrachtet.
Wir entwickeln WCF als Verträge, Schnittstellen-, Betriebs- und Datenverträge. Als Entwickler konzentrieren wir uns mehr auf die Geschäftslogikdienste und müssen uns nicht um den Kanalstapel kümmern. WCF ist eine einheitliche Programmierschnittstelle für alle Arten von Diensten. Daher erstellen wir den Dienst und verwenden Konfigurationsinformationen, 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-Webdienste sind zwar nicht sonderlich flexibel, aber sehr einfach zu verwenden und zu verstehen. Während WCF flexibler ist, ist es auch komplexer aufzustehen und zu konfigurieren.
ASMX-Webservices können sofort nach dem Hinzufügen der Datei als Webservice-Referenz hinzugefügt werden. (unter der Annahme, dass Ihr Projekt erstellt wird)
Für den einfachen Entwicklungsworkflow 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 eine optimierte K.I.S.S. Konfigurationsmodus, 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>
WCF ersetzt ASMX-Webdienste vollständig. ASMX ist die alte Art, Webservices zu erstellen, und WCF ist die aktuelle Art, Webservices zu erstellen. Alle neuen SOAP Web-Service-Entwicklungen auf dem Client oder dem Server sollten mit WCF durchgeführt werden.
Es wird viel über die Einfachheit von asmx-Webdiensten über WCF gesprochen. Lassen Sie mich hier einige Punkte klarstellen.
Um nicht zu vergessen, dass ich einer von jenen Leuten war, die asmx-Dienste mehr mochten als WCF, aber diesmal war ich mir der WCF-Dienste und ihrer Fähigkeiten nicht bewusst. Ich hatte Angst vor den WCF-Konfigurationen. Aber ich habe es gewagt und versucht, ein paar eigene WCF-Dienste zu schreiben, und als ich mehr über WCF erfuhr, habe ich jetzt keine Hemmungen mehr für WCF und empfehle sie jedem und jedem. Viel Spaß beim Programmieren !!!