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

代碼生成技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用

2016-08-29 02:14:28重慶三峽職業(yè)學(xué)院現(xiàn)代教育技術(shù)中心
電子世界 2016年15期
關(guān)鍵詞:數(shù)據(jù)庫(kù)

重慶三峽職業(yè)學(xué)院現(xiàn)代教育技術(shù)中心 唐 磊

?

代碼生成技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用

重慶三峽職業(yè)學(xué)院現(xiàn)代教育技術(shù)中心唐磊

本文介紹了代碼生成技術(shù)的概念和特點(diǎn),以及代碼生成器的分類,在此基礎(chǔ)上舉例說(shuō)明代碼生成器在軟件項(xiàng)目開(kāi)發(fā)中的應(yīng)用過(guò)程。

代碼生成;軟件開(kāi)發(fā);.NET;數(shù)據(jù)庫(kù)

1.引言

一直以來(lái),軟件工程界在如何減少軟件工程師的工作量和提高工作產(chǎn)品的質(zhì)量的問(wèn)題上做著不懈地探討和研究,用于解決這問(wèn)題的新方法、新技術(shù)、新工具也不斷地涌現(xiàn)。一些應(yīng)用程序框架如J2EE,.NET的出現(xiàn),讓軟件工程師擺脫了編寫(xiě)諸如數(shù)據(jù)庫(kù)訪問(wèn),web頁(yè)面UI設(shè)計(jì)等底層邏輯代碼帶來(lái)的煩惱,但軟件工程師面臨編寫(xiě)基于這些應(yīng)用程序框架API的一些重復(fù)繁瑣的代碼,以及軟件系統(tǒng)需求或應(yīng)用程序框架API的變更導(dǎo)致軟件系統(tǒng)中代碼的多次修改等諸多問(wèn)題。采用代碼生成技術(shù)可以成為解決之道。它實(shí)現(xiàn)了從手工作坊式的編程到對(duì)組件的自動(dòng)裝配的轉(zhuǎn)變。

2.代碼生成技術(shù)綜述

所謂代碼生成技術(shù),即在開(kāi)發(fā)應(yīng)用軟件之前,先設(shè)計(jì)一個(gè)程序,用它來(lái)自動(dòng)生成目標(biāo)程序的代碼。隨著應(yīng)用程序開(kāi)發(fā)環(huán)境的日益復(fù)雜,如J2EE、MFC和.NET等,代碼生成技術(shù)在專業(yè)應(yīng)用程序開(kāi)發(fā)過(guò)程中的地位起來(lái)越重要。使用代碼生成技術(shù),可極大地加快應(yīng)用軟件的編程速度,降低錯(cuò)誤發(fā)生率,從而提高應(yīng)用軟件的生產(chǎn)效率。

代碼生成技術(shù)的優(yōu)點(diǎn):

質(zhì)量高:大量手寫(xiě)代碼的質(zhì)量是參差不齊的,修改已完成的同類代碼的代價(jià)太大。使用代碼生成器,即使在調(diào)試時(shí)發(fā)現(xiàn)了錯(cuò)誤,也可以修改模板和重新生成代碼。

一致性好:代碼生成器生成的代碼整齊,對(duì)變量名的定義、API的調(diào)用等進(jìn)行規(guī)范,提高了代碼的可讀性。

對(duì)項(xiàng)目開(kāi)發(fā)經(jīng)理來(lái)說(shuō),應(yīng)用代碼生成技術(shù)還具有易于控制開(kāi)發(fā)流程、提供高質(zhì)量的文檔和代碼的優(yōu)點(diǎn)。

代碼生成器按輸入和輸出分可分為代碼Munger、內(nèi)嵌代碼擴(kuò)展、混合代碼生成器、部分類生成器和層生成器。代碼生成器按是否對(duì)生成代碼的維護(hù)可分為消極的代碼生成器和積極的代碼生成器。

3.代碼生成技術(shù)實(shí)現(xiàn)

現(xiàn)代企業(yè)應(yīng)用程序一般采用三層或多層模式,從下向上依次為數(shù)據(jù)庫(kù)訪問(wèn)層、應(yīng)用邏輯層和用戶界面層。一個(gè)典型的在.NET平臺(tái)上開(kāi)發(fā)的應(yīng)用軟件的模式為:

數(shù)據(jù)訪問(wèn)層:實(shí)現(xiàn)SQL語(yǔ)句和存儲(chǔ)過(guò)程與數(shù)據(jù)庫(kù)的訪問(wèn)。

