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: src/ExtensionManager.VisualStudio.md
+4-11
Original file line number
Diff line number
Diff line change
@@ -2,26 +2,19 @@
2
2
3
3
These projects provide a facade around the Visual Studio API, streamlining the handling of different dependency versions.
4
4
5
-
## Problems & Solutions
5
+
## Proble & Solution
6
6
7
7
#### Version conflicts
8
8
9
9
Different major versions of Visual Studio require specific dependencies that may not be compatible with each other.
10
-
To manage this, separate projects are established for each Visual Studio version to specify their required dependency versions.
11
-
A shared project is also maintained to house the common code applicable across all versions.
12
10
13
-
#### API Facade
14
-
15
-
To simplify the codebase in SDK-style projects, direct interaction with the Visual Studio API is limited, due to the need for specific versions of dependencies across different Visual Studio versions.
16
-
17
-
An API facade abstracts away the complexity of the Visual Studio API, enabling the bulk of the code to interact with this facade rather than directly with varying versions of dependencies.
11
+
To manage this, an Abstractions project is created to define interfaces, which are then implemented in the various Vsix projects.
12
+
The implementation code of these abstractions is housed in a Shared project. This approach allows normal SDK projects to utilize the
13
+
functionality without needing to directly manage the dependencies for each Visual Studio version.
18
14
19
15
## Projects
20
16
21
17
| Project | Description |
22
18
|---|---|
23
19
| ExtensionManager.VisualStudio.Abstractions | Houses the facade abstraction |
24
-
| ExtensionManager.VisualStudio.VS2017 | Specifies dependencies for projects targeting Visual Studio 2017 |
25
-
| ExtensionManager.VisualStudio.VS2019 | Specifies dependencies for projects targeting Visual Studio 2019 |
26
-
| ExtensionManager.VisualStudio.VS2022 | Specifies dependencies for projects targeting Visual Studio 2022 |
27
20
| ExtensionManager.VisualStudio.Shared | Contains the implementation of the abstractions |
0 commit comments