Ich bin verwirrt mit WCF und anderen Webdiensten (wie asp.net ASMX, .net Remoting), kann mir jemand sagen, was ist der Unterschied mit WCF und den anderen und wann sollte ich es verwenden, danke!Was ist der Unterschied zu WCF und anderen Webdiensten?
Antwort
Ich denke, es ist fair zu sagen, dass WCF ersetzt ASMX und Remoting. Sie können mit ASMX und Remoting alles erreichen, was Sie können, und mehr mit WCF, aber Sie haben viel mehr Funktionen und können viel besser steuern, was passiert.
Also ich glaube, dass, wenn Sie können, Sie WCF verwenden sollten.
WCF ist eine Kommunikationsbibliothek, die sowohl den .NET-Remoting- als auch den "alten" ASMX-Webdienst und den Nachfolger beider Bibliotheken enthält.
WCF-Webservices haben eine viel bessere Unterstützung für WS-* -Standards und haben weniger Probleme mit der Interoperabilität.
Grundsätzlich sollten Sie WCF seit .net Remoting und ASMX könnte legecy in Betracht gezogen werden (und, wenn ich mich richtig erinnere, nur einige .NET Remoting Fehler in WCF behoben wurden und nie in .NET Remoting selbst)
WCF ist ein Kommunikationsstapel, der die Bereitstellung von Diensten über HTTP (wie ASMX) und TCP (wie Remoting) sowie Named Pipes (was wirklich ein Cross-Process-Aufruf innerhalb von Maschinen ist), MSMQ und .NET 3.5 REST ermöglicht.
Es ermöglicht dies, weil es die Kommunikationsteile des Dienstes von der Geschäftslogik entkoppelt ist. Sie müssen lediglich Ihre Serviceklassen, Methoden und DTOs mit dem entsprechenden Vertragsattribut ([SeriviceContract], [OperationContract] und [DataContract]) dekorieren.
Dies hatte den Vorteil, dass Sie einmal einen Dienst schreiben konnten und ermöglichen, dass viele verschiedene Arten von Clients den gleichen Dienst nutzen (dh Java-Clients können HTTP verwenden, .NET-Clients können TCP verwenden, Legacy kann MSMQ verwenden usw.).
Mit WCF können Sie weiterhin alle Funktionen jedes Transports nutzen, einschließlich Sicherheit, Transaktionen, zuverlässiges Messaging usw., aber Sie müssen vorsichtig sein. Nicht alle Funktionen funktionieren auf allen Transporten und Sie müssen entsprechend planen. Mit WCF können Sie in Ihrem Vertrag angeben, welche Funktionen benötigt werden. Dies verhindert, dass somone versucht, Ihren Service so verfügbar zu machen, dass das erforderliche Feature-Set nicht unterstützt wird (d. H. Wenn Ihr Service Transaktionen erfordert, lässt die WCF-Laufzeit den Zugriff auf den Service über einen einfachen HTTP-Endpunkt nicht zu).
WCF ist auch erweiterbar über benutzerdefinierte Verhaltensweisen (die beeinflussen, wie die WCF-Laufzeit arbeitet) und benutzerdefinierte Kanäle (die steuern, wie WCF-Dienste mit der Außenwelt kommunizieren.)
WCF ein bisschen eine Lernkurve im Vergleich zu ASMX, aber die Vorteile ABSOLUT aus Gewicht diese Lernkurve.
Hoffe, dass hilft.
- 1. Was ist der Unterschied zwischen den Visual Studio-Optionen: ASP.NET-Webdienst und WCF-Dienst
- 2. Was ist der Unterschied zwischen Transportsicherheit und Nachrichtensicherheit in WCF
- 3. Unterschied zwischen ASP.NET WebHooks und Webdiensten?
- 4. Was ist der Unterschied zwischen `==` und `ist`?
- 5. Was ist der Unterschied zwischen einer WCF-Dienstanwendung und einer WCF-Dienstbibliothek?
- 6. Was ist der Unterschied beesesoup und bs4
- 7. Was ist der Unterschied zwischen .Equals und ==
- 8. Was ist ein DTO und BO? Was ist der Unterschied?
- 9. Was ist der Unterschied zwischen Verilog! und ~?
- 10. Was ist der Unterschied zwischen Difftime und '-'?
- 11. Was ist der Unterschied zwischen `&` und `ref`?
- 12. FirebaseUI und Firebase, was ist der Unterschied?
- 13. Was ist der Unterschied zwischen:.! und: r !?
- 14. Was ist der Unterschied zwischen $ und $$?
- 15. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 16. fgets() und fread() - Was ist der Unterschied?
- 17. Was ist der Unterschied zwischen/* ... */und/** ... */
- 18. Was ist der Unterschied zwischen $ (...) und `...`
- 19. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 20. Was ist der Unterschied zwischen + = und = +?
- 21. Was ist der Unterschied zwischen? und ? = Nil
- 22. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 23. Was ist der Unterschied zu HEAD, HEAD^und HEAD ~ 1?
- 24. Was ist der Unterschied zwischen der Verwendung externer und # Headerdateien?
- 25. Was ist der Unterschied zwischen net.tcp und TCP-Protokoll?
- 26. Was ist WCF (und Vor- und Nachteile)?
- 27. Was ist der Unterschied zwischen Punkt-zu-Punkt- und Ende-zu-Ende-Sicherheit?
- 28. Was ist der Unterschied zwischen void & anderen Datentyp
- 29. Was ist die beste Vorgehensweise beim Entwurf von SOA WCF-Webdiensten?
- 30. Was ist der Unterschied zwischen Chisel und Lava und CLaSH?
In WCF kann DataContractSerializer auf nicht öffentliche Member zugreifen, sodass vollständige Vertrauenswürdigkeit erforderlich ist, während XML-Serializer (in Webdiensten) dies nicht tut. Dies sollte mit Vorsicht verwendet werden, da vollständig vertrauenswürdiger Code auf alle Ressourcen auf Ihrem Computer zugreift. – Adeel