Taurus.MVC

开源: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。

时间: 2024-10-16 20:57:26

Taurus.MVC的相关文章

Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https://github.com/cyq1162/taurus.mvc 下面对增强的功能进行介绍: 1:跨域请求 除了常规的的JsonP跨域,Html5开始支持增强跨域,则变得更为方便,只需要服务端请求头输出: 1  if (context.Request.UrlReferrer != null && 

用Taurus.MVC 做个企业站(下)

前言: 上一篇完成了首页,这一篇就把剩下的几个功能给作了吧. 包括文章列表.文章详情和产品展示. 1:文章列表: 原来的ArticleList.aspx 1:现在的articlelist.html 除了共用的模块,只是多了一个列表展示,和总记录数(我连分页都省了...) 2:接下来是绑定articleView的逻辑代码: 3:最后是Controller调用: 然后一个列表页面就完成了: 2:文章详情页: 原来的ArticleDetail.aspx 1:现在的articledetail.html

用Taurus.MVC 做个企业站(上)

前言: 之前是打算写一篇文章叫:Taurus.MVC 从入门到精通,一篇完事篇! 后来转指一念,还是把教程集在这个企业站项目上吧!!! 企业站风格: 之前发过一个帮师妹写的企业站:最近花了几个夜晚帮师妹整了一个企业网站 技术风格是:文本数据库(txt)+WebForm 转型的风格:文本数据库(txt)+Taurus.MVC 今天要完成的界面主要是首页: OK,下面开始,看看一步一步怎么从无到有的做这个企业项目: 1:新建ASP.NET空的Web应用程序项目: 2:添加一个类库项目,叫Taurus

开源:Taurus.MVC 框架

为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点着点着就挂了. 一开始招了几个实习的大学生在那玩,搞不定了,终于忽悠的我了,哈哈... 当时进去的第一感觉是重做,不过呵呵,老板的心思你不猜不行. 然后第一阶段就是在旧项目改造维稳了,只要不是需要挂上百台服务器才能解决的问题,都能弱弱地处理的不要不要的,毕竟没有三两三,也不好上梁坑. 到了第二阶段,

Taurus.MVC 支持Asp.Net Core 的过程

前言: 这些天,似乎.NET Core相关的新闻和文章经常在我眼前晃~~~ 昨天,微软又发布了.Core 2.1,又愰了一下,差点没亮瞎我的眼睛. 好吧,大概是上天给我的暗示,毕竟 CYQ.Data 早就支持上.Core了. 而 Taurus.MVC ,估计也闹委屈了,好吧,大慈大悲的怜见你一回,给你上ASP.NET Core支持吧. 又要一不小心就研究.NET Core了,这东西,只有家里的电脑有VS2017的环境,因此只能在家研究. 中间停停走走,思考了N天,最后用上三十几年的手速,敲足一天

Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能

背景: 上周,把 Taurus.MVC 在 Linux (CentOS7) 上部署任务完成后. 也不知怎么的,忽然就想给框架集成一下WebAPI文档功能,所以就动手了. 以为一天能搞完,结果,好几天过去了. 本来还想集成自动化批量执行测试功能,不过想想还是放到下一版本实现吧. 感觉差不多了,就先和大伙分享一下: Taurus.MVC Nuget 更新: 昨夜,Nuget的Package升级了一下,和源码版本做了下同步. 通常源码的版本都会比Nuget包的靠前一个小版本: 目前:Taurus.MV

ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供,不过该内存类我看了一下,并没有支持文件的缓存依赖. 因此,在此前提下,预计.NET Core明年出来2.0版本时,可能也没支持文件的缓存依赖,因此,有必要提前准备实现. 在写此文前,我扫了一下园子里关于自定义缓存类的相关文章. 发现很多自定义的缓存类文章都简单停留在对字典的增删改查. 因此,决定补充

ASP.NET Aries 2.0 发布(原来的源码SVN已关闭,开源源码已迁移到GitHub)

主要更新: 1:增加子目录部署支持. 2:增加Taurus.MVC支持. 3:优化及Bug修复. 1:增加子目录部署支持: 其实在重写Aries框架的时候,我是去掉了目录部署功能的,主要是为了加快Aries开发的速度. 不过最新有用户反馈,需要部署在子目录下,所以就顺势把子目录部署这块功能给增加上了. 2:增加Taurus.MVC支持: Aries  2.0的目录结构是这样的:原来的Aries.Logic下的Handler变更到Aries.Controllers下,其它变化不大. 在我整个设计的

上周热点回顾(8.1-8.7)

热点随笔: · 你必须知道的EF知识和经验(农码一生)· 一个项目经理的贪嗔痴(archy_yu)· 最全ajax全套(张岩林)· webapi文档描述-swagger(焰尾迭)· 开源:Taurus.MVC 框架(路过秋天)· 功能齐全并且比较时髦的Jquery通用开源框架之[ejq.js](孙凯旋)· C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper(懒得安分)· [无私分享:ASP.NET CORE 项目实战(第五章)]Repository仓储 U