DSL
文章平均质量分 81
zr1985712719
暂时没有
展开
-
Visual Studio DSL 入门 5---理解生成的域类和域关系
<br />上一节我们大概介绍了一些Vs.net Dsl的域模型的一些基本的概念,这一节我们再回到我们生成的LanuageSm项目,看一下生成的域类以及域关系,介绍一下Dsl运行时的Store,然后再来介绍一下需要注意的一些关键点。为我们下一节具体设计我们自己的Dsl做最后的准备. <br /> 1. 首先找到Dsl项目中模板DomainClasses.tt生成的DomainClasses.cs,我们来查看一下它由两个类组成:<br /> <br /> 其实也就对应着我们域模型中的原创 2010-11-02 21:41:00 · 149 阅读 · 0 评论 -
Visual Studio DSL 入门 7---DSL的图形表示2
<br />在上一节介绍了vs.net dsl的图形符号,其中包括图表,编辑器,形状.在这一节,我们来看一下图形符号与元数据之间的关系,他们是怎么映射在一起的. <br /> 模型元素由形状来表示,而域关系则用连接器(Connectors)来表示.图形映射定义了模型元素通过形状可视化表示出来,而连接器映射定义了链接如何通过连接器可视化表示出来. <br /> 形状映射 <br /> 我们先来看一下形状映射,接着打开我们的LanguageSm项目中的Dsl文件. 选中域类ExampleE原创 2010-11-02 21:43:00 · 145 阅读 · 0 评论 -
Visual Studio DSL 入门 3---创建一个简单的DSL模型
<br />从这节开始我们就开始我们的DSL之旅, 首先确保你已经安装了Visual Studio Sdk,并且使用的是Visual Studio 2008.我们先大概创建一个简单的DSL项目,通过这个项目来了解dsl的开发环境和流程.<br />1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择"Domain Specific Lan guage Desi原创 2010-11-02 21:30:00 · 183 阅读 · 0 评论 -
Visual Studio DSL 入门 2
<br />相信如果看过一上篇你已经对vs.net dsl有了一定的了解,接下来我们就来开始我们的这个系列的入门,Vs.net Dsl在国内可能使用的人少之又少,不过希望这个系列能够使看到的人能够对dsl有一定的了解,使之能够成为产品方案选型时的一个参考,能够对阅读的人有所帮助. <br /><br />准备环境 <br /> 由于vs.net 2010并未正式发布,所以这一系列基于vs 2008 sp1进行开发,Dsl tools是包含在VSX当中的,所以需要下载 Vistual Stutio.Ne原创 2010-11-02 21:25:00 · 165 阅读 · 0 评论 -
Visual Studio DSL 入门 12---状态机设计器的规则(Rule)和验证(Validation)
<br />上一节我们为状态机设计器添加了一个Rule,主要用来处理当Transition的属性Label,Condition,Action,Event之间的任何一个值发生变化时,其余的属性值也要按照我们的规则来更新(我们的Label属性就是一个辅助的属性,用来更好的显示和编辑另外三个属性).我们可以看到vs.net dsl提供的Rule机制的强大,它主要提供了以下几个Rule: <br /> AddRule: 当ModelElement或者ElementLink添加时触发 <br />原创 2010-11-02 21:49:00 · 194 阅读 · 0 评论 -
Visual Studio DSL 入门 1
<br />什么是特定领域开发和DSL<br /> 特定领域开发是用来解决重复发生的问题的方法,针对每次发生的问题,通过进行总结和分析,他们之间相同的方面可以一次性的解决.而经常变化的方面,可以采用一种特殊的语言表达.针对这个特殊语言,我们可以建立模型或者表达式,然后插入到固定部分. <br /> 对于我们软件行业的解决方案来说,固定部分一般采用传统的设计和实现方式,可以为框架,平台,解释器或者编程接口.提供可扩展性,具有高度的抽象性和可复用性.而特定领域语言专门用来创建变化的部分,从而使原创 2010-11-02 20:49:00 · 502 阅读 · 0 评论 -
Visual Studio DSL 入门 10---完善状态机案例
<br />前两节我们已经完成了状态机的元数据创建以及部分图形表示,如果你使用过运行起来的状态机设计器,你就会发现很多问题.在这一节,我们主要来完善我们的状态机实例,包括完善元数据和图形符号等. <br /> <br />完善 <br /> 1.在运行的环境中,你会发现左侧工具箱中显示的选择项文本仍然是自动生成的LanagueSm,我们需要修改成StateMachine.打开DslDefinition.dsl文件后打开Dsl Explorer,找到LanguageSm/Editor/Toolbox原创 2010-11-02 21:48:00 · 210 阅读 · 0 评论 -
Visual Studio DSL 入门 9---创建状态机的图形符号
<br />上一节我们已经创建状态机的元数据模型,在这一节,我们来完成我们状态机的图形符号,建立起状态机的测试运行环境. <br /> 打开dsl文件后,关注泳道的右侧,首先我们来完成域类的形状表示: <br /> 1.一个状态State有进入操作和退出操作,所以我们为状态表示为隔间形状,可以在图上显示出来它的这两种操作(就象一个类包含方法和属性一样),先删除之前生成的ExampleShape.然后从工具箱中选择隔间形状(Compartment Shape)到Diagram Element原创 2010-11-02 21:47:00 · 224 阅读 · 0 评论 -
Visual Studio DSL 入门 7---DSL的图形表示2
<br />在上一节介绍了vs.net dsl的图形符号,其中包括图表,编辑器,形状.在这一节,我们来看一下图形符号与元数据之间的关系,他们是怎么映射在一起的. <br /> 模型元素由形状来表示,而域关系则用连接器(Connectors)来表示.图形映射定义了模型元素通过形状可视化表示出来,而连接器映射定义了链接如何通过连接器可视化表示出来. <br /> 形状映射 <br /> 我们先来看一下形状映射,接着打开我们的LanguageSm项目中的Dsl文件. 选中域类ExampleE原创 2010-11-02 21:46:00 · 138 阅读 · 0 评论 -
Visual Studio DSL 入门 6---DSL的图形表示1
<br /> 到现在为止,我们还是只是介绍模型相关的东西,还没有接触到Dsl的模型的展现,对于一个Dsl来说,没有图形展现也是可行的,不过对于一个开发工具来说,要提供一种方式来操作我们的元数据,Visual Studio DSL在图形展现这方面提供了不错的支持,不过对于复杂的Dsl来说,图形的展现往往需求很复杂,现在的图形化支持在一定程度上也未必能够满足一些特定的需求, 有总比没有好,期望微软会在这方面会有所加强。 <br /> 还是以我们创建的LanguageSm项目为例,我们大概介绍一下界面表示原创 2010-11-02 21:44:00 · 147 阅读 · 0 评论 -
Visual Studio DSL 入门 4--- 基本概念
<br /> 刚接触Visual Studio DSL时,被它的基本理论概念迷惑了很长时间, 我的建议是如果能够很快的理解这些概念最好.如果短时间内理解不了就大概了解下这些基础概念,就没有必要为了每一个概念一直深入,搞得自己头疼,倒不如在以后的实践中慢慢深入,理解并加深这些概念.<br /> 开发一个DSL需要创建的几个不同的组成部分:域模型,图形符号,工具箱,资源管理器和属性窗口,验证,序列化和部署,打开上一节我们创建的LanguageSm项目中的DslDefinition.dsl文件,可以看到在原创 2010-11-02 21:39:00 · 198 阅读 · 0 评论 -
DSL学习
<br />http://www.cnblogs.com/lonely7345/tag/DSL/原创 2010-11-02 20:47:00 · 154 阅读 · 0 评论 -
Visual Studio DSL 入门 11---为状态机设计器添加规则
<br />上一节我们在设计器的显示方面进行了完善,在这一节,我们将深入状态机设计器的一些逻辑细节,给我们的设计器添加逻辑规则.为生成代码做好准备. <br /> 在开始之前,我们先看一下Transition的几个属性之间的关系: <br /> 1.编辑Event,Condition,Action属性时,Label属性能够自动计算显示,计算逻辑为Event [Condition] / Action <br /> 2.当修改属性Label时,Event,Condition,Action原创 2010-11-02 21:48:00 · 149 阅读 · 0 评论 -
Visual Studio DSL 入门 8---创建状态机元数据模型
<br />在前几节中,我们以创建的默认项目介绍了Vs.net dsl的一些基本的知识,包括域类,域关系,图形符号,图形映射等,这些东西看起来可能会有些抽象,和我们第二节介绍的需求还没有直接关系,不过这些概念确实我们开发我们自己的dsl之前必须要掌握的。如果你对我们将要做的这个实际的案例的需求并不是很了解,请仔细需求一下我们这个状态机的需求.如果你第一次看这一系列,或者是对这些基础概念还不是很熟悉,建议你看一下前面的几节基础知识。 <br /> 首先,按照第三节创建一个Minimal Lanauge原创 2010-11-02 21:47:00 · 156 阅读 · 0 评论