Jon Rumsey

An online markdown blog and knowledge repository.


Project maintained by nojronatron Hosted on GitHub Pages — Theme by mattgraham

DotNET Conf Notes November 2022

Notes taken from live streams and recorded sessions of DotNET Conference, held in November 2022.

Table of Contents

WASM Improvements in DotNet7

WASM => Web Assembly

Key point: Blazor handles all of the DOM Manipulation, enabling development to concentrate on functionality and style.

Runtime provides:

WASM integration in DotNET support Blazor framework.

DotNET enables full-stack webapp deployment using common frameworks and libraries.

New in 7:

Enhanced JS Interop Features:

App Project Template Support:

Multithreaded Support (preview):

Uno Platform DotNET 7 => Check out uplatform.uno for more info.

Limitation on debugging WASM: Limited to Chromium-based (for now).

WASI: Web Assembly System Interface.

The State of DotNET MAUI

MAUI => Multi-platform Application User Interface

MAUI for DotNET 7 is now GA!

MAUI statistics:

MAUI Is:

MAUI for dn7 Today:

Later:

Learning:

New Features:

URL Routing:

About .NET MAUI

Container Apps

How to use DotNET with Azure Container Apps!

Azure Container Apps:

What Can I Build with CA's?

Concepts and Terminology:

Ingres:

Use the Publish Tool in Visual Studio to deploy new, or to an existing Container App.

Container Apps can talk directly with each other when they are in the same Environment (the same vNet), so making an API private or public is not necessary for back-end calls!

Azure Functions in DotNET

DotNET 7 support in Azure Functions.

DotNET Framework support in Azure Functions v4.

Event-driven, serverless compute service. [MSFT, DotNET Conference]

Built on top of Web Jobs.

Integrated programming model:

End-to-end development experience:

Hosting options flexibility:

Fully managed and cost-effective:

Tool chain:

CI-CD:

Isolated Worker Process:

Azure Functions DotNET Isolated Guide

Performance enhancements:

Use Attributes in your code to assign values and configuration for an AzFunc call and response in your API.

Migrating: Functions 3.0 and 1.0 can be migrated to v4, and guides are available from MSFT.

Roadmap:

Upgrading from NET Framework to DotNET 7

I have a WPF application that was built using DotNET Framework 4.x, and I want to upgrade it to DotNET 7.x (or at least DotNET 6.x LTS) so that I can continue to learn, as well as grow the project into new capabilities of DotNET and C#.

An additional goal of migrating to the latest SDK, is to ensure application compatibility and support with existing and future platforms, especialy Windows, but including Linux (especially with DotNET 6+ where Linux apps can be built and deployed in a Windows SDK environment).

There are differences with WPF DotNET.

DotNET 7 Upgrade WPF.

How to upgrade WPF Desktop App to DotNET 7.

Workflow Recommendation

Dependencies

Dependencies could include:

Upgrade Project and NuGet References

Project configurations are in the new SDK format, which is not compatible with DotNET Framework SDK project definitions!

Upgrade Source Code and Project Assets

Test and Deploy

Upgrading In Place

Suggested workflow:

  1. Make a tree map of the projects in the Solution.
  2. Map-in the dependant projects.
  3. Map-in the dependent Libraries.
  4. For every leaf node (has no child dependencies), start an upgrade there.

Note: Multi-targeting is an option.

Microsoft highly recommends this option whenever possible (except ASP.NET due to differences in ASP.NET Core) and very large Libraries.

Side-by-side

  1. Create a new version based on the target SDK.
  2. Migrate individual libraries to migrate over.

A reverse-proxy is used to manage directing requests to the original ASP.NET, or the new ASP.CORE app, on a feature-by-feature basis.

Visual Studio Extension "YARP" exists to help migrate legacy ASP.NET Project to ASP.NET Core within the VS IDE.

There are "Adapters" for System.Web that help migrate to ASP.NET Core, and move away from legacy functionality.

Return to Conted Index

Return to Root README