visual studio extensibility, dsl tools and t4 code generation

20
Visual Studio Extensibility, DSL Tools and T4 Code Generation Peter Goodman

Upload: alagan

Post on 24-Feb-2016

52 views

Category:

Documents


0 download

DESCRIPTION

Visual Studio Extensibility, DSL Tools and T4 Code Generation. Peter Goodman. Agenda. Visual Studio past and present Extensibility Options Extensibility Samples DSL Tools T4 Code Generation. Visual Studio Past and Present. Native Application 32-bit Large and old code base - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Visual Studio Extensibility, DSL Tools and T4 Code GenerationPeter Goodman

Page 2: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Agenda Visual Studio past and present Extensibility Options Extensibility Samples DSL Tools T4 Code Generation

Page 3: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Visual Studio Past and Present Native Application 32-bit Large and old code base Visual Studio – 1995 Visual Studio .Net – 2002 Since 2005 supports VS Hives

Page 4: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Why Extend?

Automate – it’s your job

Onboarding

Consistency

Page 5: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Extensibility Options Snippets Project Templates Item Templates Custom Commands

Toolbars Menus

Tool Windows Custom Tools Custom Designers Editor Extensions Custom Languages

Page 6: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Extensibility Options Macros

Add-ins

VS Packages

VS Shell

Page 7: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Extensibility Options

Visual Studio IDE

Package API

Interop Assemblies

Managed Package Framework

Custom Package A

Custom Package B

VSL

Native Package A

VC#

Automation

Macros Addins

Page 8: Visual Studio Extensibility, DSL Tools and T4 Code Generation

DemoVisual Studio Extensions

Page 9: Visual Studio Extensibility, DSL Tools and T4 Code Generation

DSL Tools Domain Specific Languages

Visual Designer

Custom XML File

Object Model and API

T4 Text Templating

Page 10: Visual Studio Extensibility, DSL Tools and T4 Code Generation

DemoDSL Tools

Page 11: Visual Studio Extensibility, DSL Tools and T4 Code Generation

DSL Tools

Page 12: Visual Studio Extensibility, DSL Tools and T4 Code Generation

T4 Text Templating Generates Text Files / Strings

ASP style syntax <# …. #>

Built into Visual Studio from VS 2010

Used by Entity Framework, MVC scaffolding, WCF RIA and other MS technologies

Now supports pre-processed templates

Page 13: Visual Studio Extensibility, DSL Tools and T4 Code Generation

DemoT4 Text Templating

Page 14: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Double Derived Pattern

public class MyGeneratedClass : IMyGeneratedClasses { public string DoFoo() { return ""; }}

Page 15: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Double Derived Pattern

public class MyGeneratedClass : MyGeneratedClassBase {}

public class MyGeneratedClassBase : IMyGeneratedClasses { public virtual string DoFoo() { return ""; }}

Page 16: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Double Derived Pattern

public partial class MyGeneratedClass : MyGeneratedClassBase {}

public class MyGeneratedClassBase : IMyGeneratedClasses { public virtual string DoFoo() { return ""; }}

Page 17: Visual Studio Extensibility, DSL Tools and T4 Code Generation
Page 18: Visual Studio Extensibility, DSL Tools and T4 Code Generation
Page 19: Visual Studio Extensibility, DSL Tools and T4 Code Generation

Questions?