Ich bin neu bei .Net und verstehe den Unterschied nicht. Kann mir jemand in die richtige Richtung zeigen?Was ist der Unterschied zwischen einer ASP.net-Webmethode und einem WCF-Dienst?
Antwort
Sie sind zwei verschiedene Frameworks für Schreibdienste. WCF ist in der Regel flexibler und bietet konfigurierbare Optionen für die verwendeten Protokolle, den Hosting-Service und verschiedene Sicherheitsoptionen. ASMX bietet SOAP-basierte Dienste an. Generell WCF ist auch mehr performant. Im Allgemeinen ist ASMX einfacher zu verwenden und hat im Allgemeinen weniger Lernkurve.
Here ist eine MSDN-Forumsdiskussion zum Thema. Hier finden Sie die Einstiegsseiten für ASMX und WCF.
ASP.NET-Webdienste wurden für das Erstellen von Anwendungen entwickelt, die Nachrichten mithilfe von SOAP (Simple Object Access Protocol) über HTTP senden und empfangen.
Mit WCF können .NET Framework-Anwendungen Nachrichten mit anderen Softwareeinheiten austauschen. Standardmäßig wird SOAP verwendet. Die Nachrichten können jedoch in einem beliebigen Format vorliegen und mithilfe eines beliebigen Transportprotokolls übermittelt werden.
Sie können ASP.NET-Webdienste als Teilmenge von WCF-Diensten anzeigen.
Here ist ein Link, der die beiden Frameworks vergleicht.
Sie sind zwei verschiedene Dinge alle zusammen. WCF ist ein allgemeineres Framework, über das Sie eine Servicetypkomponente schreiben und auf viele Arten bereitstellen können (sogar als Asp.Net-Webdienst).
Hier ist ein kurzer Thread über dieses http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/
es ganz einfach ist, die Unterschiede zu kennen.
ASP.NET-Methode wird aufgerufen, ASMX [wegen der Dateierweiterung] (überprüfen 4GuysFromRolla darüber, sie haben eine good tutorial)
Diese Technologie Sie Funktionen als Web-Service aussetzen macht, so dass Sie aus verbinden kann überall und benutze es. Aber ... können Sie nicht schützen die Daten zwischen Server und Client, können Sie große Dateien löschen und wissen, was passiert ist, etc ...
[Hinweis] Sie können den Zugriff auf den Web-Service mit schützen Zertifikate, aber es ist kompliziert, aber normalerweise verwenden wir in ASMX Benutzername/Passwort.
in WCF, sind Sie in der anderen Welt über Web Service, und dies ist die beste Technologie in .NET Services aussetzen (können Sie den Unterschied ...Dienstleistungen! Nicht Web Service sehen) WCF muss IIS nicht ausführen, es kann als Systemdienst auf dem Server ausgeführt werden, es wird eine Konsolenumgebung (wie eine Befehlszeile) usw. verwendet. Daher wird WCF als Dienst ohne Webdienst bezeichnet. Denken Sie daran, dass ASMX IIS zum Ausführen benötigt.
mit WCF können Sie SSL verwenden, um die Kommunikation zu verschlüsseln (zu tun, dass in ASMX Sie WSE verwenden müssen - Web Services Enhancements), können Sie große Dateien und sicher versenden (zu tun, dass in ASMX müssen Sie verwenden MTOM - Nachrichtenübertragungs-Optimierungsmechanismus).
Sie die Übertragungseinstellungen festlegen kann nur eine Zeile Code zu ändern, ist die Sicherheit wesentlich höher, etc, etc :)
hoffen, dass Sie eine bessere allgemeine Übersicht mit diesem zu bekommen, aber es ist viel mehr.
Fazit: Um Web Services zu enthüllen, die Sie nicht schützen müssen, können Sie ASMX verwenden, kein Problem, aber wenn Sie die Kommunikation irgendwie schützen müssen, tun Sie es in WCF!
Link: you can read here some performance comparative between the 2 services
+1 vielen Dank, großes Detail –
Zusätzlich zu den obigen Reaktionen wurde WCF erstellt .NET Remoting in .NET 3.0 und darüber hinaus zu ersetzen. Zusätzlich zu den Webdiensten SOAP, REST, POX usw. in verschiedenen Formaten (z. B. XML und JSON) bietet WCF auch MSMQ und Named Pipes an. ASMX bietet, wie oben erwähnt, nur SOAP-basierte XML-Webdienste.
Sie müssen in .NET Remoting für andere Arten von Kommunikationsprotokollen vertiefen. Weitere Informationen finden Sie unter Pro C# 2008 and the .NET 3.5 Framework. Es ist eine großartige Ressource, und Sie können die Kapitel aus den vorherigen Büchern, die .NET Remoting und andere ersetzte Funktionen enthalten, erhalten.
Ich hatte das gleiche Problem.
Ich fand das Buch Microsoft Windows Communication Foundation Step by Step wirklich gut.
Wenn Sie nur möchten die traditionelle Webservice-Sache mit WCF tun, dann Kapitel 1 dieses Buches wird Ihnen zeigen, genau, wie dies zu tun (Schreiben Sie Service, Test, Bereitstellung, Service).
Es ist für VS2005 geschrieben, aber ich benutze vs2008 und fand es noch einfacher.
Es gibt noch viel mehr zu WCF, aber dieses Buch ist ein guter Anfang.
+1 Danke für den Link zum Buch –
Hier ist ein neuer, großer Unterschied: Microsoft betrachtet ASMX-Webdienste jetzt als "Legacy" -Technologie. Siehe "XML Web Services Created Using ASP.NET and XML Web Service Clients".
+1 Wie Sie bereits zuvor in anderen Posts erwähnt haben, und es ist ein wichtiger Punkt. – RichardOD
die Überschrift aus diesem Artikel: "Dieses Thema ist spezifisch für eine ältere Technologie. XML-Webdienste und XML-Webdienstclients sollten jetzt mit Windows Communication Foundation (WCF) erstellt werden." –
Web Services
- Es kann nur über HTTP
- Es funktioniert in zustandslosen Umgebung
WCF
WCF ist flexibel, weil ihre Leistungen in verschiedenen Typen können gehostet werden zugegriffen werden von Anwendungen. Die folgende Liste zeigt einige gängige Szenarien für WCF-Hosting-Services:
- IIS
- WAR
- Self-Hosting
- Windows Service Managed
Wesentliche Unterschiede zwischen Web-Service und WCF sind unten aufgeführt .
Webdienst: Webdienst ist eine Anwendung, die entwickelt wurde, um direkt mit anderen Anwendungen über das Internet zu interagieren.
1) Die Attribute [WebService] und [WebMethod] definieren einen Webdienst und Methoden.
2) Es kann nur über HTTP zugegriffen werden.
3) Hosted in IIS.
4) Sicherheitsdienste unterstützen.
5) Kann nicht Multithread sein.
6) Nur gebrauchte Soap oder XML.
7) System.Xml.Serialization Namensraum ist für die Serialisierung verwendet
WCF: Windows Communication Foundation (-Code namens Indigo) ist eine Programmierplattform und Laufzeitsystem für den Aufbau, Konfiguration und Bereitstellung von Netzwerk-Dienste verteilt.
1) Die Attribute [ServiceContract] und [OperationContract] definieren einen Webservice und Methoden.
2) Zugriff über HTTP, TCP, MSMQ, P2P, Named Pipes
3) Hosted in IIS, Self-Hosting-, WAS-und Windows-Service.
4) Kann über die Dienstverhaltensklasse multithreaded sein.
5) System.Runtime.Serialization Namespace verwendet wird Unterstützt für die Serialisierung
6) verschiedene Arten von Bindungen wie Basichttpbinding, WSHttpBinding usw. WSDualHttpBinding
7) Unterstützung Sicherheitsdienste, Reliable Messaging, Transaktionen, AJAX und REST-Support
+1 danke für den Link und die schöne, klare Erklärung –