2009-07-22 8 views

Antwort

8

WCF ist viel flexibler:

  • kann über HTTP verwendet werden (wie Legacy-ASMX)
  • aber auch: kann über NetTcp, MSMQ, wsHttp verwendet werden und so weiter

  • WCF-Dienste können in IIS gehostet werden (wie Legacy-ASMX)

  • , aber WCF-Dienste können auch in einer Konsolenanwendung, Windows NT-Dienst usw. selbst gehostet werden.

  • WCF bietet viel mehr Sicherheitsfunktionen und Sicherheitsstufen als ASMX (Nachrichtensicherheit etc.)

  • WCF bietet Dinge wie Reliable Messaging, Transaktionsunterstützung usw.

In WCF, fast alles ist konfigurierbar in einer Konfigurationsdatei - viel mehr als mit ASMX.

Ich habe keine vorgefertigten Dokumente zur Hand, die das beschreiben - aber das ist wirklich die Essenz, würde ich sagen.

Marc

PS: Nicht sicher, ob dies ein etwas Nützliches für Sie enthalten würde:

http://whitepapers.techrepublic.com/abstract.aspx?kw=remoting&docid=270830

PPS: Sie würden denken dass Microsoft Haufen dieser weißen Papiere haben würde zu überzeugen Leute - aber nein ..... :-)

+0

Danke! Irgendein Dokument zu empfehlen? Ich überrede andere, brauche also Dokumente, die ich nicht selbst geschrieben habe. :-) – George2

+0

Tut mir leid Marc, ich habe kein zugehöriges herunterladbares Dokument gefunden. – George2

+0

Marc, wenn wir WCF nicht in IIS hosten, ist Vorteil? – George2

4

George,

Ich habe keine solchen Dokumente zur Hand, weil es so offensichtlich ist, warum WCF besser ist.

Zuerst wegen Microsoft: ASMX Web Services are a “Legacy Technology”. Sie geben auch öffentlich an, dass sie keine Änderungen an WSDL.EXE und anderen Teilen der ASMX-Technologie vornehmen werden. Wir haben in dieser Branche genug Probleme mit Legacy-Technologie und -Anwendungen - es macht keinen Sinn, heute einen neuen Legacy-Code zu erstellen.

Zweitens abstrahiert WCF die Konzepte, die Teil von ASMX, Remoting und WSE sind. "Alles, was sie tun können, kann WCF besser machen".

+0

Cool, John! :-) – George2

+0

John, wenn wir WCF nicht in IIS hosten, ist Vorteil? – George2

+1

Dann ist der Vorteil, dass Sie es hosten können, wo Sie es hosten möchten. Sie können es beispielsweise in einem Windows-Dienst oder sogar in einer WinForms-Clientanwendung hosten. Damit können zwei Client-Anwendungen miteinander kommunizieren. Beachten Sie außerdem, dass IIS nur HTTP enthält. Es gibt einen neuen Windows-Prozessaktivierungsdienst, der einen WCF-Dienst über ein beliebiges Protokoll aktivieren kann (z. B. Binär über Raw-TCP/IP). –

3

Um es einfach zu sagen, Sie Frage ist das Äquivalent von "Warum ist .NET besser als VB6". Wenn genügend Zeit zur Verfügung steht, wird jede Legacy-Technologie zu einer Wartung/finanziellen Belastung.

Wie Sie über Sicherheit und Leistung insbesondere gefragt haben, würde ich sagen "es kommt darauf an".Es ist möglich, beide Optionen zu sichern, und die Leistung hängt weitgehend von dem Code ab, den Sie schreiben. Ein Pluspunkt der WCF-Leistung ist, dass Sie sie nicht innerhalb von IIS hosten müssen - Sie haben also mehr Optionen und Flexibilität, um sie leistungsfähiger zu machen.

+0

Schläuche ohne IIS hat den Vorteil? – George2

+1

Ich finde es fast bemerkenswert schneller, es als Dienst unter Verwendung von TCP zu hosten. – Fenton

1

WCF ist ein hochgradig konfigurierbarer Stack mit nahezu unendlichen Kombinationen aus Serialisierung, Sicherheit, Transport usw. Für Ihre spezielle Frage implementiert WCF WS- * Protokolle, einschließlich Transport- und Nachrichtensicherheit. WCF Datacontract Serializer ist wesentlich schneller als Xmlserialzer in Acmx verwendet. Der Net.Tcp-Transport ist auch leistungsfähiger als HTTP-basierter Transport.

ich hier einen Leistungsvergleich gefunden http://msdn.microsoft.com/en-us/library/bb310550.aspx

+0

Schöne Sachen, danke! – George2