基于.NET MVC的高性能IOC插件化架构

最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件

最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http://www.cnblogs.com/gengzhe/p/4370979.html

我先分析下我的系统架构:

这是整体结构图,先简单介绍下:Sun.Core是系统核心,包含了系统必要组件及基础设施的所有接口及必要拓展类。Sun.Framework是整个系统的基础设施,提供系统的运行基础,包括插件支持方面的代码都在这个项目里进行实现。Sun.Web是网站的入口点。Model是实体类项目。Module是插件。Operate是业务逻辑项目。接下来一个一个介绍,主要介绍插件化架构的实现方式。

上面两张图里面是插件化接口的核心代码,前面的一张图包含了IOC容器和插件的所有接口,后面一张图实现了插件接口,并对MVC控制器工厂及视图引擎类进行了重写。

这里是存放插件的地方,可以把编译好的功能插件及单独的网站项目拷贝到这里面,网站运行的时候能自动检索里面的插件,并加载。可以把网站所有的功能及网站内容组合成多个插件然后按需加载运行。

我这里写了两个插件的例子,上面一个是基于EasyUI的网站后台(插件化了),下面一个是对网站提供缓存的Redis缓存插件,加载插件后,网站的缓存功能就改为Redis了。

这个是插件后台,用户开发自己的插件的时候可以使用IOC容器获取Sun.Core定义的功能接口,功能的具体实现由相应的插件来实现

通过这两个图可以看到,我们的缓存插件及网站插件都加载成功了。

后面我会继续为大家讲解各部分的具体实现

 

最新文章

  1. 【ASP.NET】VS编译成功后自动生成Nuget包
  2. QT 调用VS2015编写的Dll
  3. windows目录选择 文件选择 文件保存对话框
  4. python 自动化测试资料
  5. Android下拉刷新底部操作栏的隐藏问题
  6. 常用的android弹出对话框
  7. C语言 字符串操作两头堵模型
  8. timus 1982 Electrification Plan(最小生成树)
  9. 使用thumbnailator 时部分图片抛异常
  10. 关于volatile
  11. C# MVC 自学笔记—4 添加视图
  12. MONGO DB windows 设备
  13. python 列表、元组、字符串、字典、集合、return等梳理
  14. JS基础学习1
  15. MVC 获取控制器名称和Action名称(转载)
  16. Linux下DNS简单部署(主从域名服务器)
  17. 搭建(WSTMart)php电商环境时缺少fileinfo函数
  18. android布局 - fill_parent/match_paren/wrap_content的区别
  19. 关于self和super在oc中的疑惑与分析 (self= [super init])
  20. deepin安装Mariadb后,登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'

热门文章

  1. sqlite3触发器的使用
  2. Apple Watch 1.0 开发介绍 1.3 简介 WatchKit App 架构
  3. hdu 5106 Bits Problem(数位dp)
  4. 12本最优秀的Android开发电子书强力推荐
  5. CSDN帐号被盗尚未?
  6. 使用Java快速实现进度条(转)
  7. [ACM] HDU 2295 Radar (二分法+DLX 重复覆盖)
  8. 朝花夕拾-4-shell
  9. 于PsIsSystemThread无论是在线程系统线程标识获得
  10. FastJson基本使用