首页 > 其他分享 >ABP说搞就搞系列——模块热插拔实现(二)

ABP说搞就搞系列——模块热插拔实现(二)

时间:2023-07-10 22:24:43浏览次数:28  
标签:MEF Orchard 热插拔 ABP C# ASP 模块 NET

Orchard是一个开源的、基于ASP.NET MVC的CMS(内容管理系统)平台,它支持模块化和主题化,允许用户方便地扩展和定制其功能。
Orchard的模块热插拔主要依赖于以下几个关键部分:

  1. 模块文件结构:每个模块都被放在一个单独的文件夹中,并且有一个预定义的文件和文件夹结构,这样Orchard就可以知道如何加载和识别模块。
  2. 动态编译:Orchard使用ASP.NET的动态编译特性来支持模块的热插拔。当Orchard运行时,它会定期检查模块文件夹中的文件是否有变化,如果有变化,Orchard会重新编译这个模块,然后动态加载新编译的模块。
  3. 依赖注入:Orchard使用Autofac作为其依赖注入容器,当加载新的模块时,Orchard会将模块中的服务注入到依赖注入容器中,然后就可以在应用程序中使用这些服务了。
  4. 路由和MVC:Orchard使用ASP.NET MVC的路由系统来将请求路由到对应模块的Controller中。当Orchard加载新的模块时,它会将模块的路由信息添加到ASP.NET MVC的路由表中,这样就可以将请求路由到新模块的Controller中。
    总的来说,Orchard的模块热插拔实现主要依赖于ASP.NET的动态编译特性、依赖注入和路由机制,以及Orchard自己定义的模块文件结构。这种实现方式使得Orchard可以在运行时动态加载和卸载模块,从而支持模块的热插拔。

参考书籍:
学习MEF(Managed Extensibility Framework)以及类似的编程技术,主要涉及到插件式编程、依赖注入和反射等方面的知识。下面是五本在这方面有价值的书籍推荐:

  1. 《Pro .NET 4 Parallel Programming in C#》:这本书涵盖了.NET 4中的并行编程、MEF和其他扩展性技术。这是一本深入浅出的书,适合有一定.NET基础的开发者阅读。
  2. 《Dependency Injection in .NET》:这本书详细讲解了依赖注入这一核心概念,同时也介绍了几种常见的.NET依赖注入框架,包括MEF。
  3. 《C# 5.0 in a Nutshell》:这是一本全面的C#参考书,包含了大量示例代码,涵盖了从基础语法到高级特性的所有内容,其中也包括对MEF的介绍。
  4. 《C# in Depth》:这本书的作者是C#社区的知名人士Jon Skeet,书中深入介绍了C#的各种高级特性,包括反射、动态编程等,这些都是理解和使用MEF的基础。
  5. 《Pro ASP.NET MVC 5》:这本书主要介绍了ASP.NET MVC 5的各种内容,其中包括如何在ASP.NET MVC中使用MEF进行插件式编程。
    以上这些书籍的内容涵盖了MEF以及相关技术的核心知识,是学习MEF的不错选择。当然,除了阅读书籍之外,实践也是非常重要的,建议你在阅读过程中配合实际的编程练习,这样会更有助于理解和掌握这些知识。

如果你想入门MEF(Managed Extensibility Framework)编程,以下是一些推荐的书籍:

  1. 《Programming the Microsoft Managed Extensibility Framework》:这本书是关于MEF的详细指南,介绍了如何使用MEF进行模块化程序设计。
  2. 《Pro .NET 4 Parallel Programming in C#》:虽然这本书主要是关于.NET 4的并行编程,但其中包含了MEF的一个重要部分,对入门MEF编程有很好的帮助。
  3. 《C# 5.0 in a Nutshell》:这本书是一本全面的C#参考书,虽然不是专门针对MEF的,但其中包含了MEF的基础知识介绍,足够用于入门学习。
  4. 《Dependency Injection in .NET》:这本书详细讲解了.NET中的依赖注入技术,其中也涵盖了MEF,是理解MEF背后理念的好资源。
  5. 《.NET Design Patterns》:这本书深入讲解了.NET的设计模式,其中包括插件模式,这对理解MEF的工作原理有很大帮助。
    请注意,理论学习和实践应用要结合起来,一边阅读以上的书籍,一边尝试使用MEF进行编程,这样才能更好地理解和掌握MEF。

标签:MEF,Orchard,热插拔,ABP,C#,ASP,模块,NET
From: https://www.cnblogs.com/DinAction/p/17542491.html

相关文章

  • opencv-python图像处理模块(一)
    本章节主要记录了图像颜色空间转换(着重讲述了hsv空间和对应的一个roi颜色提取实验);图形的基本绘制,包括绘制直线,矩形,圆和椭圆,还有中英文文字绘制;利用鼠标和键盘控制绘制图形,在图像上面显示某一点的坐标和对应的rgb像素值或者hsv值;以及在图片合适的位置添加logo水印。1图像颜色空间......
  • 十二、JQ8400语音播报模块
    1.管脚说明引脚标示说明1ONELINE一线串口脚2BUSY忙信号脚,播放时为高,其他为低3RX芯片串口接收脚,接MCU的TX4TX芯片串口发送脚,接MCU的RX5GND芯片数字地6DC-5V芯片供电脚,3.3-5V7DAC-RDAC音频输出右声道8DAC-LDAC音频输出左声道9SP......
  • 跨平台轻量级RTSP服务模块设计思路及实现探讨
    技术背景为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,我们发布了轻量级RTSP服务模块,轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,实现本地的音视频数据(如摄像头、麦克风),编码后,汇聚到内置RTSP服务,对外提供可供拉流的RTSP......
  • BOSHIDA DC电源模块过载保护的机制
    BOSHIDADC电源模块过载保护的机制DC电源模块一般具有过载保护功能,当输出电流大于所设定的电流限制时,模块会自动关闭输出以保护负载和模块本身。过载保护的实现方式主要有以下几种: 1.电流限制器:为了防止输出电流超出设定值,模块内部通常会加入电流限制器,一旦电流超出限制,就会......
  • apollo+carsim自动驾驶控制模块仿真 windows联系独编译,
    apollo+carsim自动驾驶控制模块仿真windows联系独编译,和carsim联合仿真仿真调试有编译和调试过程文档基于windows平台,所有依赖的库有预编译好的包apollo6.0版本。ID:6699625478961058......
  • Comsol有限元仿真,流体模块,两相流—水平集 多物理场耦合仿真
    Comsol有限元仿真,流体模块,两相流—水平集多物理场耦合仿真ID:695627189943991......
  • python-opencv核心库模块core(下)
    本章节主要记录opencv核心库模块core的图像旋转,图像拼接,图像仿射变换,图像roi区域提取和图像傅里叶变换等操作。1图像旋转opencv提供了将图像沿着坐标轴旋转的函数flip,dst=flip(src,flipcode) flipcode表示旋转的标志,等于0表示沿着x轴旋转,正数表示沿着y轴旋转,负数表示沿着x......
  • 【雕爷学编程】Arduino动手做(153)---2.4寸TFT液晶触摸屏模块8
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(153)---2.4寸TFT液晶触摸屏模块6
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(153)---2.4寸TFT液晶触摸屏模块5
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......