详解Visual Studio中DSL模型的创建

开发 后端
在这里我们将介绍Visual Studio中特定开发方式中,如何建立DSL模型。希望通过本文能对大家有所帮助。

本文之前我们还介绍过《Visual Studio中的特定领域开发》,这也是本系列文章中的第一篇。今天要为大家讲的是DSL模型的创建,希望对大家有所帮助。

从这节开始我们就开始我们的DSL之旅, 首先确保你已经安装了Visual Studio Sdk,并且使用的是Visual Studio 2008.我们先大概创建一个简单的DSL项目,通过这个项目来了解dsl的开发环境和流程.

1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择"Domain Specific Lan  guage Designer”,点击确定  

打开项目  

2.接下来进入DSL创建向导,将会提供四种DSL模型模板提供我们选择,其实他们只是给我们提供了不同的Sample提供查看,也方便我们更方便的开始. Class Diagrams  由UML类图组成,包含类,接口,关系,组合,属性,操作等. 

创建向导

Component Models 组件模型,子组件组成的组件. 

Component Models 组件模型 

Minimal Language    只包含一个简单的空的语言模型 

简单的语言模型 

Task Flow 创建类似UML状态图模型

UML状态图

3. 在这里我们选择Minimal Language,并保持Language Name默认即可,点击下一步,设计Language的模型文件的后缀名和文件图标。如果你输入的后缀名已经被使用,中间的框中会列出搜索到的注册的后缀名列表。在这里我们输入sm作为后缀名,保持使用默认的图标. 

语言选择

4. 点击下一步,进入到产品设置,主要设计产品名称,所属公司,项目名称空间.这些信息将会包含在最后生成的项目中,在最后的产品部署中起到作用。在这里我们不进行更改,可以直接保持默认即可. 

产品设置

5. 下一步进入到签名设置,在扩展开发中任何需要部署的Package都需要强命名(将会注册到GAC),可以选择自动创建一个Key,也可以选择使用已有的key. 

签名设置

 6.  我们选择直接创建强命名key,点击下一步,这是一个设置总结界面: 

  命名key   

我们直接能查看到所有的设置信息,可以通过上一步下一步进行更改,也可直接点击左侧的导航来定位更改,确认无误后,点击完成。向导(Wizard)会自动给我们构建项目.我们暂且不管生成的这些项目结构,切换到解决方案资源管理器,点击上面的最后面的按钮“转换所有模板”(Transalte All Template).完成后,点击Debug运行,就会打开Visual Studio实验室环境(Experimental hive),也就是上面的Minimal Language界面,可以大概操作一下了,相当神奇吧,这就完成了第一个DSL项目的开发.同样你也可以选择其它三种模型,效果在上面已经列出来了. 

#T#

7.  我们再来看一下生成的项目结构,整个解决方案总共有两以下两个项目组成(其它有三个,另外就是运行后的Testing项目,稍后介绍).

Dsl: 根据你的模型数据(DslDefinition.dsl文件)生成的有关模型的操作,包括模型关系,序列化,图形,连接器等 

DslPackage:  支撑Dsl能够在Vs.net里运行,以及和Vs.net交互的操作,包括菜单,工具条,游览器等 

Dsl项目设置成了针对DslPackage项目的友元程序集(通过AssemblyInfo的InternalsVisibleTo),DslPackage中可以直接访问Dsl中的内部成员,DslPackage其实也是根据DslDefinition.dsl生成的.深入了解这两个项目的结构是非常有必要的,我们会在随后的深入过程中介绍。 

8.  查看这两个项目,发现大部分都是由后缀名为tt的文件组成,这就是t4文件(Text Templating Transformation Toolkit),类似于asp,ruby这样的解释性语言,读我们的模型生成cs代码,可以看到每个tt文件都附属了一个cs代码文件.绑定到了每个t4文件可以右键运行自定义工具Run Custom Tool,就会调用TextTemplatingFileGenerator解析t4模板文件生成目标代码,也可以向我们刚才那个点击上面的按钮转换所有的模板文件. 

9. 打开Dsl项目中的DslDefinition.dsl文件.(这是通常情况下我们使用的最重要的文件,包括我们的Dsl的所有的模型元素数据,它附属的DslDefinition.dsl.Diagram是它的图形显示文件). 

打开DSL项目  

这就是模型设计的主区域,我们来看一下它的组成部分: 

1). 工具条,这里包括模型,关系,图形. 这个工具条与.Dsl文件关系。 

2). 模型元数据. 这些概念的东西我们在下一切会介绍. 

3). 图形展现.  设计模型的展现信息,通过中间的那条线与模型对应起来 

4). Dsl Details编辑窗口, 用来编辑Dsl相关的一些信息,比如关系。 

5). 解决方案文件夹,注意上面的黄色区域就是”转换所有模板“按钮,点击下面的Dsl Explorer页签,切换到Dsl浏览器. 

解决方案  

这里会列出来当前Dsl文件里的模型,模型元素Element,图Shape,类型,连接器Connector,Connection Builders,以通读对模型浏览器,工具条,序列化的设置。我们对Dsl的大部分设计都会在这里完成. 

Ok,就到这里,下次将介绍一些基础概念.

原文标题:Visual Studio DSL 入门 3---创建一个简单的DSL模型

链接:http://www.cnblogs.com/lonely7345/archive/2010/01/27/1657139.html

【责任编辑:彭凡 TEL:(010)68476606】
责任编辑:彭凡 来源: 博客园
相关推荐

2010-02-22 09:09:02

Visual Stud

2009-11-24 09:00:02

Visual Stud

2010-02-23 09:02:00

Visual Stud

2010-01-14 14:12:14

Visual Stud

2010-12-16 10:00:20

QtVisual Stud

2009-10-14 09:08:23

Visual Stud

2010-02-24 09:32:38

Visual Stud

2010-03-19 16:43:37

Visual Stud

2009-07-01 17:20:10

web用户控件Visual Stud

2009-11-13 10:12:37

Visual Stud

2010-02-05 09:06:17

Visual Stud

2010-03-30 17:27:47

Visual Stud

2009-11-18 09:14:49

Visual Stud

2010-01-22 09:51:31

Visual Stud

2009-12-16 15:44:20

Visual Stud

2009-08-05 16:02:48

Visual Stud

2011-03-28 09:23:31

Visual Stud

2010-04-01 15:10:06

Visual Stud

2023-04-03 07:08:28

C++函数模板

2010-07-29 09:41:23

Visual Stud
点赞
收藏

51CTO技术栈公众号