开源:Taurus.MVC 框架
为什么要创造Taurus.MVC:
记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的:
项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点着点着就挂了。
一开始招了几个实习的大学生在那玩,搞不定了,终于忽悠的我了,哈哈。。。
当时进去的第一感觉是重做,不过呵呵,老板的心思你不猜不行。
然后第一阶段就是在旧项目改造维稳了,只要不是需要挂上百台服务器才能解决的问题,都能弱弱地处理的不要不要的,毕竟没有三两三,也不好上梁坑。
到了第二阶段,自然就是思考重做了:
电商后台已有ASP.NET Aries 框架,刷刷刷的不用担心太多;
电商前台选什么框架呢?
1:WebForm 太保守;
2:.NET Core 太激进;
3:QBlog(秋色园) 门槛高;
4:重新写一套,事务繁忙,没空静下心思考,而且时间有限,已向BOSS提交了计划。
最后只有无奈地选择:ASP.NET MVC 了。
仔细想想.NET环境,市面上流行的开发框架,都是微软自家的(说好的百花齐放呢?)
我也知道,有些上点年纪的,也造框架,不过都是造给自己或自己公司用的(和造给用户用的思考的角度和涉及的广度是不一样的)。
也有一些免费造给人民群众的,不过宣传三两下就没声音了;
园子里也从来不会主动帮助第三方的开源框架做推广,光靠博主自己的激情和情怀,能支持多久都是是个未知数,毕竟搞框架是没收入的。
笔风一转:
后来,老板倒下了.....(泪奔~~~)。
然后,就有时间静下心来好好用情怀造框架了!
终于,Taurus.MVC 就出来了,而且一出来就开源了!!!开源!!开!三遍。
关于框架取名:Taurus
十年前造CYQ.Data的时候,名字取的不好(怪我咯),导致推广阻力大。
于是现在造新的框架,都必须得好好想个名字,毕竟得取个像:齐得龙,齐东强,齐得龙东强 这样的才够响亮而彻底。
前一小阵子发布的:ASP.NET Aries 业务开发框架:取名:Aries(白羊座,温柔中带点骄情)。
于是思考,是该延续白羊系列叫:Aries.MVC 呢?
还是。。。打造黄金十二宫呢?
然后把十三星座,八大行星的英文单词查了个遍,发现都没怎么满意,跳跃式取名有阻碍,那就顺序取名吧。
Taurus(金牛座),其实最后决定的原因是这个单词的发音:脱了(很有看大片的感觉,而且充满想象力,爆力中带点色咪咪的感觉)。

关于框架的适用场景:
选择框架,对高手来说,是一门学问;对新手来说,只是一种选择。
在我年轻的时候,被迫只能选择微软造的框架,现在,我成了创造者:
CYQ.Data+Aries+Taurus,几乎能适应所有的业务场景。
已经可以不用ASP.NET WebForm、ASP.NET MVC了。
但,仍然依旧离不开ASP.NET平台。
如上所说:
1:ASP.NET Aries 适用业务系统和后台快速开发。
2:Taurus.MVC 适用于对性能要求较高的电商等前端系统和WebAPI。
关于框架的优势:
通常讲框架的优势,就是开始扯蛋吹B的时候,只要市场口号喊的响亮,产品只要不是弱的一B就不是什么问题。
框架有啥优势?常人都先问这个,你要吹的我心动,吹的我心开,才回你一声哦,然后默默把源码下载存硬盘里。
由于市面基本微软一家统一天下,所以比较都是找微软家的MVC了。
其实吧,和.NET MVC 比起来,只能说:一个天上,一个地下。
MVC4安装完:800M(没搞明白究竟是要装什么东西这么大);
Taurus.MVC安装完:400K(Taurus.Core.dll+CYQ.Data)。
很明显:微软这些年一直做加法,没想做减法,一直做创新,没想做兼容,很多产品都大粗大叶,让人纠心。
扯远了,说说优势,让我想想,让我和静静一起想想...
先用几个被用滥的词:轻量级?高性能?高效率?
不行,得与众不同,有点别人没做到的才叫优势:
噢,对,得用图表示,这样才能显的专业,对,这样这样,那样那样,好,整完了,上图:

