輕量級的Web框架——Nancy
最近想找一個簡單的.Net下的輕量級Web框架,作為使用者的本地的一個WebServer,實現同瀏覽器程式的一些簡單互動,並呼叫本地服務,實現類似瀏覽器外掛的功能。它有如下兩點要求:
-
簡單,能快速賬務,開發
-
能.net framework上實現,因為要通過它就像一些系統呼叫,.net core有限制。
-
能實現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
();
}
國內也有一些文章在介紹這個庫,感興趣的朋友可以看下: