abstract:YOYOFx框架YOYOFx是一個輕量級用于構(gòu)建基于 HTTP 的 Web 服務(wù),基于 .NET 和 Mono 平臺。本著學(xué)習(xí)的態(tài)度,造了這個輪子,也是為了更好的了解各個框架的原理和有點(diǎn),還希望可以和大家多交流 。GitHub:https://github.com/maxzhang1985/YOYOFxYOYOFx是支持Owin協(xié)議的MVC框架,基于NETStandard1.6和NET451編譯,
YOYOFx框架
YOYOFx是一個輕量級用于構(gòu)建基于 HTTP 的 Web 服務(wù),基于 .NET 和 Mono 平臺。
本著學(xué)習(xí)的態(tài)度,造了這個輪子,也是為了更好的了解各個框架的原理和有點(diǎn),還希望可以和大家多交流 。
GitHub:https://github.com/maxzhang1985/YOYOFx
YOYOFx是支持Owin協(xié)議的MVC框架,基于NETStandard1.6和NET451編譯,完美支持在Core和full framework(如.net framework 4.5x或mono 4.x)上的運(yùn)行。
YOYOFx集成了dotnet core上“第一款”驗(yàn)證碼組件,驗(yàn)證碼的實(shí)現(xiàn)在以前的文章里提過,《【干貨】”首個“ .NET Core 驗(yàn)證碼組件 》。
特性: YOYOFx的Mvc是基于Owin跑在Core的Web框架 , YOYOFx并沒有基于Asp.Net Core MVC進(jìn)行開發(fā),而選擇了使用Owin協(xié)議自己來封裝Http協(xié)議的方式。
跨平臺特性:
.NET framework 4.5x和Mono4.x上直接SelfHost或使用Tinyfox跨平臺運(yùn)行;
.NET Core 1.0 RTM 實(shí)現(xiàn)跨平臺運(yùn)行;
使用Tinyfox獨(dú)立版,可支持綠色部署,不需要安裝Mono和Framework。
通過dotnet publish將Core版本進(jìn)行打包后,可支持綠色部署,不需要運(yùn)行時。
Owin與Core
YOYOFx的Http實(shí)現(xiàn)都是基于Owin協(xié)議的,并提供兩個獨(dú)立版本NETSTANDRD1.x和NET45x版本。
目前完成:
封裝Owin協(xié)議的HttpContext(IOwinContext),包括Request、Response、Http Headers、Cookie等;
路由機(jī)制,通過添加自定義路由表為框架添加處理事件;
基于IOwinContext的MVC框架,支持多語言擴(kuò)展;支持Session和自定義的Action攔截器;
可替換的視圖引擎,目前實(shí)現(xiàn)Razor視圖引擎,加入了緩存機(jī)制;
已移植到dotnet core 1.0 RTM版本
接下來的工作:
將項(xiàng)目的目錄結(jié)構(gòu)整合到dotnet core的項(xiàng)目文件中。 (已完成)
完成框架整體的DI,將框架級依賴對象全部通過依賴注入的方式構(gòu)建和對象創(chuàng)建工廠;首先完成Controller的創(chuàng)建工廠。 (已完成)
完善路由系統(tǒng) (進(jìn)行中)
支持方法特性[HttpGet] [HttpPost] 等定義路由。
支持自定義路由路徑。
支持為路由規(guī)則指定特定的Handler處理函數(shù)。