Frage

Ich habe in der Vergangenheit ein bisschen Arbeit in der Vergangenheit mit WCF Webapi gemacht und hat wirklich viele Funktionen gemocht, ich spiele gerade mit ASP.NET-Web-API, und es scheint völlig anders (dh vollständig entfernt)WCF).

weiß jemand, welche Funktionen von WCF-Webapi in ASP.NET 4-Web-API enthalten sind?

War es hilfreich?

Lösung

Ich habe etwas mehr gelesen und habe ein paar Seiten von MS-Leute dazu gefunden:

http://wcf.codeplex.com/wikipage?title=how%20WCF%20Web%20API%20TO%20Asp.net%20Web%20API :

Die WCF-Web-API-Abstraktionen-Map in ASP.NET-Web-API grob wie folgt

WCF-Web-API -> ASP.NET-Web-API

    .
  • Service -> Web-API-Controller
  • operation -> action
  • Servicevertrag -> Nicht anwendbar
  • Endpoint -> Nicht anwendbar
  • URI-Vorlagen -> ASP.NET-Routing
  • Nachrichtenhandler -> Gleiche
  • formatiers -> gleiche
  • Bedienhandler -> Filter, Modellbinder

    und http://wcf.codeplex.com/diskussions/319671

    Der integrierte Stapel unterstützt die folgenden Funktionen:

      .
    • Modernes HTTP-Programmiermodell
    • vollständige Unterstützung für ASP.NET-Routing
    • Inhaltsverhandlungen und benutzerdefinierte Formatierer
    • Modellbindung und Validierung
    • Filter
    • Abfragezusammensetzung
    • einfach zu einheitstest
    • Verbesserte Inversion der Kontrolle (IOC) über Abhängigkeitsresolver
    • codebasierte Konfiguration
    • self-host

Andere Tipps

Von dem, was ich gelernt habe, hat Microsoft Microsoft ein wenig benannt, um Verwirrung zu nennen.

Ich gehe davon aus, dass Sie wissen, worum es bei WCF geht, über diesen großen Rahmen, der auf XML aufgebaut ist, um den Benutzer verteilte Dienste mit einer Vielzahl von Technologien zu erstellen (von Seife bis zum Ausruhen auf MSMQ usw.). .

Es ist so hart wie die Hölle, um (für mich mindestens) zu verwenden, und erfordert viel Bootstrap, um es zu arbeiten, und schließlich haben sie dies realisiert und begonnen, eine Standardkonfiguration für einfache HTTP-Services bereitzustellen (WCF Rest Starter Kit Jeder?). ASP.NET MVC ging an Schwung und einige der Funktionen, die er bereitgestellte (beispielsweise automatische Argumente, die zum Beispiel passen), begannen in WCF aufzuzeigen.

Jetzt ist das die Situation:

Ankündigung: WCF Web API ist jetzt ASP.NET-Web-API! ASP.NET-Web-API. Veröffentlicht mit ASP.NET MVC 4 Beta. Die WCF-Web-API- und WCF-Unterstützung für Jquery-Inhalte auf dieser Website wurde bis Ende 2012 entfernt.

http://wcf.codeplex.com/wikipage? Titel=% 20Started:% 20Building% 20A% 20Simple% 20WEB% 20API

und das ist besser imho.

Ich bin mir ziemlich sicher, dass es möglich sein sollte, ASP.NET MVC4-Webapi auf dem WCF-Webapi zu hosten (wenn Sie dies jemals benötigen), aber ich kann keine Dokumentation finden, die mich rechts beweisen können (oder falsch).

update (kann nicht als Kommentar passen): Warten Sie, es gibt eine enorme, zwischen dem "Verschieben einer Teilmenge der Kommunikationstechnologie aus Bibliothek / Framework zu einem anderen" und "Ersetzen von WCF". Ich persönlich glaube, dass WCF für ein Arten von Kommunikationskonzept konzipiert wurde, und es hat ein ziemlich cooles Design, aber das verteilte Computing ist etwas zu neuen (und einfacheren) Lösungen (und sehen Sie die feature-reichen SOAP gegen die magere E-flexible Ruhe, Obwohl viele Menschen immer noch auf RPC-Wege verwenden), und ich denke, dass diese Art von Programmiermuster besser in die MVC-Architektur passen als der WCF eins. Anstrengungen wurden auf der Gestaltung einer einfachen Art des Aufbaus / Konsumens von Web-Services auf der TOP auf der WCF gestellt, aber sie haben schließlich herausgefunden, dass es nicht die richtige Lösung war.

Um sich nicht zu erwähnen, dass viele Entwickler jetzt ASP.NET MVC verwenden und REST-Web-Services für ihre Web-App ausführen möchten, ist das Messen mit WCF für diese Art von Dingen oft übertrieben, und ich habe das auf meiner eigenen Haut erlebt.

Ich denke, der Routing-Mechanismus ist großartig und der richtige Weg, und wenn Sie genau hinschauen, enthielten sie einen Teil davon (mit unterschiedlichen Namen und Typen, aber das Muster war dort) in der WCF. Ja, ich denke, das, wenn Frau nicht diesen Teil von WCF wir nicht abweisen, sollte wir es tun. Um streng zu antworten, nein, ich glaube nicht, dass Sie jemals WebGet / Webinvoke in ASP.NET MVC * finden, es passt einfach nicht rein.

yeah self-host ist wahrscheinlich das einzige Bit von WCF, das jetzt in ASP.NET MVC4 enthalten ist.

