天天看點

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       AgileEAS.NET平台做為一個快速應用開發平台,其目的為是為了提高應用軟體的生産效率,如何軟體開發的生産效率,方法是多種多樣的;使用工作簡化開發中低技術重複工作可以是一種行之有效的途徑。

       在AgileEAS.NET平台中,我們提供了一個集資料庫設計、代碼生成、DDL定義與一體的資料實體設計器。

       在早期的AgileEAS.NET版本中包含一個代碼生成器,用于根據現在資料庫生成ORM代碼,後來的思路是想介入項目的資料庫設計環節,是以設計了這麼一個資料對象設計器,提供一個資料表定義工具,在項目的資料庫設計階段(環節),使用資料表設計工具同時定義資料庫和資料實體模型,對象設計器會生成資料庫設計文檔、資料定義語言、基于分層的資料通路層代碼。

       在基于資料庫的應用開發項目中,資料庫設計是很一個很重要的過程,而這個過程寫資料庫設計檔案是一個環節,在很多軟體公司中,都是使用Word、WPS等文字表格工具寫資料庫文檔,但是資料庫文檔與資料庫建立、程式編寫過程脫節。

       AgileEAS.NET平台的對象設計工作,試圖在這方面進行內建,即設計器産生的模型定義即可以生成資料庫文檔、資料庫定義語句、也可以生成開發過程的代碼。

       AgileEAS.NET平台針對應用開發之中的資料對象定義、存儲和交流定義一個資料對象結構模型定義檔案,資料設計器建立好的項目定義最後存儲在以.sdm為擴充名一個資料模型定義檔案。

       AgileEAS.NET平台的模型定義既為對象設計的導航定義:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       其組織結構為項目包含實體和模型兩大類,模型存儲資料對象的關系(目前不支援),實體存儲資料對象的定義,實體可以選擇按目錄組織,即如果項目中的實體很多,為了視覺群組織上的友善,建立目錄,并在目錄中建立實體,隻支援一級目錄。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       主視窗中共包括了5個不同的工作區:系統菜單、工具欄、功能導航欄、業務工作區、系統狀态欄,系統中的所有業務功能均可通過系功能導航欄通路操作。

       對象設計器采用導航式界面樣式,系統功能由導航和菜單兩部分組成,提供檔案、編輯、工具、視窗和幫助等菜單。

       工作欄上放置了與系統菜單相關的快速工具欄,可以通過這些工具欄快速通路相關功能子產品。

       系統導航欄上列舉了項目中的資料對象組織機構,可以在導航欄上增加新的資料對象、删除現在資料對象,設定項目屬性等功能。

       導航欄預設顯示在界面的左邊,如果你想讓業務工作區更大些,以便有更大的界面空間處理業務功能,你可以在進入相關的業務功能子產品後,通過系統菜單或工具欄的導航指令隐藏或顯示功能導航欄。

       工作區是系統工作區域,工作區根據導航和菜單的不同選擇與操作,将會加載不同的功能子產品,用于完成必要的任務。

       系統狀态欄上顯示了系統目前的處理任務及任務處理狀态,用于通知使用者,以便及時了解系統的運作情況。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       提供對目前應用程式的描述資訊。包括産品名稱、版本、開發商、授權資訊等。

       在進行設計資料對象之前,需要先規劃自己的項目以及項目中的項目組織,定義好的資料對象項目儲存在硬碟上,以友善開發人員的交流和以後的修改。

       打開檔案菜單的建立或者工具條上的建新按鈕,對象設計器建立一個資料模型項目,并重置導航欄和工具區。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       使用檔案菜單中的儲存或者工具條中的儲存按鈕,如果項目檔案已經存在于檔案系統上,則直接儲存檔案,如果是建立項目後的第一次儲存,則打開另存為對話框保持檔案。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在檔案菜單中還提供了一個别存為功能,用于把設計模型儲存到其他的檔案之中。

       使用檔案菜單中的打開或者工具條中的打開按鈕,彈出檔案打開對話框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       選擇檔案系統已經存在的項目檔案并打開,系統根據模型檔案重置導航欄和清空工作區:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在資料模型中定義了項目的一些命名空間,名稱,标題,開發語言,資料庫設定這樣的東西,在模型設計時可以能過項目參數進行修改。

       在導航欄的解決方案節點右鍵選擇“參數設定”,打開參數設定子產品:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       解決方案參數設計分項目參數和資料庫連接配接參數,上圖是項目參數,資料庫連接配接設定:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       項目名稱、項目标準、程式語言、命名空間等參數用于在生成資料通路層代碼的過程之中用到,輸出目錄為生成的代碼、文檔、SQL腳本的輸出根目錄。

       資料庫連接配接參數用于從資料庫生成資料對象時連接配接資料庫伺服器,目前支援SQL2000/2005/2008/Oracle資料庫。

       定義資料對象是對象設計器中最重要的工作,在對象定義資訊中,存儲了程式中ORM對象所需要的對象屬性與資料庫表的字段映射資訊,同時也存儲了資料庫表的定義資訊。

       對象設計器設計成的模型用與生成項目的資料庫定義檔案、資料庫DDL腳本以及資料通路層的程式代碼。

       對象設計器中提供了一個目錄的概念,即對于資料對象很多的解決方案,我們可以選擇在解決方案之中根據應用建立目錄,資料對象按目錄進行組織。

       在導航欄中的實體節點右鍵點開快捷菜單,選擇“建立目錄”,系統打開目錄屬性聖誕框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       填寫目錄名稱和說明後點解“确定”按鈕,對話框關閉,建立的目錄加載到導航欄,“取消”按鈕放棄目錄的添加。

       注意:目錄名稱不能為空,也不能和現有的目錄重名。

       在導航欄中的某個目錄節點右鍵點開快捷菜單,選擇“目錄屬性”,系統打開目錄屬性聖誕框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在目錄屬性對話框中,可以修改目錄名稱和說明,完成成點選“确定”按鈕完成屬性修改,“取消”按鈕放棄目錄的修改。

       在導航欄中的某個目錄節點右鍵點開快捷菜單,在彈出的菜單中選擇“删除目錄”,系統會提示您是否确認删除,點選“是”删除相應的目錄。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       注意:删除目錄是系統中删除目錄資訊,不删除目錄中的資料對象定義,原目錄的中的資料對象轉移到解決方案實體節點之下。

       設計器中資料對象有兩個存在模型,直接位于解決方案這下,也可以依附于解決方案的目錄之中,兩種不同的方案可以混合使用,根據項目的規模進行合理建構。

       在導航欄中的實體節點或者目錄節點右鍵點開快捷菜單,選擇“建立實體”,系統工作區打開一個新的對象定義Tab頁:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在對象定義Tab頁中,可以完成資料對象所指向的資料庫表資訊定義(資料表名及字段資訊)、ORM對象定義(屬性及屬性與資料字的映射)。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助