Taurus.MVC 源码:
1:源代码SVN:https://github.com/cyq1162/Taurus.MVC
2:Demo演示站:http://taurus.cyqdata.com
Demo截图是这样的:

Taurus.MVC 框架引入方式:
1:在Nuget上搜Taurus.MVC,引用即可(会引入:Taurus.Core和CYQ.Data)
然后出来一个Readme.txt,按提示配置一下URL拦截和指定Controller地方的dll即可。
2:直接用源码项目(源码项目里会有Demo)。
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,第一步,就是要思考如何隐式地消灭路由。
最后内部默认定了两个路由:
1:{Controller}/{Action}/{Para}
2:{Module}/{Controller}/{Action}/{Para}
默认第一种。
2:扩展路由:
当部署为子应用程序,或第一个为用户名时,会多出一个前缀目录。
这时可以能过AppSetting配置RouteMode值为2,轻松过度。
上下文会提供三个参数让你获取信息:ControllerType,Action,Para。
好了,路由讲完了,想自定义路由?No Way!噢,可以改源码~~~~
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:如果是Ajax请求,把处理完的值赋给上下文的AjaxResult即可。
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方法绑定。

总结:
1:本文并没详细讲解使用方法,对于使用方式,会在下一篇文章介绍:
嗯,一篇介绍就够了,因为实在没啥可讲的了,不需要写一本书。
2:Demo里提供增删改查列表分页功能,能力好点或有MVC基础的,扫下源码就会使用。
3:今天的重点是开源。。。开源。。。开源。。。重要的事情说123。
最后说一声:
此框架的开源,给了.NET的人民群众多了一种选择。
有情怀的你,看完,下完源码,接下来该有钱给钱,没钱给赞了,哈哈。。。
开源:Taurus.MVC 框架的更多相关文章
- 开源:Taurus.MVC 框架 (已支持.NET Core)
为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC
开源:Taurus.MVC 框架 为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate ...
- Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。
前方: 开源地址:https://github.com/cyq1162/Taurus.MVC 上篇文章介绍过:工业制造行业的低代码开发平台思维架构图 规划中涉及到了微服务,近些天经过努力和不断的代码与 ...
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...
- Taurus.MVC 2.0 开源发布:WebAPI开发教程
背景: 有用户反映,Tausus.MVC 能写WebAPI么? 能! 教程呢? 嗯,木有! 好吧,刚好2.0出来,就带上WEBAPI教程了! 开源地址: https://github.com/cyq1 ...
- GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]
Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手 粘贴时有一个版权问题 本文原 ...
- Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能
背景: 上周,把 Taurus.MVC 在 Linux (CentOS7) 上部署任务完成后. 也不知怎么的,忽然就想给框架集成一下WebAPI文档功能,所以就动手了. 以为一天能搞完,结果,好几天过 ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
随机推荐
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- 【CSS进阶】伪元素的妙用--单标签之美
最近在研读 <CSS SECRET>(CSS揭秘)这本大作,对 CSS 有了更深层次的理解,折腾了下面这个项目: CSS3奇思妙想 -- Demo (请用 Chrome 浏览器打开,非常值 ...
- Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- Android -- 真正的 高仿微信 打开网页的进度条效果
(本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...
- AJAX实现登录界面
使用php跳转界面和AJAX都可实现登录界面的跳转的登录失败对的提醒.但是,php跳转的方式 需要额外加载其他界面,用户体验差.AJAX可实现当前页面只刷新需要的数据,不对当前网页进行 重新加载或者是 ...
- 拼图小游戏之计算后样式与CSS动画的冲突
先说结论: 前几天写了几个非常简单的移动端小游戏,其中一个拼图游戏让我郁闷了一段时间.因为要获取每张图片的位置,用`<style>`标签写的样式,直接获取计算后样式再用来交换位置,结果就悲 ...
- VSCode调试go语言出现:exec: "gcc": executable file not found in %PATH%
1.问题描述 由于安装VS15 Preview 5,搞的系统由重新安装一次:在用vscdoe编译go语言时,出现以下问题: # odbcexec: "gcc": executabl ...
- ntp
一: 在一台可以连接外网的服务器A上配置ntp: 配置 /etc/ntp.conf 文件: server 202.120.2.101 # local clock (LCL) ...
- springmvc SSM 多数据源 shiro redis 后台框架 整合
A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单 下载地址 ; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类 ...