Ivan Towlson Mindscape.  What are DSLs and why should I care?  What are the Visual Studio DSL Tools?  Building a DSL  Vocabulary and grammar  Spiffing.

Slides:



Advertisements
Similar presentations
Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Advertisements

Michael Pizzo Software Architect Data Programmability Microsoft Corporation.
© 2008 by Borland Software Corp; made available under the EPL v1.0 | 17 March 2008 Introduction to the Graphical Modeling Framework Artem Tikhomirov, Borland.
Visual Studio Extensibility, DSL Tools and T4 Code Generation Peter Goodman.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Advanced Object-Oriented Programming Features
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
“DOK 322 DBMS” Y.T. Database Design Hacettepe University Department of Information Management DOK 322: Database Management Systems.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Common Mechanisms in UML
Attribute databases. GIS Definition Diagram Output Query Results.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Virtual techdays INDIA │ august 2010 Building ASP.NET applications using SQL Server Compact Chaitanya Solapurkar │ Partner Technical Consultant,
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
8 Copyright © 2004, Oracle. All rights reserved. Creating LOVs and Editors.
Java Beans.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Introducing Visual Studio ® LightSwitch™ Andrew Coates Microsoft DEV201 #auteched #dev201.
SEG4110 – Advanced Software Design and Reengineering
Copyright © 2014, 2015 William R. Vaughn All rights reserved William R. Vaughn.
Databases and LINQ Visual Basic 2010 How to Program 1.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Using the Actions Pane, Host Controls, and Smart Tags
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
March 12 & 13, 2007 Practical Code Generation Peter Bell SystemsForge.
Information Systems: Databases Define the role of general information systems Describe the elements of a database management system (DBMS) Describe the.
Concepts and Terminology Introduction to Database.
Learning objectives By the end of this lecture you should be able to:  have a well-earned rest! Ch 24 Beyond the second semester.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Chapter Two Creating a First Project in Visual Basic.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Copyright © IBM Corp., | March | Creating Robust Scalable DSLs with UML Tutorial (172) James Bruck, Christian Damus IBM Rational Software.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Software Product Lines Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008 Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008.
Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
Imagine Creating Software Without a Single Line of Code!
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Visual Studio for Software Architects and Future Directions in Modeling Tools Jochen Seemann TLN311 Program Manager Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
CSCI 3327 Visual Basic Chapter 13: Databases and LINQ UTPA – Fall 2011.
Spaso Lazarević Microsoft MVP Nova banka ad Banja Luka Building business application using Visual Studio 2013 LightSwitch.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Application generation Peter Bell SystemsForge Peter Bell SystemsForge Beyond Scaffolding.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Top 10 Entity Framework Features Every Developer Should Know
Introduction ITEC 420.
Visual Basic 2010 How to Program
Chapter 2: The Visual Studio .NET Development Environment
Chapter 12 Information Systems.
Design and Consume DataWindows in Visual Studio 2005
Entity Framework Core.
Analysis models and design models
Visual Studio 2010 SharePoint Development Tools Overview
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Presentation transcript:

Ivan Towlson Mindscape

 What are DSLs and why should I care?  What are the Visual Studio DSL Tools?  Building a DSL  Vocabulary and grammar  Spiffing it up  Using the DSL  Distributing your DSL

 A vocabulary and grammar tailored to a particular field of use  SQL – a DSL for manipulating relational data  Regex notation – a DSL for text matching  Mathematica – a DSL for symbolic mathematics  BPMN – a DSL for business processes  LINQ designer – a DSL for mapping SQL tables  Windows Forms designer?! VS class diagrams? UML!

 Internal or external – a vocabulary within the host language (e.g. fluent APIs) or a separate language  Textual or graphical  Vertical or horizontal – a specific business (e.g. a DSL for rail networks) or a technical area (e.g. SQL, regex)

“I was researching implementation techniques for graphical DSLs in vertical domains”

 You are addressing a well-defined problem area  The problem area supports a more concise expression than “longhand” programming  You need the flexibility to express a range of problems, situations or solutions within that area  The people you expect to use your language have the analytical and technical skills to express their problems in a way a dumb computer can handle

 A kit for hosting graphical DSLs within Visual Studio

 Users must have a Visual Studio licence  Users must not freak out when they see the Visual Studio UI  Models must be hosted within Visual Studio projects  Therefore typically not aimed at end users

 Domain modelling tool / object-relational mapper  User base:.NET developers  Core concepts: entities with attributes and associations between them  Convention over configuration  Entity classes typically follow standard formula  Predictable mapping between objects and tables

public class Contribution : Entity { private string _title; public string Title { get { return _title; } set { Set(ref _title, value, "Title"); } }

public class Contribution : Entity { private string _title; public string Title { get { return _title; } set { Set(ref _title, value, "Title"); } }

 Creating the DSL project.  Adding model elements. Properties.  Shapes.  Toolbox.  What this gives us – the generated code and partial class stuff.  Applying decorators. Calculated properties.  Associations and connector shapes. Toolbox.  Validation.  Adding menu items.  Customisation – custom element merge, custom shapes, etc.  Generating code off the thing.  Programmatically loading / modifying (store, txns, etc.)

 At compile time – code generation  At runtime – as just another object

Code Generation Options

 DSL and Package DLLs .vstemplate .xsd  Optional custom tool  No redistributables required for VS2008  Must install free redistributables for VS2005  DSL Tools includes rudimentary MSI generator

 Package load key  Free from VSIP program  Attributes must match DLL – new version, new PLK! “The most common cause of package load failures.”  Branding: register under InstalledPackages key  The curse of devenv /setup

Visual Studio Extensibility homepage:

 Cook, Jones, Kent & Wills, “Domain Specific Development with Visual Studio DSL Tools”  Same authors’ blogs on blogs.msdn.com  VSX developer centre on MSDN  Clarius T4 Editor