Visual Studio Automation

Post on 13-May-2015

185 views 4 download

Tags:

transcript

Visual Studio AutomationTwin Cities Code CampApril 5th 2014

Justin Wendlandtjwendl@hotmail.com

@jwendlhttp://www.jwendl.net/

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

Integrated Development Environments• In College

VIM Eclipse CLI

• Professional World Visual Studio SQL Server Management Studio

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

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>\

Demo – Simple Project Templates

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

Demo – Complex Project Template

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

Studio

T4 Templates using EF or ADO.NET

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

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

patterns• Attempt to use Generics instead

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

and Files

How MSBuild and .csproj Files Work

Customization of MSBuild Definitions

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

TFS Build Automation

Customization of Build Templates

Online Repository of Templates• Side Waffle

http://sidewaffle.com/

Questions?• Twitter: @jwendl• Email: jwendl@hotmail.com• Web: http://www.jwendl.net/