ASP.NET Web開發(fā)框架項(xiàng)目介紹
項(xiàng)目名稱:Enterprise Solution
技術(shù)參數(shù)
1 C# ASP.NET Web Forms技術(shù),借助于ExtAspNet控件,快速開發(fā)
2 SQL Server 數(shù)據(jù)庫。使用LLBL Gen ORM框架進(jìn)行數(shù)據(jù)讀寫,可支持任意的數(shù)據(jù)庫
3 基于LLBL Gen ORM 框架,減少對SQL腳本的依賴,專注于業(yè)務(wù)邏輯
登錄窗體,顯示需要登錄的數(shù)據(jù)庫
進(jìn)入主窗體框架,左邊是功能導(dǎo)航,右邊是功能列表
點(diǎn)擊樹節(jié)點(diǎn),右邊展開對應(yīng)的功能項(xiàng),點(diǎn)擊該功能,打開新的選項(xiàng)卡,加載此功能
如果不習(xí)慣英語界面,可以點(diǎn)擊快速啟動(dòng)欄中的設(shè)置,選項(xiàng)中文簡體或繁體,界面立即切換成對應(yīng)的語種
上圖中,選項(xiàng)卡并沒有翻譯成對應(yīng)的語言,應(yīng)該在框架數(shù)據(jù)庫中增加如下翻譯,才可以顯示正確的語言
- exec spAddTranslationText N'Sales Order', null, N'銷售單', N'銷售單'
所有的翻譯項(xiàng)目均以此方式完成。可通過查看表LanguageTranslation,對翻譯的內(nèi)容進(jìn)行變更。
三大基礎(chǔ)功能
1 數(shù)據(jù)輸入窗體 繼承于此窗體,可以快速實(shí)現(xiàn)實(shí)體數(shù)據(jù)的輸入與保存,讀取
2 報(bào)表窗體 繼承于此窗體,方便呈現(xiàn)微軟的RDLC客戶端報(bào)表
3 自定義查詢 在查詢設(shè)計(jì)器中設(shè)計(jì)的查詢,均可以顯示為ASP.NET Web界面,瀏覽數(shù)據(jù)記錄并導(dǎo)出為EXCEL
五大核心組件
1 菜單設(shè)計(jì)器 實(shí)現(xiàn)界面導(dǎo)航靈活,便于定制
2 報(bào)表設(shè)計(jì)器 靈活設(shè)計(jì)報(bào)表及其參數(shù),方便實(shí)現(xiàn)多語言,多種參數(shù)傳遞,數(shù)據(jù)源自動(dòng)綁定
3 查詢設(shè)計(jì)器 設(shè)計(jì)查詢,可用于C/S和B/S兩種方式呈現(xiàn)
4 工作流設(shè)計(jì)器 通過拖拉的方式,滿足經(jīng)常發(fā)生變化的工作流程(消息通知,審批)
5 開發(fā)工具 提供足夠數(shù)量的輔助工具,以方便開發(fā)中的各種需要,開發(fā)工具的預(yù)覽圖如下所示
這些工具,起源于平時(shí)的思考和收藏。比如,Enterprise Solution的數(shù)據(jù)讀寫代碼是借助于Code Smith模板代碼,如果需要自動(dòng)化的傳遞參數(shù)到Code Smith模板中,并生成指定的文件,則需要使用上圖中的Smith Builder代碼生成輔助工具。再比如,Solution Converter起源于在Visual Studio不同的版本中切換項(xiàng)目,則以此工具為方便。此項(xiàng)目源碼來源于CodeProject,在此,我只是把它集成到了Solution Package中。
項(xiàng)目源代碼視圖
Business Logic 業(yè)務(wù)模型實(shí)體
Service 數(shù)據(jù)讀寫代碼,均由代碼生成器Smith Builder 生成
ExtAspNet 第三方控件庫,在此為了需要進(jìn)行了部分?jǐn)U展(extension)
Enterprise Solution Web應(yīng)用程序的源代碼,ASP.NET Web Forms結(jié)構(gòu)。Web項(xiàng)目中,所有的文件夾和頁面名稱均小寫,頁面所在的文件夾名稱要與其類型的命名空間相符合。來看一個(gè)記事本頁面的后臺源代碼
- [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);
- }
- }
這就是基本的數(shù)據(jù)讀寫的所有代碼,包含讀取,刪除,保存,均以override的方式存在,由框架類調(diào)用。
記事本功能界面如上圖所示,EntryPageBase類型大大簡化了數(shù)據(jù)輸入窗體的代碼量,專注于邏輯。
原文鏈接:http://www.cnblogs.com/JamesLi2015/archive/2012/09/17/2688213.html






