PluginFramework

2025-12-07 0 242

.NET Core的插件框架

使用.NET Core的插件框架,所有内容都是插件!插件框架是用于.NET Core应用程序插件平台,包括ASP.NET Core,Blazor,WPF,Windows Forms和Console应用程序。它轻巧且易于集成并支持多个不同的插件目录,包括.NET组件, Nuget软件包Roslyn脚本

主要功能

以下是插件框架的一些主要功能:

  • 一切都是插件!将插件作为Nuget包装,.NET组件,Roslyn脚本等提供。
  • 简单地集成到新的或现有的.NET核心应用程序中。
  • 自动依赖性管理。
  • 使用Nuget包装时处理平台特定的运行时DLL和本机DLL。
  • MIT许可,商业支持。

QuickStart:插件框架和ASP.NET Core

插件框架可从Nuget作为.NET Core 3.1软件包获得。有一个单独的软件包,可以使在ASP.NET Core App中使用插件更容易使用:

Install-Package Weikio. PluginFramework .AspNetCore

使用插件框架就像在Configureservices中添加单个新行一样容易:

services.Add PluginFramework <IOperator>(@\".\\myplugins\");

该代码从myplugins-folder中找到所有实现自定义ioperator-interface的插件(类型)。该插件可使用构造函数注入在控制器中:

public CalculatorController(IEnumerable<IOperator> operator)
{
	_operators = operators;
}

另外,您可以使用目录提供多个插件位置:

PluginFramework()
.AddPluginCatalog(folderPluginCatalog)
.AddPluginCatalog(anotherPluginCatalog)
.AddPluginType<IOperator>();\”>

var folderPluginCatalog = new FolderPluginCatalog(@\".\\myplugins\", type =>
{
    type.Implements<IOperator>();
});

var anotherPluginCatalog = new FolderPluginCatalog(@\".\\morePlugins\", type =>
{
    type.Implements<IOperator>();
});

services.Add PluginFramework ()
    .AddPluginCatalog(folderPluginCatalog)
    .AddPluginCatalog(anotherPluginCatalog)
    .AddPluginType<IOperator>();

样品

以下插件框架可从GitHub获得:

插件框架和.NET控制台应用程序

插件框架和ASP.NET核心

插件框架和大火

插件框架和WPF应用程序

插件框架和Winforms应用程序

Nuget和插件框架和ASP.NET Core

Roslyn&Plugin Framework&Asp.net Core

代表和插件框架和ASP.NET核心

标记和Winforms应用程序

AppSettings.JSON和ASP.NET核心

背景和介绍

有关与插件框架背景有关的更多详细信息,请参阅Infoq的以下介绍文章。

主要概念

使用插件框架集中在两个概念周围:插件插件目录

插件

插件是软件程序,可为应用程序提供扩展。插件旨在与单个应用程序一起使用。该应用通常称为主机应用程序。主机应用程序的设计方式使其可以动态地定位和运行插件运行时。没有插件的应用程序可以使用,没有主机应用程序,插件就无法正常工作。

主机应用程序定义了插件的规格。在某些应用中,插件可以在UI中添加新功能。在其他应用程序中,插件用于将日志分配到多个不同的系统中。主机应用程序定义了它支持哪种扩展。

基于插件的软件体系结构可以在以下方案中有所帮助:

  • 发行后为应用程序添加新功能
  • 将大型系统分为较小的部分
  • 在不重新启动的情况下更新始终的软件系统

插件是动态的,通常只有在应用程序需要时才会加载它们。插件通常不会作为系统的一部分编译,而是作为单独的软件包(组件,Nuget软件包)分发的。

在插件框架的上下文中,插件是单个.NET类型。是什么制造插件?如前所述,这取决于主机应用程序。对于某些应用程序,插件是实现特定接口的类型。在某些应用中,插件是一种具有单一公共方法的类型,称为Run。属性通常用于指示插件,并且插件框架也支持。从插件框架的角度来看,任何事物或其他所有内容都可以是插件。

如前所述,在插件框架中,单个插件是.NET类型。即使插件框架的ASP.NET核心支持使通过依赖注入(IserviceProvider)在服务和控制器中实例化和使用插件变得易于实例化,但插件框架本身并未提供任何内置机制来创建插件(类型)的实例(对象)。在某些情况下,Activator.CreateinStance就是所有需要的,在某些情况下,最好将插件框架与应用程序的DI系统相关联。要求特定于主机应用程序。

在插件框架中,每个插件都由以下信息组成:

  • 类型
  • 插件名称
  • 插件版本

插件目录

插件框架包含一个称为“目录”的概念。单个组件可以是目录。 .NET类型可以是目录。带有DLL的文件夹通常用作目录,插件框架还支持Nuget软件包,Nuget Feeds和Roslyn脚本作为插件目录。多个目录通常合并为单个复合目录。

每个目录包含0-N插件。

插件框架提供以下正式支持的目录:

  • 类型
  • 集会
  • 文件夹
  • 委托(行动或FUNC)(文档)
  • Roslyn脚本(Nuget:Weikio。Pluginframework.catalogs.roslyn,文档PluginFramework
  • Nuget软件包(Nuget:Weikio。Pluginframework.catalogs.nuget PluginFramework
  • nuget feed(nuget: PluginFramework )

源代码

插件框架的源代码可从GitHub获得。

支持和建造

插件框架由Adafy构建。 Adafy还为框架提供商业支持。

Adafy是芬兰软件开发公司,重点是Microsoft Technologies。

约束

多亏了以下帮助该项目的贡献者:

@panoukos41

执照

插件框架可作为开源,MIT许可的项目。

下载源码

通过命令行克隆项目:

git clone https://github.com/weikio/PluginFramework.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 PluginFramework https://www.zuozi.net/31678.html

Pos
上一篇: Pos
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务