推荐一个.Net Core轻量级插件架构

简介: 一个基于.Net Core的轻量级插件框架,集成非常简单,两行代码完成集成;支持新增Controller,动态路由;热插拔、易扩展、无需数据库。

今天给大家推荐一个开源插件架构。在介绍项目之前,我们了解下什么是插件架构,它的用处。

现有的软件开发中,业务越来越复杂,一些大型的项目版本一直在迭代,代码规模越来越大,涉及的人员也越来越多,为了降低项目的耦合度,减少开发的难度,插件框架就是其中一个解决方案。

使用插件架构可以实现并行开发、降低项目开发复杂度、有利于项目进度的把控。

项目简介

这是一个基于.Net Core的轻量级插件框架,集成非常简单,两行代码完成集成;支持新增Controller,动态路由;热插拔、易扩展、无需数据库。

技术架构

1、跨平台:这是基于.Net Core开发的系统,可以部署在Docker, Windows, Linux, Mac。

2、运行环境: .NET Core 3.1 (+)

3、开发环境: Visual Studio Community 2019

项目结构

图片

**后台管理系统

**

插件列表、插件管理、插件配置

图片

**系统集成

**

1、NuGet安装插件

PM> Install-Package PluginCore.AspNetCore

2、Startup.cs 配置

using PluginCore.AspNetCore.Extensions;

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();

    // 1. 添加 PluginCore
    services.AddPluginCore();
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseHttpsRedirection();

    app.UseRouting();

    // 2. 使用 PluginCore
    app.UsePluginCore();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

3、访问 https://localhost/PluginCore/Admin,就可以进入管理后台。

插件开发

1、Nuget引入插件

Install-Package PluginCore.IPlugins.AspNetCore

2、创建插件

添加 HelloWorldPlugin 类 继承 BasePlugin

public class HelloWorldPlugin : BasePlugin, IStartupXPlugin{
    public override (bool IsSuccess, string Message) AfterEnable()
    {
        Console.WriteLine($"{nameof(HelloWorldPlugin)}: {nameof(AfterEnable)}");
        return base.AfterEnable();
    }

    public override (bool IsSuccess, string Message) BeforeDisable()
    {
        Console.WriteLine($"{nameof(HelloWorldPlugin)}: {nameof(BeforeDisable)}");
        return base.BeforeDisable();
    }

    public void ConfigureServices(IServiceCollection services)
    {

    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseMiddleware<SayHelloMiddleware>();
    }

    public int ConfigureOrder    {
        get
        {
            return 2;
        }
    }


    public int ConfigureServicesOrder    {
        get
        {
            return 2;
        }
    }}

3、插件其他配置

动态路由配置

[Route("api/plugins/[controller]")][ApiController]public class UserHelloController : ControllerBase{
    private readonly IUserInfoService _userInfoService;

    public UserHelloController(IUserInfoService userInfoService)
    {
        this._userInfoService = userInfoService;
    }

    public ActionResult Get()
    {
        UserInfo userInfo = _userInfoService.FirstOrDefaultAsync(m => !m.IsDeleted).Result;
        SettingsModel settingsModel = PluginSettingsModelFactory.Create<SettingsModel>("HelloWorldPlugin");
        string rtn = $"用户名: {userInfo.UserName}, 创建时间: {userInfo.CreateTime.ToString()}, Hello: {settingsModel.Hello}";

        return Ok(rtn);
    }}
项目地址: https://github.com/yiyungent/PluginCore

- End -

专注分享编程知识、热门有用有趣的开源项目

相关文章
|
2月前
|
C#
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
|
4天前
|
开发框架 前端开发 .NET
一个适用于 .NET 的开源整洁架构项目模板
一个适用于 .NET 的开源整洁架构项目模板
45 26
|
2月前
|
SQL 数据可视化 数据库
多维度解析低代码:从技术架构到插件生态
本文深入解析低代码平台,涵盖技术架构、插件生态及应用价值。通过图形化界面和模块化设计,低代码平台降低开发门槛,提升效率,支持企业快速响应市场变化。重点分析开源低代码平台的优势,如透明架构、兼容性与扩展性、可定制化开发等,探讨其在数据处理、功能模块、插件生态等方面的技术特点,以及未来发展趋势。
|
2月前
|
SQL 数据可视化 数据库
多维度解析低代码:从技术架构到插件生态
本文深入解析低代码平台,从技术架构到插件生态,探讨其在企业数字化转型中的作用。低代码平台通过图形化界面和模块化设计降低开发门槛,加速应用开发与部署,提高市场响应速度。文章重点分析开源低代码平台的优势,如透明架构、兼容性与扩展性、可定制化开发等,并详细介绍了核心技术架构、数据处理与功能模块、插件生态及数据可视化等方面,展示了低代码平台如何支持企业在数字化转型中实现更高灵活性和创新。
59 1
|
2月前
|
机器学习/深度学习 存储 人工智能
【AI系统】Tensor Core 架构演进
自2017年Volta架构推出以来,英伟达的GPU架构不断进化,从Volta的张量核心(Tensor Core)革新,到Turing的整数格式支持,再到Ampere的稀疏矩阵计算优化,以及Hopper的FP8张量核心和Transformer引擎,直至2024年的Blackwell架构,实现了30倍的LLM推理性能提升。每一代架构都标志着深度学习计算的重大突破,为AI技术的发展提供了强大的硬件支持。
58 1
|
2月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
47 3
|
3月前
|
数据采集 传感器 监控
.NET 工控网关 轻量级组态软件
【10月更文挑战第10天】.NET 工控网关是一种基于 .NET 平台开发的设备,用于连接工业控制系统中的不同网络和设备,实现数据传输和协议转换。它能统一处理多种协议(如 Modbus、Profibus)的数据,便于后续系统处理。.NET 平台的优势包括开发效率高、跨平台能力强及安全性高,适用于工业物联网环境。此外,轻量级组态软件具备体积小、资源占用少的特点,可在资源受限的设备上运行,提供数据采集、监控、报警及数据分析等功能,简化工业自动化过程。
|
3月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
3月前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
|
3月前
|
存储 消息中间件 前端开发
.NET常见的几种项目架构模式,你知道几种?
.NET常见的几种项目架构模式,你知道几种?
128 0

热门文章

最新文章