PluginCore 开源项目教程
项目介绍
PluginCore 是一个适用于 ASP.NET Core 的轻量级插件框架。它具有以下特点:
- 简单:约定优于配置,以最少的配置帮助你专注于业务。
- 开箱即用:前后端自动集成,两行代码完成集成。
- 动态 WebAPI:每个插件都可新增 Controller,拥有自己的路由。
- 插件前后端分离:可在插件
wwwroot
文件夹下放置前端文件 (如index.html
),然后访问/plugins/pluginId/index.html
。 - 热插拔:上传、安装、启用、禁用、卸载、删除均无需重启站点,甚至可通过插件在运行时添加 HTTP request pipeline middleware,也无需重启站点。
- 依赖注入:可在实现
IPlugin
的插件类的构造方法上申请依赖注入项,当然 Controller 构造方法上也可依赖注入。 - 易扩展:你可以编写你自己的插件 SDK,然后引用插件 SDK 编写扩展插件,自定义插件钩子并应用。
- 无需数据库:无数据库依赖。
- 0侵入:近乎 0 侵入,不影响你的现有系统。
- 极少依赖:只依赖于一个第三方包 (用于解压的 SharpZipLib)。
项目快速启动
安装 PluginCore
-
在你的 ASP.NET Core 应用程序中,使用 NuGet 安装 PluginCore:
PM> Install-Package PluginCore
-
修改
Startup.cs
文件,添加 PluginCore 服务和中间件:using PluginCore.Extensions; public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddPluginCore(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); app.UsePluginCore(); }
配置 PluginCore
在 appsettings.json
中添加 PluginCore 的配置:
{
"PluginCore": {
"PluginsPath": "Plugins",
"Admin": {
"Username": "admin",
"Password": "ABC12345"
}
}
}
运行项目
启动你的 ASP.NET Core 应用程序,访问 /plugincore/admin
进入 PluginCore 管理界面,使用配置的用户名和密码登录。
应用案例和最佳实践
应用案例
PluginCore 可以用于构建可扩展的 Web 应用程序,例如:
- 内容管理系统 (CMS):通过插件扩展功能,如评论系统、支付系统等。
- 电子商务平台:通过插件添加新的支付方式、物流方式等。
- 企业内部系统:通过插件扩展功能,如报表生成、数据分析等。
最佳实践
- 插件开发:遵循 PluginCore 的插件开发规范,编写可复用的插件。
- 依赖管理:合理管理插件之间的依赖关系,避免循环依赖。
- 安全性:确保插件的安全性,避免引入安全漏洞。
- 性能优化:优化插件的性能,避免影响主应用的性能。
典型生态项目
PluginCore 的生态项目包括:
- PluginCore Admin:PluginCore 的管理前端实现。
- PluginCore JS SDK:前端挂件的依赖库。
- Remember Core:PluginCore 的前身,一个 .NET Web 应用框架。
这些项目共同构成了 PluginCore 的生态系统,为用户提供了丰富的功能和扩展能力。