web-dev-qa-db-ja.com

NancyFxを使用する利点は?

NancyFxと呼ばれるHTTP呼び出しを行うための別のフレームワークがあります。私の質問は、それを使用する利点は何ですか。私はドキュメントを簡単に見ていた:

https://github.com/NancyFx/Nancy/wiki/Documentation

そして、私はこれを使用したいので、顕著な機能がないように見えます。 WebHttpよりもそれを使用する利点は何ですか?

PS:「スーパーデュパーハッピーパス」を繰り返し繰り返す奇妙なフレーズについて読み続けています。この「スーパーデュパーハッピーパス」以外に何かありますか?実際の機能は実装されていますか?

34
Jaggu

ラムダを使用して相対パス、引数、および応答の実装を識別する「ルート」(MVCの意味)を定義するための別のアプローチを提供しているようです。

最終的に、フレームワークの主な利点は、その表現力です。 ASP.NET MVCでは、RouteTableはglobal.asaxにあり、実装はControlにあります。 NancyFxでは、これが一般的なパターンのようです。

Action["/path"] = args => { return your_implementation_here; }

実装例:

Get["/products"] = id => { return GetRepository().Products.Single( q => q.Id == id); };

説明:引数「Id」を持つ相対エンドポイント「/ products」へのHTTP Getは、Id引数が製品のIDと一致するリポジトリから単一の製品を返します。

表現力豊かで簡潔。

45
Glenn Ferrie

免責事項:私はNancyFxの支持者ではありません:)
プロジェクトのREST)部分について、NancyFxとASP.NET Web APIのどちらを使用するかを評価中です。

GlennFerrieLiveで既に言及されているシンプルさと表現力(それ自体に価値があると思います)を別にすれば、私はもう2、3のニースのビットを把握したと思います。

  1. 操作の実行は簡単ですbeforeおよびafter APIリクエスト処理Aspect Orientedのような方法で.

  2. デフォルトでは、フレームワークは受け入れられた返される型を処理するため、JSON、XMLなどの出力を適切に変換します...

  3. リクエストを実装するラムダは、実際のfilledデータを返しませんが、クエリの形式のままです。その後、クエリを実際に実行し、DBにアクセスし、実際のデータを返す前に、フィルタリング、並べ替え、およびその他の操作を簡単に追加できます。

  4. 彼らは何らかの方法でHttpRequestをラップし、開発者がそれと同等のものを利用できるようにしましたが、この新しいオブジェクトが注入され、もちろんモックで置き換えることができるという違いがあります。

たぶんそれらのいくつか(すべて?)は既にASP.NET Web APIで利用可能であり、同じように簡単に、私は確実に知りません。
HTH

18
superjos