首页 > 其他分享 >netcore 开源的与插件有关的项目

netcore 开源的与插件有关的项目

时间:2024-05-23 11:30:37浏览次数:20  
标签:Core 插件 netcore NETCore 开源 McMaster Plugins 加载

在 .NET Core 生态系统中,有一些开源项目可以实现类似于插件系统的功能,允许应用程序动态加载和运行扩展或模块。以下是一些值得关注的项目和框架:

1. Orchard Core

Orchard Core 是一个开源、模块化的应用程序框架和内容管理系统,基于 ASP.NET Core 构建。它提供了强大的模块化和扩展能力,非常适合用作插件系统。

  • 主要特性

    • 模块化架构,支持动态加载和卸载模块。
    • 丰富的内容管理功能。
    • 多租户支持。
    • 丰富的生态系统和插件库。
  • 项目地址

2. Prise

Prise 是一个用于 .NET Core 应用程序的插件框架,支持跨平台插件加载。它允许应用程序在运行时动态加载和卸载插件。

  • 主要特性

    • 跨平台支持(Windows、Linux、macOS)。
    • 支持依赖注入。
    • 支持插件隔离,防止插件间的依赖冲突。
    • 轻量级和高性能。
  • 项目地址

3. McMaster.NETCore.Plugins

McMaster.NETCore.Plugins 是一个简单的 .NET Core 插件框架,允许开发者在运行时加载和执行程序集。该框架主要关注于简单性和轻量级的插件加载机制。

  • 主要特性

    • 动态加载和卸载程序集。
    • 支持依赖注入。
    • 易于使用和集成。
  • 项目地址

4. ExtCore

ExtCore 是一个基于 ASP.NET Core 的轻量级扩展框架,旨在提供简便的方式来开发和管理可扩展应用程序。它允许通过插件方式扩展应用程序的功能。

  • 主要特性

    • 易于使用的扩展点和插件系统。
    • 支持依赖注入。
    • 灵活的模块化架构。
  • 项目地址

5. Plugin.Framework

Plugin.Framework 是一个轻量级的插件框架,专注于为 .NET Core 提供简单和灵活的插件加载机制。它支持通过反射加载和运行插件程序集。

  • 主要特性

    • 简单的插件加载和执行机制。
    • 支持依赖注入。
    • 易于集成到现有应用程序中。
  • 项目地址

示例:使用 McMaster.NETCore.Plugins 动态加载插件

以下是一个使用 McMaster.NETCore.Plugins 动态加载插件的示例:

  1. 创建插件项目

    dotnet new classlib -n MyPlugin
    cd MyPlugin
    
  2. 定义插件接口

    public interface IPlugin
    {
        string Execute();
    }
    
  3. 实现插件

    public class MyPlugin : IPlugin
    {
        public string Execute()
        {
            return "Hello from MyPlugin!";
        }
    }
    
  4. 创建主应用项目

    dotnet new console -n MyApp
    cd MyApp
    
  5. 安装 McMaster.NETCore.Plugins 包

    dotnet add package McMaster.NETCore.Plugins
    
  6. 加载和使用插件

    using System;
    using System.IO;
    using McMaster.NETCore.Plugins;
    
    public class Program
    {
        public static void Main(string[] args)
        {
            var pluginPath = Path.Combine(AppContext.BaseDirectory, "MyPlugin.dll");
            var loader = PluginLoader.CreateFromAssemblyFile(
                pluginPath,
                config => config.PreferSharedTypes = true);
            var pluginAssembly = loader.LoadDefaultAssembly();
    
            var pluginType = pluginAssembly.GetType("MyPlugin");
            var plugin = Activator.CreateInstance(pluginType) as IPlugin;
            Console.WriteLine(plugin.Execute());
        }
    }
    
  7. 编译和运行

    dotnet build
    dotnet run
    

通过上述步骤,您可以创建一个简单的插件系统,使您的 .NET Core 应用程序能够动态加载和执行插件。根据具体需求选择合适的插件框架,可以有效地扩展应用程序的功能。

标签:Core,插件,netcore,NETCore,开源,McMaster,Plugins,加载
From: https://www.cnblogs.com/fhlsteven/p/18208044

