Welcome to the Roslyn C# and Visual Basic project system
In the Visual Studio "15" timeframe, the C# and Visual Basic project systems will be rewritten on top of the new Visual Studio Common Project System (CPS).
The current C# and Visual Basic project systems (csproj.dll and msvbprj.dll), which first shipped back in Visual Studio.net nearly 15 years ago have served us well, but are:
- Native and COM-based
- Single threaded and bound to the UI thread
- Hard to extend outside of aggregation via the use of
<ProjectTypeGuids>and sub types (flavors)
- Tied to Visual Studio
The new C# and Visual Basic project system, built on top of CPS, will be:
- Managed and managed-interface based
- Multi-threaded, scalable, and responsive
- Easy to extend via the use of the Managed Extensibility Framework (MEF) and composable. Many parties, including 3rd parties, can contribute to a single project system
- Hostable outside of Visual Studio
What is a project system?
A project system sits between a project file on disk (for example, .csproj and .vbproj) and various Visual Studio features including, but not limited to, Solution Explorer, designers, the debugger, language services, build and deployment. Almost all interaction that occurs with files contained in a project file, happens through the project system.
The C# and Visual Basic project system adds C# and Visual Basic language support to CPS via Roslyn.
How do I engage and contribute?
We welcome you to try things out, file issues, make feature requests and join us in design conversations. If you are looking for something to work on, take a look at our up-for-grabs issues for a great place to start. Also be sure to check out our contributing guide.
This project has adopted a code of conduct adapted from the Contributor Covenant to clarify expected behavior in our community. This code of conduct has been adopted by many other projects. For more information see Contributors Code of conduct.