Es sieht so aus, als ob WCF selbst irgendwie sterben ist oder zumindest viel weniger wichtig wird, dann sollte es sein, weshalb sie auch viel weniger Entwicklungsanstrengungen hat, die in sein Feature-Set eingesetzt werden. Neue Funktionen in WCF selbst sind mehr Kosmetik.

WCF wurde als Transport- / Protokoll unabhängiger Weg für die Prozesstechnik konzipiert. Sogar die Idee war eine unabhängige Abstraktion, die meistens auf dem Seifenstapel baut. Wenn WCF 3.5 Unterstützung für den Rest brachte, wurde es meistens gehackt, da der Rest alles über Transportabhängigkeit ist. Die Verwendung des Transportunabhängigen API zur Unterstützung der Unterprozesskommunikation, die direkt mit der direkten Verwendung von Transportfunktionen erfolgt, erschien unbequem. Als Ergebnis veröffentlicht das WCF Rest-API-Starter-Kit, der niemals RTM erreichte, sondern eine Vorschau auf Funktionen, die später in der WCF 4 enthalten war, und schließlich in .NET 4.5- oder WCF-Web-API. Da der Rest transportabhängig ist und derzeit nur mit HTTP verwendet wird (auch ist es theoretisch möglich, ein anderes Transportprotokoll zu verwenden).

WCF-Web-API wird durch ASP.NET-Web-API ersetzt, die Funktionen von der WCF-Web-API nimmt und sie mit den Funktionen von Aspnet MVC zusammenführen. ASP.NET-Web-API ist ein neuer Rahmen (02/2012) Framework für den Baugeln und Verbrauch von HTTP-Services und einer Plattform für den erholsamen Service.

Obwohl es nicht in der ursprünglichen Frage nicht erwähnenswert ist, dass WCF lebendig ist und es ist gut, und ihre Restunterstützung bleibt nützlich, wenn Sie vorhandene Seife (WS- *) -Dienste haben, die Sie unterstützen müssen, aber REUD, um mehr Kunden zu erreichen.

Referenz

    .
  1. CodePlex: WCF Web API ist jetzt ASP.NET-Web-API
  2. Codplex: Daniel Roth in der Zukunft von WCF
  3. chanel9: dan roth auf der neuen asp.net web api

Der folgende Auszug gefunden auf diese MSDN-Seite fasst dieses Dilemma gut zusammen.

Verwenden Sie WCF, um zuverlässige, sichere Webdienste zu erstellen, die über eine Vielzahl von Transporten zugänglich sind.Verwenden Sie ASP.NET-Web-API, um HTTP-basierte Dienste zu erstellen, die von einer Vielzahl von Clients erreichbar sind.Verwenden Sie ASP.NET-Web-API, wenn Sie neue REST-STYLE-Dienste erstellen und entwerfen. Obwohl WCF eine Unterstützung für das Schreiben von REST-Styles-Services bietet, ist die Unterstützung für den Rest in ASP.NET-Web-API kompletter und alle zukünftigen REST-Merkmalsverbesserungen werden in der ASP.NET-Web-API erstellt. Wenn SieHaben Sie einen vorhandenen WCF-Dienst und Sie möchten zusätzliche Restendpunkte aussetzen, verwenden Sie WCF und das WEBHTTPBINDING.

Hier ist ein guter Artikel zum Web-Service, WCF und Web-API http://goo.gl/t29a5b

web service

    .
  • Basierend auf Seife und Return XML-Daten
  • Nur HTTP-Protokoll unterstützen. Es unterstützt nur das HTTP-Protokoll.
  • vom Client verbraucht, der XML SOAP-Dienste verstehen kann.
  • kann auf IIS gehostet werden. Es kann nur auf IIS gehostet werden.
  • leicht zu lernen und zu verstehen.

    wcf

      .
    • Basierend auf Seife und Return XML-Daten. SOAP ist Schwere Vergleichen, dann auch JSON und seine Overhead über Netzwerk.
    • Enhanced-Version von Web Services unterstützt mehrere Protokolle wie TCP, HTTP, HTTPS, benannte Rohre, MSMQ über die Konfiguration.
    • mehr zuverlässiger, wenn sowohl Client als auch Server .NET haben.
    • Die Implementierung und Konfiguration ist komplex
    • vom Client verbraucht, der XML SOAP-Dienste verstehen kann.
    • Selbsthosting, IIS und Verwenden von Windows-Diensten.

      web api (web api 2.0)

        .
      • Design speziell für den Aufbau von http erholsamen Diensten auf .NET Framework.
      • Web-API leicht lesbar und praktisch als JSON.
      • Unterstütze alle Funktionen von HTTP-ähnlichen URLs, Anforderung / Antwort, Header, Caching und Versionierung.
      • Web-API-Unterstützung Viele HTTP-Verben wie Erhalten, Post, Put, Löschen usw.
      • Web API ist statell.
      • Web-API unterstützt MVC-Funktionen (Controller, Aktionsergebnisse, Routing, Filter, Modellbinder, IOC-Container oder Abhängigkeitseinspritzung)
      • Web-API kann selbsthostisch sein, in der Anwendung und in IIS gehostet werden.
      • owin (Open Web Interface für .NET) wird zum Selbsthosting verwendet.

ASP.NET-Web-API ist leichter und stehende Unterstützung eingebaut.Es ist eher für mobile Anwendungen geeignet.WCF ist mit mehr Optionen aufgebläht.Es hängt von der Komplexität des Systems ab, um eines davon auszuwählen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top