最近想找一个简单的.Net下的轻量级Web框架,作为用户的本地的一个WebServer,实现同浏览器程序的一些简单交互,并调用本地服务,实现类似浏览器插件的功能。它有如下几点要求:

  • 简单,能快速账务,开发
  • 能.net framework上实现,因为要通过它就像一些系统调用,.net core要麻烦些。最好能支持.net 4.0,以能在一些用XP的上古时代的机器上使用
  • 能实现SelfHost,如果需要IIS承载的话,除了安装麻烦外,权限也受限制。

虽然Asp.net本身能满足这个要求,可以通过owin的方式实现selfhost,但是我觉得它还是太重了。直到后来找到了Nancy这个Web框架,官网的说明如下:

  • Nancy是一个轻量级的独立的框架,下面是官网的一些介绍:
  • Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。
  • Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。
  • Nancy和Asp.net MVC原理相似,但有自己的一套路由机制,在使用上更加易用,可以用Nancy快速开发一些网站。
  • Nancy并不依赖任何现有的框架,所以他可以运行在任何平台上面。

它基本能满足我上面的要求。首先他非常简单,如下是一个简单示例:

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

另外,它也支持SelfHost,安装Nancy.Hosting.Self即可:

using (var host = new NancyHost(new Uri("http://127.0.0.1:3122")))
{
    host.Start();
    Console.WriteLine("Running on http://localhost:3122");
    Console.ReadLine();
}

国内也有一些文章在介绍这个库,感兴趣的朋友可以看下:

最新文章

  1. log4Net(写入日志文件)
  2. webApp前端开发技巧总结
  3. Codeforces Round #364 (Div. 2) B. Cells Not Under Attack
  4. ThinkPHP 3.2 模板中的Angularjs 的变量{{$first}} 无法被解析
  5. hdu 2196 Computer(树形DP)
  6. bzoj2396: 神奇的矩阵
  7. select模式
  8. spring mvc DispatcherServlet详解之一--request通过HandlerMaping获取控制器Controller过程
  9. Linux中oracle安装时候报ora-00119解决办法
  10. python不使用第三方变量,交换两个变量的值
  11. mybatis 动态添加表,查看表,添加数据
  12. C语言权威指南和书单 - 专家级别
  13. 4.1、实现4个LED灯同时闪烁
  14. pxe+Kickstart自动装机补充知识点
  15. git本地仓库关联多个remote,怎么用本地一个分支向不同remote不同分支推送代码
  16. 12,13,14节-51单片机ESP8266学习-AT指令(暂停更新)需要整理
  17. Unity4.6证书激活问题
  18. Python人工智能之图片识别,Python3一行代码实现图片文字识别
  19. IT常用设备及服务器安全公告或漏洞地址pa安全预警微软安全公告 HP 安全公告AIX 安全公告REDHAT安全公告ORACLE 安全公告F5 安全公告 Cisco 安全公告Juniper 安全公告 VMware 安全公告IOS 安全公告
  20. 从零打造在线网盘系统之Hibernate配置O/R映射

热门文章

  1. redcontrol for SL 中文化及样式选择
  2. mysql中trim()函数的用法
  3. Linux图形化监控网络流量:speedometer查看流量
  4. 大数据——hbase
  5. maven私服nexus(三)
  6. java中可以对时间进行加减处理,有时候不用在sql语句中处理
  7. ImportError: No module named 'pysqlite2'
  8. TF:Tensorflow结构简单应用,随机生成100个数,利用Tensorflow训练使其逼近已知线性直线的效率和截距—Jason niu
  9. JDBC概述
  10. python简单名片管理系统