If you want to handle the most common pattern in ASP.NET Controllers (displaying a page and then accepting data entered into it), you can do it with Razor Pages. You'll just need less code than if you used a Controller, a View and a model object.
As fond as he is of using Controllers and Views, Peter isn't sure that Razor Pages aren't a better model for Web development. But the first step, adding Razor Pages to your project, isn't as easy as it should be. And, after that, you'll want to integrate them with your existing MVC application.
In ASP.NET Core, your web.config file with its <appsettings> section is gone. The replacement is a more extensive and configurable system that you can leverage to simplify configuring your objects.
ASP.NET Core's support for sharing objects defined at startup is great ... but what if you need to set options on those objects? Here's a case study that starts off great and then descends into over-engineered madness (but only if you want to go that far).
If you want to treat your database design as an "implementation detail" that just falls out of getting your object model right, then Entity Framework gives you four choices. Picking the right one, however, may mean creating your own.
Here's everything you need to write code for the Session object in ASP.NET Core -- including why you can't expect to migrate your existing ASP.NET MVC application to ASP.NET MVC Core (though Peter has some suggestions on easing that pain).
If you know how to create an ASP.NET MVC View, you know a great deal about how to create pages in Blazor. But, by packaging up pages as Blazor Components, you can use (and re-use) those pages more like objects.
Central to ASP.NET Core is the collection of objects that give you access to ASP.NET Core functionality. Here's how to access it, how to add to it and an example of how to use this technology with the "difficult" cases.
If you're a programmer then you know that you frequently get things wrong. Sometimes you find those bugs before your application gets to production ... and sometimes you don't. Bad news: Nothing is going to help and it's not going to get any better.
By default, tests in the new .NET Core testing framework (xUnit) are isolated. This is a good thing ... except when you need to create a single test environment that is used by multiple tests. Here's all the ways you can provide a single environment for a set of tests in xUnit.
There's a new testing framework in town. Here's how to use it.
There's a new kid in the Visual Studio testing environment, though it's only for your .NET Core projects. You don't have to use it, but here are some reasons you'll want to.
If someone tells you that LINQ doesn't support subqueries ... well, they're not wrong. But they're also not entirely correct, either. With LINQ you can meet many of the goals of SQL subqueries including the ability to build complex queries out of simpler ones.
ASP.NET Web API and ASP.NET MVC have similar (but not identical) mechanisms that allow you to customize how your requests and responses are processed. Not surprisingly, ASP.NET Web API's implementation is both easier and more flexible than ASP.NET MVC.
You have at least two options for adding processing to multiple controllers without duplicating code in each of the Controllers.