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

感受代碼生成之美

2011-11-07 06:15:09吉基兵
中國現(xiàn)代教育裝備 2011年6期
關(guān)鍵詞:按鈕設(shè)置數(shù)據(jù)庫

吉基兵

江蘇省南京市第十三中學(xué) 江蘇南京 210008

☆現(xiàn)代教育技術(shù)應(yīng)用☆

感受代碼生成之美

吉基兵

江蘇省南京市第十三中學(xué) 江蘇南京 210008

在信息技術(shù)教學(xué)中,有些問題常常必須通過程序才能完成這項(xiàng)工作,然而對大多數(shù)一線教師來說,編寫程序是一件痛苦的事情。那有什么辦法來解決呢?使用代碼生成。代碼生成技術(shù)已經(jīng)非常成熟了,網(wǎng)上有各種各樣的代碼生成工具。本文從什么是代碼生成技術(shù)開始,分析了常規(guī)開發(fā)面臨的問題,使用代碼生成器有哪些好處?介紹了幾款常見的代碼生成器,重點(diǎn)介紹了CodeSmith的使用,感受代碼生成之美。使用代碼生成工具,我們可以快速生成代碼,進(jìn)而編寫出符合實(shí)際需要的軟件。

一、什么是代碼生成

代碼生成就是利用工具或程序,通過簡單配置,快速生成程序代碼、數(shù)據(jù)庫腳本、數(shù)據(jù)字典等的編碼方式。代碼生成通常與數(shù)據(jù)庫相關(guān)項(xiàng)目聯(lián)系在一起。通過簡單配置,可以快速生成增刪改查、分頁等基礎(chǔ)處理類庫,甚至UI頁面也可生成,整個(gè)過程無需編碼。生成的代碼風(fēng)格統(tǒng)一,無需測試。

二、常規(guī)開發(fā)面臨的問題

代碼大量重復(fù)。在程序開發(fā)過程當(dāng)中,程序員會經(jīng)常做著重復(fù)性的工作,最常見的是訪問數(shù)據(jù)庫,程序員要經(jīng)常編寫增、刪、改、分頁之類的操作。為了避免這個(gè)問題,節(jié)省大量機(jī)械錄入的時(shí)間和重復(fù)勞動,提高工作效率,而將精力集中于核心業(yè)務(wù)邏輯的開發(fā)。一個(gè)適合于自己使用的代碼生成器顯得非常重要。

項(xiàng)目嚴(yán)重超期。越來越多的壓力使得一個(gè)軟件項(xiàng)目無論是最終用戶、企業(yè)、開發(fā)團(tuán)隊(duì)都希望在最短的時(shí)間完成,可事與愿違的是軟件項(xiàng)目的時(shí)間延期問題普遍存在,一些調(diào)查表明,70%的項(xiàng)目超出了估算的時(shí)間。大型項(xiàng)目平均超出計(jì)劃交付時(shí)間的20%到50%,項(xiàng)目越大,超出計(jì)劃的時(shí)間越長。一直以來開發(fā)速度的問題都是軟件開發(fā)業(yè)的頭等問題。那怎樣才能在保證軟件質(zhì)量的同時(shí)又縮短開發(fā)速度呢?

1.代碼生成的好處

編碼效率高。可以在1分鐘內(nèi)生成幾萬行代碼,把人從重復(fù)勞動解放出來,用更多的精力去關(guān)注更核心的業(yè)務(wù)邏輯,系統(tǒng)的優(yōu)化;代碼質(zhì)量高。因?yàn)榇a都是一個(gè)生成器模板生成出來的,代碼風(fēng)格一致,便于以后維護(hù)。

2.代碼生成器有哪些

(1)IBM Rational Rose

Rose實(shí)際上一個(gè)建模工具,但具有代碼生成功能。

Rational Rose是一個(gè)完全的,具有能滿足所有建模環(huán)境(Web開發(fā),數(shù)據(jù)建模,Visual Studio和C++ )需求能力和靈活性的一套解決方案。Rose允許開發(fā)人員、項(xiàng)目經(jīng)理、系統(tǒng)工程師和分析人員在軟件開發(fā)周期內(nèi)在將需求和系統(tǒng)的體系架構(gòu)轉(zhuǎn)換成代碼,消除浪費(fèi)的消耗,對需求和系統(tǒng)的體系架構(gòu)進(jìn)行可視化、理解和精練。通過在軟件開發(fā)周期內(nèi)使用同一種建模工具可以確保更快更好的創(chuàng)建滿足客戶需求的可擴(kuò)展的、靈活的并且可靠的應(yīng)用系統(tǒng)。

(2)Sybase Power Designer

PowerDesigner實(shí)際上一個(gè)建模工具,但具有代碼生成功能。

PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地對管理信息系統(tǒng)進(jìn)行分析設(shè)計(jì),它幾乎包括了數(shù)據(jù)庫模型設(shè)計(jì)的全過程。利用PowerDesigner可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,可以生成多種客戶端開發(fā)工具的應(yīng)用程序,還可為數(shù)據(jù)倉庫制作結(jié)構(gòu)模型,也能對團(tuán)隊(duì)設(shè)備模型進(jìn)行控制。

Sybase PowerDesigner還是一個(gè)“一站式”的企業(yè)級建模及設(shè)計(jì)解決方案,它能幫助企業(yè)快速高效地進(jìn)行企業(yè)應(yīng)用系統(tǒng)構(gòu)建及再工程(Re- engineer)。IT專業(yè)人員可以利用它來有效開發(fā)各種解決方案,從定義業(yè)務(wù)需求到分析和設(shè)計(jì),以至集成所有現(xiàn)代RDBMS和Java、.NET、PowerBuilder和Web Services的開發(fā)等。PowerDesigner是結(jié)合了下列幾種標(biāo)準(zhǔn)建模技術(shù)的一款獨(dú)具特色的建模工具集:業(yè)務(wù)流程建模、通過UML進(jìn)行的應(yīng)用程序建模以及市場占有率第一的數(shù)據(jù)建模,這些建模技術(shù)都是由功能強(qiáng)大的元數(shù)據(jù)管理解決方案提供支持的。

(3)動軟.Net代碼生成器

動軟.Net代碼生成器是一款為C#數(shù)據(jù)庫程序員設(shè)計(jì)的自動代碼生成器,Codematic生成的代碼基于面向?qū)ο蟮乃枷牒腿龑蛹軜?gòu)設(shè)計(jì),結(jié)合了Petshop中經(jīng)典的思想和設(shè)計(jì)模式,融入了工廠模式,反射機(jī)制等等一些思想。主要實(shí)現(xiàn)在對應(yīng)數(shù)據(jù)庫中表的基類代碼的自動生成,包括生成屬性、添加、修改、刪除、查詢、存在性、Model類構(gòu)造等基礎(chǔ)代碼片斷,支持不同3種架構(gòu)代碼生成。

(4)ASP.NET Maker

ASPMaker是一款自動化的ASP代碼產(chǎn)生工具,它提供了一種方便快捷的可視化操作環(huán)境,使用者即使沒有任何的網(wǎng)絡(luò)編程經(jīng)驗(yàn),只要提供 Microsoft Access數(shù)據(jù)庫或是ODBC數(shù)據(jù)源,就可以在五步之內(nèi)快速地自動生成一整套ASP(Active Server Pages)程序。利用產(chǎn)生的ASP代碼,用戶能夠在Web上容易地查看、編輯、搜索、加入和刪除數(shù)據(jù)庫記錄。ASPMaker具有高度的靈活性,幾個(gè)選項(xiàng)使你能夠產(chǎn)生最符合你需求的ASP應(yīng)用程序。產(chǎn)生的代碼是干凈的、直接的并易于定制。

ASP.NET Maker是一套非常容易使用的代碼生成工具,同ASPMaker一樣,它能快速地根據(jù)數(shù)據(jù)庫連接資料來源中生成一套完整的ASP.NET程序。

它支持以下數(shù)據(jù)庫:Microsoft Access、Microsoft SQL Server、Oracle、或任何具 ADO 或ODBC 連接的數(shù)據(jù)庫。

(5)CodeSmith

CodeSmith一款國際知名度最高的基于模板的代碼生成器,模板采用類似C#的腳本語言。

它主要特點(diǎn)在于模板的定制能力強(qiáng),你完全可以像使用C#語言開發(fā)程序一樣,編寫屬于自己的模板。如果嫌麻煩,在網(wǎng)上完全可以找到想要的模板,稍加修改就可以變成適合自己的了。你一些ORM(NHibernate、IBatis、LINQ)、三層架構(gòu)(Petshop、NTiers)、數(shù)據(jù)庫(分頁、 CRUD存儲過程、生成基礎(chǔ)數(shù)據(jù))、架構(gòu)(CSLA.NET)、Ajax等等。幾乎覆蓋了所有應(yīng)用,可以說“只有想不到,沒有做不到”。

網(wǎng)上有很多共享的模板,其中.NetTiers尤為著名。

三、代碼生成工具的使用

本文以CodeSmith為例,結(jié)合.NetTiers模板來介紹代碼生成工具的使用。首先從網(wǎng)上下載CodeSmith,當(dāng)前最新的版本為:5.2。參照以下流程安裝,如圖1所示。

圖 1

如果需要將CodeSmith集成到VSTS(Visual Studio Team Suite)中,安裝CodeSmith之前最好先安裝VSTS,如圖2所示。

