在進入mvc5之後,OWIN變更很主推,很熱,關于OWIN的文章也就出來了,下面閱讀了dudu和一些園友的文章,自己也做了一個SelfHost的程式,測試了一下,感覺還是比較有Core的風格,可能也是面向多平台部署考慮的吧!
OWIN的英文全稱是Open Web Interface for .NET。
如果僅從名稱上解析,可以得出這樣的資訊:OWIN是針對.NET平台的開放Web接口。
那Web接口是誰和誰之間的接口呢?是Web應用程式與Web伺服器之間的接口,OWIN就是.NET Web應用程式與Web伺服器之間的接口。
大叔喜歡的一句話:OWIN将多種應用架構使用統一的接口來實作各架構之間的适配!
下面是WEB測試DEMO的一段代碼,它可以添加多種登陸的政策
DUDU文章:http://www.cnblogs.com/dudu/p/what-is-owin.html
安裝OWIN自宿主的包包
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
添加startup這個類,主要為應用程式的入口
/// <summary>
/// OWIN應用程式入口
/// </summary>
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//将預設xml傳回資料格式改為json
config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("datatype", "json", "application/json"));
app.UseWebApi(config);
// 有關如何配置應用程式的詳細資訊,請通路 http://go.microsoft.com/fwlink/?LinkID=316888
}
}
添加幾個測試用的Controller,其實就是webapi或者webmvc裡的controller,這裡以webapi為例,來說一下。
public class HomeController : ApiController
{
public object Get()
{
return new { code = 1, msg = "OK HomeController" };
}
}
public class VideoController : ApiController
{
public object Get()
{
return new { code = 2, msg = "OK VideoController" };
}
}
添加主程式的入口,在入口中我們将添加startup的注入點,讓Owin為我們啟動這個startup!
string baseAddress = "http://192.168.2.71:9000/";
Microsoft.Owin.Hosting.WebApp.Start<Startup>(url: baseAddress);
Console.WriteLine("程式已啟動,按任意鍵退出");
Console.ReadLine();
下面我們打開浏覽器,通路一下URL即可看到時結果了
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!
