大家好,本文介绍了实现插件化的低代码架构的思路,以及在Meta3D(开源Web3D低代码平台)中具体实现的方案
需求
有同学想做个编辑器,希望可以随意替换引擎、编辑器UI,能以插件的形式进行扩展,问该如何实现?
下面,我们首先给出抽象的解决方案:
抽象的解决方案
如上图所示,编辑器由多个积木组成,其中有引擎积木、UI积木等。各个积木之间互相独立,只依赖于彼此的抽象的积木协议。
只要让编辑器组合不同的积木,就能实现替换积木,并且不影响其它的积木。
想要扩展功能,则增加对应的积木,并让编辑器组合它即可。
这里只是给了个大概的思路,具体要使用“积木模式”,详见:开源书《3D编程模式》->积木模式
接着,我们来看下在Meta3D中是如何实现插件化的:
具体的解决方案
如上图所示,在Meta3D中,编辑器由多个包组成,其中有引擎包、UI包等。包又由多个扩展组成,而扩展又可以通过组合不服务器托管网同的贡献来扩展自身。
包、扩展、贡献都属于积木,只是层级不同。因为同层的积木之间互相独立,只依赖于彼此的服务器托管网抽象的积木协议,所以可以替换
因此,如果要替换引擎,则只需要增加对应的引擎包,让编辑器组合它即可。具体来说,步骤如下:
- 开发出对应的贡献和扩展,发布到Meta3D平台
- 在Meta3D平台上,将它们组合为引擎包
- 在Meta3D平台上,让编辑器改为组合这个新的引擎包,以替代原有的引擎包
- 在Meta3D平台上,运行编辑器,即可看到已经替换了引擎
更多
更多的编辑器和引擎的编程模式,请详见:开源书《3D编程模式》
Meta3D(开源Web3D低代码平台)目前发布了v1.0正式版,快速搭建Web3D编辑器,共建开放互助的Web3D生态。详见:
Meta3D 1.0正式版发布—–开源的Web3D低代码平台
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
一、简介 今天是《Net 高级调试》的第八篇文章。这篇文章设计的内容挺多的,比如:如何查看方法的汇编代码,如何获取方法的描述符,对象同步块的转储,对象方法表的转储,托管堆和垃圾回收器信息的转储,CLR 的版本,GC 模式,等等,内容挺多的。内容虽然挺多,…