This change introduces a service facade for creating the application
model, running conventions, validating the result, and flattening the
model.
This is used in the ControllerActionDescriptorProvider and provides the
existing functionality for now. The ControllerActionDescriptorProvider
will process the results and turn each 'flattened' model into a single
action descriptor.
The next change will introduce another consumer of this service, that
turns the 'flattened' model into an EndpointModel so that it can be
exposed via Endpoint Routing's convention system.
---
The main considerations here:
The flattening semantics of application model are pretty complicated :(
The validation that CADP does is actually pretty in depth and might be
really low value... Errors with writing route templates do happen, and
those will be caught by the routing system eventually.... Errors with
duplicate route names are similar... Errors with 'mixed' attribute and
conventional routing are not at all common. I don't think I've ever seen
an issue get filed about this. I did the work to port all of this stuff
forward but I'm not totally sure it's valuable - however, I don't really
want to make an argument for its removal. These are just some random
thoughts to keep in mind if you're reviewing this 👍
|
||
|---|---|---|
| .github | ||
| .vsts-pipelines | ||
| benchmarkapps | ||
| benchmarks/Microsoft.AspNetCore.Mvc.Performance | ||
| build | ||
| samples/MvcSandbox | ||
| src | ||
| test | ||
| .appveyor.yml | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| Directory.Build.props | ||
| Directory.Build.targets | ||
| LICENSE.txt | ||
| Mvc.NoFun.sln | ||
| Mvc.sln | ||
| NuGet.config | ||
| NuGetPackageVerifier.json | ||
| README.md | ||
| Settings.StyleCop | ||
| build.cmd | ||
| build.sh | ||
| buildWithProcDump.cmd | ||
| global.json | ||
| korebuild-lock.txt | ||
| korebuild.json | ||
| run.cmd | ||
| run.ps1 | ||
| run.sh | ||
| runWithProcDump.ps1 | ||
| version.props | ||
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
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:
- AspNet.Mvc.TypedRouting: A collection of extension methods providing strongly typed routing and link generation for ASP.NET Core MVC projects.
- ASP.NET MVC Boilerplate: Rich templates for ASP.NET Core MVC.
- MyTested.AspNetCore.Mvc: Powerful fluent testing framework for ASP.NET Core MVC.
- MvcDeviceDetector: Device detection mechanism to create mobile web applications.
- XmlResult: XML formatter extensions to allow defining the XML serializer type.
- AspNetCoreImageTagHelper: Tag helper for rendering images as inline base64 data.
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.