abstract:YOYOFx框架YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台。本着学习的态度,造了这个轮子,也是为了更好的了解各个框架的原理和有点,还希望可以和大家多交流 。GitHub:https://github.com/maxzhang1985/YOYOFxYOYOFx是支持Owin协议的MVC框架,基于NETStandard1.6和NET451编译,
YOYOFx框架
YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台。
本着学习的态度,造了这个轮子,也是为了更好的了解各个框架的原理和有点,还希望可以和大家多交流 。
GitHub:https://github.com/maxzhang1985/YOYOFx
YOYOFx是支持Owin协议的MVC框架,基于NETStandard1.6和NET451编译,完美支持在Core和full framework(如.net framework 4.5x或mono 4.x)上的运行。
YOYOFx集成了dotnet core上“第一款”验证码组件,验证码的实现在以前的文章里提过,《【干货】”首个“ .NET Core 验证码组件 》。
特性: YOYOFx的Mvc是基于Owin跑在Core的Web框架 , YOYOFx并没有基于Asp.Net Core MVC进行开发,而选择了使用Owin协议自己来封装Http协议的方式。
跨平台特性:
.NET framework 4.5x和Mono4.x上直接SelfHost或使用Tinyfox跨平台运行;
.NET Core 1.0 RTM 实现跨平台运行;
使用Tinyfox独立版,可支持绿色部署,不需要安装Mono和Framework。
通过dotnet publish将Core版本进行打包后,可支持绿色部署,不需要运行时。
Owin与Core
YOYOFx的Http实现都是基于Owin协议的,并提供两个独立版本NETSTANDRD1.x和NET45x版本。
目前完成:
封装Owin协议的HttpContext(IOwinContext),包括Request、Response、Http Headers、Cookie等;
路由机制,通过添加自定义路由表为框架添加处理事件;
基于IOwinContext的MVC框架,支持多语言扩展;支持Session和自定义的Action拦截器;
可替换的视图引擎,目前实现Razor视图引擎,加入了缓存机制;
已移植到dotnet core 1.0 RTM版本
接下来的工作:
将项目的目录结构整合到dotnet core的项目文件中。 (已完成)
完成框架整体的DI,将框架级依赖对象全部通过依赖注入的方式构建和对象创建工厂;首先完成Controller的创建工厂。 (已完成)
完善路由系统 (进行中)
支持方法特性[HttpGet] [HttpPost] 等定义路由。
支持自定义路由路径。
支持为路由规则指定特定的Handler处理函数。