天天看點

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 實作業務

        依據行業經驗來看,分層是解決複雜問題的簡單方法,通過分層,可以把一個複雜問題分解為不同層次應用的小問題,解決各層小問題的難度小于總的問題難度;分層最成功能莫過于計算機網絡通信協定,ISO/OSI、TCP/IP。

        在資訊系統開發中,我們也對一個應用按邏輯上劃分為三層:資料層、業務層、界面層,其業務邏輯如下圖所示:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NET_FD66/wps_clip_image-25179_2.png"></a>

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 實作業務

        大家通俗的對這樣的結構稱之為三層結構,或者演變為N次結構(對其中的某一層進行分解),兩層結構(合并界面與業務為一個層,或者合并業務層與資料通路層)或者一層結果(所有的都在UI層)。

        分層的架構設計或者實踐在于應用開發的需求以及開發人中技術相制約,隻有選擇合适的分層模型,沒有最優的分層模型。

        AgileEAS.NET平台應用開發提供了2-3/N的分層實作支援,開發人員可以根據應用系統的規模選擇不同的分層模型,下面我就從2層結構開發說起:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NET_FD66/wps_clip_image-10086_2.png"></a>

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 實作業務

        這種2層的結構在程式部署有兩個程式集支援一個應用;一個是UI部,另一個是資料通路層部分,UI和資料通路層共同完成了業務層的功能,UI偏重于業務的輸入驗證,DAL層則偏重于業務的資料處理。

        在AgileEAS.NET平台中,資料通路層是基于接口驅動的資料通路層,也就是說把資料通路層分解為資料通路接口層與通路實作層,如下圖所示:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NET_FD66/wps_clip_image-821_2.png"></a>

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 實作業務

        在上圖所示的架構中,對資料通路層按照接口驅動的思想分解為資料通路層接口元件和不同的資料庫通路層實作,UI隻依賴于資料通路層接口,不與具體的資料庫實作相關,也就是業務隻依賴于聲明,而不依賴于實作,這樣就有一個好處,當資料通路層實作做了修改之後不會影響到界面層(UI)。

        在上圖結構的基礎上,在UI層和DAL層加入獨立的業務邏輯層就得到如下圖所标的結構:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NET_FD66/wps_clip_image-20122_2.png"></a>

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 實作業務

        在這種結構中,系統界面層通路業務邏輯層,而業務邏輯層依賴于DAL接口層,并在運作期決定是否加載那一個DAL實作,這中結構是AgileEAS.NET平台推薦的應用分層模式,平台的資料對象生成器已經生成了基于接口驅動的資料通路層代碼,在界面層開發中,AgileEAS.NET平台提供了一系統的UI與ORM對象資料綁定的實踐。

        AgileEAS.NET平台開發的資訊系統可以運作在基于.NET WebServices、.NET Remoting技術的分布式環境中,這樣我們就引伸出别一個分層結構:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NET_FD66/wps_clip_image-14655_2.png"></a>

基于DotNet構件技術的企業級靈活軟體開發平台 - AgileEAS.NET平台開發指南 - 實作業務

        這種新的分層結果增加了業務代理層和通信/傳輸服務(層),最初這種結構被應用于分布式應用中,在系統界面層、業務代理層、業務邏輯層各層之間資料以ORM對象形式傳遞。

        對于涉及到的通信/傳輸服務,或者說通信/傳輸服務層,在分布式應用中,她是一個事實存在的通道,用戶端部署着界面層、業務代理層,應用程式伺服器剛部署着業務邏輯層和資料通路層;但是在非分布式應用中,比如用戶端聯想着所有元件,那麼就通信/傳輸服務,為了統一這種分層架構,我在AgileEAS.NET平台中,對于通路本地業務元件的這種服務搞了一個虛拟的通信/傳輸服務。

        借助于這樣和分層架構,AgileEAS.NET平台所開發的應用,可以在不修改任務程式的情況下,隻修改配置檔案即可實作本地程式與分布式應用程式的自由切換。

         AgileEAS.NET平台采用ORM技術來建構資料通路層代碼,因為ORM已經對資料庫的讀取、增加、删除、和修改;從理論上來講,資料通路層已經實作了資料的增加、删除和、修改操作,業務層隻需要調用這些操作,也可以是界面層直接調用資料層的這些基礎操作,這樣就形成了一個弱化的業務邏輯層。

        如果嚴格的去追究業務邏輯層可以劃分獨立的業務邏輯和與資料處理相關的業務層,在AgileEAS.NET平台的資料對象設計器中生成的代碼是基于分部類實作的,也就是說,生成器所生成的代碼中預備了一半的代碼檔案由程式員寫與業務邏輯相關的複雜資料處理代碼,而業務邏輯層接受界面層的請求調用資料通路層的資料處理方法以及完成如事務處理等。

        而業務邏輯代理層元件根據業務層元件生成相應的業務代理代碼,完成系統界面層請求向真實的業務邏輯層轉移的功能。

        界面層開發是應用開發中非常重要的部分,軟體所提供的應用都需要通過界面展示給系統最終使用人員,友好的人機互動可以讓操作人心賞心悅目;而如何設計出友好、美觀的人機互動界面是開發人員及美勞工員功底的展現。

        在AgileEAS.NET平台中,系統界面層也是應用開發中插件的一個環節,系統界面層中的某些UI需要實作AgileEAS.NET平台的插件契約,直接或間接的實作IModule接口或者使用Module屬性标記子產品。

        AgileEAS.NET平台中提供了一系統的UI基礎模闆及輸入驗證、UI資料互動管理的輔助開發元件,以友善快速的完成UI的編碼。

連結

QQ群:116773358,群一已滿