Domain-Specific Development with Visual Studio DSL Tools and over one million other books are available for Amazon Kindle. Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Buy Used
Used - Very Good See details
$16.52 & eligible for FREE Super Saver Shipping on orders over $25. Details

or
Sign in to turn on 1-Click ordering.
 
   
Sell Back Your Copy
For a $0.50 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Domain-Specific Development with Visual Studio DSL Tools
 
 
Start reading Domain-Specific Development with Visual Studio DSL Tools on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Domain-Specific Development with Visual Studio DSL Tools [Paperback]

Steve Cook (Author), Gareth Jones (Author), Stuart Kent (Author), Alan Cameron Wills (Author)
3.5 out of 5 stars  See all reviews (6 customer reviews)

List Price: $54.99
Price: $44.40 & this item ships for FREE with Super Saver Shipping. Details
You Save: $10.59 (19%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 2 left in stock--order soon (more on the way).
Want it delivered Thursday, February 2? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more

Formats

Amazon Price New from Used from
Kindle Edition $35.19  
Paperback $44.40  

Book Description

0321398203 978-0321398208 June 3, 2007 1

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

List of Figures
List of Tables

Foreword

Preface

About the Authors
Chapter 1 Domain-Specific Development
Chapter 2 Creating and Using DSLs
Chapter 3 Domain Model Definition
Chapter 4 Presentation
Chapter 5 Creation, Deletion, and Update Behavior
Chapter 6 Serialization
Chapter 7 Constraints and Validation
Chapter 8 Generating Artifacts
Chapter 9 Deploying a DSL
Chapter 10 Advanced DSL Customization
Chapter 11 Designing a DSL
Index 

Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Customers Who Bought This Item Also Bought


Editorial Reviews

About the Author

Steve Cook joined Microsoft in 2003 to work on the DSL Tools. Previously, he was a Distinguished Engineer at IBM, which he represented in the UML 2.0 specification process at the OMG. He has worked in the IT industry for 30 years, as architect, programmer, author, consultant, and teacher. He was one of the first people to introduce object-oriented programming into the UK, and has concentrated on languages, methods, and tools for modeling since the early 1990s.

Gareth Jones is a lead developer in the DSL Tools team. He's been at Microsoft since 1997 doing various developer jobs such as building bespoke enterprise solutions, running the development of Microsoft UK's small business portal, and managing a consultancy team. Before joining Microsoft, he spent seven years leading development projects in the intelligence analysis, simulation, and aerospace industries.

Stuart Kent joined Microsoft in 2003 to work on the DSL Tools. Previously, he was an academic and consultant, with a reputation in modeling and model-driven development. He has over 50 publications to his name and made significant contributions to the UML 2.0 and MOF 2.0 specifications. He is a member of the editorial board of the journal Software and Systems Modeling, and on the steering committee for the MoDELS series of conferences. He has a Ph.D. in computing from Imperial College, London.

Alan Cameron Wills was a methodology consultant for almost a decade, and used to get very frustrated when people asked about good tools to support the methods. So he was very pleased to join Microsoft in 2003 to help in the DSL Tools project. He has a Ph.D. in computer science, and was joint creator of the Catalysis approach to component-based development. He gets excited about software factories, photography, sailing, and hills.

Excerpt. © Reprinted by permission. All rights reserved.

This book is a software developer's guide to using the Microsoft Tools for Domain-Specific Languages ("DSL Tools"), which are included in the SDK (Software Development Kit) for Microsoft Visual Studio 2005.

The software industry is showing considerable interest in using "domain-specific languages," an approach to building software that promises to reduce software development costs, especially in large projects. A domain-specific language (DSL) is a language specially geared to working within a particular area of interest: a vertical domain such as telephone design, or a horizontal one like workflow. It may be a programming language or a specification or design language. It may be textual or graphical, or a mixture of both. The language is expressed in terms that are used in a particular domain, such as "connect," "ringtone," or "work item," uncluttered by the details of how those concepts are implemented. Software, configuration files, resources, and other documents can be generated from instances of the language--often many of those artifacts can be generated from one DSL--or the language may be interpreted directly. This makes it much easier to discuss the software at the requirements level, and to make changes in an agile way. In vertical domains, the accessibility of the language to business users helps when discussing requirements with them.

DSLs are not a new idea--HTML and SQL are well-known examples of DSLs. Less widespread, however, is the idea of creating your own DSL for your own project. The purpose of the Microsoft DSL Tools is to reduce the upfront cost of doing so. You can quickly create a range of diagrammatic languages, such as workflow, class, or entity diagrams, and you can create tools for generating artifacts from them.

Goals and Scope

This book is for you if you are a software developer or architect using, or thinking about using, the Microsoft DSL Tools. It explains how to create and use languages, how to tune them to your needs, and how to employ them within the context of your project. The book should also be of significant value to readers who are interested in the broader general topic of domain-specific languages, or who wish to compare and contrast different approaches to model-driven development, or tools that support model-driven development. Chapters 1 and 11 discuss the more general topic of domain-specific languages, and how you go about designing one. The middle chapters focus exclusively on providing a detailed yet readable reference on building DSLs and code generators using the DSL Tools.

The book's authors are the main designers of the Microsoft DSL Tools. They have worked together on the product since its inception, and are responsible for most of the key design decisions.

Why You Might Want to Use DSL Tools

If you (or your organization) are writing the same or similar code repeatedly, whether within a single large project or over the course of multiple projects, then such code can probably be generated. If this is the case, you should consider using the DSL Tools as a way to generate this code. This is especially the case if the code can be generated from structures that can easily be understood by domain specialists rather than software development specialists. After reading this book, you should be able to assess the capabilities of the DSL Tools to address problems of this kind, either directly or after some customization.

Organization of This Book

Chapter 1, Domain-Specific Development, explains the DSL approach, compares it with similar techniques, and introduces typical scenarios in which a DSL is used.

Chapter 2, Creating and Using DSLs, looks at the various parts of the DSL Tools system, shows how they fit together, and introduces the main examples that will be used through the remainder of the book.

Chapter 3, Domain Model Definition, details how to define the concepts of the language.

Chapter 4, Presentation, deals with defining the visual appearance of your language.

Chapter 5, Creation, Deletion, and Update Behavior, covers these important aspects of the behavior of your language.

Chapter 6, Serialization, deals with how models and diagrams in your language are represented in files.

Chapter 7, Constraints and Validation, shows you how to ensure that the users of your language create valid statements.

Chapter 8, Generating Artifacts, shows you how to use your language to drive or configure your system by creating configuration files, program code, resources, and other artifacts.

Chapter 9, Deploying a DSL, explains how to create an installer that will install your finished language on multiple computers.

Chapter 10, Advanced DSL Customization, shows you how to make specialized features of your language (or specialized behavior in the editor) in addition to those provided by the standard definition facilities.

Chapter 11, Designing a DSL, provides a lightweight kit of principles and procedures for developing and evolving languages within the context of your project.

Updates and all of the main examples are available for download at the website www.domainspecificdevelopment.com.

What You Need to Use This Book

To get the full value of this book, you need to be reasonably familiar with the facilities that Visual Studio offers to developers of program code, including the code editor and XML editor. A basic knowledge of the C# programming language and the main aspects of the .NET class library are needed to understand the programming examples.

DSL Tools can be downloaded as part of the Visual Studio SDK and used with Visual Studio Professional Edition and later. Tools created using the DSL Tools can be deployed on Visual Studio Standard Edition and later. The website http://msdn.microsoft.com/vstudio/DSLTools/ is the entry point to information about the DSL Tools. There you can find links to where the SDK can be downloaded, a popular online forum with active discussions about the DSL Tools, weblogs containing discussions about the DSL Tools by the authors of this book and others, a tool for reporting bugs and making suggestions, white papers, chats, and other resources.


Product Details

  • Paperback: 576 pages
  • Publisher: Addison-Wesley Professional; 1 edition (June 3, 2007)
  • Language: English
  • ISBN-10: 0321398203
  • ISBN-13: 978-0321398208
  • Product Dimensions: 9.1 x 7.1 x 1.4 inches
  • Shipping Weight: 2.4 pounds (View shipping rates and policies)
  • Average Customer Review: 3.5 out of 5 stars  See all reviews (6 customer reviews)
  • Amazon Best Sellers Rank: #1,497,182 in Books (See Top 100 in Books)

More About the Author

Gareth is a lead developer architect in the Visual Studio Ultimate group at Microsoft. Currently, he's working on features to help team productivity for Visual Studio customers and also drives T4 code generation across the Visual Studio product line.

Previously at Microsoft he worked on DSL Tools, the software factory initiative and Visual Studio extensibility. He has been a development manager for bespoke enterprise solutions, led the development of Microsoft's bCentral UK small business portal and managed a consultancy team focussed on ISVs.

Before joining Microsoft, he led development projects in the intelligence analysis, simulation and aerospace industries.

He's passionate about raising the abstraction level of software tools and still looking for the next leap forward.

 

Customer Reviews

6 Reviews
5 star:
 (2)
4 star:
 (1)
3 star:
 (1)
2 star:
 (2)
1 star:    (0)
 
 
 
 
 
Average Customer Review
3.5 out of 5 stars (6 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

8 of 8 people found the following review helpful:
4.0 out of 5 stars Not for my taste of technical book, August 23, 2007
Amazon Verified Purchase(What's this?)
This review is from: Domain-Specific Development with Visual Studio DSL Tools (Paperback)
The books covers almost all of the capabilities for the DSL world, however in this approach to cover all themes, they present some important subjects in a very light way. The reader must have a previous and seriuos knowledge of DSL items and a lot of experience in Visual Studio 2005.
However some chapters (2,3,4,8 and 9) are very very good :D
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful:
2.0 out of 5 stars Extremely Frustrating, May 17, 2009
This review is from: Domain-Specific Development with Visual Studio DSL Tools (Paperback)
I was compelled to write this review a few minutes ago while attempting to use this book. I rarely bother to write a bad review-- but I'm fired up.

It's really a fairly horrible example of the genre. The problem is that there is no other game in town for this material.

It's clear the authors know what they are about. In fact, it's fairly obvious they are all brilliant professionals, but they desperately need good editors and co-authors who specialize in presenting this type of material.

This technology is relatively new and unfortunately it seems as though the example implementations available on-line are written by the authors of this book. Terrible or absent in-code documentation is the rule. ...So I am forced to read the book to sort out HOW to do the simplest of things.

When this happens, I seem to spend 15 minutes trying to find precisely what portion of the book is applicable. It's not that the book is poorly organized on a high level. It's that actual content isn't presented in an manner that lends itself to reference.

The examples presented are almost all part of large extended examples that run through most of the book. So I inevitably feel that I am missing most of the context when I start to read. Then the information is sometimes presented in language that sounds insular and academic to me -- a developer and software architect for over 15 years.

The authors seem to have expected the readers to set aside a day or two of their life to read the book from cover to cover and somehow remember it all. It's an absurd premise for a developer's book. No developer worth their salt has that kind of time ... unless they are an academic. It's also an impossible premise because the material is dry as a bone. After reading books from the "Head First" authors, this material will make you want to claw your eyes out.

I think the worst difficulty is that I find key information on how to integrate pieces of the functionality is often ignored or thrown in as an afterthought.

As an example, I discovered I need to add validation on some data entered into my DSL. It seems like an easy thing to do, right? Shouldn't take more than 5 minutes to figure that out, right? 15 pages into the section on "Constraints and Validation" I find I understand perfectly why the authors have decided to implement this functionality using C# instead of Object Constraint Language. I understand a great deal about their architectural decisions. I can recite the topology of their belly-buttons on the day they sat down to write the functionality, but I have no idea how to hook up a !@#$ing constraint.

I had the opportunity to listen to a web presentation by one of the authors, Gareth Jones. He presented some ingeniously written code for an example implementation of the DSL tools. To my complete and utter lack of surprise, I understood almost nothing nothing that he said. I found myself zipping back and forth in the presentation trying to deduct how pieces of the code examples he gave were meant to go together.
I was grateful to find the code itself was available on-line ... with no in-line documentation of course. I spent hours understanding how it all fit together when, with some basic presentation skills, he could have given me the information in 5 minutes.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 5 people found the following review helpful:
2.0 out of 5 stars What not how, March 25, 2008
This review is from: Domain-Specific Development with Visual Studio DSL Tools (Paperback)
I am disappointed, because the writers are the top of Microsofts engine driving domain specific languages.
The book tells what is possible using Visual Studio 2005 and the DSL tools. However it does a terrible job in explaining how and when to use the tools.
It is not a handsone book, you can't take it and work through examples and it is not an reading/theoratical book either, you can't read it while one the train to work and hope to learn anything.
Just like the book on software factories this book is elaborate and the writers are smart they are just not capable of making the information simple and interesting enough to stick into my head.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews




Only search this product's reviews




Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject