- 定价:¥56.00
- 校园优惠价:¥42.00 (75折) (马上了解)
- 评分:




(已有1条评价) - 电子书:Visual Studio DSL工具特定领域开发指南
- 促销活动:
- 我要买:
基本信息
- 作者: Steve Cook Gareth Jones Stuart Kent Alan Cameron Wills
- 译者: Visual Studio架构师套件团队
- 出版社:机械工业出版社
- ISBN:9787111241331
- 上架时间:2008-7-18
- 出版日期:2008 年6月
- 开本:16开
- 页码:384
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > .NET > Visual Studio.NET
内容简介
计算机书籍
本书是微软dsl工具的软件开发指南。本书主要讲解特定领域开发(dsd)、创建和使用dsl、域模型定义、界面表示、创建/删除/更新行为、序列化、约束与验证、生成工件、部署dsl、dsl高级定制功能以及设计dsl。本书不仅介绍特定领域开发和模型驱动开发等概念,还注重理论与实例相结合,用一个具体dsl应用实例贯穿全书,来详细介绍如何使用dsl工具开发用户自己的特定领域语言,从而实现真正的模型驱动软件开发。.
本书适合使用dsl工具的软件开发人员和对dsl感兴趣的读者参考。
作为一种为某些特定(横向或纵向)领域而定制的语言,特定领域语言(dsl)正在软件工程师和架构师之间孕育一个不断增长的兴奋因子。dsl给软件的创建和演化带来了新的敏捷性。与标准的程序代码相比,dsl使得设计考虑的不同方面都能够以更加贴近系统需求的形式表示出来,从而极大地减少大规模项目和生产线的开发成本。在这本具有突破性的著作中,4名杰出的专家向读者介绍了dsl的使用方式,以及在您的环境中怎样最好地利用它们。
通过阅读本书,首先您可以掌握可应用于所有平台的dsl概念和技术。然后,您将学会怎样通过微软公司新推出的功能强大的dsl工具(这个工具集正是由本书作者所设计的)来创建和使用dsl,以及怎样定义dsl并用visual studio内建的建模技术来生成可视化设计器。
本书深入地探讨了以下内容: ■判断dsl是否适合您。
■对dsl和其他模型驱动的开发方法进行对比。
■dsl的定义、调优和演化:模型、界面表示、创建、更新、序列化、限制条件、验证以及其他内容。
■在编写很少代码、甚至不编写代码的情况下,为新定义的dsl生成可视化设计器。
■利用简单的文本模板,为您的模型生成应用程序代码,极大地提高生产效率。
■自动生成配置文件、资源和其他工件。
■快速简单地在不同组织中部署可视化设计器。
■为特定的过程需求定制可视化设计器。...
作译者
gareth jones dsl工具项目的开发经理。自从1997年加入微软公司以来,他的经历包括了建立企业级解决方案,管理咨询团对,以及领导开发了微软(英国)公司的中小企业门户。..
stuart kent于2003年加入微软公司并成为dsli具项目的项目经理。在此之前,他在kent大学进行对模型驱动开发的研究,并且是uml2.0和mof2.0标准的重要贡献者。
alancameronwills在2003年加入微软公司之前的10年时间里是一名方法论咨询师。他是基于组件开发方法“催化法”的创建者之一。...
目录
序
前言
作者简介
第1章 特定领域的开发 1
1.1 简介 1
1.2 特定领域开发 1
1.3 举例 3
1.3.1 软件定义电路 7
1.3.2 嵌入式系统 7
1.3.3 设备界面 7
1.3.4 软件开发过程定制 8
1.4 优点 8
1.5 语言 9
1.6 文本dsl 11
1.7 图形dsl 15
1.7.1 表示结构的规范 16
1.7.2 表示行为的规范 17
1.8 图形dsl的相关内容 18
1.8.1 符号 18
译者序
目前,本书是第一本专门介绍DSL工具的软件开发书籍。译者仅在一本介绍Visual Studio 2005 Team System的书中见到过一章对早期版本的DSL工具的介绍。本书不仅介绍了特定领域开发、模型驱动开发等概念,更注重理论与实例相结合,用一个具体DSL应用实例贯穿全书,详细介绍了如何使用DSL工具来开发用户自己的特定领域语言,从而实现真正的用模型来驱动软件的开发。本书图文并茂,并给出了部分关键的代码,以方便广大读者的阅读。
DSL工具作为Visual Studio SDK的一部分发布(DSL工具的最早版本是随着Visual Studio 2005 SDK发布的),SDK可以在微软的网站上免费下载。本书中的实例都是基于Visual Studio 2005以及相应的SDK进行开发和调试的。目前,最新版本的Visual Studio 2008以及相应的SDK已经正式发布,这个版本DSL工具与本书所使用的版本可能在某些方面存在细微差别,请读者留意。
本书由陆榕统稿。前言和第5章由陆榕翻译,第1、2、7章由薛方亮和周京生翻译,第3、4章由林俊彦和陈俊朴翻译,第6、8、9章由张昕毅和陈肯翻译,第10、11章由陈国栋和林裕科翻译。..
作为微软公司Visual Studio架构师套件开发团队的成员,我们非常高兴有机会将此书翻译成中文与大家分享。翻译的过程虽然辛苦,但我们得到了来自各方面的大力帮助和支持。在此,我们想感谢所有给予我们许多关心的人们。
感谢我们的经理们:微软中国服务器及开发工具事业部总监Terry Leeper,微软中国Visual Studio架构师套件团队资深开发主管Ramesh Rajagopal对我们翻译工作的大力支持。
感谢原书作者,我们的同事们:Steve Cook、Gareth Jones、Stuart Kent和Alan Cameron Wills,对我们的翻译工作的支持与帮助。
感谢机械工业出版社华章分社的编辑在翻译过程中给予我们的耐心指点。
感谢所有关心我们的翻译工作,并始终给予我们信任与鼓励的家人和朋友们。
本书的翻译力求忠实于原著,翻译的过程也是译者在工程应用中不断实践和学习的过程,由于时间仓促,以及译者水平有限,翻译的错误和不妥之处在所难免,欢迎广大读者批评指正。...
Visual Studio架构师套件开发团队
前言
软件行业正在兴起使用特定领域语言方法的大浪潮,此方法能够降低软件开发的成本,尤其体现在大型项目中。特定领域语言(DSL)是一种用于某个特定的兴趣领域中的语言,如垂直领域(比如电话设计),或横向领域(比如工作流)。它可以是一种程序语言、一种规范或一种设计语言。它可以是文本语言、图形语言或者两者的混合。这种语言由某一特定领域中的术语来描述,例如“连接”、“铃声”或“工作项目”,根据这些概念如何被实现的细节进行加工整理。软件、配置文件、资源以及其他文档都能由这种语言生成出来——通常大多数工件由一个DSL生成—或者这种语言直接翻译出来。这便于我们在需求层讨论软件,使进行更改的过程变得非常敏捷。在垂直领域,业务人员可以借助特定领域语言进行需求方面的讨论。
DSL并不是全新的概念——HTML和SQL都是众所周知的DSL例子。然而,为个人项目创建个人DSL的想法却不普遍。微软DSL工具的目标是在项目开始前就设法降低成本。你可以快速开发一组图形语言,例如工作流图、类图或实体图,然后从这些图生成工件。
目标和范围
如果你是一名软件开发人员或架构师,正在使用或正准备使用微软的DSL工具,那么本书正是为你而写。本书解释了如何创建及使用语言,如何定制语言以适应你的需求以及如何根据你的项目情况进行选用。对于更广泛的特定领域语言的常规主题感兴趣的人们或希望比较和对比模型驱动开发的方法及工具的人们,本书都提供重要的价值。第1章和第11章讨论了关于特定领域语言较为广泛的话题以及你如何设计特定领域语言。中间的章节详细而易读,集中讨论使用DSL工具来构建DSL以及代码生成器的各种细节。
本书的作者是Microsoft DSL工具的主要设计者从开始就立足于这项产品,并对大部分关键设计定义负责。
为什么要使用DSL工具
如果你(或你的组织)正在重复编写着相同或相似的代码,无论是在一个大型项目中或在不同的多个项目里,那么这些代码有可能是自动生成的。如果是这样,你可以考虑使用 DSL 工具作为生成这些代码的一种方式。尤其在代码是从领域专家(而非软件开发专家)能够很容易理解的结构中生成的情况下更需如此。阅读本书后,你将能够直接或经过专用化定制后使用DSL工具的各种功能来对付这类问题。
本书的结构
·第1章解释DSL方法,将它与类似的技术进行比较,并介绍使用DSL的典型用户场景。
·第2章探讨DSL工具系统的各个部分,展示这些部分如何在一起工作,并介绍在其余章节所使用到的主要示例。
·第3章详细介绍如何定义语言的概念。
·第4章讲述如何定义你的语言的可视化外观。
·第5章介绍语言行为的几个重要方面。
·第6章介绍语言中的模型和图像在文件中如何表示。..
·第7章介绍如何确保你的语言用户创建正确的声明。
·第8章介绍如何通过创建配置文件、程序代码、资源以及其他工件的方法来使用你的语言驱动或配置你的系统。
·第9章讲述如何创建一个安装程序把你完成的语言安装在多台计算机上。
·第10章介绍如何在标准定义提供的功能之外,为你的语言添加特殊的功能(或编辑器的特殊行为)。
·第11章介绍一组基于规则和过程的轻便的工具包,可适用于你的项目中语言的开发或发展。
序言
正是处于中间的宽阔林荫大道和风格多样的花园打破了大多数计算机语言的传统。我们来看一下城市的格局,这里有街道布局、交通路线、区域映射、建筑规格以及景观映射;在建筑内部,则有结构、管道、电力、电信、通风以及安全等各种规划;在工厂里,有更为专业化的流程、流体、机器和自动化模式。这些是真实世界里领域专用语言的一些例子。每种语言都有一套严格的语义定义以及一个已经在实践中建立起来的主体。每一种语言的建立都是由于之前的系统已无法胜任现有的任务。
当然,目前大家都使用计算机来绘制所有这些东西。在每种情况下,都有一些富有进取心的供应商(或者有时是用户)已经为该领域创建了实现特定的建模任务的程序包。但这些应用程序局限于该领域,因此维护基础结构的成本相当高。
同时,在计算机系统的世界里,最频繁使用的设计工具是白板,而且有将白板上的草稿内容最终转换成代码的处理工具(通常是手动和高度默认的)。理想情况下,从白板上的概念到精确的代码转换过程应该是一个顺畅的渐进过程。
遗憾的是,今天的转换并不那么顺畅。无论开发人员使用的是通用的建模语言,如UML(在少数情况下),还是白板笔或者3GL,人类可读的语言世界与计算机可执行的软件世界之间总是存在突变。微软DSL工具的目的就在于缩小两者之间的差距。..
如果能够方便地使用问题领域的语言来绘制设计草稿,就像在白板上画出设计一样,然后逐渐对这个草稿添加注释,直到这个设计足够丰富以致能够成为一个可执行的模型,那会怎样?这样的技术目前还不存在,然而DSL工具是此方向的一个巨大飞跃。
DSL工具使得特定领域语言的创建更平民化。使用DSL工具创建的特定领域语言帮助领域专家使用他们所熟悉的术语来捕获高层设计,然后再将此设计转换为可以运行的软件。这是向大规模定制的方向迈出的巨大一步—其思想是将领域内一系列相关的软件解决方案的模式捕获下来,然后通过定义明确的组件将特定结果组装出来。几乎所有成功的行业都已应用此方法,但软件行业却落后了。
当我们达到大规模定制时,软件的经济效果将从手工时代跨入由组件市场以及定义明确的重用规则组成的软件供应链的时代。作为这种转换中的关键一步,DSL工具将占有一席之地。
再也没有人比Steve Cook、Gareth Jones、Stuart Kent和Alan Cameron Wills更适合写这本书的人了。他们是DSL工具的始创者,拥有几十年使用及设计以往建模工具的经验,对这些知识的深度掌握以及由此所带来的激情和专业知识在此行业内是无可比拟的。他们的工作做出了巨大的贡献。...
Sam Guckenheimer
《Software Engineering with Microsoft Visual Studio Team System》的作者
Redmond,WA
2007年3月
媒体评论
——John Montgomery
微软公司Developer Platform and Evangelism Division部门总监
“这个系列得到了微软.NET框架及其语言的权威专家们的大力帮助。为完成这个系列而组建的专家库包括了业界最具洞察力的作者、微软公司的软件架构师以及开发者。”...
——Don Box
微软公司架构师








