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

        ?

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

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

        譚江山

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

        關(guān)鍵詞:代碼生成器 模板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ī)范的代碼在編程中的重要性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        參考文獻

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

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

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

        久久这里只有精品黄色| 夜夜欢性恔免费视频| 国产成人精品电影在线观看18 | 亚洲国产av一区二区不卡| 99riav国产精品视频| 最近最好的中文字幕2019免费 | 亚洲熟妇av一区二区在线观看| 国内免费高清在线观看| 97影院在线午夜| 2021年性爱喷水视频| 青青草视频在线观看绿色| 男女猛烈无遮挡免费视频| 国产亚洲精品久久久久秋霞| av无码特黄一级| 日本午夜剧场日本东京热| 国内精品人妻无码久久久影院| 国产女在线| 日本视频一区二区二区| 国产91色综合久久免费| 精品久久久无码中字| 欧美国产亚洲精品成人a v| 日韩精品成人一区二区三区| 日日噜噜夜夜狠狠久久丁香五月| 国精无码欧精品亚洲一区| 免费一级欧美大片久久网| 久久一区二区av毛片国产| 亚洲中文字幕无码中文字| 国产精品多人P群无码| 日本红怡院东京热加勒比| 久久99热国产精品综合| 人禽伦免费交视频播放| AⅤ无码精品视频| 国产精品成人av大片| 亚洲码国产精品高潮在线| 亚洲中文字幕在线爆乳| 按摩少妇高潮在线一区| 97人伦影院a级毛片| 精品国产黑色丝袜高跟鞋| 亚洲综合久久久中文字幕| 色狠狠一区二区三区中文| 中国xxx农村性视频|