Qudos .NET Meetup Newcastle - January 2026
Take a Note of UI with .NET 10 - Peter Bull
What's New
Take a Note of UI with .NET 10 started with an overview of What's New with .NET with .NET 10, which is the latest long-term release supported for three years with runtime improvements, new library APIs and support for standalone single C# file-based apps. .NET 10 brings quality improvements to Windows Forms developers including async forms and to Windows Presentation Foundation with progress in Fluent UI styling. ASP.NET Core includes improved form validation and Blazor has a new reconnection UI and persistent component state support. C# 14 in .NET 10 adds new syntax to define extension members which allow extension properties to be defined alongside extension methods, field-backed properties with a new field keyword to access backing field without needing to implement an explicit backing field along with null-conditional assignment where can assign values conditionally where properties being assigned to may be null. You can find out more about .NET 10 or download the latest .NET SDK at dot.net.
Visual Studio 2026
Visual Studio 2026 is the latest version of Visual Studio that builds upon the tools developers user to make it more intuitive and scale existing solutions with the most important new feature being improved performance compared to its predecessor along with a refreshed Fluent Design that make it feel smoother and more modern, along with being integrated with GitHub Copilot which can understand your work with context across project, solution and repository. Visual Studio 2026 offers compatibility with extensions and workloads from Visual Studio 2022 and provides a future-ready IDE not only build for .NET 10 but modern development with frameworks such as C++. You can find out more about Visual Studio 2026 or to download it at visualstudio.com.
GitHub Copilot
GitHub Copilot offers a transformational experience for developers by providing experience throughout the software development lifecycle to help focus more on problem solving where it can help analyse code, propose edits and help find and fix bugs and mistakes. GitHub Copilot can also perform actions by leveraging a wide range of tools using existing Model Context Protocol servers or you can create your own MCP server for your needs. GitHub Copilot is integrated into Visual Studio 2026 and offers modes of control where you can ask about things or use agent mode to apply them directly. If you've never tried GitHub Copilot or you want to find out more visit github.com/copilot.
.NET first-party UI technologies
UI in .NET features an A to (almost) Z of first-party UI options available where development of a simple note taking application using these can be assisted by GitHub Copilot. ASP.NET Core Web API is for RESTful Web APIs for Linux, macOS, Windows 8 to Windows 11 using controllers or minimal APIs which can be leveraged from various client-side technologies such as JavaScript where GitHub Copilot was used to create a minimal API from another project along with an attribute for allowed backgrounds and .http file that can be used for testing. ASP.NET Core Web App is for apps using model-view-controller or Razor Pages for Linux, macOS, Windows 8 to Windows 11 where GitHub Copilot was used to add some suitable JavaScript to keep a modal open on any validation errors.
Blazor Web App supports server-side rendering and client interactivity for Linux, macOS and Windows 10 to Windows 11 using Razor components where GitHub Copilot was used to update the modal for an old demo to support editing as well as creating new notes. Blazor WebAssembly is used to create web apps with rich dynamic user interfaces for modern browsers such as Safari, Chrome, Firefox and Microsoft Edge where GitHub Copilot was used to create a local-storage based notes provider using Blazored LocalStorage in a duplicate of the Blazor Web App.
Console App is for old-school applications using the command line for interactivity or be provided with command-line arguments for Linux, macOS and Windows 7 to Windows 11 where GitHub Copilot was used to build a Console App based upon another project that could use command line arguments, along with a command-line parser and interactive mode including support for quit with Esc and confirmation before deletion. Class Library, although no a UI technology is where the common functionality including classes, interfaces and methods are defined for an application where GitHub Copilot was used to add appropriate attributes for a particular technology. Local MCP Server Console apps enable tools for Model Context Protocol to be defined in a Console App where GitHub Copilot was used to create the tools themselves based upon functionality from the Class Library.
.NET MAUI enables cross-platform development using XAML, which is a UI markup technology similar to HTML used alongside C# in a single project that supports iOS, Android, Mac Catalyst for macOS and WinUI for Windows 10 and Windows 11 where GitHub Copilot was used to update an old demo for a Note control to be scalable and latest changes to popup in .NET MAUI Community Toolkit.
UWP app is Universal Windows Platform which allows developers to migrate legacy UWP applications from .NET Native to modern .NET and native AoT or ahead of time compilation using XAML similar to .NET MAUI for Windows 10 and Windows 11 where GitHub Copilot was used to create a Universal Windows Platform application from another project and was the first UWP application creates since the technology was deprecated, it was also used to create classes and converters needed due to the differences in commanding between modern .NET applications on Windows and UWP along with creating a HTML to Windows colour converter and was the project that required the updates to the Class Library to add the necessary attributes for AoT.
Windows Forms is a UI technology from .NET that dates back to the original version of .NET, .NET Framework released back in 2002 which supports from Windows 7 to Windows 11 where GitHub Copilot was used to create a WinForms app from another project including creating a note control, although initially created with the folded corner at the top instead of the bottom this was corrected with a subsequent prompt. Windows Forms Notify Icon allows a Windows Forms application to be used from the Notification Area or Task Tray in Windows 7 to Windows 11 where GitHub Copilot was used to create the Notification Tray implementation which included decision about behaviour of the popup menu used and update the Windows Forms application so it loads when that application is closed and allows the application to be exited.
Windows Presentation Foundation is another technology from .NET that dates back to .NET Framework originally introduced in 2006 and supports Windows 7 to Windows 11 and uses a slightly different flavour of XAML compared to .NET MAUI along with C# for logic where GitHub Copilot was used to create a Note Control based upon the next technology. WinUI app is for creating modern native Windows 10 and Windows 11 applications using XAML similar to Windows Presentation Foundation with Windows App SDK for a mix of modern and other APIs supporting MSIX for side-leading or distribution via the Microsoft Store where GitHub Copilot used this as reference to create the Console, UWP and WinForms apps along with adding the Titlebar from Windows App SDK 1.8 into the application. Windows Widgets use JSON-based adaptive cards to show Widgets in the WinUI-based Widgets Board in Windows 11 from a Widget Provider within a WinUI app using Windows App SDK where GitHub Copilot was used to create the adaptive cards to display parts of the Widget including configuration, confirmation and display of notes.
NuGet packages can aid developers in implementing features within their application such as SVG-based assets and common databinding for the XAML-based applications with Comentsys.Toolkit or support for creating Widget Providers in WinUI apps and Windows App SDK with Comentsys.Toolkit.WindowsAppSdk which extends Comentsys.Toolkit. ModernWpfUI package provides additional modern styles and features for Windows Presentation Foundation applications such as CommandBar and Content Dialog and CommunityToolkit.Maui for .NET MAUI Community Toolkit includes a collection of features including a popup for presenting information in applications. You can find all these packages and more for .NET at nuget.org.
.NET first-party user interface technologies supported include ASP.NET Core Web API where you can interact with API endpoints using Swagger including those created by GitHub Copilot, ASP.NET Core Web App where can display notes visually plus get JavaScript added by GitHub Copilot if only work with .NET normally, Blazor Server to create modern web apps on the server or copied to run in modern browsers with Blazor WebAsssembly. Console Apps can be created that can be interactive run via command-line arguments and be driven by developing with GitHub Copilot that can leverage functionality from a Class Library as the single-implementation of all common functionality that can then be brought cross-platform with .NET MAUI or used within GitHub Copilot itself with a Local MCP Server App with tools that can be created with the help of GitHub Copilot.
.NET first-party user interface technologies with UWP app can help bring legacy Windows applications to the modern era with the help of GitHub Copilot to help smooth out the differences or focus on the latest and greatest for building Windows App SDK applications that can feature brand-new UI features such as Windows Widgets aided by GitHub Copilot. Legacy native Windows technologies from the past continue to be supported with new features and functionality allowing Windows Forms app to stay relevant or Windows Presentation Foundation apps to look and feel more modern than ever along with taking advantage of GitHub Copilot to build new features or improve existing features.
.NET third-party UI technologies
.NET third-party user interface technologies can help bring .NET apps cross platform or to the browser using C# XAML based on WinUI, Windows Presentation Foundation or even legacy technology like Silverlight. Uno Platform is a free open-source platform for building cross-platform native mobile, web, desktop and embedded apps using C# or a modern WinUI 3-based XAML. Avalonia UI is an open-source UI framework for multiplatform apps for desktop, mobile, web and browser using Windows Presentation Foundation based XAML and will be used to implement a new web target for .NET MAUI from Microsoft. OpenSIlver is an open-source framework to modernise legacy Silverlight applications plug-in free that run in any browser using XAML based on Silverlight and Windows Presentation Foundation.
Summary
.NET allows you to create cloud and web applications with ASP.NET Core or ASP.NET Core Web App and build Blazor apps for server or client using WebAssembly or enables you to creaft Console apps including local Model Context Protocol servers or contain common functionality with Class Libraries. .NET supports creating cross-platform mobile or desktop applications using .NET MAUI or writing Windows desktop applications using Windows Forms that can use the Notification area or bring legacy UWP to the modern era to use WPF and beyond with WinUI and Windows App SDK that can even provide a Windows Widget. You can find the demo showcasing all the first party UI technologies in .NET 10 along with slides and links to resources at github.com/RoguePlanetoid/takeanoteofuiwithdotnet10.
Keeping it Simple with Falco and HTMX - James Murphy
Introduction
James Murphy is a programmer and has been one for forty-six years and spoke about their experiences using F# with Falco and HTMX to solve a problem that had high value to them which was to have a lump of data to take a subset of data from, run arbitrary filters and show filtered items. Constraints - they know who the users are (there's one) there's a short timescale / limited resources, tech the developer is comfortable with and be deployable to Kubernetes. Choices - .NET / F# and HTMX, but they don't do JavaScript much so could use Blazor, but they don't know that one too well or could use other front-end framework that need JavaScript / TypeScript which take time to learn, but they already knew C# and F# although these keep changing.
Hello World
Can create a standard ASP.NET Core Web App and much like Minimal API have it return Hello World in F#. All the F# modules support domain specific markup to output HTML. In F# everything is a function such as ones that take a function that returns a response in HTML. Can also have functions that create the head content for the page with styling along with the body with some layout for a page template. Hello Who… - can do something more complex than preexisting text to change the Hello World function to take name as parameter and have a handler for the name with a second route to display the passed in text to parameterise things in a nice and simple way to join pieces together.
Working with Data
Adding data with MongoDB, which is fine and quite a nice, as one of the challenges is when using a database how do you work locally which you can do. Aspire does lots of things for .NET developers which is telemetry and logging along with orchestration much like with a dockerfile but in .NET code and gives some advantages in terms of wiring things together. You can add the MongoDB and can get the initialisation data and can persist or not if doing testing. There is a bit of JavaScript to see what is going on in the MongoDB container. Aspire has no dependencies on anything else and it can do service discovery which is worth investigating. Mongo DB will be used to load a collection of products, and it is also possible to page through results with a new handler.
ASP.NET is fast, efficient and huge ecosystem using F# which is terse and expressive with Falco with direct link from route to handler, functional DSL for markup and easy separation of concerns. Just server-side code, nothing clever and use Aspire where and easily deploy a complex stack locally and with observability.
HTMX
User Experience is where HTMX comes in where why should only a and form be able to make HTTP requests, why should only click and submit events trigger them, why should only GET and POST methods be available and why should you only be able to replace the entire screen and by removing these constraints HTML completes HTML as a hypertext. Only have to update the portion of the page that you want. You can then use a HTMX function in F# and can target and swap some HTML in the page when interacted with. You can then update the page with content without reloading the whole page and it is possible to add more layout.
You can also look at the Dashboard which is wired up with Open Telemetry and see what requests were made, timing and information such as the query in MongoDB. You can also implement an update process that can be used to update any records as needed including being able to select the items to be updated and then in Aspire can see the updates that were performed in the dashboard, you can also perform different updates and can even have confirmation dialogs as needed.
Filtering
Filtering it more was about thought process where can have a text input where it can be a filter that can be posted with a button and will also have a spinner while it is working, then have filter elements that can then filter the list of content using the filter which can be passed into the load page function, which is performing the lookup with the MongoDB database which can pass in the filter assuming it is a valid MongoDB query.
Simple?
Solving a real world problem without going overboard on tech or using things they didn't understand that came together quite simply, if know .NET and C# or F# is quite straightforward and anyone who can do HTML can do the output and Falco / ASP.NET makes it clear and understandable and it becomes very easy to do complicated things by focusing on one thing at a time, one endpoint at time and one function at a time. Aspire is many things, it can be simple or complicated as working out things that aren't way you are told to do them but if you have Aspire-ified your application then you get an F5 experience where you can just hit go and all the orchestration is done for you where can install the Aspire tool,. HTMX helps with JavaScript fatigue and makes it simple, things you already know with HTML and attributes and add a few things to it and a whole lot of nice things happen and if needed you can attach more to it. You can find the demo and presentation along with links to resources at .NET Meetup 2026-01-27 - Resources.