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

正文內(nèi)容

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

2024-11-29 11:07本頁面

【導(dǎo)讀】代碼生成工具使軟件趨向于工廠模式開發(fā)。它可以使程序員不再編寫大。開發(fā)人員的需求。通過開源代碼的學(xué)習(xí)和各軟件功能模塊的分析,本人開發(fā)出了。自己的代碼生成器:首先,基本功能為生成三層架構(gòu)(BusinessObject,DAL,腳本;第三,在安全性和可靠性方面,增加了連接字符串的顯示和加密功能,以對自己的信息加密。數(shù)據(jù)庫表的結(jié)構(gòu)化顯示使用戶對其操作簡單、方便;目前在國內(nèi),對基于C#的代碼生成器的應(yīng)用和研究仍處在探索階段。實現(xiàn)代碼生成器在理論支持的部分功能。動軟,動軟的.Net代碼生成器項目已經(jīng)實現(xiàn)了代碼生成器的大部分基礎(chǔ)功能。研究開發(fā),一些走在前面的企業(yè)已經(jīng)開始為客戶提供基于代碼生成器的軟件開發(fā)方案。CodeSmith均有類似功能的代碼生成器的研究和探索,且較為成功。MyGeneration已經(jīng)是比較成熟的代碼生成器工。具,并且在穩(wěn)定性、擴展性和可維護性方面表現(xiàn)良好。善過程中,在某些方面,目前沒有合理的實現(xiàn)技術(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 的代碼生成器的研究與實現(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ù)訪問層的 C 代碼 數(shù)據(jù)數(shù)據(jù)訪問層 :主要是對原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式) 的操作層,而不是指原始數(shù)據(jù),也就是說,是對數(shù)據(jù) 表 的操作,而不是數(shù)據(jù)庫 ,具體為業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù)主要看你的數(shù)據(jù)層里面有沒有包含邏輯處理,實際上他的各個函數(shù)主要完成各個對數(shù)據(jù)文件的操作 , 而不必管其他操作。 具體實現(xiàn): //建立和初始化項目文件 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è)計 (論文 ) 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ù)邏輯層主要是針對具體的問題的操作,也可 以理解成對數(shù)據(jù)層的操作 ,對數(shù)據(jù)業(yè)務(wù)邏輯處理,如果說數(shù)據(jù)層是積木, 那么 邏輯層就是對這些積木的搭建。 具體代碼如下: public class WinBLLFileManager { private CodGenProject CodGenProject。 private TableClass TableClass。 //獲取文件 public FileCollection GetFiles(CodGenProject oCodGenProject, string AppPath) { 王佳琪 :基于 C 的代碼生成器的研究與實現(xiàn) 20 = oCodGenProject。 FileCollection result = new FileCollection()。 //遍歷每一個表 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)主要是使項目結(jié)構(gòu)更清楚,分工更明確,有利于后期的維護和升級 。 考慮一個項目是不是應(yīng)該應(yīng)用三層 /多層設(shè)計時 ,先得考慮下是不是真的需要 ? 實際上大部分程序就開個 WebApplication 就足夠了 ,完全沒必要作的這么復(fù)雜 。 而多層結(jié)構(gòu) ,是用于解決真正復(fù)雜的項目需求的 。 不要盲目多層程序設(shè)計 ,先進的不一定就是好的 .例如 ASP,正是因為他的簡單性而流行 ,并且依然打造出了像 , 這樣巨型的站點 。 第 4 章 其他設(shè)計 存儲過程或視圖 當(dāng)代碼生成器的基本功能完成后,我們需要增加一些必要的功能來方便用戶的使用。如是否使用存儲過程或視圖,類的快速重命名,或?qū)⑦B接字符串加密來提高安全性。 2020 屆網(wǎng)絡(luò)工程專業(yè)畢業(yè)設(shè)計 (論文 ) 21 存儲過程( Stored Procedure)是一組 為了完成特定功能的 SQL 語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫。用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。 在 SQL Server 的系列版本中存儲過程分為兩類:系統(tǒng)提供的存儲過程和用戶自定義存儲過程。系統(tǒng)過程主要存儲在 master 數(shù)據(jù)庫中并以 sp_為前綴,并且系統(tǒng)存儲過程主要是從系統(tǒng)表中獲取信息,從而為系統(tǒng)管理員管理 SQL Server 提供支持。通過系統(tǒng)存儲過程, SQL Server 中的許多管理性或信息性的活動(如了解數(shù)據(jù)庫對象、數(shù)據(jù)庫信息)都可以被順利有效地完成。盡管這些系統(tǒng)存儲過 程被放在 master 數(shù)據(jù)庫中,但是仍可以在其它數(shù)據(jù)庫中對其進行調(diào)用,在調(diào)用時不必在存儲過程名前加上數(shù)據(jù)庫名。而且當(dāng)創(chuàng)建一個新數(shù)據(jù)庫時,一些系統(tǒng)存儲過程會在新數(shù)據(jù)庫中被自動創(chuàng)建。用戶自定義存儲過程是由用戶創(chuàng)建并能完成某一特定功能(如查詢用戶所需數(shù)據(jù)信息)的存儲過程。 當(dāng)利用 SQL Server 創(chuàng)建一個應(yīng)用程序時, TransactionSQL 是一種主要的編程語言。若運用 TransactionSQL 來進行編程,有兩種方法。其一是,在本地存儲Transaction SQL 程序,并創(chuàng)建應(yīng)用程序向 SQL Server 發(fā)送命令來對結(jié)果進行處理。其二是,可以把部分用 TransactionSQL 編寫的程序作為存儲過程存儲在 SQL Server 中,并創(chuàng)建應(yīng)用程序來調(diào)用存儲過程,對數(shù)據(jù)結(jié)果進行處理存儲過程能夠通過接收參數(shù)向調(diào)用者返回結(jié)果集,結(jié)果集的格式由調(diào)用者確定;返回狀態(tài)值給調(diào)用者,指明調(diào)用是成功或是失?。话ㄡ槍?shù)據(jù)庫的操作語句,并且可以在一個存儲過程中調(diào)用另一存儲過程。 我們通常使用第二種方法,即在 SQL Server 中使用存儲過程而不是在客戶計算機上調(diào)用 TransactionSQL 編寫的一段程序,原因在于存儲過 程具有以下優(yōu)點: ( 1) 存儲過程允許標(biāo)準(zhǔn)組件式編程 存儲過程在被創(chuàng)建以后可以在程序中被多次調(diào)用,而不必重新編寫該存儲過程的SQL 語句。而且數(shù)據(jù)庫專業(yè)人員可隨時對存儲過程進行修改,但對應(yīng)用程序源代碼毫無影響(因為應(yīng)用程序源代碼只包含存儲過程的調(diào)用語句),從而極大地提高了程序的可移植性。 ( 2) 存儲過程能夠?qū)崿F(xiàn)較快的執(zhí)行速度 如果某一操作包含大量的 TransactionSQL 代碼或分別被多次執(zhí)行,那么存儲過程要比批處理的執(zhí)行速度快很多。因為存儲過程是預(yù)編譯的,在首次運行一個存儲過程時,查詢優(yōu)化器對其進 行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計劃。而批處理的 Transaction SQL 語句在每次運行時都要進行編譯和優(yōu)化,因此速度相對要慢一些。 ( 3) 存儲過程能夠減少網(wǎng)絡(luò)流量 對于同一個針對數(shù)據(jù)數(shù)據(jù)庫對象的操作(如查詢、修改),如果這一操作所涉及到的 TransactionSQL 語
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1