aspnetcore/src/Mvc
Doug Bunting 5266918ed2
Use Roslyn to create ref/ assemblies (#23403)
* Remove all ref/ projects

* Remove GenAPI infrastructure

* Remove notion of a reference assembly project
  - remove `$(IsReferenceAssemblyProject)`, `$(ReferenceReferenceAssemblies)` and `$(ReferenceImplementationAssemblies)`
    - remove unnecessary `$(NoWarn)` settings

nits:
- remove a few misleading comments
- wrap some long lines

* Move .0 package version workaround into Versions.props
  - touch up SharedFramework.External.props

* Expose `%(LatestPackageReference.RTMVersion)` metadata
  - automate use of properties in the `@(LatestPackageReference)` item group to make this maintainable
    - add a couple of special cases at the bottom of eng/Dependencies.props
    - add one more `$(...PackageVersion)` property to avoid yet-another special case

* Enable Roslyn reference assemblies
  - exclude ref/ assembly from packages other than targeting pack
  - update Microsoft.AspNetCore.App.Ref.csproj
    - `%(IsReferenceAssembly)` and `%(ReferenceGrouping)` metadata no longer relevant
    - only ref/ assemblies are in `@(ReferencePathWithRefAssemblies)` item group

nits:
  - remove now-unnecessary workaround
    - issues with TFM transition are behind us
  - clean up Microsoft.AspNetCore.App.Runtime.csproj slightly
    - use `GeneratePathProperty="true"`
        - reorder item / property settings for meta-expansion
    - correct spelling errors and phrasing in comments

* Update documentation to reflect recent changes
  - remove CrossRepoBreakingChanges.md; was tied to old TeamCity infrastructure
    - also much less relevant given repo merges
  - adjust details and examples in ReferenceResolution.md
    - reflect repo merges, Dependencies.props changes, and current Maestro++ channels
    - add a few more details e.g. specific files where Version.Details.xml versions are used

* !fixup! Remove another irrelevant doc file

* !fixup! Address PR review suggestions
  - convert a couple of warnings to errors
  - use consistent casing for Microsoft.NETCore.App.Runtime.* packages
  - reduce `%(LatestPackageReference.Version)` metadata special cases
  - add and improve comments e.g.
    - improve comments about `$(*V0PackageVersion)` properties
    - improve placement of comments about item removal in ResolveReferences.targets
    - confirmed `$(*V0PackageVersion)` property list is complete

nits:
- fix solution example in ReferenceResolution.md
- remove item group definition for `@(LatestPackageReference)`
- remove `%(LatestPackageReference.VersionName)` metadata after use; large item group
    - similarly, remove `%(LatestPackageReference.RTMVersion)` when not needed; just complicates `Condition`s

When I squash, I must remember this fixes
- #14801
- dotnet/aspnetcore-internal#2693

* Actually use `%(LatestPackageReference.RTMVersion)` metadata
  - gather RTM package references in a new project
    - a (very) separate project to work around package conflict resolution
    - empty `Test` target works around Arcade's testing approach
  - new target in ResolveReferences.targets updates relevant assembly paths to use the RTM packages
    - done as soon as possible after `ResolvePackageAssets` determines the paths
    - done for all compilation inputs, not just ref/ assemblies
2020-07-17 13:35:17 -07:00
..
Mvc Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Abstractions Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Analyzers
Mvc.Api.Analyzers
Mvc.ApiExplorer Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Core Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Cors Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.DataAnnotations Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Formatters.Json/src Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Formatters.Xml Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Localization Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.NewtonsoftJson
Mvc.Razor Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Razor.RuntimeCompilation
Mvc.RazorPages Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.TagHelpers Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.Testing/src Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
Mvc.ViewFeatures Use Roslyn to create ref/ assemblies (#23403) 2020-07-17 13:35:17 -07:00
benchmarkapps
benchmarks
build
samples/MvcSandbox
shared
test
.editorconfig
.vsconfig
Directory.Build.props
Mvc.slnf
MvcNoDeps.slnf
MvcTests.ruleset
README.md
Settings.StyleCop
build.cmd
build.sh
buildWithProcDump.cmd
runWithProcDump.ps1
startvs.cmd

README.md

ASP.NET Core MVC

Note: For ASP.NET MVC 5.x, Web API 2.x, and Web Pages 3.x (not ASP.NET Core), see https://github.com/aspnet/AspNetWebStack

Travis: Travis

ASP.NET Core MVC gives you a powerful, patterns-based way to build dynamic websites that enables a clean separation of concerns and gives you full control over markup for enjoyable, agile development. ASP.NET Core MVC includes many features that enable fast, TDD-friendly development for creating sophisticated applications that use the latest web standards.

ASP.NET Core MVC includes support for building web pages and HTTP services in a single aligned framework that can be hosted in IIS or self-hosted in your own process.

See the ASP.NET Core MVC documentation.

Related community projects:

This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the Home repo.

Building from source

To run a complete build on command line only, execute build.cmd or build.sh without arguments. See developer documentation for more details.