在進入mvc5之後,OWIN變更很主推,很熱,關於OWIN的文章也就出來了,下麵閱讀了dudu和一些園友的文章,自己也做了一個SelfHost的程式,測試了一下,感覺還是比較有Core的風格,可能也是面向多平臺部署考慮的吧! OWIN的英文全稱是Open Web Interface for .NET ...
在進入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即可看到時結果了