Dou-Power 快速Web开发平台(1)——插件思想实现多Web项目集成

前文有讲到“将多个通用业务系统(如用户权限管理、流程管理、日志管理、文档管理、邮件管理等)解耦,最终的效果就是使用该平台的开发人员只需要独立开发自己的业务子系统(单独的Asp.Net项目)”,为了实现这个效果,就需要建立多个业务子系统的子工程,每一个业务子系统单独分配在自己独立的解决方案文件夹中,各自拥有独立的服务层类库。而其中的关键的要点在于需要将使用Asp.Net针对多个Web项目能够共享Session,下面我将介绍我的实现。

我采用偷梁换柱的想法,在开发时是多个Asp.Net的Web项目,但是在发布部署时就改变成一个Web项目,这样就可以很容易的实现共享Session了。接下来就只需要规划恰当的解决方案目录结构和文件目录结构,我的平台的结构如下图所示,MasterWeb项目是个容器Web项目,他需要依赖所有的子项目(以后是否可以考虑利用反射机制实现不需要依赖,待研究),在解决方案视图中与Master同级的就是针对各个业务子系统新建的解决方案文件夹(在我的例子中我还建立“参考项目”和“工作项目”两个虚文件夹)。

Common是公用接口,是该平台主要思想的实现,UserCenter和FireWorkflow是业务子系统,里面拥有的独立Web项目和服务层类库,可以按照自己的习惯和擅长的技术组织开发,具体的结构在后续博文中介绍。

需要注意的是:

1、 MasterWeb需要依赖所有的项目

2、 发布时以文件系统的发布方法先发布业务子系统(文件目录结构同开发结构),最后发布MasterWeb项目

3、 Web.config配置文件在MasterWeb和业务子系统的Web项目中均存在,MasterWeb中定义通用的配置,如数据库连接配置(为了便于集成最好数据库能够开放给其他的业务子系统使用)及Ext.Net配置;业务子系统中定义该业务子系统需要使用的配置,如我的方案中会采用依赖注入,所以我的Unity的配置写在业务子系统里面

4、 关于Global.asax(ASP.NET 应用程序文件)的集成,目前我的处理方式是约定业务子系统实现通用接口,在MasterWeb的Global.asax调用,实际上这一部分可以考虑是否可以借用反射机制通过配置自动调用,尚待完善;我的业务子系统采用Unity依赖注入,故需要实现unity配置文件的读取。

 

 

 

posted @ 2012-07-13 11:01  easypower  阅读(302)  评论(3)    收藏  举报