之前一直使用一個R2開發的叫Devfx開發的網站后台開發框架, 他集成了RBAC權限系統, 使項目開發中基本上都是集中的業務邏輯上, 帶來了很多的便利。 隨着自己對該類需求的不斷累積, 這些基本的系統應該有這樣的平台:
1. 多數據庫支持的;
2. MVC框架的;(非Asp.net MVC)
3. 內置RBAC權限管理系統;
4. 能對單表操作的CRUD能簡單快速實現的;
5. 界面HTML結構清晰.
該項目已發布到Codeplex上了, 地址為:https://beeopoa.codeplex.com/
請參看源碼中trunk下的readme.txt, 以方便你快速了解該項目的大致功能。
初始登入用戶名:admin 密碼:admin
該Solution包含兩個項目:
1.Bee.Security 集成RBAC的管理, 以及一些常用邏輯的
2. Bee.OPOADEMO. 功能demo
平台預覽
多數據庫支持
這一塊有不同的解決方案, 且都很成熟. 由於是快速開發為目的, 希望很多都是基於約定, 而不需要有很復雜的情況考慮. 提供了以下兩種連接字符串的引入:
1. config文件中ConnectionString
2. DbSession本身的Register注冊.
對第一種方式的使用:
//其中sqlserver 為ConnectionString中name // 如<add name="sqlserverdb" connectionString="data source=datasource;initial
//catalog=dbnamet;user id=username;password=psd" providerName="System.Data.SqlClient" /> using (DbSession dbSession = new DbSession("sqlserver")) { SqlCriteria sqlCriteria = SqlCriteria.New.EndWith("email", "163.com"); var list = dbSession.Query<CSDNUser>(sqlCriteria, "id asc", 1, 1000, ref recordCount); }
對第二種方式的使用, 只是注冊上有變化.
DbSession.Register("oledb", "System.Data.OleDb" , "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"); using (DbSession dbSession = new DbSession("oledb")) { SqlCriteria sqlCriteria = SqlCriteria.New.EndWith("email", "163.com"); var list = DbSession.Current.Query<CSDNUser>(sqlCriteria, "id asc", 1, 1000, ref recordCount); }
對於其基本的CRUD的使用, 目前支持DataTable及實體類, 具體使用該篇暫不展開說明。對於實現ORM的, 主要依靠一個接口(一個接口的世界)。
【修訂】具體請參見:通用性站點管理后台(Bee OPOA Platform) (4)- DAL
MVC框架
對於MVC的支持是通過一個Handler攔截以后綴為bee的請求實現的。 攔截請求收集數據后, 也是依靠一個接口(一個接口的世界)。 找到對應的Controller的Action並執行。由於是自實現, 所以有很多
都是個性化實現的。 如Action返回的是一般類型如int, string, bool等等, 則會使用以下類的json格式來返回:
public class BeeMvcResult { public bool status { get; set; } public string message { get; set; } public object Result { get; set; } public bool tologin { get; set; } }
【修訂】具體請參見:通用性站點管理后台(Bee OPOA Platform) (3)- MVC特性
RBAC權限管理
RBAC是權限管理中很普遍的一種方式, 可以適應很多場景。 若需要基於本身系統的一些數據來控制權限, 則需要擴展實現。
J-UI介紹
在界面層選型時, 參考過Jquery-UI, jQuery-EasyUI, 包括J-UI。 查看源代碼后, 對比發現還是J-UI實現的比較簡單方便。 可以參考(DWZ富客戶端框架)。
快速開發
快速開發這塊是這個平台所要實現的最終目標, 目前實現的場景是對單表操作, 可以實現生成一個Controller及一個對應的Entity則可以產生對該單表的所有的CRUD操作。
【修訂】具體請參見:通用性站點管理后台(Bee OPOA Platform) (2)- 快速開發特性