Domain-Specific Development with Visual Studio DSL Tools
Recommend Documents
Upper Saddle River, NJ e Boston ⢠Indianapolis ⢠San Francisco ... Domain-Specific Development 1 ... Software Development Process Customization 9. Benefits ...
Oct 1, 2009 ... OCTOBER 2009 VOL 24 NO 10. Visual Studio 2010 Tools for. SharePoint
Development. Steve Fox page 44. THIS MONTH at ...
All Pearson Education books are available at a discount for corporate ... Chapter
2: Introduction to Office Solutions .... Chapter 10: Working with Outlook Events.
6.2 Add connection to RDB database in MS server explorer. ..... The Microsoft
Visual Studio IDE environment appears. Step2: In the Start Page, under the
Recent ...
Dec 21, 2009 ... What types of projects you can create with VSTO and what capabilities you ...
Visual Studio Tools for Office (VSTO) is a technology that enables ...
Find in-depth developer resources, how-to do entation Download content for Azure, ASP.NET, Office, SQL Server, SharePoin
e-mail:{pele, malbert, jmunoz, ccetina}@ dsic.upv.es, web:http://oomethod.dsic.upv.es ... The development and wide adoption of CASE Tools that provide Code .... Eclipse was initially the IBM IDE for Java development, which was released as free .... a
Paste pthreadVC2.dll to the Visual Studio 2012 bin folder for C++. ... Paste all *.h
files (pthread.h, sched.h, semaphore.h) to Visual Studio 2010 include folder for ...
Support for Visual Studio 2005 and Visual Studio 2008. Getting ...... Use this
manual as a starting point to learn about Measurement Studio. Refer to the NI ...
Visual Studio Tools for Office により、幅広いアプリケー. ション開発に対応する Visual
Studio .NET 2003 を使っ. て、Office Word ドキュメントや Office Excel ワークブッ.
pdf. Download now. Click here if your download doesn't start automatically. Page 1 of 1. visual studio tools for office
developing applications within Microsoft Visual Studio to access an Oracle Rdb ...
Microsoft .NET Framework. V3.5. Microsoft Visual Studio 2010. Version 10.0.
NET 4.0, Visual Studio 2010, and their supporting technologies ... eBook versions
and licenses are also available for most titles. For more information, reference ...
These features make it convenient for Microsoft Visual Studio developers to stay
in Visual Studio for the entire development lifecycle. The new features in this ...
28 Mar 2007 ... Applications tool set; the company also released a new Office Business ...
Microsoft has announced the release of the Visual Studio 2005 Tools ...
Protected mode debugger: Visual Studio or WinDbg. Let's start by ... Title
CodeView Tutorial Example ... Let's step through the basic features of the Visual
Studio.
Designer included with Visual Studio 6—Crystal Reports was still available
separately on ..... as a reference to your project automatically when you add a
Crystal ...
Visual Studio .NET® to build a simple mapping application using the Visual ... or
VB is assumed, although some familiarity with basic programming concepts is.
lines of code to be shown in this tutorial, and does not need to be copied in your
code. ... Visual Studio will, by default, create a sub-directory of the directory you ...
the gap that VS2008 fills by offering premier support for . ... NET Framework v3.0
in VS2008 is: new WPF designer .... As a developer you learn a single ...
MCTS Self-Paced Training Kit (Exam. 70-513): Microsoft® .NET Framework. 4—
Windows® Communication. Foundation Development. (ISBN: 9780735627413).
This is achieved by using the DSL Tools to create a modelling tool (a DSL) .... Every domain class has a domain property called Name, either directly or via ...
Managing Test Lab VMs: Visual Studio Lab Management 2010 . .... with
development skills. MTM focuses more on manual testing, providing a tool for
generalist.
Domain-Specific Development with Visual Studio DSL Tools
Software Development Process Customization 9. Benefits 10. Languages 11. Textual DSLs 15 ... Custom Code for the Designers 73. Serialization Format of the ...
Domain-Specific Development with Visual Studio DSL Tools • • • •
Steve Cook Gareth Jones Stuart Kent Alan Cameron Wills
A Addison-Wesley Upper Saddle River, NJ e Boston • Indianapolis • San Francisco New York • Toronto 8 Montreal' • London • Munich • Paris Madrid • Capetown • Sydney • Tokyo • Singapore • Mexico City
Contents List of Figures xvii List of Tables xxv Foreword xxvii Preface xxix About the Authors xxxv Domain-Specific Development 1 Introduction 1 Domain-Specific Development 2 Examples 4 Software Defined Circuitry 8 Embedded Systems 9 Device Interfaces 9 Software Development Process Customization 9
Benefits 10 Languages 11 Textual DSLs 15 Graphical DSLs 20 Conventions for Representing Structure 21 Conventions for Representing Behavior 22
Aspects of Graphical DSLs 23 Notation 24 Domain Model 24 Generation 24
',
vii
viii
n Contents Serialization 25 Tool Integration 26 Putting It All Together 26
DSLs in Visual Studio 27 The Customization Pit 32 UML 34 Summary 40 Creating and Using DSLs 41
Introduction 41 Process: Incremental Development of DSLs 41 Generalizing an Application: Identify Variability, Discover DSLs 42 Top-Down and Bottom-Up 46 Developing the DSL: From Sketches to Domain Model 48 Domain Model and Presentation Are Separate 49 Refining the DSL 50 Driving the Frameworkfromthe DSL 51 Using the DSL 53 Evolving the DSLs 55 Interpretive Architectures 56
Creating a DSL in Visual Studio 57 Creating a DSL Authoring Solution in Visual Studio 57 Trying Out the DSL Solution 61 Defining the DSL 64 Generating the Code for the Designer 66 Adding to the DSL 67 Constraints 68 Customizing the Explorer Window 71 Customizing the Properties Window 72 Custom Code for the Designers 73 Serialization Format of the DSL File 73 Driving Applications from the DSL 74 Deployment 76
A Second DSL: The Project Definition DSL 77
Contents Architecture of the DSL Tools 78 The Generated Code 78 DSL Tools Architectural Layers 79 The Framework Assemblies 79 Content of the DSL Project 81 Content of the DslPackage Project 83 Summary 85 Domain Model Definition 87 Introduction 87 The Domain Model Designer 88 The In-Memory Store 89 Domain Classes 92 Domain Relationships 98 Embeddings 101 Multiplicity 104 References 105 Relationship Derivation 106 Generating a Designer with No Shapes 108 The Generated Code 109 Using the Generated Code 113 More about Domain Classes 115 DomainClassInfo 118 More about Domain Properties 119 Calculated Properties 121 DomainPropertylnfo 121 More on Domain Relationships and Roles 122 Accessing Links 124 More on Relationship Derivation 126 DomainRelationshipInfo and DomainRolelnfo 129 More about the Store 129 Looking Up Elements 129 Partitions 130 Rules 130 DomainModellnfo 130 Summary 131
Customizing the Graphical Notation in Code 173 Multiline Text Decorators 173
•
Variable Image Shape 174 Set a Background Picture 176 Set Custom Connection Points 177 Change Routing Style of Connectors 178
Explorer 180 Default Appearance 181 Changing the Window Icon and Label 183 Customizing the Appearance of Nodes 184 Hiding Nodes 186 Customizing the Explorer through Code 187 ,
Properties Window 188 Default Appearance of Properties Window 188 Categories, Names, and Descriptions 190
Contents Hiding Properties and Making Them Read-Only 192 Forwarding Properties 192 Customizing the Properties Window through Code 193
Summary 195 5
Creation, Deletion, and Update Behavior 197
Introduction 197 Element Creation 197 The Toolbox 198 Element Merge Directives 200 Custom Element Merge Directives 208 Re-Parenting with Element Merge Directives 211 Custom Element Tool Prototypes 212
Connection Builders 216 Multiple Source and Target Role Directives 217 Multiple Link Connect Directives 219 Custom Connection Builders 222
Introduction 237 Saving and Loading Models and Diagrams Model XML File Format 239 Elements and Properties 242 Relationships 243 Relationship Derivation
245
Cross-Referencing 245 Using Guids as References 246 Using Qualified Names as References 248 , References to Links 249
Diagram XML File Format 251 Versioning and Migration 254
238
•
xi
xii
•
Contents The XML Schema 257 Customization 258 Modifying XML Element Names 259 Element Data 261 Implementing Your Own Serializer 264
Generated Serialization Code 264 Customized Serialization Code 271 Impact of Customization on the Schema 272
Summary 273 7
Constraints and Validation 275
Introduction 275 Choosing Hard or Soft Constraints? 277 Choices Made by the DSL Tools 280
Soft Constraints in the DSL Tools 280 Validation Methods 282 Enabling Validation 284 Invoking Validation 288 Custom Validation Categories 289 Inheriting Validation Behavior 292 Validation Output 292 Using Validation Outside the IDE 293 Validation Against External Data 294
Hard Constraints in the DSL Tools 295 Rules 296 Putting Together Hard and Soft Constraints 299 Summary 307 8
Generating Artifacts 309
Introduction 309 Artifact Generation Styles 311 Extensible Stylesheet Language Transformations 311 Making Use of the Domain-Specific API 314
',
A Template-Based Approach 319
Complex Relationships and Round-Tripping 321
Contents The Templatization Process 325 The First Cut Template 328 Generation-Specific Model Data 338 Starting to Build a Library 340 Syntax of a Text Template 341 Directives 341 Custom Directives 344 Control Block Types 346 Problems of Large-Scale, Real-World Artifact Generation 349 Advanced Customizations 351 Text Templating Architecture 352 Custom Hosting 354 Custom Directive Processor 357 Custom Orchestration 359 Summary 366 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 Customizing InstallerDefinition.dslsetup 377 Customizing settings.ini 377 Customizing Strings.wxl 378 Customizing Product.ico 378 The .dslsetup Format 378 380 382 382 383 384 384 384 385
'•
•
xiii
xiv
D
m
Contents
Refreshing the Installation Files 387 Package Load Key 388 Deploying Text Templates for Code Generation 390 Creating a Project Templatefromthe Debugging Project 390 Using a Text Template Include File 392 Including Text Templates in the VS Item Template 393
Responding to Changes 402 Property Handlers "On Value Changed/Changing" 402 Calculated Domain Properties 404 Custom Storage Domain Properties 405 Notify Value Change 407 Propagating ChangefromModel to Shape: OnAssociatedPropertyChanged 408 Rules 412 Store Events 417 .NET Event Handlers 419 Event Overrides 420 Bounds Rules 420 Summary of Change Propagation and Constraint Techniques 424
DSL Shell Architecture 426 How to Add a Menu Command 429 Add a Command Id for Each Command 430 Increment Menu Resource Index 430 '• Add Commands to Command Set 431 Define the Command Handlers 432 Good Practices for Command Handlers 434
Contents Build and Run 435 Providing Handlers for Standard Commands 435
Building the DSL Diagram into Another Interface 435 Implementing Copy and Paste 437 The Copy Method 437 The Paste Method 438 Registering the Menu Handlers 440
Shape Containers 442 Child Shapes 442 A DSL Using Nested Child Shapes 443 Shape Containment Using Rules 446
Summary 453 11 Designing a DSL 455 Introduction 455 Identifying Variability 456 Bottom-Up or Top-Down? 457 Feature Trees 458 Feature Trees and DSLs 459
Developing the Domain Model 460 Sketch Domain Snapshots 460 Domain Model from Snapshots 464
Developing the Notation 468 Project Definition Notation 470 Issue State Notation 471 Familiar Notations 474
Defining Validation Constraints 475 Internal Consistency 476 Consistency with External Data and Models 478
Developing and Evolving the Framework 479 Generation versus Interpretation 479 Evolving a Generic Framework 482 Driving a Frameworkfromthe DSL 483 '•
Contents Generated Code 488 Rules 489 Language Definition 489 Evolving a DSL 489 What Makes a Good DSL? 491 Appropriate Notation: An Example with Regular Expressions 493 Candidate Notations 495 Graphs Are Not Syntax Trees 498 Summary 498 Conclusion 499 Index 503