2 Stimmen

ASMX gegen WCF

Ich brauche einige Hinweise zu diesem Thema; vielleicht übersehe ich das Offensichtliche.

Ich sehe keinen Unterschied zwischen WCF, das an HTTP gebunden ist, und stark typisiertem Webservice. Warum sollte dies anders sein? Ich stimme zu, dass es einige Nuancen in der Entwicklung gibt, insbesondere in Bezug auf den XmlSerializer in ASMX vs. WCF und eine Fülle von Microsoft-Jargons. Abgesehen davon, sehe ich nur Parallelen

DatenVertrag=WSDL-Typ ServiceContract=WSDL (auch bekannt als Dienstdefinition) OperationContract=WebMethod

Operationally, ich verstehe die Bindung kann zahlreiche mit WCF statt immer gesperrt, um HTTP, die schwere Aufbau und Abbau beinhalten kann sein. Aber für lose Kopplung wird es alle Webdienste sein.

Gibt es weitere betriebliche Unterschiede?

Kann mir jemand das Licht zeigen und mich von meinem Elend befreien? :))

0 Stimmen

Was bedeutet "stark typisiertes ASMX"?

0 Stimmen

Ja... "strong-typed ASMX" hat mich auch verblüfft. Sind sie nicht alle "strongly-typed"?

13voto

marc_s Punkte 701497

Nun, wenn Sie Ihre Diskussion auf HTTP beschränken, dann gibt es immer noch eine Reihe von Vorteilen, die WCF gegenüber ASMX hat:

  • mehr und bessere Sicherheitseinstellungen (Möglichkeit, entweder Transport- oder Nachrichtensicherheit zu verwenden)
  • viel mehr Flexibilität - viel mehr kann in WCF konfiguriert und optimiert werden, entweder in Konfigurationsdateien oder im Code
  • ASMX-Webdienste können nur innerhalb von IIS existieren - IIS ist eine unabdingbare Voraussetzung; Sie können Ihre WCF-Dienste selbst in einer Konsolenanwendung oder einem Windows NT-Dienst hosten.
  • der klare Fokus auf die Verwendung von Service- und Datenverträgen in WCF sorgt für eine viel sauberere Schnittstelle und eine viel bessere Trennung von Belangen (letztendlich besserer Code)
  • Unterstützung für Dinge wie zuverlässige Nachrichtenübermittlung und Transaktionsunterstützung (sogar über HTTP)

Kurz gesagt: Auch wenn die Unterschiede geringer sind, wenn man WCF nur auf HTTP beschränkt, halte ich es immer noch für überlegen, und wenn Sie die Wahl haben, heute etwas Neues zu beginnen, verwenden Sie auf jeden Fall WCF statt ASMX!

Rick Strahl drückt es sehr schön aus in seinem Blogbeitrag :

Ich würde behaupten, dass die Verwendung von WCF für alle neuen Dienste wahrscheinlich eine gute Idee ist, selbst wenn Sie bei reinem HTTP und SOAP bleiben, denn wenn Sie Ihren Dienst mit WCF erstellen, können Sie später entscheiden, denselben Dienst mit WAS zu veröffentlichen und auch den leistungsfähigeren TCP/IP-Transport bereitzustellen. Oder Sie könnten gebeten werden, einige der erweiterten Funktionen von WS- Protokolle wie Transaktionen, Anhänge, Sitzungsmanagement, Verschlüsselung usw. Durch die Verwendung von WCF bauen Sie Ihren Dienst mit Blick auf die Zukunft auf, so dass Sie problemlos zu anderen Protokollen übergehen können, von denen einige heute vielleicht noch gar nicht existieren. Sicherlich werden in Zukunft neue Technologien hinzukommen, und WCF bietet Ihnen durch seine Abstraktionsschicht und die gemeinsame API einen gewissen Schutz.

Marc

0 Stimmen

Marc, danke für die Zusammenfassung; ich entschuldige mich dafür, dass ich das nicht mehr auf dem Schirm hatte.

2voto

Christian Loris Punkte 4094

Ein weiterer Punkt für die Nutzer des ASMX-Webdienstes: Welche Plattformen auch immer den Webdienst nutzen werden, müssen einen SOAP-Stack implementieren. Wenn Sie eine weitreichende Nutzung anstreben, ist WCF vorzuziehen und ermöglicht es Ihnen, den WS auf universellere Weise darzustellen.

1voto

John Saunders Punkte 159011

Der andere große Unterschied zwischen den beiden Technologien besteht darin, dass Microsoft sowohl ASMX Web Services als auch XML Serializer jetzt als "Legacy-Technologie" betrachtet und keine Fehler mehr in ihnen behebt.

1 Stimmen

Können Sie einen Link angeben, der diese Behauptung stützt, dass sie "veraltet" sind und nicht mehr unterstützt werden?

0 Stimmen

ASMX ist eine veraltete Technologie und sollte nicht für Neuentwicklungen verwendet werden. WCF sollte für alle neuen Entwicklungen von Webdienst-Clients und -Servern verwendet werden. Ein Hinweis: Microsoft hat die ASMX-Forum auf MSDN.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X