凡是过往,皆为序章,凡是未来,皆有可期(插件化内核开篇)

2022/3/27 6:23:11

本文主要是介绍凡是过往,皆为序章,凡是未来,皆有可期(插件化内核开篇),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

     一.缘起

    大家好,今天算是下定决心准备开始写写自己对于目前用到的一些技术的总结,注册博客园也好长时间了基本都是看别人的作品,自己即使有想法由于种种原因都没有付诸实践,今天也算是一个开篇吧,希望以后能坚持下来……

    其实说起来也挺惭愧的,工作了10多年了,期间写过Java,玩过.net ,用过nodejs但还未写过一篇文章来分享自己的所得,基本上都是在网上看看其他人的一些文章,即使如此也是获益良多

    从工作的第3年开始接触到OSGI.NET框架就一发不可收拾,基本上自己做的项目都在使用该框架,目前为止依然是这样的,在使用OSGI.NET框架的过程中也自己分析了目前市面上的一些插件化或者模块化的一些框架,比如:SharpDevelop的Addin,Abp Vnext,Minimal.js,Eclipse 的Equinox等。但是从使用角度比较的话还是OSGI.NET使用简单,开发方便。

   为什么一直都在说插件化,可以想象一个公司如果做到高度的复用,同事之间有一套统一的标准,这个时候对于公司的积累是可观的,无论是复用级别还是工作效率也是高的

   以上废话大家可以直接略过(只是我个人的感言而已),基于种种原因吧,本人将会分析和分享如何设计一个插件化内核,大家如果有什么建议与意见请留言,本人会及时处理,提前声明,本人能力有限,如果是太高深的问题,请绕行

  二.说明

     1.由于个人一直使用OSGI.NET,对该框架很熟悉,咱们后续的标准将会参加OSGI.NET和SharpDevelop

     2. 由于本人对.net 情有独钟,因此该插件内核也是基于.net 平台的

     3.在最近的几年基本上所去的公司没有自己的一套完善的框架体系,很难做到积累

     4.工作中也遇到了各种很是风骚的操作,如:

        a.将一个功能或者代码块Copy到另一个模块,另一个Class内,美其名曰:代码级别的复用

        b.将某个项目的基础架构扒拉出来,修改项目名,命名空间等信息,美其名曰:自主研发

     5.最近辞职在家,时间比较充裕,写写博客打发下时间

  三.参考标准

  1. OSGI规范
  2. OSGI.NET以及SharpDevelop的Addin为了描述该DLL是一个插件也都会有一个插件描述文件,如OSGI.NET的组成如下:

         a.每一个插件都有自己的激活器(不是必须的),激活器里边有该插件启动或者停止方法,也就是说每一个插件都会有自己的生命周期吧,具体激活器的定义如下:
         

 

          b.每一个插件都有自己的描述文件

         

 

         c.具体大家可以去查阅 道法自然的博客,他也是OSGI.Net的作者

 四.定义自己的标准

     1.插件内核命名为:Minimal.Plugin

     2.插件激活器将会有所改变,添加插件配置方法,初始化方法,启动方法,停止方法,具体定义如下(至于参数后续看情况进行定义吧,暂定为插件上下文吧):

     

 

      3.插件描述文件定义如下:

   (1).插件描述文件命名为:Plugin.xml

   (2).Plugin.xml内容定义如下图所示,后续根据情况进行调整

     

五.说明

    1.后续将会基于插件描述文件设计和开发Minimal.Plugin插件内核

    2.如果一切顺利将会开源Minimal.Plugin内核,并免费使用

    3.Plugin.xml在OSGI.Net的Manifest.xml文件之上添加了多个节点,如:Properties,Widgets等

    4.Plugin.xml的详细信息(请查看该链接)

六.下期预告

    1.后续将会围绕着Minimal.Plugin插件内核的开发过程,不定期的发布相关的文章

七.声明

    1.如果侵害别人的权益请及时告知,本人将及时处理

    2.有好的建议与想法可以留言

    

   

   

 



这篇关于凡是过往,皆为序章,凡是未来,皆有可期(插件化内核开篇)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程