最近想找一個簡單的.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();
}
國內也有一些文章在介紹這個庫,感興趣的朋友可以看下: