首页 > 代码库 > 初遇Nancy

初遇Nancy

原文地址

Nancy 是一个轻量级的、低门槛的框架,用于在.Net和Mono上构建基于HTTP的服务。这个框架的目标是尽可能的保持简单并为所有的交互提供一个super-duper-happy-path。

Nancy被设计用来处理DELETE、GET、HEAD、OPTIONS、POST、PUT和PATCH请求,并且用仅仅几行代码为返回的响应提供了一种简单的、优雅的领域特定语言(DSL),让你有更多世间关注重要的事情..你的代码和你的应用程序。

书写你的应用程序

public class Module : NancyModule{    public Module()    {        Get["/greet/{name}"] = x => {            return string.Concat("Hello ", x.name);        };    }}

 

编译,运行,享受这种简单优雅的设计。

 

特点

  • 从最底层开始构建, 而不是在一个已有框架上的DSL。移除了底层框架的限制,还有引用多于你需要的程序集。保持轻量。
  • 任意运行。Nancy 不是基于特定的承载技术构建的,并且可以在任意环境运行。与众不同的是,Nancy支持运行在ASPNET/IIS, WCF, Self-hosting 和 OWIN下
  • 超轻量的GET, HEAD, PUT, POST, DELETE, OPTIONS and PATCH 请求动作声明
  • 视图引擎的集成(Razor, Spark, dotLiquid, 我们自己的SuperSimpleViewEngine,还有许多其他的)
  • 包括高级参数能里的请求路径匹配。路径匹配策略可以根据你的需要替换成自定义的实现
  • 简单的response语法,让你可以返回像int, string, HttpStatusCode 和 Action 而不用显式转换或是包装response-你只需要返回它,然后Nancy会帮你做余下的事
  • 强大的、轻量级的测试框架帮你验证应用程序的行为
  • Content negotiation
  • 还有许多许多

The super-duper-happy-path

  • "super-duper-happy-path"是由作者组成的一个短语,用来描述Nancy的特性,而且假定"super-duper-happy-path"的体验是我们为所有的APIs所力争的
  • 尽管难以给出它的准确含义,它毕竟是一个令人兴奋的术语,其后的基本思想包括如下:
  • 他会正常工作-你不需要学太多东西,不需要整理就可以使用。添加新的模块?那会被自动发现。引进新的视图引擎?所有的都装配好了准备着前进而不需要你做任何事情。即使你给你的模块添加了一个新的依赖,默认情况下,我们会定位到依赖然后帮你注入-不需要配置
  • 容易个性化-尽管“it just works”, 个性化的时候不应该有任何障碍。像使用另一个容器?没问题。想要调整路由选择的方式?尽管做吧!通过bootstrapper的方式,所有的这些事情都是小菜一碟。
  • 低门槛-你程序中需要的Nancy Code是最少量的。任何Nancy程序最总要的部分就是你的代码。我们的代码妨碍你,他会帮你构建神奇的应用程序。作为这的一个证据,Nnacy应用可以整合成一个 单一的Tweet.
  • 低阻力-当用Nancy构建软件时,这些APIs会帮助你实现你想要的,而不是阻碍你。命名也是明显的,所需的配置也是最少的,但是强大和可扩展性仍就在这。

综上,用Nancy创建应用程序是一件愉快的,有意思的事!但是当你的应用增长时,不会牺牲性能和扩展性。

 

翻译很蹩脚,有不懂的可以参照原文。

初遇Nancy