亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談基于Razor模板引擎的代碼生成器

        2017-03-27 14:28:42譚江山
        科技資訊 2017年2期

        譚江山

        摘 要:目前網(wǎng)絡(luò)上形形色色的代碼生成器很多,但并不適合中小軟件企業(yè)或個(gè)人開發(fā)者。使用代碼生成器提高工作效率的最好辦法是做自己的代碼生成器。該文從教學(xué)實(shí)際項(xiàng)目經(jīng)驗(yàn)出發(fā),探討了利用Razor模板引擎生成基于業(yè)務(wù)模型的軟件代碼生成器的使用及實(shí)踐。這將對(duì)中小軟件企業(yè)的軟件開發(fā)具有指導(dǎo)與借鑒作用。

        關(guān)鍵詞:代碼生成器 模板C# Razor

        中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)01(b)-0042-02

        現(xiàn)實(shí)中,計(jì)算機(jī)軟件開發(fā)企業(yè)大多有很多優(yōu)秀項(xiàng)目的積累,且有很多優(yōu)秀的代碼及規(guī)范的代碼標(biāo)準(zhǔn)。要延續(xù)這些規(guī)范和標(biāo)準(zhǔn),最好的方法是使用代碼生成器及進(jìn)行過程控制。但使用別人的代碼生成器,并不一定適合自身企業(yè)的特點(diǎn),也很容易受制于其軟件版本的升級(jí)。

        1 規(guī)范的代碼在編程中的重要性

        目前,有一定技術(shù)實(shí)力的軟件公司都有自己成熟的軟件框架,有自己的代碼規(guī)范,有自己的各項(xiàng)技術(shù)要求。因?yàn)橐?guī)范的代碼能大大提高編程的工作效率,為企業(yè)帶來更多的經(jīng)濟(jì)和社會(huì)效益。計(jì)算機(jī)軟件行業(yè)人員流動(dòng)頻繁,若沒有一定的代碼規(guī)范,新員工很難接手老員工的程序代碼,需要新員工接受相應(yīng)培訓(xùn)或由師傅幫帶,這無疑增加了企業(yè)的運(yùn)營成本。再者,軟件的維護(hù)周期內(nèi),若沒有形成一定的代碼規(guī)范,不僅增加后期維護(hù)的工作量及維護(hù)難度,同時(shí)也將大大提高維護(hù)的成本。對(duì)此,無論就企業(yè)還是個(gè)人而言,形成自己規(guī)范的代碼是非常重要的。每個(gè)程序員都應(yīng)將自己編碼的好習(xí)慣、好代碼轉(zhuǎn)換為模板,這將大大提高自己的編程效率。如何更好將自己的代碼轉(zhuǎn)換為模板呢?這就需要用到代碼生成器,代碼生成器是將固定不變的代碼設(shè)計(jì)為模板,將變化的部分交給模板引擎去處理。

        2 基于Razor模板引擎的代碼生成器的特點(diǎn)

        目前市場上有很多優(yōu)秀的代碼生成器,如:動(dòng)軟.NET代碼自動(dòng)生成器、AutoCoder自動(dòng)代碼生成器等。盡管這些代碼生成器軟件都很優(yōu)秀,但并不適合每個(gè)公司或每個(gè)人。最好的辦法是實(shí)現(xiàn)自己的代碼生成器。基于.net的模板引擎有很多種,如:NVelocity、Razor、StringTemplate等。經(jīng)過多年的編程實(shí)踐,筆者推薦使用Razor引擎。

        Razor是和ASPX一樣的另一種視圖引擎,Razor是作為一種后起的視圖模板被ASP.NET MVC3使用,Razor的特點(diǎn)是界面設(shè)計(jì)靈活,比ASPX視圖引擎更專注于WEB前端頁面的設(shè)計(jì)。因?yàn)镸VC就是基于WEB開發(fā)所誕生的一個(gè)設(shè)計(jì)模式,主旨之一就是將頁面和業(yè)務(wù)邏輯解耦。其具有緊湊、富有表現(xiàn)力和流暢、上手快、可以使用任何文本編輯器編寫、有很好的智能感應(yīng)輸入提示、便于單元測試等特點(diǎn)。

        3 基于Razor模板引擎的代碼生成器的使用

        我們來看看最簡單的Razor模板用法。

        該文通過模型類文件和Razor模板文件生成相應(yīng)的目標(biāo)代碼文件,方案步驟如下(僅以網(wǎng)站項(xiàng)目為例)。

        (1)將以往優(yōu)秀項(xiàng)目的各層,如:表示層、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、控制層、業(yè)務(wù)(領(lǐng)域)模型層等做成相應(yīng)的模板(其實(shí)所有的文本類型的文件都可以做成模板)。

        (2)創(chuàng)建業(yè)務(wù)(領(lǐng)域)模型類,該業(yè)務(wù)(領(lǐng)域)模型類可以包含屬性、特性、注釋等。

        (3)利用正則表達(dá)式或反射技術(shù),將業(yè)務(wù)(領(lǐng)域)模型類解析成模板相對(duì)應(yīng)的動(dòng)態(tài)內(nèi)容,如以上示例代碼中的@Model.Name、@Model.Email等。

        (4)利用Razor引擎進(jìn)行解析即可。

        這樣設(shè)計(jì)的目的是通過模型類的類名、屬性名、特性及注釋等,結(jié)合編輯頁、列表頁、業(yè)務(wù)代碼等模板生成對(duì)應(yīng)的目標(biāo)代碼。優(yōu)秀的代碼生成器不是一個(gè)代碼不用寫,而是通過寫個(gè)性化的代碼,生成個(gè)性化的目標(biāo)代碼,從而增加靈活性。

        4 基于Razor模板引擎的代碼生成器的應(yīng)用實(shí)踐

        筆者經(jīng)過多年編程實(shí)踐,已經(jīng)利用Razor模板引擎開發(fā)出了自己的代碼生成器,基于asp.net mvc4技術(shù),可在線生成各類界面、Controller類及業(yè)務(wù)邏輯類,并可打包下載生成的多個(gè)文件。

        目前該代碼生成器已經(jīng)在筆者的教育系統(tǒng)(市教育局藝術(shù)節(jié)網(wǎng)上報(bào)名系統(tǒng)、學(xué)校實(shí)習(xí)實(shí)訓(xùn)平臺(tái)、學(xué)校校園網(wǎng))等多個(gè)團(tuán)隊(duì)項(xiàng)目中使用,并取得了良好的經(jīng)濟(jì)效益和社會(huì)效益。實(shí)踐證明利用Razor模板引擎技術(shù)不僅修改模板方便,生成效率高,而且規(guī)范了團(tuán)隊(duì)代碼編寫,大大提高編寫代碼工作效率和軟件質(zhì)量,同時(shí)也產(chǎn)生了良好的經(jīng)濟(jì)效益。

        參考文獻(xiàn)

        [1] Razor模板引擎官網(wǎng)[EB/OL].https://github.com/Antaris/RazorEngine.

        [2] 郭曉民.基于自動(dòng)代碼生成的WEB業(yè)務(wù)工具[D].西安電子科技大學(xué),2008.

        [3] 王建光.基于模型驅(qū)動(dòng)架構(gòu)的軟件生成技術(shù)研究[D].太原理工大學(xué),2007.

        亚洲中文字幕精品视频| 麻豆国产巨作AV剧情老师| 无码精品国产午夜| 1000部拍拍拍18勿入免费视频下载| 亚洲综合色一区二区三区小说| 亚洲人成网站在线播放小说| 国产精品女主播在线播放| 国产精品极品美女自在线观看免费| 日日猛噜噜狠狠扒开双腿小说| 亚洲 欧美 激情 小说 另类| 视频女同久久久一区二区三区| 亚洲精品国产综合久久| 丰满少妇作爱视频免费观看| 性欧美大战久久久久久久久| 欧美综合图区亚洲综合图区| 国产一区二区三区观看视频| 东京热日本道免费高清| 偷拍一区二区视频播放器| 97人人模人人爽人人喊电影| 国产午夜精品一区二区三区不| 国产熟妇一区二区三区网站| 国产欧美va欧美va香蕉在线| 久久99热久久99精品| 一个人免费观看在线视频播放| 亚洲国产成人久久精品美女av| 国产精品美女一区二区视频 | h动漫尤物视频| 人妻少妇中文字幕,久久精品| 成人精品视频一区二区| 日韩毛片在线看| 午夜福利视频男同女同| 久久综合五月天啪网亚洲精品| 亚洲精品一品区二品区三区| 亚洲熟女一区二区三区| 精品国产v无码大片在线观看| 成年女人片免费视频播放A| 成人av综合资源在线| 国产人妻久久精品二区三区老狼| 国产精品99久久久久久98AV| 伊人狼人激情综合影院| 色综合久久久无码中文字幕|