开源:Taurus.MVC 框架
為什么要?jiǎng)?chuàng)造Taurus.MVC:
記得被上一家公司忽悠去負(fù)責(zé)公司電商平臺(tái)的時(shí)候,情況是這樣的:
項(xiàng)目原版是外包給第三方的,使用:WebForm+NHibernate,代碼不堪入目,Bug無(wú)限,經(jīng)常點(diǎn)著點(diǎn)著就掛了。
一開始招了幾個(gè)實(shí)習(xí)的大學(xué)生在那玩,搞不定了,終于忽悠的我了,哈哈。。。
當(dāng)時(shí)進(jìn)去的第一感覺是重做,不過呵呵,老板的心思你不猜不行。
然后第一階段就是在舊項(xiàng)目改造維穩(wěn)了,只要不是需要掛上百臺(tái)服務(wù)器才能解決的問題,都能弱弱地處理的不要不要的,畢竟沒有三兩三,也不好上梁坑。
到了第二階段,自然就是思考重做了:
電商后臺(tái)已有ASP.NET Aries 框架,刷刷刷的不用擔(dān)心太多;
電商前臺(tái)選什么框架呢?
1:WebForm 太保守;
2:.NET Core 太激進(jìn);
3:QBlog(秋色園) 門檻高;
4:重新寫一套,事務(wù)繁忙,沒空靜下心思考,而且時(shí)間有限,已向BOSS提交了計(jì)劃。
最后只有無(wú)奈地選擇:ASP.NET MVC 了。
仔細(xì)想想.NET環(huán)境,市面上流行的開發(fā)框架,都是微軟自家的(說(shuō)好的百花齊放呢?)
我也知道,有些上點(diǎn)年紀(jì)的,也造框架,不過都是造給自己或自己公司用的(和造給用戶用的思考的角度和涉及的廣度是不一樣的)。
也有一些免費(fèi)造給人民群眾的,不過宣傳三兩下就沒聲音了;
園子里也從來(lái)不會(huì)主動(dòng)幫助第三方的開源框架做推廣,光靠博主自己的激情和情懷,能支持多久都是是個(gè)未知數(shù),畢竟搞框架是沒收入的。
筆風(fēng)一轉(zhuǎn):
后來(lái),老板倒下了.....(淚奔~~~)。
然后,就有時(shí)間靜下心來(lái)好好用情懷造框架了!
終于,Taurus.MVC 就出來(lái)了,而且一出來(lái)就開源了!!!開源!!開!三遍。
關(guān)于框架取名:Taurus
十年前造CYQ.Data的時(shí)候,名字取的不好(怪我咯),導(dǎo)致推廣阻力大。
于是現(xiàn)在造新的框架,都必須得好好想個(gè)名字,畢竟得取個(gè)像:齊得龍,齊東強(qiáng),齊得龍東強(qiáng) 這樣的才夠響亮而徹底。
前一小陣子發(fā)布的:ASP.NET Aries 業(yè)務(wù)開發(fā)框架:取名:Aries(白羊座,溫柔中帶點(diǎn)驕情)。
于是思考,是該延續(xù)白羊系列叫:Aries.MVC 呢?
還是。。。打造黃金十二宮呢?
然后把十三星座,八大行星的英文單詞查了個(gè)遍,發(fā)現(xiàn)都沒怎么滿意,跳躍式取名有阻礙,那就順序取名吧。
Taurus(金牛座),其實(shí)最后決定的原因是這個(gè)單詞的發(fā)音:脫了(很有看大片的感覺,而且充滿想象力,爆力中帶點(diǎn)色咪咪的感覺)。
關(guān)于框架的適用場(chǎng)景:
選擇框架,對(duì)高手來(lái)說(shuō),是一門學(xué)問;對(duì)新手來(lái)說(shuō),只是一種選擇。
在我年輕的時(shí)候,被迫只能選擇微軟造的框架,現(xiàn)在,我成了創(chuàng)造者:
CYQ.Data+Aries+Taurus,幾乎能適應(yīng)所有的業(yè)務(wù)場(chǎng)景。
已經(jīng)可以不用ASP.NET WebForm、ASP.NET MVC了。
但,仍然依舊離不開ASP.NET平臺(tái)。
如上所說(shuō):
1:ASP.NET Aries 適用業(yè)務(wù)系統(tǒng)和后臺(tái)快速開發(fā)。
2:Taurus.MVC 適用于對(duì)性能要求較高的電商等前端系統(tǒng)和WebAPI。
關(guān)于框架的優(yōu)勢(shì):
通常講框架的優(yōu)勢(shì),就是開始扯蛋吹B的時(shí)候,只要市場(chǎng)口號(hào)喊的響亮,產(chǎn)品只要不是弱的一B就不是什么問題。
框架有啥優(yōu)勢(shì)?常人都先問這個(gè),你要吹的我心動(dòng),吹的我心開,才回你一聲哦,然后默默把源碼下載存硬盤里。
由于市面基本微軟一家統(tǒng)一天下,所以比較都是找微軟家的MVC了。
其實(shí)吧,和.NET MVC 比起來(lái),只能說(shuō):一個(gè)天上,一個(gè)地下。
MVC4安裝完:800M(沒搞明白究竟是要裝什么東西這么大);
Taurus.MVC安裝完:400K(Taurus.Core.dll+CYQ.Data)。
很明顯:微軟這些年一直做加法,沒想做減法,一直做創(chuàng)新,沒想做兼容,很多產(chǎn)品都大粗大葉,讓人糾心。
扯遠(yuǎn)了,說(shuō)說(shuō)優(yōu)勢(shì),讓我想想,讓我和靜靜一起想想...
先用幾個(gè)被用濫的詞:輕量級(jí)?高性能?高效率?
不行,得與眾不同,有點(diǎn)別人沒做到的才叫優(yōu)勢(shì):
噢,對(duì),得用圖表示,這樣才能顯的專業(yè),對(duì),這樣這樣,那樣那樣,好,整完了,上圖:
Taurus.MVC 源碼:
1:源代碼SVN:https://github.com/cyq1162/Taurus.MVC
2:Demo演示站:http://taurus.cyqdata.com
Demo截圖是這樣的:
Taurus.MVC 框架引入方式:
1:在Nuget上搜Taurus.MVC,引用即可(會(huì)引入:Taurus.Core和CYQ.Data)
然后出來(lái)一個(gè)Readme.txt,按提示配置一下URL攔截和指定Controller地方的dll即可。
2:直接用源碼項(xiàng)目(源碼項(xiàng)目里會(huì)有Demo)。
Taurus.MVC 框架介紹:
1:源碼下載后:解決方案圖:
2:解決方案說(shuō)明:
1:CYQ.Data:主要XHtmlAction當(dāng)模板引擎,另外當(dāng)數(shù)據(jù)層可以提供Model或提供自動(dòng)綁定語(yǔ)法。
2:Taurus.Core:主要實(shí)現(xiàn)了路由重寫、Controller調(diào)用、ViewEngine等核心方法。
3:Taurus.Controllers 方法入口,寫代碼的地方。
4:Taurus.View 只存放html和css和js
3:補(bǔ)充說(shuō)明:
1:通常MVC的Controller,Modle,View文件都放在一個(gè)項(xiàng)目里,這里就分拆到兩個(gè)項(xiàng)目了。
2:為了項(xiàng)目層級(jí)清晰,你可以建Model項(xiàng)目(放實(shí)體)和Logic項(xiàng)目(寫業(yè)務(wù)邏輯代碼)還有Utility(放工具類)。
3:框架提供的Demo,就馬馬虎虎全放Controllers項(xiàng)目里了。
下面按MVC的套路來(lái)簡(jiǎn)單說(shuō)說(shuō)基礎(chǔ)的原理及使用方式:
1:Taurus.MVC的路由:
1:隱匿路由:
在.NET MVC里,路由是一塊很重要,但麻煩的功能。
要簡(jiǎn)化MVC,第一步,就是要思考如何隱式地消滅路由。
最后內(nèi)部默認(rèn)定了兩個(gè)路由:
1:{Controller}/{Action}/{Para}
2:{Module}/{Controller}/{Action}/{Para}
默認(rèn)第一種。
2:擴(kuò)展路由:
當(dāng)部署為子應(yīng)用程序,或第一個(gè)為用戶名時(shí),會(huì)多出一個(gè)前綴目錄。
這時(shí)可以能過AppSetting配置RouteMode值為2,輕松過度。
上下文會(huì)提供三個(gè)參數(shù)讓你獲取信息:ControllerType,Action,Para。
好了,路由講完了,想自定義路由?No Way!噢,可以改源碼~~~~
2:Taurus.Controllers
1:尋找Controller:
規(guī)則已經(jīng)定好了,剩下的事就是按規(guī)則找Controller了。
1:收集所有的Controller。
2:指定去哪收集:默認(rèn)是去Taurus.Controllers找繼承自基類:Taurus.Core.Controller。
3:自定義存放Controllers:AppSetting配置Taurus.Controllers的值,假設(shè)為:Taurus.View
4:找不到Controller時(shí),都找DefaultController,如果這個(gè)都木有(Demo里是有的),就拋異常了。
2:調(diào)用Controller的Action:
1:方法名都是public void,且沒有參數(shù)(重載多個(gè)參數(shù),默認(rèn)只收集第一個(gè))。
2:如果是Ajax請(qǐng)求,把處理完的值賦給上下文的AjaxResult即可。
3:找不到Action時(shí),會(huì)找Default方法(這個(gè)基類里有,所以一定會(huì)有,有需要就重寫它)。
3:Taurus.View
1:模板:html(嚴(yán)格的說(shuō)應(yīng)該是xhtml)
2:模板加載方式:和URL對(duì)應(yīng)的尋址路徑:就是Views/{Controller}/{Action}.html
3:母版頁(yè)的引用方式:itemref="頁(yè)面.節(jié)點(diǎn)名稱"。(itemref是div的屬性,沒人用,就借它來(lái)引用節(jié)點(diǎn)替換。)
4:加載替換語(yǔ)法:
A:對(duì)于input標(biāo)簽,可以使用CYQ.Data.MDataRow.SetToAll批量賦值。
B:對(duì)于${name},可以使用View.LoadData(數(shù)據(jù),"前綴"),會(huì)自動(dòng)格式化。
C:對(duì)于列表循環(huán)標(biāo)簽:可以使用CYQ.Data.MDataTable.Bind方法綁定。
總結(jié):
1:本文并沒詳細(xì)講解使用方法,對(duì)于使用方式,會(huì)在下一篇文章介紹:
嗯,一篇介紹就夠了,因?yàn)閷?shí)在沒啥可講的了,不需要寫一本書。
2:Demo里提供增刪改查列表分頁(yè)功能,能力好點(diǎn)或有MVC基礎(chǔ)的,掃下源碼就會(huì)使用。
3:今天的重點(diǎn)是開源。。。開源。。。開源。。。重要的事情說(shuō)123。
最后說(shuō)一聲:
此框架的開源,給了.NET的人民群眾多了一種選擇。
有情懷的你,看完,下完源碼,接下來(lái)該有錢給錢,沒錢給贊了,哈哈。。。
本文原創(chuàng)發(fā)表于博客園,作者為路過秋天,原文鏈接:http://www.cnblogs.com/cyq1162/p/5739048.html
總結(jié)
以上是生活随笔為你收集整理的开源:Taurus.MVC 框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 GPIO的配置寄存器(CRL
- 下一篇: 无序列表ul