圖 2

安裝完畢得到兩個(gè)應(yīng)用程序:CodeSmith Studio和CodeSmith Explorer,CodeSmith Explorer是知識模板瀏覽器,可內(nèi)嵌在CodeSmith Studio、VSTS中,CodeSmith Studio是CodeSmith的集成開發(fā)環(huán)境可以編輯模板文件。

下面我們使用.NetTiers模板,連接數(shù)據(jù)庫,設(shè)置相關(guān)參數(shù)來生成項(xiàng)目代碼,學(xué)習(xí)CodeSmith的使用方法。工作流程,如圖3所示:

圖 3

1.添加模板文件夾

CodeSmith是基于模板文件來工作的,模板可是自行編寫,也可以“拿來主義”。CodeSmith已經(jīng)內(nèi)置了許多模板文件,其他模板文件在使用之前,需要組織到CodeSmith中來,這就是在CodeSmith中為模板文件夾添加快捷方式,方法如下:

(1)在打開CodeSmith,找到Explorer面板。

(2)單擊面板上的按鈕,瀏覽到.NetTiers模板文件所在目錄。

2.建立數(shù)據(jù)連接

(1)在CodeSmith中連接數(shù)據(jù)庫之前,假定您的數(shù)據(jù)庫已經(jīng)部署并建立完成。圖4是我們演示的數(shù)據(jù)庫表結(jié)構(gòu)。

圖 4

(2)從菜單中執(zhí)行命令“View-Schema Explorer”打開數(shù)據(jù)庫連接管理面板。

(3)在Schema Explorer面板中,單擊按鈕“Manager Data Source ”打開“Data Source Manger”對話框。

(4)在“Data Source Manager”對話框中,單擊“Add”,打開“Data Source”數(shù)據(jù)源設(shè)置對話框。

(5)在數(shù)據(jù)源設(shè)置對話框中,填寫“name(連接別名)”參數(shù),選擇“Provider Type(數(shù)據(jù)庫連接提供程序)”類型,本例使用Sql Server,所以選擇“SqlSchemaProvider”,最后單擊“Connection String:”后面的“…”按鈕,填寫數(shù)據(jù)庫連接信息。

(6)在“Connection Properties”對話框中填寫SQL Server服務(wù)器地址,登錄賬號信息,選擇要連接的數(shù)據(jù)庫;單擊“OK”返回。

(7)返回后,連接字符串已經(jīng)自動生成。

(8)可以單擊“Test”測試數(shù)據(jù)庫連接,確保成功。

(9)測試成功,返回“Data Source Manger”對話框,可以看到剛才添加的別名“demo”已經(jīng)出現(xiàn)在列表中。單擊“Close”返回。

(10)在“Schema Explorer”中也有了剛才建立的連接。

3.設(shè)置生成參數(shù)

(1)打開“CodeSmith Explorer”,或者在CodeSmith中,找到“Template Explorer”面板,依次展開“CodeSmith 5.2 Samples-Frameworks-NetTiers”,找到“NetTiers.cst”模板文件。

(2)在“NetTiers.cst”模板文件上右擊,彈出菜單,選擇“Execute”執(zhí)行該模板文件。

(3)彈出該模板的屬性設(shè)置窗口,如圖5所示。

圖 5

(4)首先設(shè)置數(shù)據(jù)源,單擊“Choose SourceDatabase”選項(xiàng)后面的按鈕“…”,彈出數(shù)據(jù)源選擇對話框

(5)設(shè)置好數(shù)據(jù)源后,暫時(shí)只要設(shè)置“MappingFile(映射文件路徑)”和“OutputDirectory(代碼生成輸出目錄)”兩個(gè)選項(xiàng)即可,如果需要特殊設(shè)置,可以設(shè)置其他選項(xiàng)。

4.生成項(xiàng)目代碼

(1)參數(shù)設(shè)置完畢,單擊窗口下部的“Generate”按鈕開始生成代碼,如圖6所示。

圖 6

(2)任務(wù)執(zhí)行完畢,會自動彈出任務(wù)執(zhí)行報(bào)告。報(bào)告中包括:任務(wù)執(zhí)行匯總信息、項(xiàng)目使用配置信息、API使用案例、生成代碼詳細(xì)信息。

(3)模板輸出信息如下,可以看到項(xiàng)目代碼生成在指定目錄。

Generation complete. Execution time:00:00:07.7311168

You can view current documentation @http://docs.netTiers.com

Generated solution can be found here:

file:\D:NetTiersDemoDemo.sln

(4)打開輸出目錄,可以看到生成的解決方案和項(xiàng)目。

5.測試編譯項(xiàng)目

