Visual Studio DSL 入门 3---创建一个简单的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 组件模型,子组件组成的组件.
             
      Minimal Language    只包含一个简单的空的语言模型
             
       Task Flow 创建类似UML状态图模型

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

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

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

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

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是它的图形显示文件).

这就是模型设计的主区域,我们来看一下它的组成部分:
             1). 工具条,这里包括模型,关系,图形. 这个工具条与.Dsl文件关系。
             2). 模型元数据. 这些概念的东西我们在下一切会介绍.
             3). 图形展现.  设计模型的展现信息,通过中间的那条线与模型对应起来
             4). Dsl Details编辑窗口, 用来编辑Dsl相关的一些信息,比如关系。
             5). 解决方案文件夹,注意上面的黄色区域就是”转换所有模板“按钮,点击下面的Dsl Explorer页签,切换到Dsl浏览器.
                  
      这里会列出来当前Dsl文件里的模型,模型元素Element,图Shape,类型,连接器Connector,Connection Builders,以通读对模型浏览器,工具条,序列化的设置。我们对Dsl的大部分设计都会在这里完成.
      Ok,就到这里,下次将介绍一些基础概念.

时间: 2024-09-18 07:14:00

Visual Studio DSL 入门 3---创建一个简单的DSL模型的相关文章

Visual Studio DSL入门 3 --- 创建一个简单的DSL模型

1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择" Domain Specific Lan guage Designer",点击确定 2.接下来进入DSL创建向导,将会提供四种DSL模型模板提供我们选择,其实他们只是给我们提供了不同的Sample提供查看,也方便我们更方便的开始. Class Diagrams 由UML类图组成,包含类,

一起谈.NET技术,Visual Studio DSL 入门 3---创建一个简单的DSL模型

     从这节开始我们就开始我们的DSL之旅, 首先确保你已经安装了Visual Studio Sdk,并且使用的是Visual Studio 2008.我们先大概创建一个简单的DSL项目,通过这个项目来了解dsl的开发环境和流程. 1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择"Domain Specific Lan  guage Desi

初学者 用visual studio中的C#编写一个简单的电子词典 在线等 求帮助

问题描述 初学者 用visual studio中的C#编写一个简单的电子词典 在线等 求帮助 求大神用visual studio2010帮忙编一个简单电子词典的程序,在线等 新人初学者求帮助 解决方案 很简单啊,写个数组就行了 解决方案二: 如果是像上面这样的电子词典,很容易解决.1.使用INI进行保存条目.(想要了解INI可以参考:http://www.cnblogs.com/Ray-chen/archive/2011/11/14/2248496.html)2.使用StreamWriter来读

SharePoint中创建一个简单的Web Part 部件

标准的Web部件有时候可以非常强大,可以执行许多函数.本文主要讲解如何使用Visual Studio 创建一个简单的Web部件. 1. 打开VS,点击文件----新建项目. 2. 选择空白SharePoint项目.命名SmallvilleWebPartProject,点击确定.选择部署为场解决方案. 3. 右击项目添加新项目. 4. 选择Web部件. 5. 命名CustomerInformation,点击添加. 6. 右击新的Web部件项目,选择添加类,命名CustomerData,点击确定.

《精通 ASP.NET MVC 5》----2.4 创建一个简单的数据录入应用程序

2.4 创建一个简单的数据录入应用程序 本章的其余部分将通过建立一个简单的数据录入应用程序来考查MVC的更多基本特性.本小节打算分步进行,目的是演示MVC的运用,因此会跳过对幕后工作原理的一些解释.但不必担心,在后面的章节中会重新深入地讨论这些论题. 2.4.1 设置场景 假设一个朋友决定举行一个"新年除夕晚会",于是她请笔者为其创建一个Web应用程序,以便让受邀人进行电子回复(RSVP).她的要求有以下4个关键特性. 一个显示此晚会信息的首页. 一个可以用来进行电子回复(RSVP)的

《精通 ASP.NET MVC 4》----2.4 创建一个简单的数据录入应用程序

2.4 创建一个简单的数据录入应用程序 精通 ASP.NET MVC 4 本章的其余部分将通过建立一个简单的数据录入应用程序,来考察MVC的更多基本特性.本节将分步进行,目的是演示MVC的运转,因此会跳过对幕后工作原理的一些解释.不用担心--在后面的章节中还会重新深入地讨论这些论题. 2.4.1 设置场景 设想一个朋友要主办一个"新年除夕晚会",需要创建一个Web网站,以便让被邀请人进行RSVP(电子回复).这个网站需要以下四个关键特性: 一个显示此晚会信息的主页: 一个可以用来进行R

Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

原文:Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目 前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS 来创建一个简单的项目,来看看项目的构成是怎样的,与C#,XAML 的项目有哪些异同. 首先我们在Visual Studio 2013中选择模板 -> JavaScript -> Windows 应用商店来创建一个空白应

Ultradev实例教程:3.7 创建一个简单的查询

创建|教程 第三章:应用数据库创建动态网页 第七节:创建一个简单的查询 其实查询创建的原理与我们在上面学到的数据编辑原理是一样的,都是先从第一个页面传递一个值给第二个页面,然后第二个页面根据这个传递过去的值取出相应的纪录,再做以相应的处理,如显示.编辑.删除.所不同的是传递方式.上一节我们是通过地址连接来传递值,而我们知道一般查询都是通过一个表单填写数据然后提交的. 好,就让我们来看看具体的创建过程. 首先我们要创建一个用户能够输入查询内容的页面.如图,我们插入一个名为Search的类型为Tex

用EclipseME0.5.5创建一个简单的J2ME程序

程序|创建 用EclipseME0.5.5创建一个简单的J2ME程序 上一篇文章<如何在Eclipse3.0.1上安装EclipseME 0.5.5版本>,我们已经讲了如何在Eclipse3.0.1上安装Eclipse程序. 今天我们就要用他来创建我们的第一个程序.绝大多数程序教程的第一个程序,都叫做HelloWorld.那么我们就来编一个HelloWorld程序. 1, 文件2, 新建项目3, 选择J2ME,J2ME Midlet Suite4, 输入项目名称:MyFirstJ2ME5, 选