應(yīng)用邏輯層:由一組.NET組件(.dll)構(gòu)成,是實(shí)現(xiàn)應(yīng)用程序的業(yè)務(wù)邏輯部分。應(yīng)用邏輯層通過(guò)調(diào)用數(shù)據(jù)庫(kù)訪問(wèn)層中的類方法,實(shí)現(xiàn)ADO.NET與數(shù)據(jù)庫(kù)交換數(shù)據(jù)。

用戶界面層:.NET平臺(tái)上的用戶界面可以采用兩種方式:Web Form和Windows Form。前者在服務(wù)器上運(yùn)行,用戶通過(guò)計(jì)算機(jī)上的瀏覽器訪問(wèn);后者是運(yùn)行于用戶計(jì)算機(jī)上的Windows應(yīng)用程序,通過(guò)Web Service與服務(wù)器上的應(yīng)用邏輯層交換數(shù)據(jù)。

基于企業(yè)應(yīng)用程序目前采用的三層或多層模式,目前的商業(yè)代碼生成軟件大多為層生器類。軟件提供大量程序模板供選擇,可為數(shù)據(jù)訪問(wèn)層、應(yīng)用邏輯層和用戶界面層等定義對(duì)應(yīng)的模板,通過(guò)數(shù)據(jù)庫(kù)中的表可批量生成每層相對(duì)應(yīng)的代碼,從而節(jié)約大量手工方式編碼的時(shí)間。通過(guò)軟件內(nèi)的文檔生成功能可生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)設(shè)計(jì)文檔。至于應(yīng)用程序的報(bào)表問(wèn)題,可采用成熟的每三方組件來(lái)完成,如著名的水晶報(bào)表。也可自行編制報(bào)表程序。

4.代碼生成技術(shù)應(yīng)用

動(dòng)軟代碼生成器在目前軟件開(kāi)發(fā)中應(yīng)用廣泛。它支持多種類型數(shù)據(jù)庫(kù)管理器,可以生成基于面向?qū)ο蟮乃枷牒腿龑蛹軜?gòu)設(shè)計(jì)的代碼,主要實(shí)現(xiàn)在對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的基類代碼的自動(dòng)生成,包括生成屬性、添加、修改、刪除、查詢、存在性和Model類構(gòu)造等基礎(chǔ)代碼片斷,支持不同3種架構(gòu)代碼生成。以下是動(dòng)軟代碼生成器的操作步驟。

第一步,在代碼模板中創(chuàng)建各層的代碼模板(如Model層,數(shù)據(jù)訪問(wèn)層(DAL),應(yīng)用邏輯層(BLL)和用戶界面層),其中Model層代碼模板如圖 1所示。圖中TableHost host = (TableHost)(Host);表示獲取到的數(shù)據(jù)表對(duì)象,<#= host.TableDescription #>表示數(shù)據(jù)表的注釋名,<#= host.GetModelClass(host.TableName) #>表示數(shù)據(jù)表基類名稱,<#= CodeCommon.DbTypeToCS(c.TypeName) #> 表示數(shù)據(jù)表基類屬性數(shù)據(jù)類型,<#= c.ColumnName #>表示數(shù)據(jù)表基類屬性名稱。

圖1  Model層代碼模板

