基于.net搭建热插拔式web框架(实现原理)
2015-12-06 10:51
531 查看
第一节:我们为什么需要一个热插拔式的web框架?
[title3]模块之间独立开发[/title3]
假设我们要做一个后台管理系统,其中包括“用户活跃度”、“产品管理”、"账单管理"等模块。每个模块中有自己的业务特性,这些模块都与具体业务高度耦合,很难由一个团队开发完所有模块。这样看来,由数据事业部的同事来开发“用户活跃度”模块,产品事业部的同时来开发“产品管理"模块会显得更加合理。现在我们假定由不同团队开发不同业务模块,那么这些人如果共同维护同一个项目的话,这个项目会变得非常臃肿,直到最后牵一发而动全身,更不利于新技术、新思想的融入。这里也不排除有大牛可以提前把架构规划的很好,但对于创业公司及快速发展中的公司,他们的业务变化速度真的可以说的上朝谋夕变。所以我们可以把每个项目按照一种规范单独开发,最终把这些模块插入到框架中运行。
[title3]沙箱模式[/title3]
每个模块都由独立的团队开发,很容易发生类库之间的不兼容问题(项目大了什么鸟都有)。我们可不可以把他们隔离起来呢?答案是可以的,我们可以使用appdomain来启动每一个模块。说到appdomain,你大概知道我们要做什么了,但是httpcontext是不允许跨域传递的,这就是本文的关键了,我们在接下来的文章中慢慢解决。
[title3]用户及权限、访问入口统一控制 [/title3]
看完上边,你可能会想把每一个模块都作为一个web部署不就行了吗?那如果这样,就需要一套单点登录的机制来协助整个平台的运作了,而且每一个模块中都需要引用权限过滤的相关功能,再加上我们要管理茫茫多的小站点,额,头大了吧。综上所述,我们的框架就是一个整体的权限鉴别入口及功能路由器,协调每一个模块良好运转。
第二节:框架模型
未完待续....
转载请注明出处:/article/5243288.html
相关文章推荐
- AAS代码运行-第4章
- 1042. Shuffling Machine (20)
- ubuntu apache linux
- unity3d添加武器功能
- Android如何优雅的缓存网络图片
- POJ-2656
- 20151206
- 跳舞毯
- svnChina的使用方法
- LeetCode 283:Move Zeroes
- Java中的泛型编程(generic programming)和泛型类(generic class)
- 改变按键功能
- 人活着系列之芳姐和芳姐的猪
- NSNotificationCenter使用
- C++
- Android开发—已root的手机获取data路径
- 1041. Be Unique (20)
- 发布nodejs到npm的简单示例
- ios Masonry怎么以纯代码的方式计算cell高度
- screen命令