ASP.NET MVC插件技术
在实际开发中,经常会出现需要“临时”调整业务逻辑的情型,比如某电子商务网站在双十一时价格特别优惠,双十一后恢复原价。这种不同的商品价格计算方法,就适合于以插件实现。
自.NET 4.0起,Managed Extensibility Framework(简称MEF)成为了.NET Framework中的有机组成部分,它支持程序在运行时动态组合装配各种部件。使用它,我们可以实现:不停止Web网站在线实时更新系统。
我写了一个Demo,展示实现上述功能需求所涉及到的基本技术。
示例解决方案的启动项目是一个ASP.NET MVC4项目,其运行网页截图如下:
图1
图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插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0
ASP.NET MVC 4 插件化架构简单实现 ASP.NET MVC 4 插件化架构简单实现-思路篇 http://blog.csdn.net/hao_ds/article/details/42102969 ASP.NET MVC 4 插件化架构简单实现-实例篇 ...
ASP.NET MVC项目源代码设计资料
这是asp.net的mvc插件,三层构架,想下载的就下载吧。同样适合vb.net。
ASP.NET MVC 3.0 插件,ASP.NET MVC 3.0 插件,ASP.NET MVC 3.0 插件
Asp.net MVC 利用(aspose+pdfobject.js) 实现在线预览word、excel、ppt、pdf文件 在线预览常用办公文档(word、excel、ppt、pdf)
ASP.NET MVC 1.0 ,包含两个MVC 1.0的版本,具体内容,我不做介绍,需自己研究。
ASP.NET MVC3 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,实现增删该查以及分页功能(使用老外写的一个jquery插件完成超炫的分页效果),代码简洁,注释详细,欢迎大家下载使用。
asp.net MVC3实例开发教程,是基于ASP.NET MVC3+ADO.NET4+EF4.1+Jquery+插件等技术下的CRM企业客户管理系统,asp.net MVC3实例开发教程由北风网提供,asp.net MVC3实例开发教程包括:营销管理、客户管理、服务管理、...
简单的asp.net mvc 插件式开发,可以在此基础上扩展,探讨
ASP.NET MVC框架下的Webpart Portlet插件开发
这是一个简易的插件系统,每个插件项目可以是纯DLL,也可以是一个MVC应用,实现原理请看我的博客:http://www.cnblogs.com/94pm/p/6819812.html
ASP.NET MVC 使用zyUpload插件实现多图上传 具体实现效果和详细描述见:http://www.51softs.com/aspnet/asp-net-mvc-zyupload-upload-picture.html
这是一个非常实用的MVC分页案例! 不需要借助任何插件,实现纯手工分页,而又不失简洁。 代码打开即可运行!
一套基于ASP.NET MVC+EF6+Bootstrap开发出来的框架源代码! 采用主流框架,容易上手,简单易学,学习成本低。可完全实现二次开发、基本满足80%项目需求。 可以帮助解决.NET项目70%的重复工作,让开发更多关注业务...
鉴于本学习学习的asp.net,及时写一个小项目练练手。 项目开发环境以及相关技术如下: ...框架:asp.net MVC 5 ORM:EF6 前端:视图脚本采用.cshtml —基于c#的razor 弹层:layer.js 分页:PageList插件
实现插件化,动态加载外部插件,很多大型系统都有插件功能吧:) 易维护
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...一个基于ASP.NET MVC实现的在线考试系统源码+项目说明.zip
掌握本技术的前提是会用MEF,可以参考我写的《.NET 4.0面向对象编程漫谈(应用篇)》第22章。与本资源相关的网页在我的个人博客上:http://blog.csdn.net/bitfan/article/details/17260775,技术问题可以在那儿交流...
asp.net MVC chosen插件源码实例 此项目可作为学习asp.net MVC项目 或学习chosen插件的实例 带有数据库 特色为运用了chosen插件 本项目中在Orders/Details/页面中Carton No和Article No为chosen插件的运用