.NET 轻量级可视化插件框架
The following article is from Dotnet 工具箱 Author 工具箱
轻量级插件框架
PluginCore 是一个适用于 ASP.NET Core
的轻量级插件框架,由国人开发并开源。
有一些插件的项目是基于配置的形式管理插件, 而这个项目提供了一个插件管理页面,对使用者非常友好。
功能特性
简单 - 约定优于配置, 以最少的配置帮助你专注于业务
开箱即用 - 前后端自动集成, 两行代码完成集成
动态 WebAPI - 每个插件均可新增 Controller, 拥有独立路由
插件隔离与共享 - 完善的插件隔离与类型共享
插件前后端分离 - 可在插件 wwwroot
文件夹下放置前端文件 (index.html,...), 然后访问 /plugins/pluginId/index.html
热插拔 - 上传、安装、启用、禁用、卸载、删除 均无需重启站点; 甚至可通过插件在运行时添加 HTTP request pipeline middleware
, 也无需重启站点
依赖注入 - 可在 实现 IPlugin
的插件类的构造方法上申请依赖注入项, 当然 Controller
构造方法上也可依赖注入
模块化 - 过程模块化, 全程依赖注入, 轻松替换实现自定义插件机制
易扩展 - 轻松编写插件SDK, 编写扩展插件 - 自定义插件钩子, 并应用
插件依赖树 - 申明式依赖, 自动根据插件间依赖建立正确加载顺序
生命周期 - 可控的插件生命周期, 完善的事件派发
挂件 - 可在前端埋扩展点, 通过插件注入挂件, 挂件拥有完善的 HTML/CSS/JavaScript 支持, 优雅的事件派发
无需数据库 - 无数据库依赖
0侵入 - 近乎0侵入, 不影响你的现有系统
极少依赖 - 只依赖于一个第三方包 ( 用于解压的 SharpZipLib
)
国际化 - 得益于 i18n
的国际化实现, 提供多语言切换支持
截图预览
一分钟集成
1、使用 Nuget 安装 PluginCore
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();
});
}
现在访问 https://localhost:5001/PluginCore/Admin 即可进入 PluginCore 插件管理后台。
项目地址
https://github.com/yiyungent/PluginCore
- EOF -
.NET 7 中实现速率限制无痛接入.NET 微服务 概念 应用 通讯 授权 跨域 限流
看完本文有收获?请转发分享给更多人
推荐关注「DotNet」,提升.Net技能
点赞和在看就是最大的支持❤️