GithubHelp home page GithubHelp logo

michael-eng / project-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dotnet/project-system

0.0 0.0 0.0 33.94 MB

The .NET project system for Visual Studio

License: MIT License

Batchfile 0.19% C# 99.77% Smalltalk 0.04% PowerShell 0.01%

project-system's Introduction

The .NET Project System for Visual Studio

Release Unit Tests (Debug) Unit Tests (Release) Localization
16.0 Build Status Build Status Build Status
16.7 Build Status Build Status Build Status
16.8 Build Status Build Status Build Status
16.9 Build Status Build Status Build Status
master Build Status Build Status Build Status

Join the chat at https://gitter.im/dotnet/project-system

This repository contains the new .NET Project System that has been rewritten on top of the Common Project System (CPS). In Visual Studio 2017 and Visual Studio 2019, this project system is used by default for Shared Projects (C# and Visual Basic), and .NET Core (C#, F# and Visual Basic) project types, however, long term it will be the basis of all C#, F# and Visual Basic project types. For a list of feature differences between the project systems, see Feature Comparison.

The legacy C# and Visual Basic project systems (csproj.dll and msvbprj.dll) first shipped with Visual Studio .NET in 2002. They 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)
  • Separate implementations for C# and Visual Basic projects

The new .NET Project System is:

  • Managed and managed-interface based
  • Multi-threaded, scalable, and responsive
  • Easy to extend and compose via the Managed Extensibility Framework (MEF). Many parties, including 3rd parties, can contribute to a single project system.
  • A single implementation for C#, F# and Visual Basic projects

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.

There are many technologies that come together to make up the .NET Project System:

  • MSBuild provides the build engine and file format.
  • SDK provides the command-line interface for building, running and interacting with .NET projects, along with the necessary MSBuild tasks and targets.
  • Common Project System provides the base building blocks for the project system including (but not limited to) project tree, build and debugger coordination and Visual Studio integration.
  • Roslyn provides C# and Visual Basic language support including compilers, IntelliSense, refactorings, analyzers and code fixes.
  • Visual F# tools provides F# language support.

image

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 help wanted 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.

project-system's People

Contributors

davkean avatar drewnoakes avatar jmarolf avatar srivatsn avatar davidwengier avatar tmeschter avatar 333fred avatar basoundr avatar mavasani avatar dmonroym avatar natidea avatar pilchie avatar billhiebert avatar tannergooding avatar panopticoncentral avatar nguerrera avatar melytc avatar jinujoseph avatar tmat avatar ocallesp avatar abpiskunov avatar ocalles avatar v-zbsail avatar tihan avatar etbyrd avatar jviau avatar elachlan avatar sharwell avatar shyam-gupta avatar kevinransom avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.