相关文章

  • FullCalendar插件js原生用法
    1.先看下要实现的效果图,左侧栏为当日时间,顶部为部门所有人员,表格内容是人员事件,要求数据多的时候,左侧栏和顶部固定,支持横竖滚动条,如图:  2.这里用的js原生写法:<html><head><title>工作记录详情</title><metaname="decorator"content="default"/><s......
  • C#应用的用户配置窗体方案 - 开源研究系列文章
          这次继续整理以前的代码。本着软件模块化的原理,这次笔者对软件中的用户配置窗体进行剥离出来,单独的放在一个Dll类库里进行操作,这样在其它应用程序里也能够快速的复用该类库,达到了快速开发软件的效果。      笔者其它模块化应用的例子:      C#的关于......
  • Vue搭建移动端h5项目(已开源,附带git地址)Vant+Vue Router+Vuex+axios封装+案例交互+部分
    一、项目介绍以及项目地址             项目介绍:vue2搭建。项目通过amfe-flexible与postcss-pxtorem实现移动端适配;通过Vantui作为项目的组件库;通过Vuex管理数据状态,进行模块化管理;通过VueRouter配置项目路由,进行模块化管理;封装axios进行数据的请求,以及一些页......
  • .NetCore源码阅读笔记系列之Security (二) 自定义认证实践
    通过前面对AddCookie或者 AddOpenIdConnect等了解,其实里面都实现了一个AuthenticationHandler<TOptions>的认证处理,接下来我们来简单自定义一个试试首先我来实现下面这个方式,我添加了一个AddLIYOUMING()services.AddAuthentication(options=>{......
  • 推荐一个WPF仪表盘开源控件
    前段时间,做服务器端监控系统,为了界面好看,采用WPF。硬件相关监控,比如CPU、内存等,想用仪表盘控件。网上找了很多这种控件,基本上都是第三方商业控件(虽然很漂亮,不过得money...)。最后在CodeProject上找到了一款还不错的开源的仪表盘控件CircularGauge。用了下该控件,感觉还不错......
  • WPF插件之 - PropertyChanged.Fody使用详解
    总目录文章目录总目录一、PropertyChanged.Fody是什么?二、PropertyChanged.Fody的安装三、PropertyChanged.Fody的功能1.特性1实现属性通知的功能2通知其他属性4不进行属性通知3指定属性更改时将调用的方法5设置当前属性依赖的属性6不检查是否相等7DoNotSetChangedAttribu......
  • 这个开源投屏工具太爽了 - scrcpy
    手机投屏到电脑不少人都会用到的功能。除非手机和电脑同一品牌才会有比较好的体验(例如:华为、荣耀、苹果等)。我用的手机和笔记本非一个品牌,相信不少人跟我一样。这个时候就要找第三方投屏工具,有些要收费,而且感觉很重。直到我发现了scrcpy,已经在使用scrcpy的同学可以默默退出了......
  • 开源Blazor UI组件库精选:让你的Blazor项目焕然一新!
    今天给大家推荐一些开源、美观的BlazorUI组件库,这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率,还能够为他们的项目带来更加丰富的用户体验。注:排名不分先后,都是十分优秀的开源框架和项目​AntDesignBlazorAntDesignBlazor是一个基于Blazor的前端UI组件库,......
  • Eplan插件 - 插入表格
    前言在Eplan中,受限于Eplan的基础功能,我们没有办法直接在Eplan中插入表格。当我们需要在Eplan中插入表格的时候只能手动通过矩形、直线、文本的方式一个一个绘制矩形。为了改善这种情况制作了Eplan插件,方便快速的插入表格。插件介绍亮点特征用户界面界面左右布局,左侧用于设置......
  • 坚决不走小程序,而是走插件化
    程序发展的必然方向,就是插件化;https://tech.meituan.com/2019/12/19/meituan-mrn-practice.html程序发展一定会经历的阶段:业务要求快速发版试错和原生迭代周期长;必须搭建自己的开放平台,而搭建自己的开放平台,要么使用小程序来扩展,要么使用原生语言插件;若不使用插件化,业务持续......