之前一直使用一个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的支持是通过一个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是权限管理中很普遍的一种方式, 可以适应很多场景。 若需要基于本身系统的一些数据来控制权限, 则需要扩展实现。
在界面层选型时, 参考过Jquery-UI, jQuery-EasyUI, 包括J-UI。 查看源代码后, 对比发现还是J-UI实现的比较简单方便。 可以参考(DWZ富客户端框架)。
快速开发这块是这个平台所要实现的最终目标, 目前实现的场景是对单表操作, 可以实现生成一个Controller及一个对应的Entity则可以产生对该单表的所有的CRUD操作。
【修订】具体请参见:通用性站点管理后台(Bee OPOA Platform) (2)- 快速开发特性