近来学习了一下Nancy这个框架,感觉挺好用的,就写篇简单的文章记录一下大致用法,由于是刚接触,写的代码
可能不规范,也没有具体的分层。。莫吐槽。。。
Nancy的官网:
GitHub地址:https://github.com/NancyFx/Nancy
Nancy在文档的介绍 -- 轻量级
" Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .NET and Mono. "
Nancy有多种Hosting:
Hosting Nancy with ASP.NET
Hosting Nancy with WCF
Hosting Nancy with Azure
Hosting Nancy with OWIN
Web (Katana)
Self Hosting
Environment Variables
Conditional Pass-through
Hosting Nancy with Umbraco
Hosting Nancy with Nginx on Ubuntu
Hosting Nancy with FastCgi
Self Hosting Nancy
Implementing a Host
Accessing the client certificate when using SSL
本文写的Demo是基于Hosting Nancy with ASP.NET。
开发环境 :win 10 + VS2015 Community + SqlServer 2012
废话不多说,开始正题:
一、新建一个空的asp.net项目
建好之后空空如也
二、通过NuGet添加Nancy相关的Packages
主要是Nancy、Nancy.Hosting.Aspnet、Nancy.Viewengines.Razor这三个。其版本依次为1.4.3、1.4.1、1.4.3
我这里选择的视图引擎是Razor,习惯了,你们可以选择其他,这个问题不大。
三、更新一下Razor
默认安装Nancy.Viewengines.Razor之后,它会安装 Microsoft.AspNet.Razor.2.0.30506.0,我们用的是最新版的3.2.3
在NuGet通过已安装的Packages来更新
到这里,基本的工作已经OK了。
这里用到了Dapper,所以我也添加了它的引用。
注:这里是通过NuGet安装的,所以它也在web.config里生成了一些配置。如果是手动添加引用的,注意要修改web.config。
四、加入css和javascript文件
允许我偷偷懒,这里的我是直接copy一般新建mvc项目的,就连页面布局也是用的新建项目的模板。。
五、新建Moudles、Models、ViewModels、Views四个文件夹。
Modules-->相当于MVC中的Controllers文件夹
Models-->存放模型
ViewModels-->存放视图模型
Views-->存放视图
六、在Views下面建一个布局页 _Layout.cshtml
就新建的mvc模板copy过来,稍加修改
1 @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic> 2 <!DOCTYPE html> 3 <html> 4 <head> /> content=> <link href=rel=/> rel=/> href=/> 11 </head> 12 <body> > > > =data-toggle=data-target=> ></span> ></span> ></span> 20 </button> =>NancyDemo</a> 22 </div> > > >首页</a></li> >关于我们</a></li> >联系我们</a></li> >电影</a></li> >类型</a></li> 30 </ul> 31 </div> 32 </div> 33 </div> > 35 @RenderBody() 36 <hr /> 37 <footer> 38 <p>© @DateTime.Now.Year - My ASP.NET Application</p> 39 </footer> 40 </div> ></script> ></script> 43 </body> 44 </html>
_Layout.cshtml七、在Modules下新建一个HomeModule.cs,具体如下:
HomeModule : NancyModule 2 { 3 public HomeModule() 4 { ] = _ => ShowHomePage(); ] = _ => ShowAboutPage(); ] = _ => ShowContactPage(); 8 } ShowContactPage() 11 { ]; 13 } ShowAboutPage() 16 { ]; 18 } ShowHomePage() 21 { ]; 23 } 24 }
HomeModule.cs同时在Views文件夹下面新建一个Home的子文件夹,在把mvc模板中的Index.cshtml,About.cshtml,Contact.cshtml
copy过来稍加修改