文章目錄
前面的文章講解了技術細節,這一篇來瞭解一下這個架構的製作前後,經曆的一些思考。代碼只對部分需要的朋友有用,重要的是經曆和思路。前後花了3個月的時間,完成了這個基礎的ASP.NET頁面架構。
功能導航
來看一個整體的,圍繞這個圖,看圖說話,看看各個部分是如何完成的。
ERP系統功能多,如何設計一個簡潔的介面,承載它的功能導航,一努力追求的目標。這裡的菜單均是用菜單設計器設計出來,代碼中只是讀出來,並呈現成樹結構。一段時間曾把它分離到X_Menu表中,後來又合并代碼,直接讀取架構的菜單表,這樣達到B/S與C/S的統一。雖然不可能同時有兩種實現,但以此為技術追求,尋求好的實現方法。
同步對比一下,C/S程式上的實體,和上面的介面模式幾乎相同。
來看一個具體功能表項目System Administration的介面模式,它如所示
左邊的樹節點,右邊展示了它下面的功能類型,這個部分的設計,以菜單設計器設計它,先是功能類別,再為具體功能。
資料庫
SQL Server是首選的資料庫平台。其次,SQL Server有許多版本,高版本的可讀取低版本的資料檔案,但是一旦附加進入後,低版本的SQL Server再也無法讀取這個檔案。一開始以SQL Server 2008 R2開發,後來意識到要相容於客戶方面的的選擇,果斷把所有資料都遷移到SQL Server 2005中。版本資訊是
SELECT @@VERSIONMicrosoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 (Build 7601: Service Pack 1)
一個主要資料庫Framework,業務資料庫為TS。請先設定資料庫的主從關係,設定TS的資料庫屬性。
架構會為你做很多基礎的工作,這個簡單的配置,可以減少很多基礎的重複的工作量。
應用程式結構
首選為外掛程式式結構。架構只關注於自己的基礎資料讀寫,當遇到具體業務資料時,以反射方式交給業務類型去執行。
每個應用分四層,介面層Presentation,介面層IService,介面實現層Manager,業務實體層Businss Logic。
商務邏輯層為LLBL Gen產生,介面層和實現層由Code Smith產生,介面則根據應用布局,並綁定資料屬性。
ExtAspNet控制項進行了部分定製,修改了少量源碼以滿足架構的應用需要。原計劃是以它為基礎進行Extension的,後來發現這樣增加了測試的時間,也不利於修改維護,於是直接修改源碼。這樣帶來的問題是當ExtAspNet控制項有新版本時,需要手工合并代碼。選擇Beyond Compare對比兩個版本的檔案夾,有差異的地方用不同的顏色區分,開啟一個檔案後,合并到另一邊,儲存即可。
資料操作模式
有五種資料操作模式
1 單一實體表 例子比如上面提到的Company.aspx頁面
2 主從表 比如銷售單,有主表銷售單表頭和銷售單明細表
有表頭和表明細,一對多的關係。
3 List列表 比如要對一個或多個表進行查詢,顯示到一個頁面中
4 Lookup 尋找 用於資料選擇 資料查詢
5 Query 自訂查詢 使用者自訂查詢轉化為頁面功能
與List相似,只不過這是由查詢設計工具設計出來的,List由程式編碼完成。
在資料操作模式一節中,這個問題還要詳細討論,它對資料讀寫影響很大。