建筑企业资质新规定2022,seo平台优化,深圳网站设计灵点网络口碑好,篮网最新消息沉静岁月#xff0c;淡忘流年1项目简介Remember.Core一个轻量的 Web 应用框架, 具有优雅、高效、简洁、富于表达力等优点。采用 前后端分离 设计#xff0c;是崇尚开发效率的全栈框架简洁友好 - 统一的设计规范#xff0c;精心打磨的操作界面回应你的期待。易扩展 - 一套完整… 沉静岁月淡忘流年1项目简介Remember.Core 一个轻量的 Web 应用框架, 具有优雅、高效、简洁、富于表达力等优点。采用 前后端分离 设计是崇尚开发效率的全栈框架简洁友好 - 统一的设计规范精心打磨的操作界面回应你的期待。易扩展 - 一套完整的插件机制以 约定优于配置 为中心的项目结构无论是对开发者还是使用者都如此友好。Remember.Core目前仅提供了插件框架若你需要实现一个Web插件系统或许 Remember.Core 是不错的参考这也是本项目的目的作为 插件系统实现的参考。 原项目地址https://github.com/yiyungent/Remember.Core作者博客https://moeci.com/https://moeci.com/Remember.Core 2框架功能 在线项目演示暂无 插件列表运行效果插件配置插件文档说明功能一览上传本地插件 - 热插拔无论是加载卸载都无需重启你的站点放置钩子 - 让插件行为加入框架全程依赖注入 - 你可在插件生命周期获取你注入的任何服务以约定优于配置为中心的项目结构 - 只需关注你的业务一插件一LoadContext - 插件间彼此隔离Framework 域共享机制 - 免去重复加载简单易用 - PluginFinder、PluginManager 或许你仅仅需要它们一套完整的 插件生命周期 - 在需要时做你想做动态扩展 WebAPI - 每个插件都是一个 WebAPI完整插件的机制 - 从上传设置禁用再到卸载一次打通多数据库切换 - 让EF做它该做的事轻量的插件框架 - 易用不过如此3框架技术栈(系统所用到的技术栈)前端基于vue-element-admin后端基于.NETCore3.1RESTful和SemanticWebAPI 设计采用UHubIdentityServer4完成认证授权。配合使用Autofac依赖注入容器EFCore提供数据持久化ORMSerilog做日志集成Quartz.NET做任务调度。核心的还是基于插件可拔插式的开发模式有很好的借鉴意义。4分层介绍1. 引入插件框架dllPluginCore 必须其它根据需要一个示例插件项目结构 如下图2. 添加 GetUserInfoPlugin 类 继承 BasePlugin或则你可以直接实现 IPlugin 可通过预先定义框架行为钩子插件再实现接口将插件行为加入框架如实现 ITestPlugin 支持插件 构造器注入 框架预先注入的服务等public class GetUserInfoPlugin : BasePlugin, ITestPlugin
{private readonly IUserInfoService _userInfoService;public GetUserInfoPlugin(IUserInfoService userInfoService){this._userInfoService userInfoService;}public string Say(){UserInfo userInfo _userInfoService.FirstOrDefaultAsync(m !m.IsDeleted).Result;string rtn $用户名: {userInfo.UserName}, 创建时间: {userInfo.CreateTime.ToString()};return rtn;}public override (bool IsSuccess, string Message) AfterEnable(){Console.WriteLine(${nameof(GetUserInfoPlugin)}: {nameof(AfterEnable)});return base.AfterEnable();}public override (bool IsSuccess, string Message) BeforeDisable(){Console.WriteLine(${nameof(GetUserInfoPlugin)}: {nameof(BeforeDisable)});return base.BeforeDisable();}
}
3. 插件其他配置支持 动态扩展 WebAPI和普通WebAPI 项目相同直接创建 Controller 即可[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.CreateSettingsModel(GetUserInfo);string rtn $用户名: {userInfo.UserName}, 创建时间: {userInfo.CreateTime.ToString()}, Hello: {settingsModel.Hello};return Ok(rtn);}
}
4. 插件发布打包右键选择插件项目点击发布Publish再将发布后的插件文件夹打包为 GetUserInfo.zip 即可 压缩包名可随意框架将以 info.json 中 PluginId 作为插件标识 打包后的插件即可通过 上传本地插件 载入框架 GetUserInfo.csproj 参考Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupItemGroupProjectReference Include..\..\src\Framework\Libraries\Domain\Domain.csproj /ProjectReference Include..\..\src\Framework\Libraries\Framework\Framework.csproj /ProjectReference Include..\..\src\Framework\Libraries\PluginCore\PluginCore.csproj /ProjectReference Include..\..\src\Framework\Libraries\Services\Services.csproj //ItemGroupItemGroupNone Updateinfo.jsonCopyToOutputDirectoryAlways/CopyToOutputDirectory/NoneNone UpdateREADME.mdCopyToOutputDirectoryAlways/CopyToOutputDirectory/NoneNone Updatesettings.jsonCopyToOutputDirectoryAlways/CopyToOutputDirectory/None/ItemGroup/Project
本框架主要提供了插件框架的简单实现样板如果你想要实现一个Web插件框架你可以参考本框架的代码。基于Net/Core快速搭建 API SPA 及微服务应用组织BASE NETCORE (VUE) PROJECT TEAM每一个.NET开发者都可以通过自己的开源项目(最好可以配套简单发表些文章)在这里进行分享BCVP开发者组织的意义就是激发和挖掘更多的作品可能偏基础但是都会有价值。目的就是希望每个人能将从社区学到的知识进行自己消化和总结浓缩成一个个独立的项目接着投入到社区最后让更多的初学者去了解、去学习、去思想碰撞从而达到学习来源于社区最后反哺于社区的良好循环目的我们都是学生也都是下一批初学者的老师这才应该是一个社区正向推动的方法。地址https://github.com/BaseCoreVueProject可以在Home仓库里查看具体的流程说明只要你愿意分享就来吧。加入我们