1 Star 1 Fork 1

tangyingzhong / MicroCore

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

介绍

1、该框架为微内核+插件的架构,该设计旨在提高软件的稳定性,可维护性,提高开发效率。

2、微内核可以自动识别和加载插件,以及什么时候该关闭插件,关闭内核退出。

3、所有的插件都只能看到微内核框架,可以通过插件指针隐藏内核加载等细节,这样可以更方便按照插件接口使用插件。

4、插件可以通过内核框架将想要异步执行的任务压入框架,由框架帮你统一管理。

5、该内核框架是基于VS2015开发的,支持XP,使用的C++标准为C++ 11。如果你想要支持更低的C++标准,可以直接拿去换个VS2010编译,根据错误指导,修改即可。

6、该框架旨在分离业务插件为目的,不管是UI,还是业务功能模块,均可以设计为动态插件,插入到框架中。UI插件可以参考框架内的例子。

软件架构

微内核 + 插件

使用说明

1、下载该项目,根据你的需求使用不同的平台编译(VS2010,VS2015...)之,这里使用的是VS2015_xp平台编译的。

2、内核是独立的应用程序,拥有独立的EXE,他负责自动扫描特定位置(Plugin目录)的所有插件并加载到系统中运行。

3、所有可以被内核识别的插件,都需要按照特定的规则设计。这里的插件规则在系统接口工程下,具体的插件设计,可以参照框架中已有的插件。

4、微内核的配置可以在EXE所在目录下找到MicroCore文件,对微内核进行配置修改,修改项包括是否需要调试内核,线程池大小等。

5、开发完成的插件需要扔在EXE所在目录下的Plugin目录下,并以插件为名创建自己的插件目录,将插件放在下面即可。

6、内核管理线程使用,所有外围插件都可以通过内核框架接口将要使用线程执行的模块,变成内核任务交给内核负责调度任务。这样做的目的在于,将所有 的线程操作变成任务,交给内核调度,集中管理,降低插件开发者的开发难度,开发者不在需要关注线程是如何使用和控制的。

7、微内核项目包含基础插件和扩展性插件都以源码形式提供,这些公共插件不需要遵守业务插件规则去设计,他们可以按照普通的静态库或动态库使用去使用即可。

业务插件开发指导:

<1>、插件开发必须明确的一点就是,插件必须继承IPlugin接口,那么每个插件的接口文件都需要放在系统接口工程下暴露给外界,这样别的协同开发者可以根据你的接口文件与你通信了。

<2>、插件开发者不需要知道通信对方插件是否是有效,是否已经加载等,这些都是由微内核去管理。该插件开发者只需要知道对方的插件的接口文件即可。

<3>、任何一个插件都可以通过PluginPtr插件指针,直接去调用目的插件,这样做的目的是封装内核的加载等操作,简化使用。

<4>、插件开发者需要使用系统接口工程下的PluginGenerator文件里面的GENERATE_PLUGIN宏导出该插件,这样内核才可以正确加载插件。

<5>、在微内核输出EXE目录下的Plugin目录下可以参照这样去放置你的插件:

C++/C++.dll

C#/C#.dll

JavaScript/JavaScript.dll

ComputerUI/ComputerUI.dll

一旦启动微内核,内核就会把所有需要立即加载的插件加载,当你关闭UI时,内核也会自动退出,这样就可以达到单体应用的使用效果(双击EXE,启动应用,关闭界面,退出内核)。

MIT License Copyright (c) 2020 tangyingzhong Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

MicroCore Framework,Plugins 展开 收起
C++
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/tangyingzhong/MicroCore.git
git@gitee.com:tangyingzhong/MicroCore.git
tangyingzhong
MicroCore
MicroCore
master

搜索帮助