基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在日常應用中,對象設計器工作的90%是由上圖的界面完成的,在這個界面中,我們完成資料對象的定義,間接的完成了資料庫的設計、ORM對象的設計。

       實體包含名稱,資料表,說明和1-N個屬性記錄,實體的名稱,資料庫,說明直接在文本框填寫。

       實體的屬性集合由下面的表格中進行填寫,增加新的屬性/列,在*标記的行中直接進行寫,删除一條記錄時使用選中某一條,按下删除鍵即可。

       在屬性定義中,屬性的類型(程式類型)與資料類型是關聯的,即如果在這兩個類型中任務選擇一種,另一個類型都會根據類型轉換器得到一個對應的類型,因為程式中的類型比較廣泛,而資料庫的類型比較嚴謹,是以建議的做法是設定資料類型比較準确一些。

       實體定義子產品的UI包含着7個Tab頁,最主要的是實體定義Tab頁,還附加了4個代碼Tab頁、一個資料庫腳本、一個文檔Tab頁。

       因為AgileEAS.NET平台ORM系統中對實體和表進行了分别的定義,是以針對每個資料對象定義,會生成4個代碼檔案,分别為表接口、表實作、實體接口、實體實作。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在設計器環境中直接向IDE環境複制代碼,使用右鍵菜單中的全選、複制即可,也可以通過Ctrl+A、Ctrl+C實作。

       針對每個資料對象定義,工具會生成一段SQL腳本,定義資料表的建立和字段,資料表和字段的注視等自描述資訊也會一并寫進腳步。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       同樣,和程式代碼一樣,可以使用右鍵菜單中的全選、複制即可,也可以通過Ctrl+A、Ctrl+C實作。

       針對每個資料對象定義,工具都生成一段資料庫定義文檔,包含資料表名稱、說明、所有者,各資料列名稱、資料類型、是否為空、主鍵等資訊。

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       對象設計器提供基于解決方案的代碼輸出、文檔輸出、DDL腳本輸出,可以一步生成供vs2005之上打開的資料層項目和解決方案。

       通過工具菜單中的生成代碼功能打開代碼輸出對話框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在對話框中選擇輸入目錄,預設為在解決方案屬性中設計的輸出目錄,點選“生成”按鈕完成解決方案的生成,輸入如下目錄結構:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       我們在VS環境中打開AgilePM解決方案:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       對象設計器生成的代碼采用了分部類的技術方案,即同一個資料對象把生成的4個代碼檔案分解成8個代碼檔案,其中4個代碼檔案生成與資料對象屬性定義相關,建議不做修改,檔案名中帶有.Generator.cs,并且全部組織在項目的Generat檔案夾中,程式代碼中有以下注釋:

//------------------------------------------------------------------------------

// <auto-generated>

//     此代碼由SmartEAS.NET/AgileEAS.NET資料模型設計工具生成。

//     運作時版本:2.0.50727.3053

//

