Microsoft lights a fire under .NET Core teams, just in time for Ignite
Devs left bored to Tiers while Entity Framework flies out into the Cosmos
Microsoft flung out updates to more of its development tech last night. It's almost as though there's a big conference coming up.
.NET Core 2.2 Preview 2
.NET Core 2.2 got a bump to preview 2, which introduced little in the way of new functionality but did switch on tiered compilation. Tiered compilation was an option in .NET Core 2.1 and promises boosts in start-up and steady-state performance. The theory is that .NET can have multiple compilations for the same method, which can then be hot-swapped at run-time depending which works better.
In .NET Core 2.1, Microsoft reckoned the feature might still have some rough edges, and so left it to users to decide to switch it on. Those edges have now been smoothed out to the point where the brave souls toiling away using the preview will have it enabled by default.
The Register did not notice the 60 per cent performance boost claimed by the .NET Core team, but to be fair, our jumped-up "Hello World" application isn't the greatest test. Microsoft suggested using a tool such as PerfView to see how much time an app spends jitting to get an idea of the potential gains. It estimated that time could drop by as much as 35 per cent.
ASP.NET Core 2.2 Preview 2
The preview of ASP.NET Core 2.2 also has a new version with some handy features which will appeal initially to the hardy devs at the coalface of Visual Studio 15.9. Most interestingly, .NET Core applications can now be hosted within the IIS worker process, removing the need to reverse-proxy requests over to a separate dotnet process.
As ever, Microsoft is quick to trot out statistics showing impressive leaps in Requests per Second (RPS) for in-process versus out-of-process. Context is, however, everything, so your mileage may vary. Users of the .NET Framework need not apply (this is .NET Core only), and there may only be one app per IIS Application Pool.
Users of Visual Studio 15.9 Preview 2 can switch the hosting model for ASP.NET Core web applications at will via the properties screen or by tinkering with the .csproj file. We would recommend caution with the latter approach after user error on our part left our test project hopelessly broken.
Going forward, Microsoft warned that the new in-process hosting model will be the default.
Entity Framework Core 2.2 Preview 2
Entity Framework (EF) developers also saw some love with the overdue arrival of support for Azure Cosmos DB as an application database. Support for spatial columns and functions in SQL Server also made an appearance, but it is support for Cosmos DB that is most significant.
Azure Cosmos DB is Microsoft's globally distributed, multi-model database which allows users to scale their storage across geographical regions with very little effort (assuming they have deep enough pockets.) Microsoft is so confident in its baby that a 99.9999 per cent SLA for read availability for database accounts over two or more Azure regions is offered.
As far as letting EF devs loose on its cloudy monster, Microsoft cautioned that the support is obviously preview, with at least one more iteration due before it can be considered production. As such, there are some fairly substantial missing pieces, not least a lack of asynchronous queries. LINQ is supported, although not all of the operators will get translated to Cosmos DB's particular brand of SQL. And you can forget about auto-generated unique keys for the time being. ®