• Nancy 宿主于asp.net(一)


        Nancy是.net下微型mvc框架,是一个轻量级的,用于构建基于http的web服务。

    Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。

    官方地址:http://nancyfx.org/

    Github : https://github.com/NancyFx/Nancy

    quick start

    0、特点

    1、跨平台运行,Nancy支持运行在ASP.NET/IIS,WCF,自宿主和任何OWIN;

    2、小型项目,不想使用iis这样繁重的服务器,避免繁重的身份验证等;

    3、定义了非常轻量的 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求;

    4、集成了各种模板引擎(Razor, Spark, dotLiquid 和自带的SuperSimpleViewEngine);

    5、强大的请求路径匹配,包括先进的参数功能。路径匹配策略可以使用自定义实现您的各种具体需求;

    1、创建空白mvc4项目

    2、nuget引入相应的包

    image

    Nancy--Nancy主要框架

    Nancy.Hosting.Aspnet--用于将Nancy宿主于asp.net

    Nancy.Viewengines.Razor--结合Razor引擎进行视图渲染

    引入完成之后,自动在配置文件中做如下修改:

    <!--system.web节点下添加-->
    <httpHandlers>
      <add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />
     </httpHandlers>
    <!--handlers节点下添加-->
    <add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />

    注意点:此处将url处理转交给Nancy进行处理,但是我在mvc框架的基础上进行的Nancy的引入,所以需要将原有的mvc框架的路由注释掉,即global.asax中的路由注册;

    3、项目结构

    image

    就像普通的mvc项目结构一样,该如何创建就如何创建,不用在项目结构上有思维上的跳跃性,当然Nancy并未严格要求文件结构的命名规则,使用人可以自定义其他名称的结构也是可以正常运行的,当然了,既然有了前期mvc的思想,我们就没必要自己再定义一套。

    4、demo初探

    using Nancy;
    
    namespace NancyDemo.Controllers
    {
        /// <summary>
        /// NancyModule:承担了mvc中路由和action的工作
        /// 传统mvc中的controller在此赋予了额外的路由工作
        /// </summary>
        public class HomeController : NancyModule
        {
            public HomeController()
            {
                //localhost:port/
                Get["/"] = p =>
                {
                    return "hello Nancy!";
                };
                Get["/Home"] = p =>
                {
                    return View["Home"];
                };
                Get["/Home/{userName}"] = p =>
                {
                    return p.userName;
                };
            }
        }
    }

    5、运行效果

    浏览器输入相应地址:

    http://localhost:17983/

    image

    http://localhost:17983/Home

    image

    http://localhost:17983/Home/Welcome To Nancy

    image

    6、Nancy预览

    1、通过反编译工具我们可以看到,Nancy为我们封装了基本的http请求和响应。

    2、同时对DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 方法进行了进一步的封装。

    3、对原有的mvc的东西进行保留,二次封装。

    4、将iis中的管道的概念同样进行了封装,对应的AfterPipeLine 和BeforePipeline类。

    image

    结束语:

    以上是个人对Nancy的初探,结合博客中博主的观点和自己的实践,之后会对Nancy有跟进的叙述。

    我们要走的路,有着太多的不确定,他人的一句劝诫,自己的一个闪念,偶尔的得与失,都时刻在改变着我们命运的走向。世事难以预料,遇事无须太执,谁都无法带走什么,又何必纠结于某一人、某一时、某一事。只有看开了,想通了,才能随缘、随性、随心而为,不急不躁,不悲不欢,不咸不淡。
  • 相关阅读:
    http请求的跨域
    事件驱动模型
    单例设计
    引用类型与垃圾回收
    注解开发
    Java的反射机制
    Android Listener 监听的几种写法
    人生必须有所规划,工作是好比马拉松
    Android 常用的常量
    Android 常见的广播 action常量
  • 原文地址:https://www.cnblogs.com/szfBlogs/p/4975883.html
Copyright © 2020-2023  润新知