2013-02-04 9 views
10

Ich dachte,Web-API-Leistung?

Die WebApi zusammen mit routing mechanism Arbeiten in einer solchen Art und Weise, dass es die liest http verb (GET POST etc ...) und sucht dann nach abgestimmte Methodennamen/Parameter:

Zum Beispiel:

  • Wenn es GET und die URI ist api/Customers/5:

    • Methode soll mit Get

    • starten, wenn es ID so eine Methode suchen, die int als Parameter akzeptiert.

    • usw. (es gibt mehr Regeln).

Ich glaube, vor allem sie es mithilfe von Reflektion tat.

Frage:

Ist es nicht ein Performance-Einbußen, für jeden URI Anfrage - alle diese Daten zu suchen, nur ein Verfahren zu befestigen?

Wo könnte ich leicht eine sehr kurze Zeichenfolge von einem Client senden, die auf der Methode auf der Serverseite implizieren wird?

Warum nicht so einfach? Ok, wir wollen http Verben als Bedeutung verwenden. OK. aber so viele Operationen ein Verfahren nur ausführen

Beispiel # 1

get api/Customers/5

könnte

a.ashx?m=gc&id=5 (method=GetCustomer & id=5)

Beispiel # 2

put api/Customers/5?v=123

konnte

a.ashx?m=uc&id=5?v=123' (method=UpdateCustomer & id=5 & value=123)

mein sein ist noch kürzer.

Versteh mich nicht falsch. Ich glaube, dass diese API von sehr klugen Leuten gemacht wurde, die wussten, wovon sie redeten.

Ich will nur wissen, was ich vermisse.

+1

, wenn es Geschwindigkeit, die Sie suchen, würde ich sehr empfehlen, dass Sie einen Blick auf [** ServiceStack **] (http: //www.servicestack .net /) ... Ich habe und benutzte WebApi nie wieder :) – balexandre

+1

@balexandre Ich frage mich nur, was alle über diese API sprechen ... Ich habe es gestern versucht, es ist cool. aber hey, warum nicht einfach? Ok, wir wollen http Verben als Meinning verwenden. OK. aber so viele Operationen, nur um eine Methode auszuführen? –

+0

Ich bevorzuge sogar WCF Webservices über diese neue Web API –

Antwort

13

Web api hat viele Optionen, die Sie nicht mit HTTP-Handler, wenn Sie es nicht codieren Liste: http://www.asp.net/whitepapers/mvc4-release-notes#_Toc317096197

  • OData Unterstützung (via Abfragbare Attribut)
  • Content Negotiation
  • Filter
  • Modell Bindung und Validierung
  • Fähigkeit zur Selbst Host außerhalb des IIS
  • Link-Generierung zu verwandten Ressourcen, die Routing-Regeln
  • Volle Unterstützung für Routen/Routing
  • Fähigkeit, benutzerdefinierte enthält Hilfe und Testseiten IApiExplorer

Leistungsvergleich Httphandler vs WebAPI mit erstellen: http://www.west-wind.com/weblog/posts/2012/Sep/04/ASPNET-Frameworks-and-Raw-Throughput-Performance

Wie Sie müssen immer die Technologie wählen, die am besten zu Ihnen passt, wenn Sie Leistung mit Http Handler wollen. Wenn Sie Flexibilität und Ruhe wünschen, gehen Sie mit Web-API. Vielleicht möchten Sie sich ausruhen, wenn Sie Web-Dienste, die andere konsumieren werden

+0

Wenn Sie fragen, ob Sie die Web-API von Web Forms verwenden können, lautet die Antwort ja. Werfen Sie einen Blick: http://blogs.msdn.com/b/henrikn/archive/2012/02/23/using-asp-net-web-api-with-asp-net-web-forms.aspx –

+0

Danke. Das war nicht meine Frage. F: Kann ich die in den Webformularen genannten Funktionen mit dem heruntergeladenen MVC-Paket verwenden? –

+0

Ich habe nicht alle von ihnen verwendet, aber ich denke, dass Sie alle verwenden können. –