2012-04-13 13 views
2

Ich brauche eine gewisse Logik lokal als Dienst zu belichten ...einfache leichten Service-Layer

Die Objekten gesendet/empfangen zu/von der Logik ziemlich groß ist, ist die Information, empfindlich und die Logik muß nie nach außen freigelegt werden Es ist nur für den lokalen Server geeignet.

Einige MVC-Entwickler argumentieren, dass sie mit einem WEB-API-Dienst verfügbar gemacht werden sollte - lohnt es sich, dies zu implementieren?

Ihr Argument ist, dass mit Web-API es viel stärker in MVC und macht Ergebnis Anzeige viel einfacher (ich weiß nichts über diese Seite der Dinge), meine Angst ist, dass wir komplizierte Genehmigungs- und Opfer Leistung haben zu implementieren.

Gibt es keine bessere, leichtere Serviceebene, die zu diesem Szenario passt? WCF-Named Pipes erscheinen mir logisch oder verweisen einfach als Klassenbibliothek - ja, die Config-Dateien sind ein Schmerz, aber nicht das Ende der Welt. Im Grunde wollen wir nur eine Logik vor Ort anbieten.

Antwort

4

Web-API ist Microsoft besten High-Level HTTP-Implementierung so weit. Als solches umfasst es HTTP wie kein anderes und erlaubt viele Flexibilitäten, die unter normalen MVC nicht möglich sind.

Funktionen wie Content-Negotiation sind wirklich wichtig für jeden Dienst, ob intern oder extern.

Aber ich würde auch sehen, dass WCF eine bessere Kohäsion bietet, da es ein reines RPC-Framework ist. Aber es ist definitiv nicht leicht. Ich habe einen Blog here, der dieses Problem diskutiert und einige Vergleiche (Shameless Plug!).

Wenn Sie nur Methoden in einer privaten Umgebung aufrufen möchten, ist WCF in Ordnung. Denken Sie jedoch daran, dass named-pipe/TCP in einigen Firewall-Bedingungen möglicherweise nicht funktioniert.

Eine andere Sache, die Sie verlieren mit Web-API ist der Vertrag. Es gibt keine WSDL im Web-API-Land - das kann gut oder schlecht sein, je nachdem, wie Sie es betrachten. Wenn Ihr Unternehmen mit Serviceverträgen sehr streng ist, ist WCF eine bessere Option.

+0

Danke für die Info, aber wenn ich dich gebeten habe, deine Farben an den Mast zu hängen, was würdest du wählen? – baileyswalk

+0

Ich * persönlich * wähle Web API, da es Änderungen besser beinhaltet und ich eine persönliche Leidenschaft für HTTP/REST habe. – Aliostad

+0

@baileyswalk Warten Sie auf weitere Kommentare für andere. Ich hoffe, dass andere auch dazu beitragen. – Aliostad

1

Aliostad hat einige wirklich gute Punkte. Ich habe nicht viel mehr hinzuzufügen als persönliche Erfahrung. Ich habe kürzlich einen Webservice mit mvc gestartet, nachdem ich einige schwerwiegende Konfigurationsprobleme mit WCF hatte, und das war lächerlich einfach. Ihre Frage erfordert eine leichte, einfache Implementierung - die Antwort ist definitiv MVC Web API über WCF in dieser Hinsicht.

1

Wenn Ihre Serviceschicht restorientiert ist, können Sie sich die servicestack ansehen.

Dieser ist sehr einfach zu implementieren, opfert Leistung nicht und ermöglicht es Ihnen, Sicherheit einfach zu implementieren, entweder mithilfe von Attributen (wie Aktionsfilter in ASP.NET mvc) oder Vererbung.

Verwandte Themen