(1)在VSTS中打開解決方案“demo.sln”,選中“*.WebSite”網(wǎng)站項(xiàng)目,設(shè)置為啟動項(xiàng)目。按“Ctrl+F5”執(zhí)行,瀏覽測試網(wǎng)站。

(2)彈出網(wǎng)站默認(rèn)頁面,5秒鐘后將會自動轉(zhuǎn)向管理后臺,左側(cè)是所有的數(shù)據(jù)表,單擊任一表名可以查看該表中的數(shù)據(jù)。

(3)單擊下面的“Add New”按鈕可以對該表添加新記錄,如圖7所示。

圖 7

6.建立注冊頁面

(1)在網(wǎng)站根目錄建立頁面:“Reg.aspx”。

(2)打開“~/Admin/TUserEdit.aspx”頁面代碼,拷貝如圖8選中部分代碼。

圖 8

代碼參考(僅參考,實(shí)際可能不同)如下:

(3)打開“~/Reg.aspx”頁面代碼,在“”之間插入上一步拷貝的代碼。

(4)打開“~/Admin/TUserEdit.aspx”后臺代碼,拷貝如下部分代碼。

(5)打開“~/Reg.aspx”后臺代碼,將如下圖選中的命名空間替換為上一步拷貝的代碼。

(6)參照以下幾步修改代碼。

a.打開“~/Reg.aspx”頁面代碼,在“”標(biāo)簽后部加上“DefaultMode="Insert"”,表示該表單默認(rèn)是插入模式。

b. 刪除如下代碼,表示刪除“Update”按鈕。

圖 9

(8)用戶可以注冊了,大功告成。

[1] Peter Vogel.Practical Code Generation in .NET[M].美國:Addison-Wesley Professional, 2010.

[2] Kathleen Dollard. Code Generation in Microsoft .NET[M].美國:Apress. 2004

吉基兵,教育碩士,中教一級。

猜你喜歡
按鈕設(shè)置數(shù)據(jù)庫
這些按鈕能隨便按嗎?
當(dāng)你面前有個(gè)按鈕
中隊(duì)崗位該如何設(shè)置
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
內(nèi)心不能碰的按鈕
主站蜘蛛池模板: 欧美在线伊人| 亚洲福利网址| 国产成人调教在线视频| 亚洲精品天堂自在久久77| 日韩高清在线观看不卡一区二区| 日韩一级二级三级| 免费在线a视频| 丝袜美女被出水视频一区| 国产全黄a一级毛片| 国产成+人+综合+亚洲欧美| 激情网址在线观看| 色吊丝av中文字幕| 久久久久88色偷偷| 欧美黄色网站在线看| 熟女视频91| www.91在线播放| 麻豆国产精品视频| 成人亚洲国产| 国产微拍一区二区三区四区| 中国黄色一级视频| 在线观看国产精品第一区免费| 欧美区一区| 色综合国产| 亚洲人精品亚洲人成在线| 亚洲人成电影在线播放| 国产精品无码AⅤ在线观看播放| 青青青伊人色综合久久| 欧美精品在线免费| 国产女人18毛片水真多1| 欧美精品一区在线看| 亚洲国产亚洲综合在线尤物| 日本午夜影院| 国产无码性爱一区二区三区| 亚洲综合久久成人AV| 无码免费的亚洲视频| 免费中文字幕在在线不卡| 青青草a国产免费观看| 97国产精品视频自在拍| 亚洲国产日韩一区| 毛片基地视频| 成人小视频在线观看免费| 91蜜芽尤物福利在线观看| 久久久久人妻精品一区三寸蜜桃| 中字无码精油按摩中出视频| 国产综合另类小说色区色噜噜| 超碰色了色| 熟女日韩精品2区| 国产门事件在线| 香蕉99国内自产自拍视频| yjizz国产在线视频网| 国产精品手机在线观看你懂的| 久热精品免费| 亚洲av无码久久无遮挡| 欧美激情综合| 思思热在线视频精品| 成年人免费国产视频| 久久综合九色综合97网| 国产精品丝袜视频| 久久精品中文字幕免费| 亚洲精品高清视频| 最新精品久久精品| 日韩欧美一区在线观看| 欧洲亚洲欧美国产日本高清| 免费A级毛片无码免费视频| 中文字幕永久在线看| 亚洲精品无码人妻无码| a毛片免费在线观看| 人妻一区二区三区无码精品一区 | 日韩乱码免费一区二区三区| 高潮毛片无遮挡高清视频播放| 精品人妻一区无码视频| 欧美无专区| a色毛片免费视频| 久久99国产综合精品女同| 欧美成人综合在线| 伊人查蕉在线观看国产精品| 久久五月天国产自| 激情爆乳一区二区| 在线欧美一区| 久久国产成人精品国产成人亚洲| 天天做天天爱夜夜爽毛片毛片| 人人澡人人爽欧美一区|