
- •Table of Contents
- •About the Author
- •About the Technical Reviewer
- •Acknowledgments
- •Introduction
- •Installing Visual Studio
- •Visual Studio 2022 System Requirements
- •Operating Systems
- •Hardware
- •Supported Languages
- •Additional Notes
- •Visual Studio Is 64-Bit
- •Full .NET 6.0 Support
- •Using Workloads
- •The Solution Explorer
- •Toolbox
- •The Code Editor
- •New Razor Editor
- •What’s Available?
- •Hot Reload
- •Navigating Code
- •Navigate Forward and Backward Commands
- •Navigation Bar
- •Find All References
- •Find Files Faster
- •Reference Highlighting
- •Peek Definition
- •Subword Navigation
- •Features and Productivity Tips
- •Track Active Item in Solution Explorer
- •Hidden Editor Context Menu
- •Open in File Explorer
- •Finding Keyboard Shortcut Mappings
- •Clipboard History
- •Go To Window
- •Navigate to Last Edit Location
- •Multi-caret Editing
- •Sync Namespaces to Match Your Folder Structure
- •Paste JSON As Classes
- •Enable Code Cleanup on Save
- •Add Missing Using on Paste
- •Features in Visual Studio 2022
- •Visual Studio Search
- •Solution Filters
- •Visual Studio IntelliCode
- •Whole Line Completions
- •Visual Studio Live Share
- •Summary
- •Visual Studio Project Types
- •Various Project Templates
- •Console Applications
- •Windows Forms Application
- •Windows Service
- •Web Applications
- •Class Library
- •MAUI
- •Creating a MAUI Application
- •Pairing to Mac for iOS Development
- •Consuming REST Services in MAUI
- •The Complete Weather App
- •The Target Platforms
- •The Required NuGet Package
- •The Weather Models
- •The WeatherService
- •The MainViewModel
- •Registering Dependencies
- •Building the MainPage View
- •Using SQLite in a MAUI Application
- •The ToDoItem Model
- •The ToDoService
- •The MainViewModel
- •Registering Dependencies
- •Building the MainPage View
- •Managing NuGet Packages
- •Using NuGet in Visual Studio
- •Hosting Your Own NuGet Feeds
- •Managing nmp Packages
- •Creating Project Templates
- •Creating and Using Code Snippets
- •Creating Code Snippets
- •Using Bookmarks and Code Shortcuts
- •Bookmarks
- •Code Shortcuts
- •Adding Custom Tokens
- •The Server Explorer
- •Running SQL Queries
- •Visual Studio Windows
- •C# Interactive
- •Code Metrics Results
- •Maintainability Index
- •Cyclomatic Complexity
- •Class Coupling
- •Send Feedback
- •Personalizing Visual Studio
- •Adjust Line Spacing
- •Document Management Customizations
- •The Document Close Button
- •Modify the Dirty Indicator
- •Show Invisible Tabs in Italics in the Tab Drop-Down
- •Colorize Document Tabs
- •Tab Placement
- •Visual Studio Themes
- •Summary
- •Setting a Breakpoint
- •Step into Specific
- •Run to Click
- •Run to Cursor
- •Force Run to Cursor
- •Conditional Breakpoints and Actions
- •Temporary Breakpoints
- •Dependent Breakpoints
- •Dragging Breakpoints
- •Manage Breakpoints with Labels
- •Exporting Breakpoints
- •Using DataTips
- •Visualizing Complex Data Types
- •Bonus Tip
- •Using the Watch Window
- •The DebuggerDisplay Attribute
- •Evaluate Functions Without Side Effects
- •Format Specifiers
- •dynamic
- •hidden
- •results
- •Diagnostic Tools
- •CPU Usage
- •Memory Usage
- •The Events View
- •The Right Tool for the Right Project Type
- •Immediate Window
- •Attaching to a Running Process
- •Attach to a Remote Process
- •Remote Debugger Port Assignments
- •Remote Debugging
- •System Requirements
- •Download and Install Remote Tools
- •Running Remote Tools
- •Start Remote Debugging
- •Summary
- •Creating and Running Unit Tests
- •Create and Run a Test Playlist
- •Testing Timeouts
- •Using Live Unit Tests
- •Using IntelliTest to Generate Unit Tests
- •Focus IntelliTest Code Exploration
- •How to Measure Code Coverage in Visual Studio
- •Summary
- •Create a GitHub Account
- •Create and Clone a Repository
- •Create a Branch from Your Code
- •Creating and Handling Pull Requests
- •Multi-repo Support
- •Compare Branches
- •Check Out Commit
- •Line Staging
- •Summary
- •Index

