文章目錄
項目名稱:Enterprise Solution
技術參數
1 C# ASP.NET Web Forms技術,藉助於ExtAspNet控制項,快速開發
2 SQL Server 資料庫。使用LLBL Gen ORM架構進行資料讀寫,可支援任意的資料庫
3 基於LLBL Gen ORM 架構,減少對SQL指令碼的依賴,專註於商務邏輯
登入表單,顯示需要登入的資料庫
進入主表單架構,左邊是功能導航,右邊是功能列表
點擊樹節點,右邊展開對應的功能項,點擊該功能,開啟新的選項卡,載入此功能
如果不習慣英語介面,可以點擊快速啟動欄中的設定,選項中文簡體或繁體,介面立即切換成對應的語種
中,選項卡並沒有翻譯成對應的語言,應該在架構資料庫中增加如下翻譯,才可以顯示正確的語言
exec spAddTranslationText N'Sales Order', null, N'銷售單', N'銷售單'
所有的翻譯項目均以此方式完成。可通過查看錶LanguageTranslation,對翻譯的內容進行變更。
三大基礎功能
1 資料輸入表單 繼承於此表單,可以快速實現實體資料的輸入與儲存,讀取
2 報表表單 繼承於此表單,方便呈現微軟的RDLC用戶端報表
3 自訂查詢 在查詢設計工具中設計的查詢,均可以顯示為ASP.NET Web介面,瀏覽資料記錄並匯出為EXCEL
五大核心組件
1 菜單設計器 實現介面導航靈活,便於定製
2 報表設計師 靈活設計報表及其參數,方便實現多語言,多種參數傳遞,資料來源自動綁定
3 查詢設計工具 設計查詢,可用於C/S和B/S兩種方式呈現
4 工作流程設計工具 通過拖拉的方式,滿足經常發生變化的工作流程(訊息通知,審批)
5 開發工具 提供足夠數量的協助工具輔助,以方便開發中的各種需要,開發工具的預覽圖如下所示
這些工具,起源於平時的思考和收藏。比如,Enterprise Solution的資料讀寫代碼是藉助於Code Smith模板代碼,如果需要自動化的傳遞參數到Code Smith模板中,並產生指定的檔案,則需要使用中的Smith Builder代碼產生協助工具輔助。再比如,Solution Converter起源於在Visual Studio不同的版本中切換項目,則以此工具為方便。此項目源碼來源於CodeProject,在此,我只是把它整合到了Solution Package中。
項目原始碼視圖
Business Logic 業務模型實體
Service 資料讀寫代碼,均由代碼產生器Smith Builder 產生
ExtAspNet 第三方控制項陳列庫,在此為了需要進行了部分擴充(extension)
Enterprise Solution Web應用程式的原始碼,ASP.NET Web Forms結構。Web項目中,所有的檔案夾和頁面名稱均小寫,頁面所在的檔案夾名稱要與其類型的命名空間相符合。來看一個記事本頁面的後台原始碼
[Function("AIITRL", "~/module/note.aspx")]public partial class note : EntryPageBase{ protected override void PageLoadEvent(object sender, EventArgs e) { if (!IsPostBack) TransactionType = "BlotterEntity"; base.PageLoadEvent(sender, e); } public override EntityBase2 LoadEntity(string customerNo) { IBlotterManager manager = ClientProxyFactory.CreateProxyInstance<IBlotterManager>(); BlotterEntity customer = manager.GetBlotter(Convert.ToInt16(customerNo)); return customer; } public override void DeleteEntity(EntityBase2 entity) { BlotterEntity user = (BlotterEntity)entity; IBlotterManager manager = ClientProxyFactory.CreateProxyInstance<IBlotterManager>(); manager.DeleteBlotter(user); } public override void SaveEntity(EntityBase2 entity) { BlotterEntity user = (BlotterEntity)entity; IBlotterManager manager = ClientProxyFactory.CreateProxyInstance<IBlotterManager>(); manager.SaveBlotter(user); } }
這就是基本的資料讀寫的所有代碼,包含讀取,刪除,儲存,均以override的方式存在,由架構類調用。
記事本功能介面如所示,EntryPageBase類型大大簡化了資料輸入表單的代碼量,專註於邏輯。