Taurus MVC框架

Taurus.MVC 源码:
1:源代码SVN:https://github.com/cyq1162/Taurus.MVC

2:Demo演示站:http://taurus.cyqdata.com

Demo截图是这样的(新版本现在多了个WebAPI Demo):
这里写图片描述
Taurus.MVC 框架引入方式:
1:在Nuget上搜:Taurus.MVC,引用即可(会引入:Taurus.Core和CYQ.Data)

然后出来一个Readme.txt,按提示配置一下URL拦截和指定Controller地方的dll即可。

.NET Core 版本搜:Taurus.MVC.Core

2:直接用源码项目(源码项目里会有Demo)。

.NET版本运行:Taurus.MVC.sln

.NET Core 版本运行:Taurus.MVC_Core_VS2017.sln
Taurus.MVC 框架介绍:
1:源码下载后:解决方案图:
这里写图片描述
2:解决方案说明:
1:CYQ.Data:主要XHtmlAction当模板引擎,另外当数据层可以提供Model或提供自动绑定语法。

2:Taurus.Core:主要实现了路由重写、Controller调用、ViewEngine等核心方法。

3:Taurus.Controllers 方法入口,写代码的地方。

4:Taurus.View 只存放html和css和js

3:补充说明:
1:通常MVC的Controller,Modle,View文件都放在一个项目里,这里就分拆到两个项目了。

2:为了项目层级清晰,你可以建Model项目(放实体)和Logic项目(写业务逻辑代码)还有Utility(放工具类)。

3:框架提供的Demo,就马马虎虎全放Controllers项目里了。

下面按MVC的套路来简单说说基础的原理及使用方式:
1:Taurus.MVC的路由:
1:隐匿路由:
在.NET MVC里,路由是一块很重要,但麻烦的功能。

要简化MVC,第一步,就是要思考如何隐式地消灭路由。

最后内部默认定了3个路由:

0:{Action}/{Para}

1:{Controller}/{Action}/{Para}

2:{Module}/{Controller}/{Action}/{Para}

默认是1。

2:扩展路由:
当部署为子应用程序,或第一个为用户名时,会多出一个前缀目录。

这时可以能过AppSetting配置RouteMode值为2,轻松过度。
2:Taurus.Controllers
1:寻找Controller:
规则已经定好了,剩下的事就是按规则找Controller了。

1:收集所有的Controller。

2:指定去哪收集:默认是去Taurus.Controllers找继承自基类:Taurus.Core.Controller。

3:自定义存放Controllers:AppSetting配置Taurus.Controllers的值,假设为:Taurus.View

4:找不到Controller时,都找DefaultController,如果这个都木有(Demo里是有的),就抛异常了。
这里写图片描述
2:调用Controller的Action:
1:方法名都是public void,可以有参数(重载多个参数,默认只收集第一个)。

2:有输入的,用Write方法。

3:找不到Action时,会找Default方法(这个基类里有,所以一定会有,有需要就重写它)。
这里写图片描述
3:Taurus.View
1:模板:html(严格的说应该是xhtml)

2:模板加载方式:和URL对应的寻址路径:就是Views/{Controller}/{Action}.html ,通过配置可以改变约定的路径。## 标题 ##

3:母版页的引用方式:itemref=”页面.节点名称”。(itemref是div的属性,没人用,就借它来引用节点替换。)

4:加载替换语法:

A:对于input标签,可以使用CYQ.Data.MDataRow.SetToAll批量赋值。

B:对于${name},可以使用View.LoadData(数据,”前缀”),会自动格式化。

C:对于列表循环标签:可以使用CYQ.Data.MDataTable.Bind方法绑定。
这里写图片描述
欢迎工作一到五年的Java工程师朋友们加入Java架构开发:855801563
本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导
同时大家可以多多关注一下小编 纯干货 大家一起学习进步

猜你喜欢

转载自blog.csdn.net/zhuguanghalo/article/details/82665663