ASP.NET MVC插件技术

系统 1647 0


ASP.NET MVC插件技术


在实际开发中,经常会出现需要“临时”调整业务逻辑的情型, 比如某电子商务网站在双十一时价格特别优惠,双十一后恢复原价。这种不同的商品价格计算方法,就适合于以插件实现。

自.NET 4.0起, Managed Extensibility Framework(简称MEF)成为了.NET Framework中的有机组成部分,它支持程序在运行时动态组合装配各种部件。使用它,我们可以实现:不停止Web网站在线实时更新系统。

我写了一个Demo,展示实现上述功能需求所涉及到的基本技术。

示例解决方案的启动项目是一个ASP.NET MVC4项目,其运行网页截图如下:


ASP.NET MVC插件技术

图1

ASP.NET MVC插件技术

图2

这个项目的特点是:

(1)在更新系统时无需停机,一上传,新组件立即生效

(2)通过给要使用的组件指定一个更高的版本号,系统将自动并装载它

(3)所有操作均通过Web完成,无需使用FTP等其他工具跨网络传输文件。

(4)组件文件名无关紧要,在本例中,如果上传的新组件与老组件文件名相同,将不会保存新组件。

放在CSDN的资源包中除了源代码(VS2013格式),还有一个17页的PDF文档,介绍更详细的内容。

这个项目用到MEF,详细介绍它不是一篇短短的博文所能做到的。但你要是不懂MEF,则无法掌握这里所谈到的技术。请自行找寻相关资料学习MEF,我在《.NET 4.0面向对象编程漫谈(应用篇)》中有一章专门讲述MEF,可供参考。

注:此书己被互联网“雷锋”扫描共享,作为作者,我只能无奈地笑笑 毕竟知识共享才能创造价值, 只希望我写的这些书能真的帮助大家学好用好技术, 那我付出的劳动也算值回票价了, 也算得到了一点心理安慰 ……


最后,再谈谈MEF与NInject等IoC容器使用场景:

在ASP.NET MVC项目中,IoC容器主要用于向Controller动态地注入业务逻辑层(或服务层)的组件,另外,如果数据存取层中应用了Repository模式设计了若干Repository,则也可以将其动态注入到上层的组件中,向上层组件提供CRUD数据服务。

MEF的使用场景则不一样,它比较适合在中间层使用,用于动态地更新或扩充系统业务逻辑功能,比较适合于业务流程的 微调 ,实现整个系统的插件化。


本文如有错漏 ,欢迎高手指正。谢谢。


====================================

点击 下载 ASP.NET MVC插件技术


ASP.NET MVC插件技术


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论