Skip to content

Repo sync for protected CLA branch #6860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Jul 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e379e92
Add direct mentions and links to high value keyword (INTERNAL)
j-martens Jul 8, 2021
53a84a1
Initial version for .NET 5.0 additional considerations
mpeyrotc Jul 12, 2021
396c0f0
Address Comments
mpeyrotc Jul 12, 2021
d09b7d2
Fix additional warnings
mpeyrotc Jul 12, 2021
160147f
Fix bad interface name.
mpeyrotc Jul 13, 2021
36c115f
Move new docs to another page
mpeyrotc Jul 13, 2021
2c3528a
fix broken bookmark links
mpeyrotc Jul 13, 2021
611458a
Remove outdated group
ghogen Jul 14, 2021
137c8a2
Remove oudated setting
ghogen Jul 14, 2021
4b19c06
Remove moniker range
ghogen Jul 14, 2021
466bbbc
Update default.md
j-martens Jul 14, 2021
2901620
add 17.0.0 Preview 2 info
TerryGLee Jul 14, 2021
495a21c
Merge pull request #8380 from j-martens/patch-79
PRMerger7 Jul 14, 2021
350c258
Merge pull request #8381 from TerryGLee/tglee-install
PRMerger12 Jul 14, 2021
b22c17f
Merge pull request #8379 from ghogen/repo-hygiene
ghogen Jul 14, 2021
fe7a59b
Pencil edits
denrea Jul 14, 2021
85ae3ad
Merge pull request #8354 from j-martens/patch-75
PRMerger13 Jul 14, 2021
809475c
Merge pull request #8364 from mpeyrotc/mapeyrot/update_visualizer_doc…
denrea Jul 14, 2021
e02e3d5
update the Update date
TerryGLee Jul 14, 2021
98426dd
Merge pull request #8385 from TerryGLee/tglee-patch
PRMerger19 Jul 14, 2021
f4c14c5
fixes MicrosoftDocs/visualstudio-docs/issues/6800 -- link typos
WilliamAntonRohm Jul 14, 2021
29c9113
fixes MicrosoftDocs/visualstudio-docs/issues/6800 -- link typos
WilliamAntonRohm Jul 14, 2021
154f124
Merge pull request #8386 from WilliamAntonRohm/issue-6800
PRMerger15 Jul 14, 2021
2e1ad0f
Merge branch 'master' into live
cxwtool Jul 14, 2021
d707597
Merging changes synced from https://github.com/MicrosoftDocs/visualst…
ghogen Jul 14, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .openpublishing.publish.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
"locale": "en-us",
"monikers": [],
"moniker_ranges": [
"vs-2015",
">= vs-2017"
],
"xref_query_tags": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,8 @@ With Visual Studio Tools for Xamarin, you can target Android, iOS, and Windows i
|**Learn more**|
|--------------------|
|[Learn more about building Unity games with Visual Studio](https://visualstudio.microsoft.com/vs/features/game-development/#tab-4b0d0be8de5f65564ad)|
|[Read more about Visual Studio Tools for Unity](/gamedev/unity/get-started/visual-studio-tools-for-unity.md) |
|[Start using Visual Studio Tools for Unity](/gamedev/unity/get-started/getting-started-with-visual-studio-tools-for-unity.md) |
|[Read more about Visual Studio Tools for Unity](/visualstudio/gamedev/unity/get-started/visual-studio-tools-for-unity) |
|[Start using Visual Studio Tools for Unity](/visualstudio/gamedev/unity/get-started/getting-started-with-visual-studio-tools-for-unity) |
|[Read about the latest enhancements to the Visual Studio Tools for Unity 2.0 Preview](https://devblogs.microsoft.com/visualstudio/visual-studio-tools-for-unity-2-0-preview/) (Visual Studio blog)|
|[Watch a video introduction to the Visual Studio Tools for Unity 2.0 Preview](https://www.bing.com/videos/search?q=visual+studio+tools+for+unity&qs=n&form=QBVLPG&pq=visual+studio+tools+for+unity&sc=6-29&sp=-1&sk=#view=detail&mid=0A13177F0BC7463A24080A13177F0BC7463A2408&preserve-view=true) (Video)|
|[Learn about Unity](https://unity.com/) (Unity website)|
Expand Down
47 changes: 45 additions & 2 deletions docs/debugger/create-custom-visualizers-of-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,36 @@ To create the visualizer user interface on the debugger side, you create a class

1. Override the <xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer.Show%2A?displayProperty=fullName> method to display your interface. Use <xref:Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService> methods to display Windows forms, dialogs, and controls in your interface.

4. Apply <xref:System.Diagnostics.DebuggerVisualizerAttribute>, giving it the visualizer to display (<xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer>).
1. Apply <xref:System.Diagnostics.DebuggerVisualizerAttribute>, giving it the visualizer to display (<xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer>).

#### Special debugger side considerations for .NET 5.0+

Custom Visualizers transfer data between the *debuggee* and *debugger* sides through binary serialization using
the <xref:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter> class by default. However, that kind of
serialization is being curtailed in .NET 5 and above due to security concerns regarding its *unfixible* vulnerabilities.
Moreover, it has been marked completely obsolete in ASP.NET Core 5 and its usage will throw as described in the
[ASP.NET Core Documentation](/dotnet/core/compatibility/core-libraries/5.0/binaryformatter-serialization-obsolete).
Hence, this section describes the necessary steps that should be taken so that your visualizer is still supported in
this scenario.

- For compatibility reasons, the <xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer.Show%2A> method
that was overridden in the preceding section still takes in an <xref:Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider>. Nonetheless, it is actually of type <xref:Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider2>.
Therefore, cast the `objectProvider` object to the updated interface.

- When sending objects, like commands or data, to the *debuggee-side* use the `IVisualizerObjectProvider2.Serialize` method
to pass it to a stream, it will determine the best serialization format to use based on the runtime of the *debuggee* process.
Then, pass the stream to the `IVisualizerObjectProvider2.TransferData` method.

- If the *debuggee-side* visualizer component needs to return anything to the *debugger-side*, it will be located in the
<xref:System.IO.Stream> object returned by the <xref:Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.TransferData%2A>
method. Use the `IVisualizerObjectProvider2.GetDeserializableObjectFrom` method to get an
<xref:Microsoft.VisualStudio.DebuggerVisualizers.IDeserializableObject> instance from it and process it as required.

Please refer to the [Special debuggee side considerations for .NET 5.0+](#special-debuggee-side-considerations-for-net-50)
section to learn what other changes are required on the *debuggee-side* when using Binary Serialization is not supported.

> [!NOTE]
> If you would like more information on the issue, see the [BinaryFormatter security guide](/dotnet/standard/serialization/binaryformatter-security-guide).

### To create the visualizer object source for the debuggee side

Expand All @@ -89,11 +118,25 @@ In the debuggee-side code:

These are the only supported TFMs.

#### Special debuggee side considerations for .NET 5.0+

> [!IMPORTANT]
> Additional steps might be needed for a visualizer to work in .NET 5.0 and above due to security concerns regarding the underlying binary
serialization method used by default. Please read this [section](#special-debugger-side-considerations-for-net-50) before continuing.

- If the visualizer implements the <xref:Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.TransferData%2A> method,
use the newly added <xref:Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.GetDeserializableObject%2A> method that
is available in the latest version of `VisualizerObjectSource`. The <xref:Microsoft.VisualStudio.DebuggerVisualizers.IDeserializableObject>
it returns helps to determine the object's serialization format (binary or JSON) and to deserialize the underlying object so that it may be used.

- If the *debuggee-side* returns data to the *debugger-side* as part of the `TransferData` call, serialize the response to the
*debugger-side's* stream via the <xref:Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.Serialize%2A> method.

## See also

- [Walkthrough: Write a visualizer in C#](../debugger/walkthrough-writing-a-visualizer-in-csharp.md)
- [Walkthrough: Write a visualizer in Visual Basic](../debugger/walkthrough-writing-a-visualizer-in-visual-basic.md)
- [How to: Install a visualizer](../debugger/how-to-install-a-visualizer.md)
- [How to: Test and debug a visualizer](../debugger/how-to-test-and-debug-a-visualizer.md)
- [Visualizer API reference](../debugger/visualizer-api-reference.md)
- [View data in the debugger](../debugger/viewing-data-in-the-debugger.md)
- [View data in the debugger](../debugger/viewing-data-in-the-debugger.md)
63 changes: 6 additions & 57 deletions docs/docfx.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,8 @@
"vsdocsdocs/**",
"**/includes/**"
],
"src": "./vs-2015",
"group": "vs-2015"
},
{
"files": [
"**/*.md",
"**/*.yml"
],
"exclude": [
"**/obj/**",
"vsdocsdocs/**",
"**/includes/**",
"vs-2015/**"
],
"src": "./",
"group": "vs-2017-2019"
"group": "vs"
}
],
"resource": [
Expand All @@ -42,24 +28,8 @@
"vsdocsdocs/**",
"**/includes/**"
],
"src": "./vs-2015",
"group": "vs-2015"
},
{
"files": [
"**/*.png",
"**/*.jpg",
"**/*.gif",
"**/*.svg"
],
"exclude": [
"**/obj/**",
"vsdocsdocs/**",
"**/includes/**",
"vs-2015/**"
],
"src": "./",
"group": "vs-2017-2019"
"group": "vs"
}
],
"overwrite": [],
Expand Down Expand Up @@ -88,12 +58,8 @@
"recommendations": true
},
"fileMetadata": {
"open_to_public_contributors": {
"vs-2015/**/**.md": false
},
"ms.prod": {
"rtvs/**/**.md": "visual-studio-dev15",
"vs-2015/**/**.md": "visual-studio-dev14"
"rtvs/**/**.md": "visual-studio-dev15"
},
"monikerRange": {
"rtvs/**/**.md": "vs-2017"
Expand Down Expand Up @@ -124,27 +90,14 @@
"xml-tools/**/**.md": "vs-xml-tools"
},
"titleSuffix": {
"ai/**/**.md": "AI tools for Visual Studio",
"vs-2015/**/**.md": "Visual Studio 2015"
},
"breadcrumb_path": {
"vs-2015/**/*.md": "/visualstudio/_breadcrumb/vs-2015/toc.json"
"ai/**/**.md": "AI tools for Visual Studio"
},
"feedback_system": {
"vs-2015/**/*": "None",
"extensibility/**/*": "None"
},
"searchScope": {
"extensibility/**/*.md": [
"VS Extensibility"
],
"vs-2015/extensibility/**/*.md": [
"VS Extensibility"
]
},
"exclude_monikers": {
"vs-2015/**/*.md": [
"vs-2015"
]
}
},
Expand All @@ -153,12 +106,8 @@
"markdownEngineName": "markdig",
"xref": [],
"groups": {
"vs-2015": {
"dest": "vs-2015-dest",
"moniker_range": "vs-2015"
},
"vs-2017-2019": {
"dest": "vs-2017-2019-dest",
"vs": {
"dest": "vs-dest",
"moniker_range": ">= vs-2017"
}
}
Expand Down
6 changes: 3 additions & 3 deletions docs/ide/creating-solutions-and-projects.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Create & use Visual Studio projects & solutions"
description: Learn about the difference between solutions and projects and how to use them in Visual Studio.
title: "Create projects & solutions"
description: Learn how to create and use Visual Studio solutions and projects to store artifacts.
ms.custom: "SEO-VS-2020, contperf-fy21q2"
ms.date: 06/14/2021
ms.topic: how-to
Expand All @@ -20,7 +20,7 @@ ms.workload:

In this article, you'll learn how to create and use Visual Studio projects from scratch to store the artifacts you need to build your apps. If you aren't familiar with projects in Visual Studio, see this overview of [Projects and Solutions](solutions-and-projects-in-visual-studio.md). To learn how to quickly create a project from a template, see [Create a project from a template](create-new-project.md).

*Projects* hold the items needed to build your app in Visual Studio, such as source code files, bitmaps, icons, and component and service references. When you create a new project, Visual Studio creates a *solution* to contain the project. You can then add other new or existing projects to the solution if you want. Solutions can also contain files that aren't connected to any specific project.
*Projects* hold the items needed to build your app in Visual Studio, such as source code files, bitmaps, icons, and component and service references. When you create a new project, Visual Studio creates a *solution* to contain the project. You can then add other new or existing projects to the solution if you want. You can also create [blank or empty solutions](#create-empty-solutions). Solutions can also contain files that aren't connected to any specific project.

![Diagram showing the solution and project hierarchy.](./media/vside-proj-soln.png)

Expand Down
6 changes: 4 additions & 2 deletions docs/ide/not-in-toc/default.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,7 @@ We're sorry! It looks like we couldn't find what you were looking for.

## Help us serve you better

Tell us where you were in the product and what help you needed.
<br/>Use the `This Page` feedback button at the bottom of this page.
We'd love to get your feedback on how to provide the help you need.

> [!div class="nextstepaction"]
> [Share your feedback (5 minute survey)](https://www.surveymonkey.com/r/F1_Help_Visual_Studio)
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: A list of released versions and build numbers for Visual Studio, so
author: TerryGLee
ms.author: tglee
manager: jmartens
ms.date: 07/13/2021
ms.date: 07/14/2021
ms.topic: reference
ms.workload:
- multiple
Expand Down