使用NancyFx的好处?

时间:2012-07-11 03:24:09

标签: c# asp.net rest nancy webhttp

还有另一个用于进行名为NancyFx的HTTP调用的框架。我的问题是使用它有什么好处。我快速查看了文档:

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

并且看起来没有突出的功能,因此我想使用它。通过WebHttp使用它有什么好处?

P.S:我一直在阅读一些奇怪的短语,一遍又一遍地重复着“超级快乐的道路”。除了这种“超级快乐的道路”之外还有什么东西吗?是否实现了任何真正的功能?

2 个答案:

答案 0 :(得分:45)

它似乎提供了一种不同的方法来定义“路由”(在MVC意义上),使用lambdas来识别相对路径,参数和响应的实现。

最终,框架的主要好处是它的表现力。在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); };

说明:HTTP获取参数为“Id”的相对端点“/ products”将从存储库返回单个产品,其中Id参数与产品的Id匹配。

表达和简洁。

答案 1 :(得分:18)

免责声明:我不是NancyFx的支持者:) 我正在评估是否应该将NancyFx或ASP.NET Web API用于项目的REST部分。

除了GlennFerrieLive已经提到的简单和表达(我认为它们本身就有价值)之外,我想我已经掌握了另外几个好处:

  1. 面向方面方式执行任何API请求处理后,之前之后执行操作很容易,所以说。

  2. 默认情况下,框架会处理接受的返回类型,因此它会适当地转换JSON,XML,...中的输出。

  3. 实现请求的Lambda不返回实际的已填充的数据,但仍以查询的形式返回。之后,在实际执行查询,点击数据库和返回实际数据之前,仍然可以轻松添加过滤,排序和其他操作。

  4. 他们以某种方式包装了HttpRequest,并向开发人员提供了相应的功能,不同之处在于注入了这个新对象,你当然可以用模拟代替它...这样更简单,更清晰的测试

  5. 也许其中一些(全部?)已经可以在ASP.NET Web API中使用并且同样轻松,我不确定。
    HTH