使用Nancy和Simple.Data两个轻量级的框架打造一个分布式开发系统
2012-03-16 09:27
246 查看
可能有的人看到这个标题觉得是噱头,那是因为你还不了解Nancy是干嘛的。如果一个国外的人说,大部分微软平台的开发人员如果选择开发框架只能是在ASP.NET和ASP.NET MVC两个之间选择。 而Nancy是不依赖于这两个框架的独立的一个框架。它更多的是借鉴了Ruby的一些特性。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/bf9cca430448fcb4b706dd24dfcc214c.png)
先看个例子说明如何使用NancyFX:
创建一个ASP.NET(MVC)的空解决方案。如果是ASP.NET MVC类别的空解决方案,记得在Global.asax文件中把路由注释掉,Nancy有自己的一套路由机制。
使用Nancy,它在配置文件中添加了自己的HttpHandler。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/76df12446cafe9418adeffc681c96c76.png)
接下来我们看如何通过不同的URL请求通过Nancy返回不同的结果。
1.没有任何参数URL的情况下:
首先创建一个DefaultModule.cs继承NancyModule这个基类。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/c0a0462da50fec77007835e916356918.png)
编译后运行,结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/881a28c8d1e5218031e66a0d728f8e26.png)
下面来看看一些复杂的URL请求情况下,如何获取到这些参数:
设定我们的请求为url+/Fristname/lastname,那么定义一个Nancy Module来解析这个url并返回信息:
创建一个名为WelcomeModule.cs的类:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/e0ed7578c43db64c4d5b93e9351fc192.png)
通过URL+/firstname/lastname请求,结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/6f7c97c63f49fa361a1df0464806ea6b.png)
当然这只是简单的返回一些字符,而且URL都是比较简单的。除了这些简单的URL格式,Nancy也支持正则表达式的URL请求。
除了这些,Nancy还能够支持Razor视图引擎。它是在Razor的基础上扩展了View的渲染方式。
类似于ASP.NET MVC,不过这里是通过Module来渲染View。现在我们定义一个Model是Person,有FirstName和LastName两个属性,如何通过Nancy来把这个Model绑定到页面呢?
首先需要定义一个Model:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/df5003eda84da323c13a39c9c759cd69.png)
定义一个PersonModule,继承NancyModule;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/a98fd496d7dc08dac19c42a89db0e0d4.png)
定义的页面是Person.cshtml,所以我们添加一个Razor页面,并动态绑定person到页面中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/290a466d4d8062617d4f586c058e8185.png)
以上介绍的请求都是Get,Nancy也是支持Post等其他的HTTP请求,如果遇到大数据的返回等其他情况还是需要用Post请求的。
除了Nancy,就是Simple.Data了,我之前有介绍过这个轻量级的ORM工具(其实都算不上ORM
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/cfedf8471f84c5be2f602d9c20467430.png)
)。
我最喜欢的ORM工具—Simple Data
这两个轻量级的框架有一个共同的特点,就是让一些基本的处理都能够独立开来。所以很适合打造分布式开发的。 比如Nancy可以让我们的路由不再去不停地配置,或者是统一的配置,而是每个模块都可以单独去写自己的路由。
Simple.Data由于似乎是用Dynamic特性,所以每个模块的数据库交互都可以很独立。
以上是介绍了我需要用到的框架,接下来第二篇文章,我们将来说明整个分布开发的基础模块如何建立。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/bf9cca430448fcb4b706dd24dfcc214c.png)
先看个例子说明如何使用NancyFX:
创建一个ASP.NET(MVC)的空解决方案。如果是ASP.NET MVC类别的空解决方案,记得在Global.asax文件中把路由注释掉,Nancy有自己的一套路由机制。
使用Nancy,它在配置文件中添加了自己的HttpHandler。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/76df12446cafe9418adeffc681c96c76.png)
接下来我们看如何通过不同的URL请求通过Nancy返回不同的结果。
1.没有任何参数URL的情况下:
首先创建一个DefaultModule.cs继承NancyModule这个基类。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/c0a0462da50fec77007835e916356918.png)
编译后运行,结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/881a28c8d1e5218031e66a0d728f8e26.png)
下面来看看一些复杂的URL请求情况下,如何获取到这些参数:
设定我们的请求为url+/Fristname/lastname,那么定义一个Nancy Module来解析这个url并返回信息:
创建一个名为WelcomeModule.cs的类:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/e0ed7578c43db64c4d5b93e9351fc192.png)
通过URL+/firstname/lastname请求,结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/6f7c97c63f49fa361a1df0464806ea6b.png)
当然这只是简单的返回一些字符,而且URL都是比较简单的。除了这些简单的URL格式,Nancy也支持正则表达式的URL请求。
除了这些,Nancy还能够支持Razor视图引擎。它是在Razor的基础上扩展了View的渲染方式。
类似于ASP.NET MVC,不过这里是通过Module来渲染View。现在我们定义一个Model是Person,有FirstName和LastName两个属性,如何通过Nancy来把这个Model绑定到页面呢?
首先需要定义一个Model:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/df5003eda84da323c13a39c9c759cd69.png)
定义一个PersonModule,继承NancyModule;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/a98fd496d7dc08dac19c42a89db0e0d4.png)
定义的页面是Person.cshtml,所以我们添加一个Razor页面,并动态绑定person到页面中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/290a466d4d8062617d4f586c058e8185.png)
以上介绍的请求都是Get,Nancy也是支持Post等其他的HTTP请求,如果遇到大数据的返回等其他情况还是需要用Post请求的。
除了Nancy,就是Simple.Data了,我之前有介绍过这个轻量级的ORM工具(其实都算不上ORM
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/24/cfedf8471f84c5be2f602d9c20467430.png)
)。
我最喜欢的ORM工具—Simple Data
这两个轻量级的框架有一个共同的特点,就是让一些基本的处理都能够独立开来。所以很适合打造分布式开发的。 比如Nancy可以让我们的路由不再去不停地配置,或者是统一的配置,而是每个模块都可以单独去写自己的路由。
Simple.Data由于似乎是用Dynamic特性,所以每个模块的数据库交互都可以很独立。
以上是介绍了我需要用到的框架,接下来第二篇文章,我们将来说明整个分布开发的基础模块如何建立。
当前标签: Nancy
使用Nancy和Simple.Data两个轻量级的框架打造一个分布式开发系统(一) Nic Pei 2012-01-15 19:04 阅读:1863 评论:8相关文章推荐
- 使用Nancy和Simple.Data两个轻量级的框架打造一个分布式开发系统
- 使用Nancy和Simple.Data两个轻量级的框架打造一个分布式开发系统(一)
- java web开发中,jsp使用了frameset框架,如何实现整个页面跳转,并且同一个表单中可以提交两个action
- android轻量级开源缓存框架——ASimpleCache(ACache)源码分析(封装好了一个工具类供大家使用)
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程 一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛。 Spring作为一个轻量级
- JFinal极速开发框架使用笔记(二) 两个问题,一个发现
- 使用Phalcon框架开发一个简易的博客系统
- Task一个轻量级分布式任务计算系统
- 接口测试入门(5)----新框架重构,使用轻量级的HTTP开发库 Unirest
- 如何开发一个异常检测系统:使用什么特征变量(features)来构建异常检测算法
- RxStore_一个使用RxJava的轻量级的数据持久化框架(一)
- 使用 Redis 实现分布式系统轻量级协调技术
- iOS开发笔记之三十一——日历NSCaledar使用过程中遇到的一个苹果系统bug
- AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
- 使用 NodeJs 实现一个本地接口数据系统,无需数据库,让前端独立于后台开发
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- 大数据:通过Mesos、Docker和Go,使用300行代码创建一个分布式系统
- Tangram:一个基于MFC框架的柔性软件开发系统
- spring-data-mongodb一个系统xml文件里面配置两个数据源