刚来的一位.Net架构师搭建的插件框架!

时间:2021-06-06 18:35:24

 

感觉还意思,,.Net实现插件式模块化开发


1:插件分哪些类别?

功能插件-(附件预览/Excel导入导出/生成pdf) 等,,,
业务插件--(用户管理/部门管理/角色管理/权限管理/工作流) 插件 等。。。
数据插件-(楼盘数据/人数据/资讯数据/地理数据) 等暴露api给业务插件调用
每个插件都是独立的MVC站点,


2:插件直接怎么相互调用?
@Html.Action("Index", "Static", new { pluginName = "Static" ,callback="/userlist/saveuser"})
接口调用,使用插件的时候设置回调插件
URL直接访问插件控制器, 比如访问用户的列表插件 /User/List

3:插件自身包含哪些内容
    插件的资源文件(.cshtml/Js/CSS/Img)等
     
4:插件化的好处
    功能模块最大化服用,低耦合,高内聚,
    每个程序员 维护好自己的插件,提供接口和控制器 给其他同事 直接调用

5:例子下载:
     http://www.code68.com/webSite/HelpDetails


步骤:

1、下载插件源码完整Demo

来吧,开启插件开发之旅。。。
完整的一套可运行的插件嵌入MVC Demo 

2、初始化框架

配置webconfig /* Plugin1插件框架配置DLl目录 */ 
PluginMvc.Framework.Bootstrapper.Initialize(true);
/* Plugin1插件框架配置DLl目录 */

配置webconfig <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <!-- Plugin2插件框架配置DLl目录-->
      <probing privatePath="App_Data/Dependencies" />
      <!-- Plugin2插件框架配置DLl目录-->      
    </assemblyBinding>
  </runtime>

 

3、添加Dll引用?

刚来的一位.Net架构师搭建的插件框架!

效果预览

项目插件目录:
每个插件动态编译到Plugins目录支持热插拔
刚来的一位.Net架构师搭建的插件框架!
【2】
Global配置插件启动代码:
实现动态加载Plugins目录下所有插件
刚来的一位.Net架构师搭建的插件框架!【3】
webconfig配置插件AppDomain目录:
实现动态控制器分离加载
刚来的一位.Net架构师搭建的插件框架!【5】

主站点访问插件页面:
控制器/Action 访问


刚来的一位.Net架构师搭建的插件框架! 

也可直接在View视图页面通过MVC Html.Action渲染插件页面

  @Html.Action("Index", "Bootstrap", new { pluginName = "Bootstrap" })