Visual Studio Automation

20
Visual Studio Automation Twin Cities Code Camp April 5 th 2014 Justin Wendlandt [email protected] @jwendl http://www.jwendl.net/

Transcript of Visual Studio Automation

Page 1: Visual Studio Automation

Visual Studio AutomationTwin Cities Code CampApril 5th 2014

Justin [email protected]

@jwendlhttp://www.jwendl.net/

Page 2: Visual Studio Automation

Why I Develop Applications• Laziness• Automation• Applied Computer Science

Page 3: Visual Studio Automation

Integrated Development Environments• In College

VIM Eclipse CLI

• Professional World Visual Studio SQL Server Management Studio

Page 4: Visual Studio Automation

Extensibility Models for Visual Studio• Visual Studio Visual Studio Project Templates• Visual Studio Item Templates• T4 Code Templates• NuGet packaging• DTE development against the Visual Studio COM API• Build Automation via MSBuild or TFS

Page 5: Visual Studio Automation

Visual Studio Project Templates - Simple• File extensions are stored in a file with a .vsix file extension• Visual Studio SDK is Required• For Visual Studio 2013

http://www.microsoft.com/en-us/download/details.aspx?id=40758• Installed Extensions for Visual Studio 2013 are located %LocalAppData%\

Microsoft\VisualStudio\12.0\Extensions\<Company>\<Product>\<Version>\

Page 6: Visual Studio Automation

Demo – Simple Project Templates

Page 7: Visual Studio Automation

What is Still Missing?• Ability to have multiple projects on the solution• Ability to have NuGet automatically fetch associated dependencies• Name the project when opening up the solution file• Adding multiple item templates when creating the solution and projects

Page 8: Visual Studio Automation

Demo – Complex Project Template

Page 9: Visual Studio Automation

T4 Templates• Code Generation• Resembles Classic ASP• Run Entirely from Visual

Studio

Page 10: Visual Studio Automation

T4 Templates using EF or ADO.NET

Page 11: Visual Studio Automation

T4 Templates using the File System / DTE• POCO based on Interfaces

Page 12: Visual Studio Automation

Word to the Wise• Use with caution• Only use when re-iterating multiple

patterns• Attempt to use Generics instead

Page 13: Visual Studio Automation

Visual Studio DTE• Complex object model• Support for Solutions, Projects

and Files

Page 14: Visual Studio Automation

How MSBuild and .csproj Files Work

Page 15: Visual Studio Automation

Customization of MSBuild Definitions

Page 16: Visual Studio Automation

MSBuild Definition XML Schema• XSD exists to describe every option in MSBuild

%windir%\Microsoft.NET\Framework\[version]\MSBuild• Get latest version of .net by using

wmic product where "name like 'Microsoft .N%'" get Version

Page 17: Visual Studio Automation

TFS Build Automation

Page 18: Visual Studio Automation

Customization of Build Templates

Page 19: Visual Studio Automation

Online Repository of Templates• Side Waffle

http://sidewaffle.com/

Page 20: Visual Studio Automation

Questions?• Twitter: @jwendl• Email: [email protected]• Web: http://www.jwendl.net/