2015-12-06 13 views
5

私はASP.Net 4ウェブサイト、非MVCを持って、それが認証されたフォームで、私はAPIでそれを装備する必要があります。 googlageの後、それはRESTful APIが最大のアクセシビリティを与えるようです。ASP.Net 4非MVC APIルートハンドラデザイン

は、私はすでにいくつかの彗星の機能のために、場所に非同期カスタムHTTPハンドラのコードを持っています。私は、APIで非同期ハンドラを使用して、IISスレッドプールが束縛されていないことを保証し、keep performance optimalにしたいと考えています。

私は、RESTの忠実な滞在とリソースにアクセスし、変更するURIを使用しようとしたいと思います。多くの開発者が直面するであろうタスクのように思われるので、この種のものの周りにデザインガイドがありますか?

私はすべてのHTTP動詞、または、リソースタイプごとに1つのハンドラ、または汎用非同期ハンドラ由来の複数のハンドラのために発射するAPIのためのハンドラを使用するかどうかの不確かです。どんな指導も高く評価されます。あなたの状況では

答えて

2

は、私はちょうどWeb APIを利用すると思います。 integrate with WebFormsプロジェクトは簡単ですが、基本的にで、ASP.NETでRESTを行っています。この記事では表示されていませんが、the Web API lets you use Task<> in your controllersは素晴らしい、非同期です。

WebFormsプロジェクトからASP.NET MVCコンポーネントを完全に保持することを絶対に堅持している場合(完全に互換性があるにもかかわらず)、何も教えてもらえません。 MVCはちょうど私にとって逆効果です。車輪を改革するように。

+0

APIリクエストをカスタムHTTP非同期ハンドラにルーティングできますか?私は既にCometコード用にいくつかのasynch HTTPハンドラを用意しており、これらをAPIの折り畳みに持っていきたい、あるいはAPIのバージョンに置き換えたいと思っています。今週のリンクを見て、コメントを追加しますが、回答に感謝します。 –

+0

さて、私が知っている限り(そして、私を信じて、私は簡単にここで間違っているかもしれません)、直接IHttpAsyncHandlerに直接ルーティングする方法はありませんが、[非同期コントローラ](https://msdn.microsoft) .com/en-us/library/ee728598(v = vs98).aspx)をASP.NET MVCで使用すると、同様に動作します。 。 – Alex

+0

タスクメソッドは、Cometを動作させるのに十分かもしれません。データを待っている間、私はタスクを完了しません。クライアントに行くためにデータが到着したら、タスクを完了してクライアントにプッシュし、タイムアウトに達するとデータなしのタスクを完了します。私はいくつかの実験をしています... –