第一节:我们为什么需要一个热插拔式的web框架?
-
模块之间独立开发
假设我们要做一个后台管理系统,其中包括“用户活跃度”、“产品管理”、"账单管理"等模块。每个模块中有自己的业务特性,这些模块都与具体业务高度耦合,很难由一个团队开发完所有模块。这样看来,由数据事业部的同事来开发“用户活跃度”模块,产品事业部的同时来开发“产品管理"模块会显得更加合理。现在我们假定由不同团队开发不同业务模块,那么这些人如果共同维护同一个项目的话,这个项目会变得非常臃肿,直到最后牵一发而动全身,更不利于新技术、新思想的融入。这里也不排除有大牛可以提前把架构规划的很好,但对于创业公司及快速发展中的公司,他们的业务变化速度真的可以说的上朝谋夕变。所以我们可以把每个项目按照一种规范单独开发,最终把这些模块插入到框架中运行。 -
沙箱模式
每个模块都由独立的团队开发,很容易发生类库之间的不兼容问题(项目大了什么鸟都有)。我们可不可以把他们隔离起来呢?答案是可以的,我们可以使用appdomain来启动每一个模块。说到appdomain,你大概知道我们要做什么了,但是httpcontext是不允许跨域传递的,这就是本文的关键了,我们在接下来的文章中慢慢解决。 -
用户及权限、访问入口统一控制
看完上边,你可能会想把每一个模块都作为一个web部署不就行了吗?那如果这样,就需要一套单点登录的机制来协助整个平台的运作了,而且每一个模块中都需要引用权限过滤的相关功能,再加上我们要管理茫茫多的小站点,额,头大了吧。综上所述,我们的框架就是一个整体的权限鉴别入口及功能路由器,协调每一个模块良好运转。