Domain-Specific Development with Visual Studio DSL Tools (Paperback)
暫譯: 使用 Visual Studio DSL 工具的領域特定開發 (平裝本)
Steve Cook, Gareth Jones, Stuart Kent, Alan Cameron Wills
- 出版商: Addison Wesley
- 出版日期: 2007-06-01
- 售價: $2,390
- 貴賓價: 9.5 折 $2,271
- 語言: 英文
- 頁數: 576
- 裝訂: Paperback
- ISBN: 0321398203
- ISBN-13: 9780321398208
-
相關分類:
Visual Studio
已過版
買這商品的人也買了...
-
$580$493 -
$599$473 -
$550$435 -
$690$587 -
$720$569 -
$480$408 -
$700$630 -
$550$468 -
$580$493 -
$680$537 -
$880$695 -
$480$408 -
$720$612 -
$580$452 -
$680$578 -
$750$593 -
$600$480 -
$480$379 -
$520$411 -
$540$427 -
$1,200$1,020 -
$550$468 -
$380$300 -
$2,050$1,948 -
$2,050$1,948
商品描述
Description
Domain-Specific Languages (DSLs)--languages geared to specific vertical or horizontal areas of interest--are generating growing excitement from software engineers and architects. DSLs bring new agility to the creation and evolution of software, allowing selected design aspects to be expressed in terms much closer to the system requirements than standard program code, significantly reducing development costs in large-scale projects and product lines. In this breakthrough book, four leading experts reveal exactly how DSLs work, and how you can make the most of them in your environment.
With Domain-Specific Development with Visual Studio DSL Tools, you'll begin by mastering DSL concepts and techniques that apply to all platforms. Next, you'll discover how to create and use DSLs with the powerful new Microsoft DSL Tools--a toolset designed by this book's authors. Learn how the DSL Tools integrate into Visual Studio--and how to define DSLs and generate Visual Designers using Visual Studio's built-in modeling technology.
In-depth coverage includes
- Determining whether DSLs will work for you
- Comparing DSLs with other approaches to model-driven development
- Defining, tuning, and evolving DSLs: models, presentation, creation, updates, serialization, constraints, validation, and more
- Creating Visual Designers for new DSLs with little or no coding
- Multiplying productivity by generating application code from your models with easy-to-use text templates
- Automatically generating configuration files, resources, and other artifacts
- Deploying Visual Designers across the organization, quickly and easily
- Customizing Visual Designers for specialized process needs
Table of Contents
List of Figures xvii
List of Tables xxv
Foreword xxvii
Preface xxix
About the Authors xxxv
Chapter 1 Domain-Specific Development 1
Introduction 1
Domain-Specific Development 2
Examples 4
Benefits 10
Languages 11
Textual DSLs 15
Graphical DSLs 20
Aspects of Graphical DSLs 23
DSLs in Visual Studio 27
The Customization Pit 32
UML 34
Summary 40
Chapter 2 Creating and Using DSLs 41
Introduction 41
Process: Incremental Development of DSLs 41
Creating a DSL in Visual Studio 57
A Second DSL: The Project Definition DSL 77
Architecture of the DSL Tools 78
Summary 85
Chapter 3 Domain Model Definition 87
Introduction 87
The Domain Model Designer 88
The In-Memory Store 89
Domain Classes 92
Domain Relationships 98
Generating a Designer with No Shapes 108
The Generated Code 109
More about Domain Classes 115
More about Domain Properties 119
More on Domain Relationships and Roles 122
More about the Store 129
Summary 131
Chapter 4 Presentation 133
Introduction 133
Graphical Notation--Overview 134
Diagram and Editor 137
Shapes 146
Connectors 164
Decorators 167
Customizing the Graphical Notation in Code 173
Explorer 180
Properties Window 188
Summary 195
Chapter 5 Creation, Deletion, and Update Behavior 197
Introduction 197
Element Creation 197
Connection Builders 216
Element Deletion 229
Summary 234
Chapter 6 Serialization 237
Introduction 237
Saving and Loading Models and Diagrams 238
Model XML File Format 239
Elements and Properties 242
Relationships 243
Cross-Referencing 245
Diagram XML File Format 251
Versioning and Migration 254
The XML Schema 257
Customization 258
Generated Serialization Code 264
Summary 273
Chapter 7 Constraints and Validation 275
Introduction 275
Choosing Hard or Soft Constraints? 277
Soft Constraints in the DSL Tools 280
Hard Constraints in the DSL Tools 295
Rules 296
Putting Together Hard and Soft Constraints 299
Summary 307
Chapter 8 Generating Artifacts 309
Introduction 309
Artifact Generation Styles 311
Complex Relationships and Round-Tripping 321
The Templatization Process 325
Syntax of a Text Template 341
Problems of Large-Scale, Real-World Artifact Generation 349
Advanced Customizations 351
Summary 366
Chapter 9 Deploying a DSL 369
Introduction 369
Files Needed to Install a Designer 370
Getting Started--Creating a Setup Project 373
Setup Project Contents 376
Customizing Setup 377
The .dslsetup Format 378
Refreshing the Installation Files 387
Package Load Key 388
Deploying Text Templates for Code Generation 390
Summary 396
Chapter 10 Advanced DSL Customization 397
Introduction 397
Tools for Customization 397
Responding to Changes 402
DSL Shell Architecture 426
How to Add a Menu Command 429
Building the DSL Diagram into Another Interface 435
Implementing Copy and Paste 437
Shape Containers 442
Summary 453
Chapter 11 Designing a DSL 455
Introduction 455
Identifying Variability 456
Developing the Domain Model 460
Developing the Notation 468
Defining Validation Constraints 475
Developing and Evolving the Framework 479
Testing 484
Evolving a DSL 489
What Makes a Good DSL? 491
Summary 498
Conclusion 499
Index 503
商品描述(中文翻譯)
描述
領域特定語言(Domain-Specific Languages, DSLs)是針對特定垂直或水平領域的語言,正引起軟體工程師和架構師日益增長的興趣。DSLs 為軟體的創建和演進帶來了新的靈活性,允許選定的設計方面以更接近系統需求的方式表達,顯著降低大型專案和產品線的開發成本。在這本突破性的書中,四位領域專家將揭示 DSLs 的運作方式,以及如何在您的環境中充分利用它們。
在《使用 Visual Studio DSL 工具進行領域特定開發》中,您將首先掌握適用於所有平台的 DSL 概念和技術。接下來,您將發現如何使用強大的 Microsoft DSL 工具創建和使用 DSLs——這是一套由本書作者設計的工具集。了解 DSL 工具如何整合到 Visual Studio 中,以及如何使用 Visual Studio 的內建建模技術定義 DSLs 並生成視覺設計器。
深入的內容包括:
- 確定 DSLs 是否適合您
- 將 DSLs 與其他模型驅動開發方法進行比較
- 定義、調整和演進 DSLs:模型、呈現、創建、更新、序列化、約束、驗證等
- 以極少或不需要編碼的方式為新的 DSLs 創建視覺設計器
- 通過易於使用的文本模板從模型生成應用程式代碼來提高生產力
- 自動生成配置文件、資源和其他工件
- 在整個組織中快速輕鬆地部署視覺設計器
- 根據專門的流程需求自定義視覺設計器
目錄
圖表清單 xvii
表格清單 xxv
前言 xxvii
序言 xxix
關於作者 xxxv
第一章 領域特定開發 1
引言 1
領域特定開發 2
範例 4
好處 10
語言 11
文本 DSLs 15
圖形 DSLs 20
圖形 DSLs 的各個方面 23
Visual Studio 中的 DSLs 27
自定義陷阱 32
UML 34
總結 40
第二章 創建和使用 DSLs 41
引言 41
過程:DSLs 的增量開發 41
在 Visual Studio 中創建 DSL 57
第二個 DSL:專案定義 DSL 77
DSL 工具的架構 78
總結 85
第三章 領域模型定義 87
引言 87
領域模型設計器 88
內存存儲 89
領域類 92
領域關係 98
生成無形狀的設計器 108
生成的代碼 109
有關領域類的更多資訊 115
有關領域屬性的更多資訊 119
有關領域關係和角色的更多資訊 122
有關存儲的更多資訊 129
總結 131
第四章 呈現 133
引言 133
圖形符號--概述 134
圖表和編輯器 137
形狀 146
連接器 164
裝飾器 167
在代碼中自定義圖形符號 173
資源管理器 180
屬性窗口 188
總結 195
第五章 創建、刪除和更新行為 197
引言 197
元素創建 197
連接構建器 216
元素刪除 229
總結 234
第六章 序列化 237
引言 237
保存和加載模型和圖表 238
模型 XML 文件格式 239
元素和屬性 242
關係 243
交叉引用 245
圖表 XML 文件格式 251
版本控制和遷移 254
XML 架構 257
自定義 258
生成的序列化代碼 264
總結 273
第七章 約束和驗證 275
引言 275
選擇硬約束還是軟約束? 277
DSL 工具中的軟約束 280
DSL 工具中的硬約束 295
規則 296
將硬約束和軟約束結合起來 299
總結 307
第八章 生成工件 309
引言 309
工件生成樣式 311
複雜關係和回流 321
模板化過程 325
文本模板的語法 341
大規模、現實世界工件生成的問題 349
進階自定義 351
總結 366
第九章 部署 DSL 369
引言 369
安裝設計器所需的文件 370
入門--創建安裝專案 373
安裝專案內容 376
自定義安裝 377
.dslsetup 格式 378
刷新安裝文件 387
包加載鍵 388
為代碼生成部署文本模板 390
總結 396
第十章 進階 DSL 自定義 397
引言 397
自定義工具 397
響應變更 402
DSL Shell 架構 426
如何添加菜單命令 429
將 DSL 圖表構建到其他介面 435
實現複製和粘貼 437
形狀容器 442
總結 453
第十一章 設計 DSL 455
引言 455
識別變異性 456
開發領域模型 460
開發符號 468
定義驗證約束 475
開發和演進框架 479
測試 484
演進 DSL 489
什麼是好的 DSL? 491
總結 498
結論 499
索引 503