我刚刚开始使用特定领域的工具开发,并且正在使用 Visual Studio SDK DSL 工具。但是,我听说微软在特定领域的开发方面有另一项举措,称为“奥斯陆”。
我的印象是 DSL Tools 专注于图形领域特定语言,而 Oslo 专注于文本语言,但我不确定。
有人可以指出“DSL 工具”和“奥斯陆”之间有什么区别吗?
我刚刚开始使用特定领域的工具开发,并且正在使用 Visual Studio SDK DSL 工具。但是,我听说微软在特定领域的开发方面有另一项举措,称为“奥斯陆”。
我的印象是 DSL Tools 专注于图形领域特定语言,而 Oslo 专注于文本语言,但我不确定。
有人可以指出“DSL 工具”和“奥斯陆”之间有什么区别吗?
你是对的。DSL Toolkit 用于创建图形 DSL 设计器。然后,此设计器可以在 Visual Studio(或您自己的主机程序)内部运行,以创建 DSL 模型的实例。在 Visual Studio 的上下文中,这些实例可用于生成代码或其他基于文本的工件,使用 Visual Studio 中内置的 T4 文本模板引擎。
另请注意,设计器不需要具有图形设计表面。创建域模型后,您可以从分层资源管理器视图或通过代码填充它。从域模型为您生成的其中一件事是用于访问模型实例的强类型 API。
主要的两个区别是愿景和划分。
愿景,因为 DSL 工具专注于构建在 Visual Studio 或 Visual Studio Shell 中运行的特定领域的开发环境,而 Oslo 希望实现更轻松的数据编程,并且作为副产品还提供用于构建 DSL 的工具,以帮助您指定数据用自制的语言。
分部,因为这两项投资是在不同的分部进行的,因此是完全不同的团队。我们希望,他们说,团队互相交谈,但没有人真正知道。
对于未来,奥斯陆(两周后不再称为奥斯陆)很可能会为 DSL 工具(元模型、数据库、查询语言)提供基础设施。至少我们可以期待两者之间的某种整合。