第二步,在代碼模板中創(chuàng)建各層的代碼模板(如Model層,數(shù)據(jù)訪問(wèn)層(DAL),在數(shù)據(jù)庫(kù)視圖中創(chuàng)建并連接服務(wù)器,在出現(xiàn)的數(shù)據(jù)庫(kù)列表中任選一個(gè)數(shù)據(jù)庫(kù),在出現(xiàn)的右鍵菜單中選擇“模板代碼批量生成”,在出現(xiàn)的窗口中選擇要生成代碼的數(shù)據(jù)庫(kù),選擇表和視圖,選擇要模板,選擇“按模板和表獨(dú)立保存”,選擇生成代碼保存路徑,點(diǎn)擊“導(dǎo)出”按鈕,即在指定路徑下生成與代碼模板對(duì)應(yīng)的源代碼。窗口設(shè)置如圖 2所示。

圖2  模板代碼批量生成窗口

5.結(jié)論

本文以動(dòng)軟代碼生成器生成某個(gè)軟件項(xiàng)目代碼為例說(shuō)明了代碼生成技術(shù)的應(yīng)用。代碼自動(dòng)生成軟件是極有價(jià)值的應(yīng)用軟件開(kāi)發(fā)工具,無(wú)論是選擇商業(yè)軟件還是自行開(kāi)發(fā)代碼生成工具,正確地應(yīng)用和維護(hù)可以極大地提高軟件開(kāi)發(fā)效率和軟件質(zhì)量。

[1]劉鷹.代碼生成技術(shù)及其在企業(yè)開(kāi)發(fā)中的應(yīng)用[J].西安文理學(xué)院學(xué)報(bào):自然科學(xué)版,2006,9(3):98.

[2]范小鋼.代碼生成技術(shù)的探討與實(shí)踐[D].中山:中山大學(xué),2004.

[3]鄭斌.基于ASP.NET Web應(yīng)用的代碼生成技術(shù)[D].長(zhǎng)沙:中南大學(xué),2011.

[4]王忠杰,戰(zhàn)德臣,徐曉飛等.基于對(duì)象關(guān)聯(lián)模型的企業(yè)應(yīng)用軟件代碼生成器[J].計(jì)算機(jī)集成制造系統(tǒng),2007,13(5):1023.

唐磊(1983—),男,重慶萬(wàn)州人,重慶大學(xué)計(jì)算機(jī)技術(shù)工程碩士,現(xiàn)供職于重慶三峽職業(yè)學(xué)院現(xiàn)代教育技術(shù)中心,實(shí)驗(yàn)師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò),軟件開(kāi)發(fā)。

猜你喜歡
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
兩種新的非確定數(shù)據(jù)庫(kù)上的Top-K查詢
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 成人午夜免费观看| 99视频在线免费观看| 亚洲人成亚洲精品| 日韩无码精品人妻| 国产免费久久精品44| 亚洲av成人无码网站在线观看| 无码电影在线观看| 亚洲无码一区在线观看| 亚洲熟女偷拍| 天天干天天色综合网| 18禁色诱爆乳网站| 国产91精品久久| 国产欧美又粗又猛又爽老| 视频二区欧美| 国产日韩精品欧美一区灰| 欧美有码在线观看| 欧美精品1区| AV在线麻免费观看网站| www.91在线播放| 亚洲欧洲国产成人综合不卡| 日韩精品欧美国产在线| 久久人体视频| 午夜综合网| 亚洲热线99精品视频| 国产精品3p视频| 欧美成人看片一区二区三区 | 日韩欧美在线观看| 欧美色视频在线| 欧美色图第一页| 日本免费a视频| 亚洲国产欧美国产综合久久 | 综合色区亚洲熟妇在线| 最新无码专区超级碰碰碰| 亚洲国产高清精品线久久| 欧美午夜理伦三级在线观看| 秘书高跟黑色丝袜国产91在线| 国产91线观看| 中文字幕在线看视频一区二区三区| 日韩欧美中文字幕一本| 国产乱子伦无码精品小说| 综合五月天网| 亚洲香蕉在线| 中国毛片网| 永久在线精品免费视频观看| 日本欧美在线观看| 免费观看国产小粉嫩喷水 | 99精品国产自在现线观看| 欧美综合区自拍亚洲综合天堂 | 欧美在线三级| 超碰精品无码一区二区| 国产第一页第二页| 国产啪在线91| 欧美精品亚洲精品日韩专| 国产精品亚欧美一区二区| 极品国产一区二区三区| 久久综合九九亚洲一区| 久久精品这里只有国产中文精品| 高清国产va日韩亚洲免费午夜电影| 永久免费精品视频| av色爱 天堂网| 好吊色妇女免费视频免费| 国产粉嫩粉嫩的18在线播放91 | 国产免费久久精品99re丫丫一| 国产成人福利在线视老湿机| 香蕉精品在线| 国产精品林美惠子在线观看| 波多野结衣一区二区三区四区视频 | 日韩精品亚洲精品第一页| 秘书高跟黑色丝袜国产91在线 | 91久久国产成人免费观看| 亚洲成人在线免费| 中文国产成人精品久久| 性视频久久| 国产人人干| h视频在线观看网站| 欧美日韩成人| 夜夜爽免费视频| 亚洲AⅤ无码国产精品| 国产精鲁鲁网在线视频| 国产人成在线观看| 伊人久久大香线蕉影院| 精品国产成人三级在线观看|