Build 2020 summary (so far)
In the last two days Microsoft ran its developer conference. This year, for the first time it was completely virtual and free.
There were many announcements as you can read in their announcement book, but I picked some of them that I think are more interesting.
Developer tools
- Visual Studio 2019 v16.6
- .NET 5 preview 4 – the next generation of .NET Core and .NET Framework. Includes
- Perf improvements in HTTP (1.1 and 2) processing.
- New GC heap called Pinned Object Heap – this will improve perf in various scenarios that involve low level interaction (such as networking).
- Better support for Containers.
- Improved JSON API (and easier migration form Json.NET).
- C# Source Generators - a new C# compiler feature that lets C# developers inspect user code and generate new C# source files that can be added to a compilation.
- C# 9 preview (not final) –
- Exciting features and improvements in pattern-matching.
- Init-only properties – marking a property so you could set its value during the object initialization.
- Records – marking a class as "data object" so you can give a value-like behavior such as making it immutable with equality functionality and use the new With-Expression so you can clone it and define only the changes you want from the source object (e.g. var otherPerson = person with { LastName = "Dresher" };)
- Top-level programs – now you would be able to create a new c# application without all the ceremony of the Program class and main method, basically just write the main method code in the main file.
- Targeted-type new – essentially be able to create a new object without specifying its type for example: Point p = new (3, 5);
- Covariant returns – be able to override a method and specify its return type to be different than the one in the base as long as the type derived from it ```csharp abstract class Animal { public abstract Food GetFood(); }
- class Tiger : Animal { public override Meat GetFood() => …; } ```
- NET Multi-platform App UI - will allow developers to build apps for any device from a single codebase and project system, including desktop and mobile devices across operating systems.
- ASP.NET Blazor now supports WebAssembly - ASP.NET Blazor, which allows developers to build interactive web UIs with C# instead of JavaScript, now supports WebAssembly. This added capability means developers can build client-side web apps that run completely in the browser with .NET.
- Visual Studio Codespaces - enables developers to work remotely from anywhere with fully configured cloud-hosted development environments that can be created in minutes.
- Fluid Framework – an open-source client side libraries that expose distributed data structures (DDS) which essentially let you develop applications with instantaneous coauthoring, in-line mentions, and updateable components (think of google docs and alike).
- ML.NET Model Builder is now a part of Visual Studio - create custom machine learning models without having prior machine learning experience and without leaving the .NET ecosystem.
- Windows Terminal – new and advanced terminal that let you run multiple shells in a single place with Tabs, Panes and advanced customization options.
- Windows Package Manager.
Azure
- Azure ARC-enabled Kuberenests clusters (PUBLIC PREVIEW) - This one is really interesting for organizations that still have workloads running on-prem (like we have in Clarizen). Azure ARC is set of technologies that allows a company to manage resources in hybrid mode (on its datacenetes, azure and even competing cloud like AWS and GCP). MS now added support for Kubernetes. With this, anyone can use Azure Arc to connect and configure any Kubernetes cluster across customer datacenters, edge locations, and multi-cloud. (side note: this is also interesting because of the partnership between Azure and Oracle cloud that can make the migration of the oracle database easier and with low latency).
- Azure monitor telemetry tools maximize cloud and on-premises resources and apps – There are many interesting insights the Azure monitor can find of telemetry coming from servers and application, and this can (allegedly) works seamlessly with windows servers and application running on-prem.
- Azure cosmos db serverless addresses intermittent traffic and "bursty" workloads for small apps – Azure Cosmos DB can now scales the RU/s (Request Unit per Sec == Throughput) based on usage and therefore the billing is set based on usage and not up front.
- Cosmos DB enhanced key and data recovery options for enterprise and mission-critical apps – BYOK (bring your own key) feature and ability to recover data from a specific period and restore at any time with point-in-time backup and restore for Cosmos DB.
- Azure Synapse Link – Azure Synapse was initially created to be the next generation DWH. Now it became the Azure offering for Data Mesh which supports Hybrid Transactional Analytical Processing (HTAP). In other words, you can link all datas ources to Synapse and automatically get analytics capabilities including out-of-the-box support for PowerBI and AutoML.
Teams and the Power Platform
- Organizations can now schedule, hold virtual visits with bookings app in microsoft teams – making it easy to create appointments between multiple people (even those who are external to the organization).
- Many customizations and developers extensibility options.