What comes with ASP.NET Core 2.0
ASP.NET Core is one of the most powerful platforms for developing cloud-ready and enterprise web applications that run cross-platform. Microsoft has added many features with ASP.NET Core 2.0, and that includes new project templates, Razor Pages, simplified provisioning of Application Insights, connection pooling, and so on.
The following are some new improvements for ASP.NET Core 2.0.
ASP.NET Core Razor Pages
Razor syntax-based pages have been introduced in ASP.NET Core. Now, developers can develop applications and write syntax on the HTML with no controller in place. Instead, there is a code behind file where other events and logic can be handled. The backend page class is inherited from the PageModel
class and its member variables and methods can be accessed using the Model
object in Razor syntax. The following is a simple example that contains the GetTitle
method defined in the code-behind
class and used in the view page:
public class IndexModel : PageModel { public string GetTitle() => "Home Page"; }
Here is the Index.cshtml
file that displays the date by calling the GetCurrentDate
method:
@page @model IndexModel @{ ViewData["Title"] = Model.GetTitle(); }
Automatic Page and View compilation on publishing
On publishing the ASP.NET Core Razor pages project, all the views are compiled into one single assembly and the published folder size is comparatively small. In case we want view and all the .cshtml
files to be generated when the publishing process takes place, we have to add an entry, which is shown as follows:
Razor support for C# 7.1
Now, we can use C# 7.1 features such as inferred tuple names, pattern matching with generics, and expressions. In order to add this support, we have to add one XML tag as follows in our project file:
<LangVersion>latest</LangVersion>
Simplified configuration for Application Insights
With ASP.NET Core 2.0, you can enable Application Insights with a single click. A user can enable Application Insights by just right clicking Project
and hitting Add
| Application Insights Telemetry
before going through a simple wizard. This allows you to monitor the application and provides complete diagnostics information from Azure Application Insights.
We can also view the complete telemetry from the Visual Studio 2017 IDE from the Application Insights Search window and monitor trends from Application Insights Trends. Both of these windows can be opened from the View
| Other Windows menu
.
Pooling connections in Entity Framework Core 2.0
With the recent release of Entity Framework Core 2.0, we can pool connections by using the AddDbContextPool
method in the Startup
class. As we already know, in ASP.NET Core, we have to add the DbContext
object using Dependency Injection (DI) in the ConfigureServices
method in the Startup
class, and when it is used in the controller, a new instance of the DbContext
object is injected. To optimize performance, Microsoft has provided this AddDbContextPool
method, which first checks for the available database context instance and injects it wherever it is needed. On the other hand, if the database context instance is not available, a new instance is created and injected.
The following code shows how AddDbContext
can be added in the ConfigureServices
method in the Startup
class:
services.AddDbContextPool<SampleDbContext>( options => options.UseSqlServer(connectionString));
Note
There are some more features added to Owned Types
, Table splitting
, Database Scalar Function
mapping, and string interpolation that you can refer to from the following link: https://docs.microsoft.com/en-us/ef/core/what-is-new/.