网站大量收购闲置独家精品文档,联系QQ:2885784924

VisualStudioDSL入门..doc

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VisualStudioDSL入门.

Visual Studio DSL 入门 1 什么是特定领域开发和DSL ???? 特定领域开发是用来解决重复发生的问题的方法,针对每次发生的问题,通过进行总结和分析,他们之间相同的方面可以一次性的解决.而经常变化的方面,可以采用一种特殊的语言表达.针对这个特殊语言,我们可以建立模型或者表达式,然后插入到固定部分.? ???? 对于我们软件行业的解决方案来说,固定部分一般采用传统的设计和实现方式,可以为框架,平台,解释器或者编程接口.提供可扩展性,具有高度的抽象性和可复用性.而特定领域语言专门用来创建变化的部分,从而使整个解决方案可具有可应用性.? ???? 特定领域语言(DSL,Domain Specific Language)是一种特别用来描述某一专业领域内涵的描述语言,其实它并不陌生, HTML ,SQL都算的上是DSL的例子. 几种其它DSL? ???? MPS?? /mps/?? JetBrains公司的DSL工具,通过这个平台可以直接定义规则,生成代码 ???? ???? MetaEdit+? /??? 图形化的DSL工具 ???? ???? Oslo??? /zh-cn/data/ee460940(en-us).aspx 微软新推出的图形化DSL语言,但是Oslo和我们要介绍的DSL Toolkit还是有些区别的,这里有一些介绍/keith_short/archive/2008/11/06/oslo-and-the-dsl-toolkit.aspx .Oslo由 “M"语言,工具Quadrant,关系存储组成. ????? ????? ???? GMF,EMF?? /modeling/gmf/?? 使用 Eclipse Modeling Framework (EMF) 和 Graphical Modeling Framework (GMF) 技术来为领域特定语言(DSL)产生领域特定建模(DSM)辅助工具 ????? 什么是Visual Studio DSL????? ????? Vistual Studio DSL 工具,是微软针对特定领域开发而专门设计的.包含在Vistual Studio SDK中(vs 2010中将是单独安装),允许开发人员自行设计专属的图形化工具,它内置了模型的相关支持,以及模型与图形之间的支持,还包括对模型的验证,规则,事务的支持,同时还允许开发人员在结合VS.NET的一些扩展VSX一同使用.比如工具条,菜单等.可以将模型与T4一同使用,从而生成目标代码.Vs.Net现在的类设计器,分布式系统设计器(Distributed System Designer),LinqToSql设计器,EntityFramework设计器都是基于VS.NET DSL开发的,VS 2010新增了UML Modeling Project,终于提供了对类图,时序图,用例图等的支持,这也是基于Vs.NET DSL来实现的. 为什么要使用DSL工具 ???? 上面介绍了几种DSL工具,但是我们为什么要使用它呢?它又能给我们带来什么呢? 很关键的一点,DSL和UML不同,是用来解决问题的,而不是描述问题.如果你正在你的工作和解决方案中重复编写着相同或者相似的代码,而且这些重复的代码能够单独出来采用生成的方式,那么你就可以考虑结合DSL工具来生成这些代码.? ???? 可能有人会说,那这和使用现有的这些基于数据库的代码生成工具(Codesmith,李天平的codematic等)又有何不同呢?DSL是站在领域专家的高度,而非软件开发专家来开始解决问题,如果需要对数据库进行设计,然后再生成代码Coding,那么你这个工具只能说是开发人员的一个辅助工具,只是面对实际开发人员,而这在大型的软件系统当中会有些力不从心.?????? 采用DSL的开发过程定制 ????? 1.找出问题的固定部分,并把这些固定固定部分放在通用架构或平台中.通用的部分基本上都是我们根据长期的经验和积累抽象出来固定的.比如我们使用的Enterprise Library中已经将数据访问操作,日志操作,验证缓存等封装起来提供调用. ????? 2.识别可变性和发现DSL. 找出其中变化的部分,并设计DSL, 通过DSL的表达式或模型提供给问题一个解决方案. 在使用Enterprise Library过程中,你发现其中大部分的变化的部分其实也相对"固定",他们还是基于你的模型,基于你的实体模型,服务模型,如果把这些元数据抽象出来,通过DSL来实现这些元数据的配置,那么就可以把这些部分直接生成到你的目标解决方案中. 优势 ???? 1.大幅度的提高生产率. 生成代码可比人工复制粘贴快多了。 ???? 2.使系

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档