感觉还意思,,.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引用?
效果预览
项目插件目录:
每个插件动态编译到Plugins目录支持热插拔
【2】
Global配置插件启动代码:
实现动态加载Plugins目录下所有插件
【3】
webconfig配置插件AppDomain目录:
实现动态控制器分离加载
【5】
主站点访问插件页面:
控制器/Action 访问
也可直接在View视图页面通过MVC Html.Action渲染插件页面
@Html.Action("Index", "Bootstrap", new { pluginName = "Bootstrap" })