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

Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Dernier (20)

Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 

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/