999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

譚江山

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

關鍵詞:代碼生成器 模板C# Razor

中圖分類號:G64 文獻標識碼:A 文章編號:1672-3791(2017)01(b)-0042-02

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

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

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

2 基于Razor模板引擎的代碼生成器的特點

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

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

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

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

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

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

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

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

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

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

4 基于Razor模板引擎的代碼生成器的應用實踐

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

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

參考文獻

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

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

[3] 王建光.基于模型驅動架構的軟件生成技術研究[D].太原理工大學,2007.

主站蜘蛛池模板: 国产精品永久在线| 91九色最新地址| 久久精品无码一区二区日韩免费| 国产精品亚洲αv天堂无码| 亚洲高清资源| 99视频全部免费| 久久国产精品麻豆系列| 国产成人精品亚洲77美色| 黄色网在线免费观看| 欧美亚洲中文精品三区| 欧美日韩91| 国产成年女人特黄特色毛片免| 在线国产毛片| 国产亚洲视频免费播放| 看你懂的巨臀中文字幕一区二区| 国产在线精品网址你懂的| 亚洲欧美精品日韩欧美| 中文字幕在线免费看| 亚洲一级毛片| 欧美日韩国产在线播放| www.youjizz.com久久| 国产永久免费视频m3u8| 久久人与动人物A级毛片| 国内精品小视频福利网址| 久久黄色免费电影| 日本一本正道综合久久dvd | 国产精品亚洲天堂| 国产精品真实对白精彩久久| 国产精品无码翘臀在线看纯欲| 19国产精品麻豆免费观看| 欧美一级黄色影院| 午夜丁香婷婷| 亚洲国产精品日韩专区AV| 乱色熟女综合一区二区| 国产正在播放| 国产浮力第一页永久地址 | 亚洲精品中文字幕无乱码| 日韩AV无码免费一二三区| 国产二级毛片| 91年精品国产福利线观看久久| 四虎永久免费在线| 国产午夜人做人免费视频中文| 看国产一级毛片| 欧洲日本亚洲中文字幕| 国产精品丝袜视频| 一本大道视频精品人妻| 女人av社区男人的天堂| 亚洲国产AV无码综合原创| 精品午夜国产福利观看| 国产成人综合网| 高清视频一区| 青青草原国产一区二区| 国产欧美中文字幕| 久久精品无码一区二区日韩免费| 丝袜美女被出水视频一区| av一区二区人妻无码| 久操线在视频在线观看| 亚洲午夜综合网| 天天综合天天综合| 日日拍夜夜操| 在线观看免费人成视频色快速| 不卡无码h在线观看| 国产91丝袜在线播放动漫 | 日本影院一区| 国产精品丝袜在线| 免费国产福利| 国模在线视频一区二区三区| 亚洲精品无码久久毛片波多野吉| 在线欧美国产| 色香蕉网站| 国产呦精品一区二区三区下载| 一本二本三本不卡无码| 国产伦片中文免费观看| 国产成人无码AV在线播放动漫| 亚洲国产天堂久久九九九| 免费国产黄线在线观看| 欧美综合中文字幕久久| 日本成人一区| 精品久久777| 亚洲色图欧美| 成人在线天堂| 人妻少妇乱子伦精品无码专区毛片|