SlideShare a Scribd company logo
1 of 9
Modern day C# development
in Visual Studio 2017
Kevin Pilch
@Pilchie
kevinpi@microsoft.com
Solution Load + Switching branches
• Large solutions load about twice as fast based on our telemetry
• Here’s a video that highlights some of the recent changes
• Still looking at further improvements
• Web
• Small projects
• Etc
• Branch switch history: n^2 project reload -> solution reload -> fast reload
• Do it inside VS!
Unit testing
• Way faster test discovery – based on source instead of built
assemblies
• Hierarchical test view
• Responsive icons
• Live Unit Testing
Editing
• Expand/Contract selection with Ctrl+Shift+ +/-
• Duplicate Line with Ctrl+D
• Go to Decompiled source with F12
• (Enable at ToolsOptionsText EditorC#Advanced)
• Go to virtual/abstract method with F12 on “override”
• Variable captures in quick info by hovering over =>
• Multiple caret support with Ctrl + Alt + LeftMouseClick, then Shift +
Alt + Ins
• Go to member in current document with Alt+`
• One click cleanup with Ctrl+K, D
• ReSharper keyboard scheme in ToolsOptionsEnvironmentKeyboard
Quick Fixes and Refactorings
• Add using for NuGet packages
• Enable at ToolsOptionsText EditorC#Advanced
• Toggle `var`/explicit type
• Make `readonly`
• Convert `foreach` to `for`
• Convert Linq query to `foreach`
• Invert `if`
• Add parameter from callsite
• Source control merge markers
Code Style and .editorconfig
• `var`/explicit type
• `this.`
• Naming conventions
• Modifiers
• Require braces
• Use ternary
• Use object/collection initializers
• Null checks, pattern matching, out vars, default expressions, tuples
Debugging
• Run to cursor
• Null reference exception details
• Faster stepping
Resources
• Get VS 2017: aka.ms/vs
• VS2017 Productivity Guide: aka.ms/vs2017guide
• Report performance issues: aka.msVSPerf
• EditorConfig Code Style: aka.ms/editorconfigDocs
• Refactoring Docs: aka.ms/refactorings
• Visual Studio IntelliCode Preview: aka.ms/VSIntelliCode
• Visual Studio Live Share Preview: aka.ms/vsls
• Getting Started with Roslyn: aka.ms/roslyn-analyzers
TITANIUM SPONSORS
Platinum Sponsors
Gold Sponsors

More Related Content

Similar to KCDC 2018 - Modern day C# development in Visual Studio 2017

EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2
ryanirelan
 

Similar to KCDC 2018 - Modern day C# development in Visual Studio 2017 (20)

Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
What's new in visual studio 2017
What's new in visual studio 2017What's new in visual studio 2017
What's new in visual studio 2017
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
Accelerate Develoment with VIrtual Data
Accelerate Develoment with VIrtual DataAccelerate Develoment with VIrtual Data
Accelerate Develoment with VIrtual Data
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'
 
Extreme Makeover OnBase Edition
Extreme Makeover OnBase EditionExtreme Makeover OnBase Edition
Extreme Makeover OnBase Edition
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
Devops Companies in Bangalore - Mobinius
Devops Companies in Bangalore - MobiniusDevops Companies in Bangalore - Mobinius
Devops Companies in Bangalore - Mobinius
 
Development Workflow in Kubernetes
Development Workflow in KubernetesDevelopment Workflow in Kubernetes
Development Workflow in Kubernetes
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case study
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
 
Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014
 
JavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as code
 
EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
 
What is Delphix
What is DelphixWhat is Delphix
What is Delphix
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

KCDC 2018 - Modern day C# development in Visual Studio 2017

  • 1. Modern day C# development in Visual Studio 2017 Kevin Pilch @Pilchie kevinpi@microsoft.com
  • 2. Solution Load + Switching branches • Large solutions load about twice as fast based on our telemetry • Here’s a video that highlights some of the recent changes • Still looking at further improvements • Web • Small projects • Etc • Branch switch history: n^2 project reload -> solution reload -> fast reload • Do it inside VS!
  • 3. Unit testing • Way faster test discovery – based on source instead of built assemblies • Hierarchical test view • Responsive icons • Live Unit Testing
  • 4. Editing • Expand/Contract selection with Ctrl+Shift+ +/- • Duplicate Line with Ctrl+D • Go to Decompiled source with F12 • (Enable at ToolsOptionsText EditorC#Advanced) • Go to virtual/abstract method with F12 on “override” • Variable captures in quick info by hovering over => • Multiple caret support with Ctrl + Alt + LeftMouseClick, then Shift + Alt + Ins • Go to member in current document with Alt+` • One click cleanup with Ctrl+K, D • ReSharper keyboard scheme in ToolsOptionsEnvironmentKeyboard
  • 5. Quick Fixes and Refactorings • Add using for NuGet packages • Enable at ToolsOptionsText EditorC#Advanced • Toggle `var`/explicit type • Make `readonly` • Convert `foreach` to `for` • Convert Linq query to `foreach` • Invert `if` • Add parameter from callsite • Source control merge markers
  • 6. Code Style and .editorconfig • `var`/explicit type • `this.` • Naming conventions • Modifiers • Require braces • Use ternary • Use object/collection initializers • Null checks, pattern matching, out vars, default expressions, tuples
  • 7. Debugging • Run to cursor • Null reference exception details • Faster stepping
  • 8. Resources • Get VS 2017: aka.ms/vs • VS2017 Productivity Guide: aka.ms/vs2017guide • Report performance issues: aka.msVSPerf • EditorConfig Code Style: aka.ms/editorconfigDocs • Refactoring Docs: aka.ms/refactorings • Visual Studio IntelliCode Preview: aka.ms/VSIntelliCode • Visual Studio Live Share Preview: aka.ms/vsls • Getting Started with Roslyn: aka.ms/roslyn-analyzers