ASP.NET Web開發框架之零 項目介紹

項目名稱:Enterprise Solution

技術參數

1 C# ASP.NET Web Forms技術,藉助於ExtAspNet控件,快速開發

2  SQL Server 數據庫。使用LLBL Gen ORM框架進行數據讀寫,可支持任意的數據庫

3  基於LLBL Gen ORM 框架,減少對SQL腳本的依賴,專注於業務邏輯

登錄窗體,顯示需要登錄的數據庫

image

進入主窗體框架,左邊是功能導航,右邊是功能列表

image

點擊樹節點,右邊展開對應的功能項,點擊該功能,打開新的選項卡,加載此功能

image

如果不習慣英語界面,可以點擊快速啓動欄中的設置,選項中文簡體或繁體,界面立即切換成對應的語種

image

上圖中,選項卡並沒有翻譯成對應的語言,應該在框架數據庫中增加如下翻譯,纔可以顯示正確的語言

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  開發工具  提供足夠數量的輔助工具,以方便開發中的各種需要,開發工具的預覽圖如下所示

image

這些工具,起源於平時的思考和收藏。比如,Enterprise Solution的數據讀寫代碼是藉助於Code Smith模板代碼,如果需要自動化的傳遞參數到Code Smith模板中,並生成指定的文件,則需要使用上圖中的Smith Builder代碼生成輔助工具。再比如,Solution Converter起源於在Visual Studio不同的版本中切換項目,則以此工具爲方便。此項目源碼來源於CodeProject,在此,我只是把它集成到了Solution  Package中。

 

項目源代碼視圖

image

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的方式存在,由框架類調用。

image

記事本功能界面如上圖所示,EntryPageBase類型大大簡化了數據輸入窗體的代碼量,專注於邏輯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章