- #7805
- make initial copy of apps from aspnet/Performance repo
- add apps to solution
- add Readme for the benchmark apps
- update BasicApi app to actually do authentication and authorization
- bug in the ported app
- refactor `Main` methods and add `CreateWebHostBuilder(...)` methods
- change projects to understand `$(BenchmarksTargetFramework)`
- use NuGet.org EF packages to avoid changing the Universe build graph
- use SQLite instead of LocalDb by default
- remove unnecessary appsettings.json files and JSON configuration support
- add EF migrations
- (greatly) reduce startup times compared to creating / deleting databases
- add MySql, PostgreSQL, and SqlServer support
- load BasicApi data in a `DbContext.OnModelCreating(...)` override
- no longer need seed.sql
- generalize migrations to support multiple providers
- use negative seeding indices to work around npgsql/Npgsql.EntityFrameworkCore.PostgreSQL#36
- work around Pomelo lack of strong name (PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#603)
- use BenchmarksOnly* properties for EF dependencies
- see also aspnet/Universe#1224
- drop databases (if SQLite) or migrations (otherwise) in `IApplicationLifetime.ApplicationStopping` handlers
- add functional tests
- drop SQLite database at end of test run
- add benchmarks automation
- add anonymous BasicApi action i.e. require no authorization
- add non-antiforgery BasicViews actions
Address PR comments
- remove `AntiforgeryTestHelper` workarounds
- use `[ApiController]`
- use `ActionResult<Pet>`
- remove unused classes
nits:
- take VS suggestions in added files
- optionally display create and delete SQL scripts for per-database migrations
- merge `InsertData(...)` calls for consistency with most supported EF providers
- SQLite is the only one that requires separate `INSERT`s and EF does the splitting