freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c20代碼生成器的研究與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2024-11-29 11:07本頁(yè)面

【導(dǎo)讀】代碼生成工具使軟件趨向于工廠模式開發(fā)。它可以使程序員不再編寫大。開發(fā)人員的需求。通過(guò)開源代碼的學(xué)習(xí)和各軟件功能模塊的分析,本人開發(fā)出了。自己的代碼生成器:首先,基本功能為生成三層架構(gòu)(BusinessObject,DAL,腳本;第三,在安全性和可靠性方面,增加了連接字符串的顯示和加密功能,以對(duì)自己的信息加密。數(shù)據(jù)庫(kù)表的結(jié)構(gòu)化顯示使用戶對(duì)其操作簡(jiǎn)單、方便;目前在國(guó)內(nèi),對(duì)基于C#的代碼生成器的應(yīng)用和研究仍處在探索階段。實(shí)現(xiàn)代碼生成器在理論支持的部分功能。動(dòng)軟,動(dòng)軟的.Net代碼生成器項(xiàng)目已經(jīng)實(shí)現(xiàn)了代碼生成器的大部分基礎(chǔ)功能。研究開發(fā),一些走在前面的企業(yè)已經(jīng)開始為客戶提供基于代碼生成器的軟件開發(fā)方案。CodeSmith均有類似功能的代碼生成器的研究和探索,且較為成功。MyGeneration已經(jīng)是比較成熟的代碼生成器工。具,并且在穩(wěn)定性、擴(kuò)展性和可維護(hù)性方面表現(xiàn)良好。善過(guò)程中,在某些方面,目前沒有合理的實(shí)現(xiàn)技術(shù)。代碼生成器的完整實(shí)現(xiàn),需要很多方

  

【正文】 (new File( + .BusinessObjects,SorterMode, BuildSorterMode()))。 //提取集合文件 public File GetCollectionFile(TableClass TableClass) { File result = new File()。 = GetCodeOfCollectionFile(TableClass)。 = + Collection。 return result。 } //建立 public string BuildSorterMode() private string BuildHead() //字段與屬性 private string BuildFieldsAndProperties() { string result = 。 foreach (ColumnProperty oColumnProperty in ) { string ColumnType = ()。 if () { if (ColumnType == Object || ColumnType == string || ColumnType == Byte[] //構(gòu)造 private string BuildConstructors() 王佳琪 :基于 C 的代碼生成器的研究與實(shí)現(xiàn) 18 { string result = 。 int nPosition = 0。 //默認(rèn) result += \t\tpublic + + () + 。 result += \t\t{ } + 。 result += 。 //完成 result += \t\tpublic + + (。 foreach (ColumnProperty oColumnProperty in ) {??} //轉(zhuǎn)化為字符串 public string BuildToString() { string result = 。 int nPosition = 0。 result += \t\tpublic override string ToString() + 。 result += \t\t{ + 。 result += \t\t\treturn 。 foreach (ColumnProperty oColumnProperty in ) private string BuildToStringOfPropertyName(ColumnProperty oColumnProperty) 生成數(shù)據(jù)訪問(wèn)層的 C 代碼 數(shù)據(jù)數(shù)據(jù)訪問(wèn)層 :主要是對(duì)原始數(shù)據(jù)(數(shù)據(jù)庫(kù)或者文本文件等存放數(shù)據(jù)的形式) 的操作層,而不是指原始數(shù)據(jù),也就是說(shuō),是對(duì)數(shù)據(jù) 表 的操作,而不是數(shù)據(jù)庫(kù) ,具體為業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù)主要看你的數(shù)據(jù)層里面有沒有包含邏輯處理,實(shí)際上他的各個(gè)函數(shù)主要完成各個(gè)對(duì)數(shù)據(jù)文件的操作 , 而不必管其他操作。 具體實(shí)現(xiàn): //建立和初始化項(xiàng)目文件 Project DALproject = new Project( + .DAL, )。 WinDALFileManager winDALFileManager = new WinDALFileManager()。 //獲取文件 public FileCollection GetFiles(CodGenProject oCodGenProject, string AppPath) { = oCodGenProject。 FileCollection result = new FileCollection()。 2020 屆網(wǎng)絡(luò)工程專業(yè)畢業(yè)設(shè)計(jì) (論文 ) 19 //遍歷類表 foreach (TableClass TableClassClass in ) { = TableClassClass。 (GetFile(TableClassClass))。 } //串行化 string CodeOfDbProviderHelper = (AppPath + @\Cs\)。 CodeOfDbProviderHelper = (namespace , namespace + + .DAL)。 (new File( + .DAL, DbProviderHelper, CodeOfDbProviderHelper))。 //Xml 串行化 string CodeOfXmlSerializerFile = (AppPath + @\Cs\)。 CodeOfXmlSerializerFile = (namespace , namespace + + .BusinessObjects)。 (new File( + .DAL, GenericXmlSerializer, CodeOfXmlSerializerFile))。 return result。 } DAL 代碼生成后,開始以下操作 ( 保存、添加引用等) : = (this, path)。 (new Reference())。 (new ProjectReference(businessObjectsproject))。 生成業(yè)務(wù)邏輯層的 C 代碼 業(yè)務(wù)邏輯層主要是針對(duì)具體的問(wèn)題的操作,也可 以理解成對(duì)數(shù)據(jù)層的操作 ,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理,如果說(shuō)數(shù)據(jù)層是積木, 那么 邏輯層就是對(duì)這些積木的搭建。 具體代碼如下: public class WinBLLFileManager { private CodGenProject CodGenProject。 private TableClass TableClass。 //獲取文件 public FileCollection GetFiles(CodGenProject oCodGenProject, string AppPath) { 王佳琪 :基于 C 的代碼生成器的研究與實(shí)現(xiàn) 20 = oCodGenProject。 FileCollection result = new FileCollection()。 //遍歷每一個(gè)表 foreach (TableClass TableClassClass in ) { = TableClassClass。 (GetFile(TableClassClass))。 } (new File( + .BLL, BLLManager, BuildBLLManagerClass()))。 return result。} public File GetFile(TableClass TableClassClass) public string GetCodeOfFile(TableClass TableClass) public string BuildBLLManagerClass() //建立頭部 private string BuildHead() //字段與屬性 private string BuildFieldsAndProperties() //構(gòu)造 private string BuildConstructors() private string BuildGet() private string BuildGetElement() private string BuildAdd() private string BuildUpdate() private string BuildRemove() public string BuildRemoveByPrimaryKey() 我們用三層架構(gòu)主要是使項(xiàng)目結(jié)構(gòu)更清楚,分工更明確,有利于后期的維護(hù)和升級(jí) 。 考慮一個(gè)項(xiàng)目是不是應(yīng)該應(yīng)用三層 /多層設(shè)計(jì)時(shí) ,先得考慮下是不是真的需要 ? 實(shí)際上大部分程序就開個(gè) WebApplication 就足夠了 ,完全沒必要作的這么復(fù)雜 。 而多層結(jié)構(gòu) ,是用于解決真正復(fù)雜的項(xiàng)目需求的 。 不要盲目多層程序設(shè)計(jì) ,先進(jìn)的不一定就是好的 .例如 ASP,正是因?yàn)樗暮?jiǎn)單性而流行 ,并且依然打造出了像 , 這樣巨型的站點(diǎn) 。 第 4 章 其他設(shè)計(jì) 存儲(chǔ)過(guò)程或視圖 當(dāng)代碼生成器的基本功能完成后,我們需要增加一些必要的功能來(lái)方便用戶的使用。如是否使用存儲(chǔ)過(guò)程或視圖,類的快速重命名,或?qū)⑦B接字符串加密來(lái)提高安全性。 2020 屆網(wǎng)絡(luò)工程專業(yè)畢業(yè)設(shè)計(jì) (論文 ) 21 存儲(chǔ)過(guò)程( Stored Procedure)是一組 為了完成特定功能的 SQL 語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)。用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。 在 SQL Server 的系列版本中存儲(chǔ)過(guò)程分為兩類:系統(tǒng)提供的存儲(chǔ)過(guò)程和用戶自定義存儲(chǔ)過(guò)程。系統(tǒng)過(guò)程主要存儲(chǔ)在 master 數(shù)據(jù)庫(kù)中并以 sp_為前綴,并且系統(tǒng)存儲(chǔ)過(guò)程主要是從系統(tǒng)表中獲取信息,從而為系統(tǒng)管理員管理 SQL Server 提供支持。通過(guò)系統(tǒng)存儲(chǔ)過(guò)程, SQL Server 中的許多管理性或信息性的活動(dòng)(如了解數(shù)據(jù)庫(kù)對(duì)象、數(shù)據(jù)庫(kù)信息)都可以被順利有效地完成。盡管這些系統(tǒng)存儲(chǔ)過(guò) 程被放在 master 數(shù)據(jù)庫(kù)中,但是仍可以在其它數(shù)據(jù)庫(kù)中對(duì)其進(jìn)行調(diào)用,在調(diào)用時(shí)不必在存儲(chǔ)過(guò)程名前加上數(shù)據(jù)庫(kù)名。而且當(dāng)創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)時(shí),一些系統(tǒng)存儲(chǔ)過(guò)程會(huì)在新數(shù)據(jù)庫(kù)中被自動(dòng)創(chuàng)建。用戶自定義存儲(chǔ)過(guò)程是由用戶創(chuàng)建并能完成某一特定功能(如查詢用戶所需數(shù)據(jù)信息)的存儲(chǔ)過(guò)程。 當(dāng)利用 SQL Server 創(chuàng)建一個(gè)應(yīng)用程序時(shí), TransactionSQL 是一種主要的編程語(yǔ)言。若運(yùn)用 TransactionSQL 來(lái)進(jìn)行編程,有兩種方法。其一是,在本地存儲(chǔ)Transaction SQL 程序,并創(chuàng)建應(yīng)用程序向 SQL Server 發(fā)送命令來(lái)對(duì)結(jié)果進(jìn)行處理。其二是,可以把部分用 TransactionSQL 編寫的程序作為存儲(chǔ)過(guò)程存儲(chǔ)在 SQL Server 中,并創(chuàng)建應(yīng)用程序來(lái)調(diào)用存儲(chǔ)過(guò)程,對(duì)數(shù)據(jù)結(jié)果進(jìn)行處理存儲(chǔ)過(guò)程能夠通過(guò)接收參數(shù)向調(diào)用者返回結(jié)果集,結(jié)果集的格式由調(diào)用者確定;返回狀態(tài)值給調(diào)用者,指明調(diào)用是成功或是失??;包括針對(duì)數(shù)據(jù)庫(kù)的操作語(yǔ)句,并且可以在一個(gè)存儲(chǔ)過(guò)程中調(diào)用另一存儲(chǔ)過(guò)程。 我們通常使用第二種方法,即在 SQL Server 中使用存儲(chǔ)過(guò)程而不是在客戶計(jì)算機(jī)上調(diào)用 TransactionSQL 編寫的一段程序,原因在于存儲(chǔ)過(guò) 程具有以下優(yōu)點(diǎn): ( 1) 存儲(chǔ)過(guò)程允許標(biāo)準(zhǔn)組件式編程 存儲(chǔ)過(guò)程在被創(chuàng)建以后可以在程序中被多次調(diào)用,而不必重新編寫該存儲(chǔ)過(guò)程的SQL 語(yǔ)句。而且數(shù)據(jù)庫(kù)專業(yè)人員可隨時(shí)對(duì)存儲(chǔ)過(guò)程進(jìn)行修改,但對(duì)應(yīng)用程序源代碼毫無(wú)影響(因?yàn)閼?yīng)用程序源代碼只包含存儲(chǔ)過(guò)程的調(diào)用語(yǔ)句),從而極大地提高了程序的可移植性。 ( 2) 存儲(chǔ)過(guò)程能夠?qū)崿F(xiàn)較快的執(zhí)行速度 如果某一操作包含大量的 TransactionSQL 代碼或分別被多次執(zhí)行,那么存儲(chǔ)過(guò)程要比批處理的執(zhí)行速度快很多。因?yàn)榇鎯?chǔ)過(guò)程是預(yù)編譯的,在首次運(yùn)行一個(gè)存儲(chǔ)過(guò)程時(shí),查詢優(yōu)化器對(duì)其進(jìn) 行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計(jì)劃。而批處理的 Transaction SQL 語(yǔ)句在每次運(yùn)行時(shí)都要進(jìn)行編譯和優(yōu)化,因此速度相對(duì)要慢一些。 ( 3) 存儲(chǔ)過(guò)程能夠減少網(wǎng)絡(luò)流量 對(duì)于同一個(gè)針對(duì)數(shù)據(jù)數(shù)據(jù)庫(kù)對(duì)象的操作(如查詢、修改),如果這一操作所涉及到的 TransactionSQL 語(yǔ)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1