SlideShare une entreprise Scribd logo
1  sur  20
Visual Studio Automation
Twin Cities Code Camp
April 5th 2014
Justin Wendlandt
jwendl@hotmail.com
@jwendl
http://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%MicrosoftVisualStudio12.0Extensions<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.NETFramework[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/

Contenu connexe

Tendances

KevinThet_Resume_2016
KevinThet_Resume_2016KevinThet_Resume_2016
KevinThet_Resume_2016
Kevin Thet
 

Tendances (20)

SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
 
Microsoft Azure Logic Apps - easy way to serverless
Microsoft Azure Logic Apps - easy way to serverlessMicrosoft Azure Logic Apps - easy way to serverless
Microsoft Azure Logic Apps - easy way to serverless
 
Manish_Gupta
Manish_GuptaManish_Gupta
Manish_Gupta
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
 
PowerShell Data as File System
PowerShell Data as File SystemPowerShell Data as File System
PowerShell Data as File System
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik Platform
 
O365Con18 - Security and Compliance - Liz Sundet
O365Con18 - Security and Compliance - Liz SundetO365Con18 - Security and Compliance - Liz Sundet
O365Con18 - Security and Compliance - Liz Sundet
 
[Vssummit] DevOps - Release Management VSTS
[Vssummit]   DevOps - Release Management VSTS[Vssummit]   DevOps - Release Management VSTS
[Vssummit] DevOps - Release Management VSTS
 
WordPress Themes deployment, licensing and automatic updates
WordPress Themes deployment, licensing and automatic updates WordPress Themes deployment, licensing and automatic updates
WordPress Themes deployment, licensing and automatic updates
 
Ubg Uniface 10 Version Control and Additions 2019
Ubg Uniface 10 Version Control and Additions 2019Ubg Uniface 10 Version Control and Additions 2019
Ubg Uniface 10 Version Control and Additions 2019
 
Csharp corner toronto vs2019 post launch 10 apr 2019 nilesh shah
Csharp corner toronto vs2019 post launch 10 apr 2019 nilesh shahCsharp corner toronto vs2019 post launch 10 apr 2019 nilesh shah
Csharp corner toronto vs2019 post launch 10 apr 2019 nilesh shah
 
Cross Platform Devops with Visual Studio Team Services
Cross Platform Devops with Visual Studio Team ServicesCross Platform Devops with Visual Studio Team Services
Cross Platform Devops with Visual Studio Team Services
 
Logic Apps a Beginner’s Guide
Logic Apps a Beginner’s GuideLogic Apps a Beginner’s Guide
Logic Apps a Beginner’s Guide
 
KevinThet_Resume_2016
KevinThet_Resume_2016KevinThet_Resume_2016
KevinThet_Resume_2016
 
Continuous integration - ThangTD
Continuous integration - ThangTDContinuous integration - ThangTD
Continuous integration - ThangTD
 
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van HunenSPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
 
Develop Your Own Path On Microsoft Azure
Develop Your Own Path On Microsoft AzureDevelop Your Own Path On Microsoft Azure
Develop Your Own Path On Microsoft Azure
 
Our Journey to OpenStack with MidoNet
Our Journey to OpenStack with MidoNetOur Journey to OpenStack with MidoNet
Our Journey to OpenStack with MidoNet
 

Similaire à Visual Studio Automation

Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
Jeremy Thake
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online
Moataz Nabil
 
Is Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 WebinarIs Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 Webinar
C/D/H Technology Consultants
 
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
SPTechCon
 

Similaire à Visual Studio Automation (20)

Staying connected: An Overview of Announcements from Microsoft’s Connect();
Staying connected: An Overview of Announcements from Microsoft’s Connect();Staying connected: An Overview of Announcements from Microsoft’s Connect();
Staying connected: An Overview of Announcements from Microsoft’s Connect();
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
My personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev opsMy personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev ops
 
Mastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net TricksMastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net Tricks
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online
 
Accelerating time to delivery - Modern tools for COBOL development
Accelerating time to delivery - Modern tools for COBOL developmentAccelerating time to delivery - Modern tools for COBOL development
Accelerating time to delivery - Modern tools for COBOL development
 
Leveraging Microsoft Azure for Next Gen App Development
Leveraging Microsoft Azure for Next Gen App DevelopmentLeveraging Microsoft Azure for Next Gen App Development
Leveraging Microsoft Azure for Next Gen App Development
 
Is Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 WebinarIs Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 Webinar
 
Azure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusabilityAzure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusability
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
Accelerating time to delivery: Modernizing Application Development
Accelerating time to delivery: Modernizing Application DevelopmentAccelerating time to delivery: Modernizing Application Development
Accelerating time to delivery: Modernizing Application Development
 
Release Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnPRelease Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnP
 
Accelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentAccelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol development
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...
 
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Getting Started With Coded UI testing: Building Your First Automated Test
Getting Started With Coded UI testing: Building Your First Automated TestGetting Started With Coded UI testing: Building Your First Automated Test
Getting Started With Coded UI testing: Building Your First Automated Test
 

Dernier

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Dernier (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

Visual Studio Automation

  • 1. Visual Studio Automation Twin Cities Code Camp April 5th 2014 Justin Wendlandt jwendl@hotmail.com @jwendl http://www.jwendl.net/
  • 2. Why I Develop Applications • Laziness • Automation • Applied Computer Science
  • 3. Integrated Development Environments • In College  VIM  Eclipse  CLI • Professional World  Visual Studio  SQL Server Management Studio
  • 4. 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
  • 5. 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%MicrosoftVisualStudio12.0Extensions<Company>< Product><Version>
  • 6. Demo – Simple Project Templates
  • 7. 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
  • 8. Demo – Complex Project Template
  • 9. T4 Templates • Code Generation • Resembles Classic ASP • Run Entirely from Visual Studio
  • 10. T4 Templates using EF or ADO.NET
  • 11. T4 Templates using the File System / DTE • POCO based on Interfaces
  • 12. Word to the Wise • Use with caution • Only use when re-iterating multiple patterns • Attempt to use Generics instead
  • 13. Visual Studio DTE • Complex object model • Support for Solutions, Projects and Files
  • 14. How MSBuild and .csproj Files Work
  • 16. MSBuild Definition XML Schema • XSD exists to describe every option in MSBuild  %windir%Microsoft.NETFramework[version]MSBuild • Get latest version of .net by using  wmic product where "name like 'Microsoft .N%'" get Version
  • 19. Online Repository of Templates • Side Waffle  http://sidewaffle.com/
  • 20. Questions? • Twitter: @jwendl • Email: jwendl@hotmail.com • Web: http://www.jwendl.net/