您的位置: 首页 > 技术文档 > 网络编程 > Visual Studio DSL 入门(二)
Visual Studio DSL 入门(三) 回到列表 使用OpenOffice.org将各类文档转为PDF
 Visual Studio DSL 入门(二)

作者:孤独侠客 时间: 2010-06-23 文档类型:转载 来自:似水流年

相信如果看过一上篇(Visual Studio DSL 入门(一))你已经对vs.net dsl有了一定的了解,接下来我们就来开始我们的这个系列的入门,Vs.net Dsl在国内可能使用的人少之又少,不过希望这个系列能够使看到的人能够对dsl有一定的了解,使之能够成为产品方案选型时的一个参考,能够对阅读的人有所帮助.

准备环境 

由于vs.net 2010并未正式发布,所以这一系列基于vs 2008 sp1进行开发,Dsl tools是包含在VSX当中的,所以需要下载 Vistual Stutio.Net SDK 1.1安装,下载地址为:http://msdn.microsoft.com/zh-cn/vsx/default(en-us).aspx 

另外代码生成采用的是T4,为了方便T4的编写,需要下载T4编辑器http://www.t4editor.net/,遗憾的是Vs.net至今还没有内置T4编辑器,在vs 2010中也不会提供。

需求说明

我们完成的这个简单的Demo类似于UML中的状态图(Statechart Diagram),  这个状态机由状态(states)组成,各状态由转移(transitions)链接在一起。状态是对象执行某项活动或等待某个事件时的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并导致特定的结束状态。 

状态(State)的要素: 

名称: 将一个状态与其他状态区分开来的文本字符串;状态也可能是匿名的,这表示它没有名称。  

分类:状态分为初始状态(initial state)和结束状态(end state).     

进入/退出操作:在进入和退出状态时所执行的操作。 

内部转移:在不使状态发生变更的情况下进行的转移。 

子状态:状态的嵌套结构,包括不相连的(依次处于活动状态的)或并行的(同时处于活动状态的)子状态。 

延迟的事件:未在该状态中处理但被延迟处理(即列队等待由另一个状态中的对象来处理)的一系列事件。  

转移(Transitions)的要素:  

源状态:转移所影响的状态;如果对象处于源状态,当对象收到转移的触发事件并且满足警戒条件(如果有)时,就可能会触发输出转移。  

事件触发器:使转移满足触发条件的事件。当处于源状态的对象收到该事件时(假设已满足其警戒条件),就可能会触发转移。 事件一般都有一个名称,但是有些转移没有事件名称,称为自动或隐式转移. 

警戒条件:一种布尔表达式。在接收到事件触发器而触发转移时,将对该表达式求值;如果该表达式求值结果为 True,则说明转移符合触发条件;如果该表达式求值结果为False,则不触发转移。如果没有其他转移可以由同一事件来触发,该事件就将被丢弃。  

操作:可执行的、不可分割的计算过程,该计算可能直接作用于拥有状态机的对象,也可能间接作用于该对象可见的其他对象。 

目标状态(可选):在完成转移后被激活的状态。 

参数: 转移可能有参数,这个参数为事件触发器的事件方法的参数 

事先弄清楚这段说明是很重要的,因为我们的模型,我们的元数据都来源于需求问题的描述.

计划 

一个简单的入门系列计划大致包含几下几步: 

1. 创建一个简单的DSL模型 

2. 创建我们的元数据模型,包含状态机(StateMachine),状态(State),转移(Transition).可能实际的会对我们需求有些取舍,比如不考虑子状态等. 

3. 创建相对我们的元数据模型的图形展现. 

4.规范我们的模型和图.添加规则(Rule)和验证(Validation). 

5.在Visual Studio实验室环境中测试我们的Dsl项目 

6.改善我们的用户界面. 

7.针对我们限定的元数据针对一个框架创建代码生成. 

8.创建安装程序发布Dsl项目安装包

资源 

1.DSL Tools Lab     http://code.msdn.microsoft.com/DSLToolsLab  系列教程 

2.台湾微软Paul的DSL系列视频教程   http://msdn.microsoft.com/zh-tw/vstudio/cc963628.aspx 

3.Domain-Specific Development with Visual Studio DSL Tools   目前知道的唯一一本关于专门关于Vs.NET DSL的书,有对应的中文译本. 

4.VSX的一系列深入进阶  http://dotneteers.net/blogs/divedeeper/default.aspx?PageIndex=1

转载:http://www.cnblogs.com/lonely7345/archive/2010/01/26/1656343.html

本文链接:http://www.blueidea.com/tech/program/2010/7730.asp 

出处:似水流年
责任编辑:bluehearts

◎进入论坛网络编程版块参加讨论

作者文章
Visual Studio DSL 入门(四)
Visual Studio DSL 入门(三)
Visual Studio DSL 入门(一)
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2