You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/cross-platform/cross-platform-mobile-development-in-visual-studio.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -155,8 +155,8 @@ With Visual Studio Tools for Xamarin, you can target Android, iOS, and Windows i
155
155
|**Learn more**|
156
156
|--------------------|
157
157
|[Learn more about building Unity games with Visual Studio](https://visualstudio.microsoft.com/vs/features/game-development/#tab-4b0d0be8de5f65564ad)|
158
-
|[Read more about Visual Studio Tools for Unity](/gamedev/unity/get-started/visual-studio-tools-for-unity.md)|
159
-
|[Start using Visual Studio Tools for Unity](/gamedev/unity/get-started/getting-started-with-visual-studio-tools-for-unity.md)|
158
+
|[Read more about Visual Studio Tools for Unity](/visualstudio/gamedev/unity/get-started/visual-studio-tools-for-unity)|
159
+
|[Start using Visual Studio Tools for Unity](/visualstudio/gamedev/unity/get-started/getting-started-with-visual-studio-tools-for-unity)|
160
160
|[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)|
161
161
|[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)|
162
162
|[Learn about Unity](https://unity.com/) (Unity website)|
Copy file name to clipboardExpand all lines: docs/debugger/create-custom-visualizers-of-data.md
+45-2Lines changed: 45 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -67,7 +67,36 @@ To create the visualizer user interface on the debugger side, you create a class
67
67
68
68
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.
69
69
70
-
4. Apply <xref:System.Diagnostics.DebuggerVisualizerAttribute>, giving it the visualizer to display (<xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer>).
70
+
1. Apply <xref:System.Diagnostics.DebuggerVisualizerAttribute>, giving it the visualizer to display (<xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer>).
71
+
72
+
#### Special debugger side considerations for .NET 5.0+
73
+
74
+
Custom Visualizers transfer data between the *debuggee* and *debugger* sides through binary serialization using
75
+
the <xref:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter> class by default. However, that kind of
76
+
serialization is being curtailed in .NET 5 and above due to security concerns regarding its *unfixible* vulnerabilities.
77
+
Moreover, it has been marked completely obsolete in ASP.NET Core 5 and its usage will throw as described in the
Hence, this section describes the necessary steps that should be taken so that your visualizer is still supported in
80
+
this scenario.
81
+
82
+
- For compatibility reasons, the <xref:Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer.Show%2A> method
83
+
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>.
84
+
Therefore, cast the `objectProvider` object to the updated interface.
85
+
86
+
- When sending objects, like commands or data, to the *debuggee-side* use the `IVisualizerObjectProvider2.Serialize` method
87
+
to pass it to a stream, it will determine the best serialization format to use based on the runtime of the *debuggee* process.
88
+
Then, pass the stream to the `IVisualizerObjectProvider2.TransferData` method.
89
+
90
+
- If the *debuggee-side* visualizer component needs to return anything to the *debugger-side*, it will be located in the
91
+
<xref:System.IO.Stream> object returned by the <xref:Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.TransferData%2A>
92
+
method. Use the `IVisualizerObjectProvider2.GetDeserializableObjectFrom` method to get an
93
+
<xref:Microsoft.VisualStudio.DebuggerVisualizers.IDeserializableObject> instance from it and process it as required.
94
+
95
+
Please refer to the [Special debuggee side considerations for .NET 5.0+](#special-debuggee-side-considerations-for-net-50)
96
+
section to learn what other changes are required on the *debuggee-side* when using Binary Serialization is not supported.
97
+
98
+
> [!NOTE]
99
+
> If you would like more information on the issue, see the [BinaryFormatter security guide](/dotnet/standard/serialization/binaryformatter-security-guide).
71
100
72
101
### To create the visualizer object source for the debuggee side
73
102
@@ -89,11 +118,25 @@ In the debuggee-side code:
89
118
90
119
These are the only supported TFMs.
91
120
121
+
#### Special debuggee side considerations for .NET 5.0+
122
+
123
+
> [!IMPORTANT]
124
+
> Additional steps might be needed for a visualizer to work in .NET 5.0 and above due to security concerns regarding the underlying binary
125
+
serialization method used by default. Please read this [section](#special-debugger-side-considerations-for-net-50) before continuing.
126
+
127
+
- If the visualizer implements the <xref:Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.TransferData%2A> method,
128
+
use the newly added <xref:Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.GetDeserializableObject%2A> method that
129
+
is available in the latest version of `VisualizerObjectSource`. The <xref:Microsoft.VisualStudio.DebuggerVisualizers.IDeserializableObject>
130
+
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.
131
+
132
+
- If the *debuggee-side* returns data to the *debugger-side* as part of the `TransferData` call, serialize the response to the
133
+
*debugger-side's* stream via the <xref:Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.Serialize%2A> method.
134
+
92
135
## See also
93
136
94
137
-[Walkthrough: Write a visualizer in C#](../debugger/walkthrough-writing-a-visualizer-in-csharp.md)
95
138
-[Walkthrough: Write a visualizer in Visual Basic](../debugger/walkthrough-writing-a-visualizer-in-visual-basic.md)
96
139
-[How to: Install a visualizer](../debugger/how-to-install-a-visualizer.md)
97
140
-[How to: Test and debug a visualizer](../debugger/how-to-test-and-debug-a-visualizer.md)
98
141
-[Visualizer API reference](../debugger/visualizer-api-reference.md)
99
-
-[View data in the debugger](../debugger/viewing-data-in-the-debugger.md)
142
+
-[View data in the debugger](../debugger/viewing-data-in-the-debugger.md)
Copy file name to clipboardExpand all lines: docs/ide/creating-solutions-and-projects.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
-
title: "Create & use Visual Studio projects & solutions"
3
-
description: Learn about the difference between solutions and projects and how to use them in Visual Studio.
2
+
title: "Create projects & solutions"
3
+
description: Learn how to create and use Visual Studio solutions and projects to store artifacts.
4
4
ms.custom: "SEO-VS-2020, contperf-fy21q2"
5
5
ms.date: 06/14/2021
6
6
ms.topic: how-to
@@ -20,7 +20,7 @@ ms.workload:
20
20
21
21
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).
22
22
23
-
*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.
23
+
*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.
24
24
25
25

0 commit comments