Currently MVC is still running the IActionConstraint implementations for features that we've already moved into the routing layer. This has a significant perf cost associated with, and so we want to skip it because it's redundant. However if anyone has implemented their own `IActionConstraint`-based features, they still need to just work. This change takes the approach of skipping the action constraint phase at runtime unless we see something 'unknown'. This is an all or nothing choice, and will run action constraints if **any** action constraint we don't special case exists. This is the most compatible behavior (running redundant constraints) when the application is using constraints that the developer implemented. Another approach I considered was to eliminate these constraints as part of the process of building ADs. I don't think that's ideal because people have written code that introspects action constraints. We should consider something like this in 3.0. |
||
|---|---|---|
| .github | ||
| .vsts-pipelines/builds | ||
| 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 | ||
| korebuild-lock.txt | ||
| korebuild.json | ||
| run.cmd | ||
| run.ps1 | ||
| run.sh | ||
| 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.