在我多年来完成的所有项目中,我从未遇到过这样的要求,尽管在纸面上看起来很简单:为许多知名的 CMS 编写插件。
显然,每个插件系统(或扩展系统)都是不同的,这需要通过适配器模式进行特定的桥接代码。但是核心应该写一次。我不希望 WordPress 用户使用 PHP-Java 桥接器,也不希望 DotNetNuke 用户使用 .NET-Native 桥接器(尽管这更容易构思)。
在我看来,核心应该可以在涵盖大多数 CMS 系统的三个主要领域中编译:
- 本地中间语言可以是 C 或 C++。目标可以用作 PHP 扩展。
- 基于 .NET 的语言的 MSIL/CIL
- 基于 Java 的系统的 Java 字节码
C# 和 Java 相互转换得很好,但 C 和 C# 更难。最终,最好添加其他目标,以免强制 WordPress 或 WikiMedia 用户在使用插件之前安装扩展。
我相信其他人也想出了这个。解决此类问题的常用方法是什么?我应该先定义一个 DSL 并使用 DMS 或类似的方式进行转换吗?其他选择?
最佳答案
关于c# - 元编程 : write in one language X, C#、PHP、Java、C 等多种语言交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5329940/