2009-08-04 8 views
2

Ich brauche Richtung zu diesem Thema; vielleicht vermisse ich das Offensichtliche.ASMX gegen WCF

ich nicht einen Gegensatz zwischen WCF sehen gebunden zu HTTP und stark typisierte Webservice. Warum wäre das anders? Ich stimme zu, dass es einige Entwicklungsnuancen gibt, die besonders mit XmlSerializer in ASMX vs WCF und einer Vielzahl von Microsoft Jargons zusammenhängen. Kurz von diesen; Ich sehe nur Parallelen

Datacontract = WSDL Typ Servicecontract = WSDL (auch bekannt als Service-Definition) Operation = WebMethod

Operativ, ich verstehe die Bindung kann mit WCF zahlreich sein, anstatt sich gesperrt zu HTTP, dem involvieren schweres Konstrukt und reißen ab. Aber für lose Kopplung wird alles Web-Services sein.

Gibt es andere betriebliche Unterschiede ??

Kann mir jemand zeigen, das Licht und mich aus meinem Elend ?? :))

+0

Was bedeutet "stark typisierte ASMX"? –

+0

Ja ... "stark typisierte ASMX" verwirrte mich auch. Sind sie nicht alle "stark typisiert"? –

Antwort

13

Nun, wenn Sie Ihre Diskussion nur HTTP zu reduzieren, dann gibt es noch eine ganze Reihe von Vorteilen, die WCF über ASMX hat:

  • mehr und bessere Sicherheitseinstellungen (die Fähigkeit, entweder Transport oder eine Nachricht zu verwenden, Sicherheit)
  • viel mehr Flexibilität - viel mehr kann in WCF konfiguriert oder optimiert werden, entweder in Konfigurationsdateien oder Code
  • ASMX-Webdienste können nur innerhalb von IIS existieren - IIS ist eine Muss-Anforderung; Sie können Ihre WCF-Dienste in einer Konsolenanwendung oder Windows NT Service
  • die klare Fokussierung auf mit Service- und Datenverträgen in WCF macht für eine viel saubere Schnittstelle und eine viel bessere Trennung der Sorge (besseren Code, am Ende selbst hosten)
  • Unterstützung für Dinge wie zuverlässige Messaging- und Transaktionsunterstützung (auch über HTTP)

kurz gesagt: auch wenn die Unterschiede geringer sein könnte, wenn Sie WCF zurückhalten, nur HTTP, ich denke immer noch überlegen es ist, und wenn Sie haben Sie die Wahl, heute etwas Neues zu starten, benutzen Sie WCF statt ASMX!

Rick Strahl legt es sehr schön in seinem blog post:

Ich würde behaupten, dass für alle neue Dienste WCF ist wahrscheinlich eine gute Idee, auch wenn Sie mit reinem HTTP und SOAP bleiben, weil durch Ihren Dienst mit WCF zu schaffen Sie können später entscheiden, den gleichen Dienst mit WAS zu veröffentlichen und auch den leistungsfähigeren TCP/IP-Transport bereitzustellen. Oder Sie könnten aufgefordert werden, einige der erweiterten Funktionen von WS- bieten Protokolle wie Transaktionen, Anhänge, Sitzungsverwaltung, Verschlüsselung etc. Durch WCF bauen Sie Ihren Service mit Blick auf die Zukunft, so dass Sie leicht auf andere bewegen kann Protokolle - von denen einige heute nicht einmal existieren. Sicherlich neue Technologien kommen in die Zukunft und WCF schützt Sie etwas über seine Abstraktionsschicht und gemeinsame API. *

Marc

+0

+1 danke für die Zusammenfassung und den Link! –

+0

Marc, danke für die Zusammenfassung; Ich entschuldige mich das fiel von meinem Radar – G33kKahuna

1

Der andere große Unterschied zwischen den beiden Technologien ist, dass Microsoft jetzt berücksichtigt sowohl ASMX Web Services und Der XML-Serializer ist eine "Legacy-Technologie" und behebt keine Fehler mehr.

+1

Können Sie einen Link zur Unterstützung dieser Behauptung, dass sie "Legacy" und nicht mehr unterstützt werden? – mattmc3

+0

ASMX ist eine Legacy-Technologie und sollte nicht für Neuentwicklungen verwendet werden. WCF sollte für alle Neuentwicklungen von Web-Service-Clients und -Servern verwendet werden. Ein Hinweis: Microsoft hat das [ASMX Forum] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) auf MSDN zurückgezogen. –

2

Ein weiterer Punkt für die Verbraucher des ASMX-Webdienstes, welche Plattformen den Webdienst konsumieren, wird einen SOAP-Stack implementieren müssen. Wenn Ihr Ziel ein weit reichender Konsum ist, ist WCF vorzuziehen und ermöglicht es Ihnen, den WS auf universellere Weise verfügbar zu machen.

Verwandte Themen