zoukankan      html  css  js  c++  java
  • Nancy总结(一)Nancy一个轻量的MVC框架

      Nancy是一个基于.net 和Mono 构建的HTTP服务框架,是一个非常轻量级的web框架。


      设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。它提供了一个super-duper-happy-path的交互方式,无需定义各种复杂的路由规则,Nancy会根据你的请求路径自动匹配。Nancy和ASP.NET MVC不同,它更多的是借鉴了Ruby的一些特性。

      Nancy 的特点:
        1. 建立了自下而上的,而不是简单地DSL的现有框架。删除很多不必要的限制和特性,尽可能的只引用你需要的组件。使其保持简单。
        2. 随处运行。Nancy不是建立在任何特定的平台下的的,它可以在任何地方运行。Nancy支持运行在ASP.NET/IIS,WCF,自宿主和任何OWIN。
        3. 定义了非常轻量的 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求。
        4. 集成了各种模板引擎(Razor, Spark, dotLiquid 和自带的SuperSimpleViewEngine)。
        5. 强大的请求路径匹配,包括先进的参数功能。路径匹配策略可以使用自定义实现您的各种具体需求。
        6. 简单的Response的语法,可以返回int、string、HttpStatusCode无需显式地转换或封装你的Response——你只是返回你的参数,其他的Nancy会帮你完成。
        7. 一个强大的、轻量级的、测试框架帮助您验证您的应用程序。

      官方网站 : http://nancyfx.org/
      Github : https://github.com/NancyFx/Nancy

      1. 安装Nancy

        PM> Install-Package Nancy

        PM> Install-Package Nancy.Hosting.Aspnet //Nancy For Asp.net

        PM> Install-Package Nancy.Viewengines.Razor 

        注意:要安装三个Nancy相关的包。

          Nancy ,

          Nancy.Hosting.Aspnet ,  Nancy 的  Asp.net 环境

          Nancy.Viewengines.Razor  提供Razor视图支持,

      2. 创建一个空的MVC 项目, ASP.NET Hosting

      3. 定义一个Bootstrapper.cs 类,参考例子里面的bootstrapper.cs文件

        记得配置静态文件目录,Nancy 的路由机制,所有的请求包括静态文件,都得走路由。所以得在bootstrapper.cs 文件里面配置,否则,会访问不到。

      

     protected override void ConfigureConventions(Nancy.Conventions.NancyConventions nancyConventions)
       {
           base.ConfigureConventions(nancyConventions);
           nancyConventions.StaticContentsConventions.Add(Nancy.Conventions.StaticContentConventionBuilder.AddDirectory("/", "public"));
       }

        

        还有,cshtml 或者 html 的文件目录,也得在bootstrapper.cs 中配置,否则会报错找不到cshtml 文件。

        

      4. 创建一个Nancy Module
      

    public class SampleModule : Nancy.NancyModule
    {
      public SampleModule()
      {
        Get["/"] = _ => "Hello World!";
      }
    }
  • 相关阅读:
    每天一道LeetCode--141.Linked List Cycle(链表环问题)
    每天一道LeetCode--119.Pascal's Triangle II(杨辉三角)
    每天一道LeetCode--118. Pascal's Triangle(杨辉三角)
    CF1277D Let's Play the Words?
    CF1281B Azamon Web Services
    CF1197D Yet Another Subarray Problem
    CF1237D Balanced Playlist
    CF1239A Ivan the Fool and the Probability Theory
    CF1223D Sequence Sorting
    CF1228D Complete Tripartite
  • 原文地址:https://www.cnblogs.com/zhangweizhong/p/3723096.html
Copyright © 2011-2022 走看看