推荐一个 ASP.NET Core 的轻量级插件框架

news/2025/1/16 21:45:48/文章来源:https://www.cnblogs.com/1312mn/p/18509007

前言

本文将介绍一个专为ASP.NET Core设计的轻量级插件框架——PluginCore,该框架不仅能够简化插件的开发与集成,还能大幅提高开发效率。

另外,还将简要介绍相关的前端技术和SDK支持,帮助我们快速上手。

项目介绍

PluginCore是一个轻量级插件框架,通过最小化的配置简化插件的集成与管理,能够快速上手并专注于核心业务逻辑的开发。

该框架支持动态WebAPI、插件隔离与共享、前后端分离以及热插拔等特性,非常适合需要高度模块化与可扩展性的应用场景。

项目特点

  • 简单易用:遵循“约定优于配置”的原则,最大限度减少配置需求,让您专注于核心业务逻辑。
  • 开箱即用:前端与后端自动集成,只需几行代码即可完成整个集成流程。
  • 动态WebAPI:每个插件都可以添加新的Controller,拥有独立的路由配置。
  • 插件隔离与共享:提供完善的插件隔离机制,并支持类型共享。
  • 前后端分离:允许在插件的wwwroot文件夹中放置前端资源文件,直接通过插件ID访问。
  • 热插拔:支持在不停机的情况下上传、安装、启用、禁用、卸载和删除插件;甚至可以在运行时动态添加HTTP请求中间件。
  • 依赖注入:在实现IPlugin接口的插件类构造函数中支持DI。
  • 模块化:所有过程均模块化处理,并全面支持DI,便于替换和自定义插件机制。
  • 易扩展:支持编写插件SDK和扩展插件,提供自定义插件钩子。
  • 插件依赖树:声明式的依赖关系,自动根据依赖关系确定加载顺序。
  • 生命周期管理:可控的插件生命周期,包括事件分发机制。
  • 前端挂件:可在前端定义扩展点,并通过插件注入挂件,支持HTML/CSS/JavaScript。
  • 无数据库依赖:完全不需要数据库支持。
  • 零侵入性:对现有系统几乎没有侵入性。
  • 极少外部依赖:除用于解压缩的SharpZipLib之外,无其他第三方依赖。

项目技术

  • 后端: .NET Standard, .NET Core, .NET, ASP.NET Core
  • 前端: Vue.js, vue-i18n, Vue Router, Vuex, Element UI
  • 前端工具: Babel, Mock.js, SASS, Autoprefixer, ESLint, Axios, NPM

项目使用

项目结构

一分钟集成

推荐使用NuGet集成,在项目的根目录执行以下命令。

如果使用的是Visual Studio,可以通过"工具"->"NuGet包管理器"->"包管理控制台"来执行安装命令:

PM> Install-Package PluginCore.AspNetCore

在ASP.NET Core项目中集成

修改Startup.cs文件,添加以下代码:

using PluginCore.AspNetCore.Extensions;public class Startup
{public void ConfigureServices(IServiceCollection services){services.AddControllers();services.AddPluginCore(); // 1. 添加 PluginCore
    }public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseHttpsRedirection();app.UseRouting();app.UsePluginCore(); // 2. 使用 PluginCore
        app.UseAuthorization();app.UseEndpoints(endpoints => { endpoints.MapControllers(); });}
}

完成后,访问https://localhost:5001/PluginCore/Admin即可进入PluginCore管理界面。(请将URL替换为您实际的地址)

注意

请登录PluginCore管理界面后,及时更改默认的用户名和密码:

{"Admin": {"UserName": "admin","Password": "ABC12345"},"FrontendMode": "LocalEmbedded","RemoteFrontend": "https://cdn.jsdelivr.net/gh/yiyungent/plugincore-admin-frontend@0.1.2/dist-cdn"
}

更改后立即生效,无需重启站点,但需要重新登录PluginCore管理界面。

Docker体验

如果希望通过Docker体验PluginCore,可以使用以下命令:

docker run -d -p 5004:80 -e ASPNETCORE_URLS="http://*:80" --name plugincore-aspnetcore3-1 yiyungent/plugincore-aspnetcore3-1

访问 https://localhost:5001/PluginCore/Admin 进入 PluginCore 管理界面(注意将端口替换为你的实际端口)

项目效果

项目应用实例

1、yiyungent/KnifeHub

【PluginCore.AspNetCore 最佳实践】工具平台,涵盖日常生活、学习、工作及开发所需的各类工具集。

https://github.com/yiyungent/KnifeHub

2、yiyungent/Dragonfly

利用ASP.NET Core与Selenium实现的Web自动化解决方案。

https://github.com/yiyungent/Dragonfly

项目地址

GitHub:https://github.com/yiyungent/PluginCore

在线文档:https://yiyungent.github.io/PluginCore/zh

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824540.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NocoBase 本周更新汇总:提升表格区块渲染性能等

