2012-04-16 7 views
15

Ich habe eine Anwendung, die ich baue, und im Moment habe ich einige Webdienste mit ASMX erstellt. Am Ende wird die Anwendung auf azurblau bereitgestellt. Die Webdienste sind wirklich einfach, da sie nur eine Klasse im AppCode-Ordner aufrufen, der die gesamte Arbeit erledigt.asmx zu WCF oder Web API

Wird es besser/einfacher/schneller/leistungsfähiger sein, meine Web-Services in WCF oder Web-API zu verschieben?

Vielen Dank für Ihre Vorschläge.

PS: Ich möchte hinzufügen, dass die Webdienste in HTTPS arbeiten müssen. Im Moment sind sie auf HTTP, weil ich im Entwicklungsmodus bin.

+1

Ich stimme für ServiceStack - http://www.servicestack.net – Phill

Antwort

18

One-Liner: Wenn Sie bereits einen Arbeitscode haben und es riskant ist, ihn auf eine andere Technologie zu verschieben, bleiben Sie mit dem Arbeitscode.

Hängt ab, wer antwortet.

Die Web-API umfasst HTTP und bietet Flexibilität, die mit ASMX und WCF nicht möglich ist. Wenn Sie sich für HTTP, Content-Negotiation, Medientypen interessieren, müssen Sie Ihren Service von jedem Client (einschließlich AJAX) und dann von der Web-API aus aufrufen.

Wenn Sie WS * -Sicherheitsstandards (z. B. mit X509-Zertifikaten, ADFS usw.) verwenden müssen, ändern Sie möglicherweise Ihre Bindung, dienen Sie verschiedenen Clients mit verschiedenen Bindungen, Erweiterbarkeit usw. WCF verwenden.

Wenn Sie bereits einen funktionierenden Code haben und alles, was Sie interessieren, ist RPC und Ihre Kunden werden immer ASMX verwenden und dann bei ASMX bleiben.

Leistung

Keine Benchmark aber mein Bauchgefühl, in absteigender Reihenfolge: Web-API, ASMX, WCF

Einfachere

In absteigender Reihenfolge: ASMX (da Sie es wissen), Web-API, WCF

Schnellere Entwicklung

Wenn Sie sie alle, Web-API und ASMX wissen dann WCF


PS: Es ist gut, neue Technologien zu erlernen. So wie die Dinge laufen (und da Sie bereits zu Azure wechseln), ist es wichtig, in neue Technologien zu investieren.

+0

Hallo! Die WS arbeiten in ASMX, weil sie sich in der Entwicklung befinden. Ich möchte aus ASMX ausziehen. Danke für die Sicherheitsüberlegungen, die Sie erwähnt haben; Ich muss sie in HTTPS arbeiten lassen. – frenchie

+1

@Frenchie in diesem Fall würde ich für Web-API gehen. – Aliostad

+0

ASMX-Dienst funktioniert gut über HTTPS auf Azure. Sie müssen nur einen Endpunkt hinzufügen und ihn Ihrem Zertifikat zuweisen. Ich stimme nicht für die Verwendung von ASMX in der Produktion, sondern nur um Sie wissen zu lassen, dass es funktioniert. –

Verwandte Themen