为Visual Studio 2010编写代码生成插件的教程

时间:2011-05-10 08:00:13

标签: c# visual-studio-2010 plugins code-generation

我想在Visual Studio 2010中添加一个编辑器,它应该类似于你为Entity Framework获得的编辑器,即你有一个可视化设计器,它将自己的配置保存到自己的文件中,然后从中生成代码

因此,涉及的两个方面是特定文件扩展名的可视化表示,第二个是代码生成(或者代码是在编辑文件时还是仅在构建时生成的?)

我已经完成了一些冲浪,但无法获得有关如何执行这些特定事情的任何资源(尤其是代码生成部分),任何指向正确方向的资源都可能会受到赞赏。

3 个答案:

答案 0 :(得分:5)

Microsoft的可视化和建模SDK - 特定于域的语言:

http://msdn.microsoft.com/en-us/library/bb126259.aspx

从网站引用:

  

使用Visual Studio可视化和建模SDK(VMSDK),您可以创建可以集成到Visual Studio中的基于模型的强大开发工具。例如,UML工具是使用VMSDK创建的。以同样的方式,您可以创建一个或多个模型定义并将它们集成到一组工具中。

     

VMSDK的核心是您创建的模型的定义,用于表示业务领域中的概念。您可以使用各种工具包围模型,例如图表视图,生成代码和其他工件的功能,转换模型的命令以及与Visual Studio中的代码和其他对象进行交互的功能。在开发模型时,您可以将其与其他模型和工具结合起来,形成一个以开发为中心的强大工具集。

     

VMSDK允许您以特定于域的语言(DSL)的形式快速开发模型。首先,使用专用编辑器将图式或抽象语法与图形表示法一起定义。根据此定义,VMSDK生成:

A model implementation with a strongly-typed API that runs in a transaction-based store.

A tree-based explorer.

A graphical editor in which users can view the model or parts of it that you define.

Serialization methods that save your models in readable XML.

Facilities for generating program code and other artifacts using text templating.
     

您可以自定义和扩展所有这些功能。您的扩展程序的集成方式使您仍然可以更新DSL定义并重新生成功能,而不会丢失扩展程序。

答案 1 :(得分:0)

答案 2 :(得分:0)

对于代码生成,我建议您先了解code DOM model

我对VS插件开发一无所知,但我认为这个页面会有所帮助(如果你之前没有看过) - Visual Studio plug-ins development, first steps