NocoBase 本周更新汇总 2024-10-31汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括两个分支:main 和 next 。 main :截止目前最稳定的版本,推荐安装此版本。 next:内测版,包含一些未发布的新特性,这个版本可能还不完全稳定,适用于开发者…

数智驱动,纷享销客助力万东医疗实现精细化管理

数字化浪潮正在席卷整个医疗影像行业,数字化工具对疾病诊疗效率和诊疗质量的提升也有目共睹。北京万东医疗科技股份有限公司(以下简称“万东医疗”,股票代码 600055)成立于1955年,1997 年在上海证交所上市,是美的集团旗下企业,经过60多年的发展,万东医疗从低端普放到终…

低代码平台库存管理新策,定制化方案轻松构建

经销商利用ZohoCreator低代码开发系统实现库存管理系统现代化,提高运营效率,支持全渠道整合、仓库优化等,快速响应需求,实现数字化转型,系统安全可扩展,助力企业应对市场挑战。一、业务挑战与需求 这家经销商在全球范围内采购关键部件,涵盖中国、美国、印度等多个国家和…

用心理学观点做销售

在这个由优胜劣汰自然法则主导的世界里,商业领域同样遵循着这一不变的规律。销售,作为说服艺术的核心,其精髓在于营销人员如何巧妙地在与客户交流中展现自身实力,证明自己是值得信赖的合作伙伴。相较于单纯的产品生产,将产品成功推向市场,实现其价值最大化,才是更为关键…

python进度库-tqdm的自定义能力

今天罗列几个关于 tqdm 常见自定义场景。并尝试对动态更新描述信息做简单的封装,积累一些通用模块。 tqdm 提供了丰富的自定义选项,可以让你根据不同的需求调整进度条的外观和行为,接下来看看他的自定义能力。tqdm 函数参数: desc :进度条的描述信息。 total :总迭代次数…

敏捷组织中项目管理办公室的角色需要遵循哪些措施

在敏捷组织中,项目管理办公室(PMO)扮演了关键的协调和支持角色。主要的措施包括:1. 遵循敏捷原则和实践;2. 促进团队协作和沟通;3. 监控项目进度和性能;4. 提供培训和支持;5. 确保与组织战略一致;6. 灵活适应变化。其中,促进团队协作和沟通是提高效率和质量的关键。1…

IJB-International Journal of Bioprinting

生物打印的信息技术与基础研究(打印什么、怎么打印等)、生物打印的材料和配方、生物打印中用于增材制造的细胞来源和生物技术、3D生物打印技术、新的设计和制造范式、3D打印产品的应用研究目的与评价、相关的社会影响(对经济、政策、环境等的影响)@目录一、征稿简介二、重要…

工作服穿戴ai识别厂商

工作服穿戴ai识别厂商基于AI人工智能机器视觉分析识别技术进行部署,工作服穿戴ai识别厂商利用现场在特定生产区域内已有的监控摄像头能够对工人的穿戴情况进行实时检测。工作服穿戴AI识别系统经过大量数据训练和算法优化,能够准确判断工人的穿戴是否合规。一旦系统检测到工人…

让卷积神经网络来辨识马和人

上一篇:《设计卷积神经网络CNN为什么不是编程?》 序言:我们已经踏入了设计人工智能(AI)模型的大门,有一个重要概念请大家务必记住:人工智能模型 = 架构 + 特征。任何一个AI模型都是先设计出架构,再通过数据训练获得特征。整合了特征的架构才算是一个完整的人工智能模型…

k8s~为pod添加节点的资源限制

CPU单位 CPU资源以CPU核心数为单位进行度量的。在Kubernetes中,一个CPU相当于: 1 AWS vCPU 1 GCP Core 1 Azure vCore 一个超线程(在使用超线程的裸金属Intel处理器上)请求0.5 CPU的容器所保证的CPU核数是请求节点上的1个CPU的一半。你可以用后缀m表示milli。例如100m CPU、10…

仪表数字图像AI视频分析预警

仪表数字图像AI视频分析预警系统利用AI人工智能机器视觉分析识别技术,仪表数字图像AI视频分析预警通过部署现场监控摄像头,实现对仪表盘读数和开关状态的自动识别。系统通过捕捉仪表盘图片,并运用AI算法分析处理这些图像,自动读取仪表盘上显示的数字。相比起传统的人工读数…

Zoho CRM软件优势解析,为何成为企业优选

Zoho CRM系统功能丰富,适用行业广,亮点包括高度可定制、无缝集成、价格实惠、全球支持和移动端应用,助力企业提高效率和客户满意度,推动业务增长。一、功能丰富且全面 1、销售自动化 一个高效的销售流程是任何企业成功的基础。Zoho CRM系统提供了全面的销售自动化功能,包括…