visual studio automation
TRANSCRIPT
![Page 1: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/1.jpg)
Visual Studio AutomationTwin Cities Code CampApril 5th 2014
Justin [email protected]
@jwendlhttp://www.jwendl.net/
![Page 2: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/2.jpg)
Why I Develop Applications• Laziness• Automation• Applied Computer Science
![Page 3: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/3.jpg)
Integrated Development Environments• In College
VIM Eclipse CLI
• Professional World Visual Studio SQL Server Management Studio
![Page 4: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/6.jpg)
Demo – Simple Project Templates
![Page 7: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/8.jpg)
Demo – Complex Project Template
![Page 9: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/9.jpg)
T4 Templates• Code Generation• Resembles Classic ASP• Run Entirely from Visual
Studio
![Page 10: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/10.jpg)
T4 Templates using EF or ADO.NET
![Page 11: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/11.jpg)
T4 Templates using the File System / DTE• POCO based on Interfaces
![Page 12: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/12.jpg)
Word to the Wise• Use with caution• Only use when re-iterating multiple
patterns• Attempt to use Generics instead
![Page 13: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/13.jpg)
Visual Studio DTE• Complex object model• Support for Solutions, Projects
and Files
![Page 14: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/14.jpg)
How MSBuild and .csproj Files Work
![Page 15: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/15.jpg)
Customization of MSBuild Definitions
![Page 16: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/17.jpg)
TFS Build Automation
![Page 18: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/18.jpg)
Customization of Build Templates
![Page 19: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/19.jpg)
Online Repository of Templates• Side Waffle
http://sidewaffle.com/
![Page 20: Visual Studio Automation](https://reader035.vdocuments.site/reader035/viewer/2022081421/55526d9eb4c9052e1f8b5135/html5/thumbnails/20.jpg)
Questions?• Twitter: @jwendl• Email: [email protected]• Web: http://www.jwendl.net/