Tut WCF heben Sie die bar oder einfach nur den Grad der Komplexität?
Ich verstehe den Wert des drei-Teil-service - /host - /client-Modell angeboten, die von WCF. Aber ist es nur mir oder scheint es, wie WCF nahm etwas ziemlich direkt und unkompliziert (die ASMX-Modell) und ein Chaos dabei heraus?
Gibt es eine alternative zu mit SvcUtil Befehlszeile Schritt zurück in der Zeit um den proxy zu generieren? Mit ASMX-Dienste Testumgebung wurde automatisch vorausgesetzt, ist es eine gute alternative, heute mit WCF?
Schätze ich, dass die WS* - Zeug ist mehr eng mit WCF und Hoffnung zu finden, einige Belohnung für das WCF gibt, aber geeze, ansonsten bin ich ratlos.
Auch, den Zustand der Bücher für die WCF ist miserabel, am besten. Juval LÖWY, eine hervorragende Autorin, geschrieben hat, ein gutes O ' Reilly Buch "Programming WCF Services" aber es nicht tun, dass viel (für mich jedenfalls) lernen jetzt an WCF. Das Buch ist Vorläufer (und ein wenig besser organisiert, aber nicht viel, wie ein tutorial) ist Michele Leroux Bustamante ist Learning WCF. Es hat gute stellen, aber ist nicht mehr im Ort und der entsprechenden Web-site ist Weg.
Haben Sie eine gute WCF-lernen-Referenzen neben nur weiter zu Google die bejebus der Dinge?
- Wenn Sie auf der Suche nach guten test-Clients für WCF-Dienste. Suchen Sie nicht weiter als msdn.microsoft.com/en-us/library/bb552364.aspx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay, hier wir gehen. Erste, Michele Leroux Bustamante Buch wurde aktualisiert und für VS2008. Die website zum Buch ist nicht verschwunden. Es ist jetzt, und es hat Tonnen von großen WCF-info. Auf dieser website bietet Sie aktualisierten code-kompatibel mit VS2008 für alle Beispiele in Ihrem Buch. Wenn Sie eine Bestellung von Amazon, erhalten Sie die Neuauflage, die aktualisiert wird.
WCF ist nicht nur Ersatz für ASMX. Sicher, es kann (und tut ganz gut) ersetzen ASMX, aber der wirkliche Vorteil ist, dass es ermöglicht, Ihre Leistungen werden selbst gehostet. Die meisten Funktionen von WSE wurde gebacken, von Anfang an. Der Rahmen ist hoch konfigurierbar, und die Fähigkeit, auf mehrere Endpunkte über mehrere Protokolle ist erstaunlich, IMO.
Während Sie immer noch die Generierung von proxy-Klassen aus dem "Add Service Reference" - option, es ist nicht notwendig. Alles, was Sie wirklich tun müssen, ist kopieren Sie Ihre ServiceContract-interface und erzählen Sie Ihren code wo finden Sie den Endpunkt für den service, und das ist es. Sie können Methoden aufrufen des service mit sehr wenig code. Mit dieser Methode haben Sie die vollständige Kontrolle über die Umsetzung. Unabhängig von der Methode Sie wählen zum generieren einer proxy-Klasse, Michele zeigt und verwendet sowohl in Ihrer ausgezeichnete Serie von webcasts zum Thema.
Michele hat Tonnen von großen material gibt, und ich empfehle Sie check-out Ihre website(s). Hier einige links, die waren unglaublich hilfreich für mich, da ich lernen mußte, WCF. Ich hoffe, dass Sie erkennen, wie stark WCF wirklich ist, und wie einfach es ist, zu implementieren. Die Lernkurve ist ein wenig steil, aber die Belohnung für Ihre Zeit-Investition sind es Wert:
Ich empfehlen, Sie sehen sich mindestens 1 von Michele-webcasts. Sie ist eine sehr effektive Moderator, und Sie ist offensichtlich unglaublich gut informiert, wenn es um die WCF. Sie hat eine große Aufgabe der Entmystifizierung, die innere Funktionsweise des WCF aus dem Boden auf.
Ich in der Regel verwenden Sie Google zu finden mein WCF-Antworten und meist finden mich auf den folgenden blogs:
Blogs mit wertvollen WCF Artikel
Andere wertvolle Artikel, die ich gefunden habe
Ich habe eine hardtime, um zu sehen, wenn ich sollte oder würde mit WCF. Warum? Weil ich der Produktivität und Einfachheit oben auf meiner Liste. Warum wurde die ASMX-Modell so erfolgreich, weil es funktionierte, und Sie erhalten es schnell zu arbeiten. Und mit VS 2005 und .NET 2.0 wsdl.exe war spuckt ziemlich nett und kompatible Dienste.
Im realen Leben sollte man haben sehr wenige Kommunikationsprotokolle in die Architektur. Dies macht es einfacher zu verwalten ist. Wenn Sie brauchen, um Zugang zu legacy-Systemen, schreiben Sie spezielle Adapter für Sie, so können Sie spielen zusammen in der schön glänzende und schöne SOA-Welt.
WCF ist viel mächtiger als ASMX-und erweitert Sie in mehrfacher Hinsicht. ASMX nur HTTP, in der Erwägung, dass WCF die Möglichkeit, mehrere Protokolle für die Kommunikation ist (zugegeben, HTTP ist immer noch so, wie die meisten Leute es verwenden, zumindest für die Dienste müssen interoperabel sein). WCF ist auch einfacher zu erweitern. Zumindest ist es möglich, um es zu erweitern in der Weise, dass ASMX kann nicht verlängert werden. "Einfach" kann das sein, stretching es. =)
Die zusätzliche Funktionalität angeboten, die von WCF überwiegt bei weitem die Komplexität fügt es, meiner Meinung nach. Ich finde auch, dass das Programmiermodell einfacher ist. DataContracts sind viel schöner, als das serialisieren von XML-Serialisierung mit öffentlichen Eigenschaften für alles, zum Beispiel. Es ist auch viel mehr deklarative Natur, das ist auch schön.
Warten.... haben Sie jemals verwenden .NET Remoting, Ursache, das ist das wahre Ding seinen zu ersetzen. .NET Remoting ist ziemlich kompliziert sich selbst. Ich finde WCF einfacher und besser angelegt.
Ich sehe es nicht oft genug erwähnen, aber Sie kann noch implementieren ist ziemlich einfach-services mit WCF, sehr ähnlich wie ASMX-Dienste. Zum Beispiel:
Haben Sie noch zu registrieren, der end-Punkt in Ihrer Website.config, aber das ist nicht so schlimm.
Beseitigung der Ausführlichkeit der getrennte Daten -, service-und operation-Verträgen geht ein langer Weg in Richtung macht WCF mehr überschaubar für mich.
VS2008 umfasst die "Add Service Reference" - Kontextmenü erstellen Sie den proxy für Sie hinter die kulissen.
Wie bereits erwähnt, WCF nicht ausschließlich als Ersatz für die ASMX-web-service-Typen, sondern stellen eine konsistente, sichere und skalierbare Methode für alle interoperablen Diensten, ob es über HTTP, tcp, named pipes oder MSMQ-Transporte.
Ich gestehe, dass ich andere Probleme mit WCF (z.B. neu schreiben, Methodensignaturen, wenn Sie einen Dienst über basicHTTP - siehe hier, aber insgesamt denke ich, dass es eine definitive imrovement
Wenn Sie mit VS2008 und erstellen eines WCF-Projekt, dann erhalten Sie automatisch eine testroutine, wenn Sie auf "ausführen/debug", und Sie können fügen Sie einen Verweis ohne svcutil.
Meine ersten Gedanken WCF waren genau die gleichen! Hier sind einige Lösungen:
WCF ist ein Ersatz für alle früheren web-service - von Microsoft-Technologien. Es auch nicht viel mehr als das, was traditionell als "web services".
WCF "web services" sind Teil einer viel breiteren Spektrum von remote-Kommunikation aktiviert über WCF. Sie erhalten einen viel höheren Grad der Flexibilität und Portabilität, die Dinge im WCF als durch traditionelle ASMX, weil WCF ist so konzipiert, von Grund auf, auf eine Zusammenfassung der verschiedenen verteilten Programmierung-Infrastrukturen von Microsoft angeboten. Einen Endpunkt in WCF kommuniziert werden können ebenso leicht über die SOAP/XML-wie kann es über TCP/binary und ändern dieses medium ist einfach eine Konfigurations-Datei mod. In der Theorie, dies reduziert die Menge an code benötigt, wenn die Portierung oder geänderte Bedürfnisse, Ziele, usw.
ASMX is older than WCF, and anything ASMX can do so can WCF (and more)
. Im Grunde können Sie sehen, WCF versucht, logisch-Gruppe zusammen, alle die verschiedenen Wege, um zwei apps zur Kommunikation in der Microsoft-Welt; ASMX-war nur eine von diesen vielen Möglichkeiten und so ist nun zusammengefasst unter dem WCF Dach der Fähigkeiten.Web-Dienste zugegriffen werden kann nur über HTTP & es funktioniert in stateless Umgebung, wo WCF ist flexibel einsetzbar, da seine Dienste gehostet werden kann, in verschiedenen Arten von Anwendungen. Häufige Szenarien für das hosten von WCF-services IIS,WAR, Self-hosting, Managed Windows Service.
Der wesentliche Unterschied ist, dass Web-Services Verwendung von XmlSerializer. Aber WCF Verwendet DataContractSerializer was ist besser in der Leistung als im Vergleich zu XmlSerializer.
In welchen Szenarien müssen WCF verwendet werden
Funktionen der WCF
Quelle: wichtigste Quelle für text
MSDN? Ich in der Regel tun ziemlich gut mit der Bibliothek auf sich selbst, und ich in der Regel erwarten, um wertvolle Gegenstände die es gibt.
In Bezug auf was es bietet, ich denke, die Antwort liegt auf Kompatibilität. Die ASMX-Dienste waren ziemlich Microsofty. Nicht zu sagen, dass Sie nicht versuchen, um die Kompatibilität mit anderen Verbrauchern; aber das Modell war nicht passend gemacht viel neben ASP.NET web-Seiten und einige andere benutzerdefinierte Microsoft die Verbraucher. In der Erwägung, dass WCF, wegen seiner Architektur, die es ermöglicht Ihrem service sehr open-standard-basierte Endpunkte, z.B. REST, JSON, etc. zusätzlich zu den üblichen SEIFE. Andere Leute werden wahrscheinlich haben eine viel einfachere Zeit verbrauchen Ihre WCF-service als Ihre ASMX ein.
(Dies ist alles im Grunde abgeleitet aus der vergleichenden MSDN zu Lesen, so dass jemand, der mehr weiß, sollte sich frei fühlen, mich zu korrigieren.)
WCF sollte nicht gedacht werden als ein Ersatz für ASMX. Zu urteilen, wie es positioniert ist und wie es verwendet wird intern von Microsoft, es ist wirklich eine grundlegende Architektur-Stück, das für jede Art der grenzüberschreitenden Kommunikation.
Ich glaube, dass WCF wirklich Fortschritte ASMX-web-services-Implementierung in vielerlei Hinsicht. Erstens bietet es eine sehr nette layered object model, hilft verbergen die intrinsische Komplexität von verteilten Anwendungen.
Zweitens können Sie mehr als request-replay-messaging-Muster, einschließlich asynchroner Benachrichtigungen vom server zum client (unmöglich mit reinem HTTP), und drittens die Abstraktion, Weg der zugrunde liegenden Transportprotokoll von XML-messaging, und damit aus Unterstützung für HTTP, HTTPS, TCP und anderen. Abwärtskompatibilität mit "1. generation" von web-services ist auch ein plus.
WCF verwendet XML-standard als interne Darstellung. Dies könnte betrachtet werden, als Vorteil oder Nachteil, vor allem mit der wachsenden Popularität "Fett-freie alternativen zu XML" wie JSON.
Die schwierigen Dinge, die ich finden-mit WCF verwalten der Konfigurationen für clients und Server, und die Fehlersuche, die nicht so nett fehlerhaften Zustand Ausnahmen.
Es wäre toll, wenn jemand irgendwelche Verknüpfungen oder Tipps für diese.
Ich finde, dass ist ein Schmerz; in der, die ich habe .NET, die an beiden enden die gleichen "Vertrag" dlls geladen, die an beiden enden etc. Aber dann muss ich das Chaos über eine Reihe von details wie "KnownType -" Attribute.
WCF auch standardmäßig nur lassen 1 oder 2 clients eine Verbindung zu einem Dienst, bis Sie ändern, viel Konfiguration. Ändern der Konfiguration von code ist nicht einfach, Versand viele comfig-Dateien ist nicht eine option, da es zu hart zum Zusammenführen von änderungen in eine beliebige änderungen, die ein Kunde haben kann, bei der ein upgrade (auch wir nicht wollen, dass die Kunden spielen mit WCF-Einstellungen!)
.NET remoting eher nur Arbeit die meiste Zeit.
Ich denke, Sie versuchen zu vorgeben, dass .NET .NET-Objekt-basierte Kommunikation ist das gleiche wie das senden wenig, so dass der Text (xml) auf einem unbekannten system, war ein Schritt zu weit.
(Die wenigen Male, die wir verwendet haben, WCF für die Kommunikation mit einem Java-system haben wir festgestellt, dass die XSD -, die das java-system hat sich nicht mit dem übereinstimmen, was XML-wollte Sie sowieso, also musste hand-code eine Menge von XML-mappings.)