//     對此檔案的更改可能會導緻不正确的行為,并且如果

//     重新生成代碼,這些更改将會丢失。

// </auto-generated>

       另外4個檔案用于存儲使用者自定義的資料通路代碼,檔案名不帶.Generator.cs,生成的代碼位于項目的根目錄之中。

       為什麼要做這樣的設定呢,這得益長期的開發實踐,市面上有很多代碼生成工具,雖然說生成器工具可以加速開發,但是生成的代碼是絕對不會滿足複雜應用,程式員必須對生成的代碼增加新的功能或者修改,那麼當資料定義模型發生改變之後,重新生成的代碼就會把程式員所做的修改覆寫。

       采用分部類的方案進行分解之後,我們把與資料模型定義與程式員的特殊業務代碼進行了分離,當模型發生改變之後,重新生成的代碼保留了程式員的修改,隻覆寫Generat檔案夾中的代碼檔案。

       AgileEAS.NET平台一直在實踐着接口驅動的思想,同時也在建議應用開發基于接口驅動,AgileEAS.NET平台實作一組實用并且簡單的ORM,應用開發的資料通路層也就是基于ORM技術的資料通路層。

       我們在應用開發中,經常會遇到同樣的産品需要運作在不同的資料庫系統之上,比台有客戶需要運作在SQLServer之上的版本、有的需要運作在ORACLR之上的版本。

       在這種情況下,采用接口驅動的資料通路層是一個不錯的選擇;定義一組資料通路層接口元件及其不同資料庫類型的的資料通路層實作元件,業務實作依賴于資料接口層而與資料實作層解耦,運作期不同的資料庫類型需求隻需要修改系統的配置檔案。

       有關于資料接口層的配置請參考《AgileEAS.NET平台開發指南》,這裡不在詳細說明。

       對象設計器生成的代碼預設是基于接口驅動的資料層,即解決方案中包含兩個項目,一個是資料通路接口層,另一個是基于目前設計時環境的資料庫實作。

       在現實環境中,有些應用我們從一開始就知道他隻可能應用于某種單一的資料庫環境,對于這種應用,如果還采用基于接口驅動的資料通路層,其修改成本就會略高一些,AgileEAs.NET平台也支援這種非接口驅動的資料層,即生成單一的資料層項目。

       在對象設計器的解決方案屬性中有一個選項“是否生成接口層”,這個選項預設是選中的,如果隻是基于單一資料庫,請取消選擇,項目的輸出方案則變為:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助
基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       通過工具菜單中的生成腳本功能打開腳本輸出對話框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       在對話框中選擇輸入檔案,預設為在解決方案屬性中設計的輸出目錄之下的SqlScript\TableCreate.sql,點選“生成”按鈕完成DDL腳本的生成,用SQL Server Management Studio打開生成的腳本檔案:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       通過在“工具”菜單中的“文檔浏覽”即可以在工作區打開一個解決方案文檔浏覽視窗,顯示解決方案中所有資料對象/資料表定義資訊:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       開發人員可以直接複制到word、wps等字處理軟體進行編輯,也可以直接使用“工具”菜單中的輸出檔案(Rtf、Excel、Html)直接輸出資料庫定義文檔:

       通過在“工具”菜單中的“輸出檔案(Rtf)”、“輸出檔案(Excel)”、“輸出檔案(html)”打開文檔輸出對話框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       通過“浏覽..."按鈕選擇輸出檔案或者使用預設的檔案路徑,最後點選“生成”按鈕完成資料庫檔案的輸出:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       Excel格式:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       html格式:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       Rtf格式:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       對象設計器不僅提供了基于原生的資料對象定義模型生成資料庫表對象的能力,同時也提供了從現在的資料庫對象反向生成資料對象定義的能力(反向生成)。

       通過“工具”菜單中的“從資料庫生成”功能打開資料庫連接配接對話框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       選擇反向生成的源資料庫類型,填寫伺服器、使用者名、密碼等資訊(預設為解決方案的資料庫連接配接資訊),點選“下一步”打開資料庫表、視圖選擇對話框:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       資料庫中的資料庫、視圖基于使用者/架構、資料表/視圖的組織方式,首先選擇相應的使用者/架構,再選擇要導入的資料庫表、視圖,點選“開始”完成導入資料對象到目前模型定義:

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 對象設計器使用幫助

       反向生成工具會讀取資料庫中繼資料定義資訊如字段名稱、資料類型、長度、主鍵、是否為空、注釋等資訊,生成相應的資料定義模型,開發人員需要進行修改,主要是資料對象的屬性名稱大小寫調整,預設生成的屬性為首字母大寫,以及補充資料對象、資料庫表字段的标題、注釋資訊。

QQ群:15118502

<a href="http://www.cnblogs.com/eastjade/archive/2010/09/09/1822530.html">AgileEAS.NET應用開發平台-系列目錄</a>

<a href="http://www.smarteas.net/">AgileEAS.NET官方網站</a>