Chapter 2 Working with Visual Studio 2022
Figure 2-80. Adjust line spacing
Admittedly, the options might not suit everyone, and I hope that Visual Studio allows custom values to be entered here in a future release. Nevertheless, being able to space the lines of code vertically is a quality-of-life improvement for many developers that spend most of their working day in front of Visual Studio.
Document Management Customizations
There are several small but welcome changes to how developers manage documents. The Document Tabs group under Tools, Options, Environment, Tabs, and Windows has had several new options added compared to previous versions of Visual Studio. Let’s have a look at some of these.
157

Chapter 2 Working with Visual Studio 2022
The Document Close Button
Developers now have options when deciding how to show the close button for documents. You now have the option to add the close button to the document well, as seen in Figure 2-81.
Figure 2-81. Show close button in document well
You can also remove the close button from the individual document tabs, as seen in Figure 2-82, leaving you with a single close button.
Figure 2-82. Remove close button on tabs
You can also opt to remove the close button from the document well as well as from the document tab. You can then right-click the document to close it.
Modify the Dirty Indicator
Developers can now choose how they would like to display dirty tabs. The default is an asterisk to the right of the file name, as seen in Figure 2-83.
Figure 2-83. The default dirty indicator
You can also change this indicator to be a dot, as seen in Figure 2-84.
Figure 2-84. The dot dirty indicator
158

Chapter 2 Working with Visual Studio 2022
The dot does make the tab slightly bigger, but it is a more explicit indicator that the document has unsaved changes. What is nice, however, is that if you have set the close button to be visible on document tabs, the dot will change into a close button when you hover over it.
Show Invisible Tabs in Italics in the Tab Drop-Down
The ability to display hidden tabs in italics is something you might not know that you want until you see it in action. The tab drop-down displays all your open tabs, as seen in Figure 2-85.
Figure 2-85. Invisible tabs not in italics
The trick is knowing which documents are currently visible and which are not. With this option set to show hidden documents in italics, the hidden tabs are immediately discernable, as seen in Figure 2-86. This is especially helpful when looking
at that Program.cs file.
Figure 2-86. Invisible tabs displayed in italics
159

Chapter 2 Working with Visual Studio 2022
Colorize Document Tabs
I’m sure the images displayed here will not be in color if you read the print book. Showing the color changes on tabs will, therefore, not make sense. Instead, I will show you where you can change this option.
As seen in Figure 2-87, you can colorize document tabs by Project or File Extension (or choose no coloring, which is the default). Playing around with this option allows you to find a setting that is convenient for you.
Figure 2-87. Colorizing document tabs
If you don’t like the default color for the tab, right-click the tab and select the Set Tab Color option to choose a color more to your liking.
Being able to colorize document tabs help developers cut through the noise when working in multiple tabs, especially on large projects.
Tab Placement
The ability to choose the tab placement is something many of you might welcome.
160

Chapter 2 Working with Visual Studio 2022
As seen in Figure 2-88, the tabs can be displayed on the left or, as in Figure 2-89, on the right.
Figure 2-88. Document tabs on the left
Figure 2-89. Document tabs on the right
The left and right placement of tabs also highlights the color options better.
161