Agenda
Day 1
Tuesday, November 8
Keynote
08:00 - 09:00 PST
.NET Conf 2022 Keynote: Welcome to .NET 7
Gaurav Seth, Scott Hunter, Safia Abdalla, Julia Kasper, David Fowler
.NET 7 is here! Find out what is new for .NET developers across all workloads including cloud, mobile, desktop, web, AI, IoT, and so much more.
Web
09:00 - 09:30 PST
State of ASP.NET Core
Daniel Roth
In this session, Daniel Roth will overview what's new for web developers in ASP.NET Core in .NET 7 including runtime performance, minimal APIs, and front end web development with Blazor.
09:30 - 10:00 PST
What's new for Blazor in .NET 7
Steve Sanderson
Blazor in .NET 7 is loaded with many new improvements to make building beautiful interactive web UI easier and more productive. In this session we'll take a look at the new support for custom elements, improved data binding, handling location changing events, showing loading progress, dynamic authentication requests, and more!
10:00 - 10:30 PST
Making the Most of Minimal APIs in .NET 7
Safia Abdalla, Stephen Halter
Filters, route groups, endpoint metadata providers, oh my! .NET 7 brings a host of new features to Minimal APIs in ASP.NET. In this session, you learn about these new features, gain insight into their design and implementation, and explore how to best leverage them in your applications.
10:30 - 11:00 PST
Building modern high-performance services with ASP.NET Core and .NET 7
Sebastien Ros
The plan is that we’ll cover new middleware features like output caching and rate limiting, as well as some exciting new protocols as support in ASP.NET Core 7 such as HTTP/2 WebSockets, HTTP/3, and WebTransport (experimental).
Cloud
11:00 - 11:30 PST
State of Azure + .NET
Scott Hunter
Join Scott Hunter to talk about the latest happening in the world of building cloud native applications with .NET and Azure.
11:30 - 12:00 PST
The Whirlwind Tour of Building .NET Apps in Azure
Matt Soucoup
Building an app with .NET is one thing - but where does Azure come in? What Azure services do you need to use to scale your app up to keep it responsive? Make sure it's resilient in the face of disaster (I mean extreme success)? And deploy it across the world so anybody can get at it super fast? There are a ton of Azure services out there that can help, but making sense of them all can be confusing. In this session learn to make the most of Azure to build scalable, robust, and resilient .NET web (and mobile!) apps with Azure.
12:00 - 12:30 PST
Building Serverless Applications with .NET 7 and Azure functions
Melony Qin, Fabio Cavalcante
Building Serverless Applications with the latest innovation from.NET 7 and Azure functions. The following is the agenda : - What and why Azure functions ( 5 mins ) - .NET 7 on Azure functions ( 15 mins ) - Migrating from retired .NET version to .NET 7 ( 5 mins ) - QnA ( 5 mins )
12:30 - 13:00 PST
Azure Container Apps with .NET
Mike Morton, Anthony Chu
Azure Container Apps enables you to run microservices and containerized applications on a serverless platform. See how you can take your .NET 7 apps and leverage Azure Container Apps to dynamically scale your apps on-demand.
Client
13:00 - 13:30 PST
State of .NET MAUI
David Ortinau, Maddy Montaquila
This has been a big year for .NET MAUI and .NET developers building mobile, desktop, and cross-platform apps. So much has happened already, and we have even more announcements to share today. Join product managers Maddy Montaquila and David Ortinau for a brief State of the Union to catch up on all the latest news, and a peek at the road ahead.
13:30 - 14:00 PST
What's new in .NET MAUI and Desktop Apps
Shane Neuville
.NET MAUI in .NET 7 introduces a plethora of new features to build spectacular desktop apps for macOS and Windows. Shane will dive into what is new for .NET MAUI developers to create the best possible experiences across all devices.
14:00 - 14:30 PST
Performance Improvements in .NET MAUI (.NET 7 edition)
Jonathan Peppers
Join Jonathan Peppers for stories about improving the startup performance and app size of .NET MAUI applications in .NET 7. We'll look at the tools used for profiling .NET applications on desktop and mobile devices. We will also review specific examples in areas like AOT compilation, Java interop, XAML, and many more!
14:30 - 15:00 PST
Create native desktop & mobile apps using web skills in Blazor Hybrid
Eilon Lipton, James Montemagno
Are you a web developer and need to target iOS, Android, macOS, and Windows? Ship directly to the store and build world class apps with native API access with .NET MAUI and Blazor Hybrid.
.NET Developer Stories
15:00 - 15:30 PST
.NET at Stack Overflow
Roberta Arcoverde
Join Roberta, Director of Engineering at Stack Overflow, as she gives a deep dive on how they leverage the latest version of .NET to scale to millions of users every single day.
15:30 - 16:00 PST
Using .NET to build the .NET website
Maíra Wenzel, Jon Galloway
The .NET website is the front door for everything.NET. Learn how the team uses ASP.NET Core and Azure to build dot.net. We'll give an overview of its architecture and show how some of the site features were implemented.
16:00 - 16:30 PST
Microsoft Teams Backend Services - Powered by .NET
Marwa El-Dafrawy
16:30 - 17:00 PST
How Halo, Dynamics 365, and Mesh scale to millions with Orleans and you can too!
Brady Gaster, Reuben Bond
In 2021, the Developer Division at Microsoft adopted the Orleans project as a core part of the .NET ecosystem. Orleans Grains complement the ASP.NET developer's toolchain with the "distributed programming primitive" that feels natural alongside the ASP.NET Core programming model. Orleans 4.0 ships alongside .NET 7.0, and brings even better performance, simpler development paradigms, and deeper observability. In this session you'll see how Orleans fits into the ASP.NET stack and gives you distributed state persistence, so hosting your web applications across multiple servers - or even multiple clouds - isn't just possible, it's effortless.
General
17:00 - 18:30 PST
.NET Conf CodeParty 2022
Jeffrey T. Fritz
Join us for .NET Conf's annual CodeParty virtual attendee party. Let's have some fun with Jeff Fritz and the hosts as they go through an escape room LIVE. Brought to you by the .NET Conf sponsors, we'll give away 20 prizes each valued at $250 or more!
OSS Spotlight
18:30 - 19:00 PST
Build amazing cross-platform UI for .NET with Avalonia UI!
Mike James
Avalonia UI enables developers to build pixel-perfect, high-fidelity cross-platform desktop, web and mobile apps with .NET and C#. Join Mike James to discover why industry leaders, including Unity, JetBrains and Schneider Electric, all picked Avalonia UI and how you can get started using it today.
19:00 - 19:30 PST
Embedded IoT Prototyping with Meadow
Adrian Stevens
Learn how to prototype hardware and run full .NET applications on a real microcontroller with C# and Meadow.
19:30 - 20:00 PST
Build websites with a modern ASP.NET Core CMS – Orchard Core
Zoltán Lehóczky
Are you developing .NET web apps and are tired of reinventing the wheel with every project? Use a modern foundation to build on instead! In this session, we'll do a quick dive into working with the modern ASP.NET Core framework and web content management system (CMS) Orchard Core. We'll see what Orchard can provide you, how it goes beyond simple content management, and why you'd want to join such a cutting-edge open-source community.
20:00 - 20:30 PST
Extending apps to mobile and desktop with .NET MAUI and Oqtane
Shaun Walker
In this session we are going to showcase the exciting Blazor Hybrid support which is included in .NET MAUI. Specifically we will focus on the BlazorWebView control that allows Razor components to be rendered into an embedded Web View, allowing them to run natively on mobile and desktop devices. In this rendering model, Razor components load and execute very quickly and have full access to the native capabilities of the device through the .NET platform. We will also explain how you can get the most out of your code assets by leveraging the exact same web UI components across mobile, desktop, and web. And rather than using a simple "Hello World" scenario, all of these concepts will all be demonstrated using a robust open source modular application framework developed exclusively for Blazor and .NET MAUI.
Day 2
Wednesday, November 9
Deeper .NET
08:00 - 08:30 PST
What's New in C# 11
Mads Torgersen, Dustin Campbell
Take it to 11 with Dustin and Mads as they share the latest goodies of C#. Once again, the next version of C# brings new convenience, elegance and expressiveness to a codebase near you!
08:30 - 09:00 PST
Performance Improvements in .NET 7
Stephen Toub
In this talk, we'll survey a handful of the huge numbers of performance improvements that have found their way into .NET 7.
09:00 - 09:30 PST
Let's design a new C# language feature!
Jared Parsons
What all goes into designing a C# language feature? Why does it take so long for even simple additions to the language to go from idea to reality? In this session a member of the C# language design team is going to take you on the journey of designing a language feature. We'll explore a feature added to C# 11 and go through the journey from idea to shipping product and all the challenges that it faced along the way.
09:30 - 10:00 PST
.NET Architects Panel
David Fowler, Mikayla Hutchinson, Damian Edwards
Join the .NET Architects for a live interactive discussion about how .NET is designed, developed, and brought to millions with each release.
Blazor
10:00 - 10:30 PST
.NET ❤️’s WebAssembly in .NET 7
Daniel Roth
.NET 7 introduces powerful new capabilities for running .NET code on WebAssembly. In this session we’ll show how you can run .NET from any JavaScript code using the new and improved JavaScript interop support. We’ll look at debugging and hot reload improvements for .NET on WebAssembly and show how the .NET WebAssembly build tools in .NET 7 take advantage of the latest WebAssembly features like SIMD and Exception Handling to improve performance. We’ll also check out some upcoming and experimental .NET WebAssembly capabilities like support for multithreading.
10:30 - 11:00 PST
Build an Audio Browser app with Blazor
Steve Sanderson
So you’ve heard about new features in .NET 7, but how does it all fit together when you build an app? Join Steve as he quickly builds an end-to-end audio manager app with Blazor WebAssembly using features old and new. This is a moderately advanced talk (it assumes existing Blazor knowledge) full of hints and tips including: cleaner ways to organize JS interop, directly accessing files on an end user’s filesystem, dynamically generating SVGs, creating an elegant “loading” experience, and the performance impact of AOT compilation. Full source code is provided!
11:00 - 11:30 PST
Testing Blazor Applications with Playwright
Debbie O'Brien, Max Schmitt
Testing is hard, testing takes time to learn and to write, and time is money. As developers we want to test. We know we should but we don't have time. So how can we get more developers to do testing? We can create better tools. Let me introduce you to Playwright - Reliable end-to-end cross browser testing for modern web apps, by Microsoft and fully open source. Playwright's codegen generates tests for you so now you really have no excuses. It's time to play your tests wright.
GitHub
11:30 - 12:00 PST
GitHub Universe + .NET Conf Epic Crossover
Scott Hanselman
12:00 - 12:30 PST
Microsoft Dev Box and Azure Deployment Environments for .NET Developers
Anthony Cangialosi
Empower hybrid dev teams of any size by providing developers with streamlined, self-service access to the tools and resources they need. Get setup quickly with ready-to-code, cloud-based workstations that are preconfigured for any project using Microsoft Dev Box. Centrally managed, and deploy on-demand, templatized environments tailored to your current stage of development with Azure Deployment Environments.
Power Platform / Teams
12:30 - 13:00 PST
Boost your .NET productivity with Low Code Tools
Karuana Gatimu, Heather Newman
People are the key to any organization’s success, and in today’s world it is critical to re-energize and empower your digitally connected and distributed workforce. Join Heather Newman and Karuana Gatimu as they discuss innovations coming from Power Platform and Microsoft 365 - bringing together Low Code and Collaborative Applications. As developers struggle with capacity to build and manage new solutions, IT is struggling to recruit the necessary skills to support and scale. Learn how to find your makers and skill them on low-code and collaborative apps to keep up with demand and unleash creativity and innovation in places you didn't think possible.
13:00 - 13:30 PST
Rapidly create a front-end for your web APIs with Microsoft Power Apps
Julia Kasper
How can you leverage the power of low-code? In this session we will talk about the Microsoft Power Platform and how you can use it to quickly create a front-end for your web APIs. We will cover services like API Management and how we can expose our web APIs to the Microsoft Power Platform.
13:30 - 14:00 PST
Building Microsoft Teams Bots with .NET & the Teams Toolkit
Ayca Bas, John Miller
Building and extending Microsoft Teams with apps can feel overwhelming. Or maybe you’re just learning that it’s possible to extend Teams with embedded UI content, custom search, and more. In this session, you'll learn how to build a bot to post notifications on Microsoft Teams by using Teams Toolkit for Visual Studio.
Windows
14:00 - 14:30 PST
Building Windows apps with WinUI 3 with .NET
Nick Randolph
Learn about WinUI 3, the native UI platform component that ships with the Windows App SDK (completely decoupled from Windows 10 and later SDKs). The Windows App SDK provides a unified set of APIs and tools that can be used to create production desktop apps that target Windows 10 and later, and can be published to the Microsoft Store.
14:30 - 15:00 PST
Accelerate your WinUI 3 app with the Windows Community Toolkit
Michael Hawker
Not sure how to get started with Windows App SDK and WinUI 3? Not to worry, we have you covered! We'll demystify your common questions and dive into code so you can learn how to start building your app with components from the Windows Community Toolkit.
15:00 - 15:30 PST
Modernize your WPF and Windows Forms application with Blazor
Michele Aponte
Desktop is not dead and there are a lot of applications written in WPF and Windows Forms that need to be ported to Web, or reuse ready components written by the web team. Blazor can be the answer for both the requirements thanks to Blazor Hybrid. Let’s see how you can use it!
Modernization
15:30 - 16:00 PST
Upgrading from .NET Framework to .NET 7
Mike Rousos, Taylor Southwick, Olia Gavrysh
A deep dive into the latest upgrade tooling available and the end-to-end experience of upgrading from .NET Framework to .NET 7.
16:00 - 16:30 PST
Using CoreWCF to unblock modernization of WCF apps
Sam Spencer, Matt Connew
Many apps built for .NET Framework used WCF as an RPC mechanism between tiers of the application. CoreWCF provides a modern replacement that can be used to make it easier to move apps to .NET 6+
16:30 - 17:00 PST
High-performance services with gRPC: What's new in .NET 7
James Newton-King
gRPC is a high-performance RPC framework used by developers around the world to build fast apps. In this talk you will learn about what’s new in gRPC for .NET 7, including: * Performance improvements * Create RESTful services with gRPC JSON transcoding * gRPC apps on Azure App Services
General
17:00 - 17:30 PST
Upgrading Xamarin apps to .NET MAUI
Sweekriti Satpathy
This session will walk you through the changes you need to make to your libraries and UI when upgrading your Xamarin apps to .NET Multi-platform App UI. We'll also show you how the .NET Upgrade Assistant can help you.
17:30 - 18:00 PST
CSS Techniques for Blazor Developers
Ed Charbeneau
Does your CSS code remind you of an episode of Hoarders? In this session we’ll explore a variety of CSS related architecture decisions that Blazor developers face. Attendees will learn how and when to use plain CSS, Sass or CSS Isolation with Blazor. Modern CSS techniques like custom CSS properties will be discussed. We’ll explore techniques to build modular and intelligent CSS by leveraging CSS principals and incorporating helper libraries. This session aims to break the dependency on CSS systems like Bootstrap and Tailwind.
18:00 - 18:30 PST
Accepting Payments with Stripe Checkout
Cecil Phillip
Being able to collect payments in our applications today is often a critical feature for most businesses. The problem is adding support to properly process payments is a non-trivial thing to do. We must consider things like what currencies will be supported, what payment methods will be accepted, or how we handle taxes. Implementing all these concerns in a secure and compliant way can be extremely overwhelming. In this workshop we will walk you through creating your first end-to-end payments integration with Stripe Checkout. You will learn how to process one-time payments, subscriptions, and even create shareable links that you can use to accept payments in web applications.
18:30 - 19:00 PST
The Power of Polyglot Notebooks
Claudia Regio
This talk will introduce and demo the use of .NET Interactive in VS Code Jupyter Notebooks, a cutting-edge kernel that allows data scientists and developers to use multiple languages and share variables between them, giving them a premium polyglot experience.
19:00 - 19:30 PST
Slaying Zombie ‘No Repro’ Crashes with Infer#
Matthew Jin, Xin Shi, Xiaoyu Liu, Jason Shaver
Not all bugs are created equal; some, such as memory and threading bugs, can cost hours to reproduce. Others, like SQL injections, are critical security vulnerabilities. We'll teach you how to setup and use Infer# to detect and resolve complex, cross-assembly security and performance issues in minutes. If you want to make your .NET projects more performant and secure, this talk is for you!
19:30 - 20:00 PST
.NET Interop Improvements in .NET 7
Jeremy Koritzinsky
Interop in .NET has made many advancements in .NET 7 and now uses the new Roslyn-based source generator technology to provide many new features and better usability. Come learn how to utilize these new features!
20:00 - 20:30 PST
Visual Studio Code for C# Developers
Tim Corey
If you're a C# developer who wants to work in a fast editor environment, and also wants to learn more C# as you go, I think you should learn VS Code for C# development. I'll explain how VS Code will help you become a more productive C# developer. I'll show you how to set up and use VS Code for .NET development, how to .NET CLI in the integrated terminal, and show you some tips and tricks for efficient C# development.
20:30 - 21:00 PST
Migrate Your Legacy ASP.NET Projects to ASP.NET Core Incrementally with YARP
Jonathan "J." Tower
YARP (Yet Another Reverse Proxy) might have a funny name, but it a very serious tool when it comes to helping you upgrade your legacy ASP.NET projects to ASP.NET Core. The best part is, it helps you do the upgrade gradually, and with minimal impact to your users. Come learn how to add YARP to your ASP.NET project, and how it uses the "Strangle Fig Pattern" to allow you to incrementally migrate your application to ASP.NET Core.
21:00 - 21:30 PST
MVVM is easier than ever before with Source Generators, .NET 7, and the MVVM Toolkit
Sergio Pedri
A deep dive into the new features in the MVVM Toolkit included in the 8.1 release, specifically those powered by Roslyn source generators. This session will introduce the .NET Community Toolkit and the MVVM Toolkit, go through several new scenarios made possible by source generators, and showcase how they can make life easier for developers (by removing a lot of boilerplate they'd normally have to write manually). It will also outline the source generator architecture and explain how it works and interacts with the IDE. This new release of the MVVM Toolkit will especially be useful for new developers just getting started with MVVM, as it will make the setup necessary to write viewmodels, commands and properties much easier and more compact. The 8.1 release also offers extended support to customize attributes over generated properties, which is especially useful in scenarios such as managing application state through viewmodel serialization, and more. The talk will also include a small demo using .NET MAUI showing how to use the new source generators in practice to refactor a small MVVM application.
21:30 - 22:00 PST
Deep Learning in .NET
Kinfey Lo
.NET is a cross-platform and cross-application scenario open source technology solution. Are you using .NET to complete deep learning work? This course will introduce to you how to build computer vision applications through TorchSharp. Teach you how to use .NET to complete related deep learning work from data acquisition, data feature engineering, data training, testing, deployment and MLOps.
22:00 - 22:30 PST
T4 goodness with Entity Framework Core 7
Erik Ejlskov Jensen
In EF Core 7 you can now use T4 (text template transformation templates) to customize the Database First workflow. In this session you will get an overview of this new feature and see some simple customizations.
22:30 - 23:00 PST
Build More Predictable Event-Driven System with CloudEvents, .NET and Azure
Justin Yoo
You know the events are everywhere. But their event publishers describe them differently. CNCF’s CloudEvents proposes the standard way of describing the events, Azure offers an easy way of handling those CloudEvents, and .NET SDK makes the event handling even easier! Throughout this session, I’m going to discuss 1) What CloudEvents is, 2) How it works on Azure services like Key Vault or Storage, 3) How to convert existing event publishers to be CloudEvents compliant using .NET SDK, and 4) How to consume those CloudEvents data using Azure Logic Apps.
23:00 - 23:30 PST
From RESTful HTTP API to gRPC
Irina Scurtu
With an increasing need for scalability and performance dictated by the modern web, it becomes harder and harder to choose an API paradigm for inter-service communication. While making RESTful HTTP API calls between services still works, why not use something that will do the job even better? Welcome gRPC! gRPC has been a first-class citizen in .NET for a while. It is contract-based, performant - with smaller response/request bodies, perfect for polyglot microservice-based environments. If we sprinkle some client-side load balancing and the ability to expose a gRPC service as a RESTful HTTP API we might have the perfect point-to-point communication mechanism for microservice architectures. In this session, we will see how we can transform point to point traditional HTTP API downstream calls, to gRPC calls to gain some performance and bandwidth improvements.
23:30 - 00:00 PST
Human-readable Razor views with ASP.NET 7 Tag Helpers
Dino Esposito
In spite of its inherent ubiquity, over the years HTML has been pushed to achieve goals it was never designed for. Conceived as a document-oriented markup language, it ended up being ubiquitously used to lay out web pages and gained extra features along the way to make new emerging goals reachable. Indeed, it's a "catch-me-if-you-can" kind of game where the goal of building compelling web pages is a fast moving target that HTML alone (with the bother of standards) can't just hit. We need an app-specific (or just a a web-specific), HTML- and CSS-based new markup language. Web components are the teh W3C answer, tag helpers are the ASP.NET's take. In this talk, we'll see how to build server-side tag helpers (Bootstrap-friendly) with ASP.NET 7 to greatly simplify Razor views and pages and give them an unprecedented level of expressivity.
Day 3
Thursday, November 10
General
00:00 - 00:30 PST
Tips and tricks on platform-code implementation in .NET MAUI
Luis Beltran
.NET MAUI allows developers to integrate native code to extend the look and feel of mobile applications. On the one hand, you can customize a cross-platform control (or create new views) with native look and feel using Handlers. On the other hand, you can write your own code to access platform-specific APIs. In order to get the best of these capabilities, you must learn some concepts (handlers, property mappers, conditional compilation, multi-targetting) which can be overwhelming. The goal of this session is to provide tips on how to simplify the implementation of platform-specific code in .NET MAUI by using interfaces and partial classes, of course, with a cool demo.
00:30 - 01:00 PST
Aloha .NET MAUI Community Toolkit
Gerald Versluis
The .NET MAUI Community Toolkit is an essential plugin for every .NET MAUI app. In this session we'll learn a bit about the history of the Community Toolkit(s), what you can do with it today and how to get started yourself!
01:00 - 01:30 PST
Pushing C# to new places with NativeAOT
Kevin Gosse
One of the key features of .NET 7 is NativeAOT: a tool that allows developers to compile .NET code into a native application. The main benefits are faster startup and reduced memory usage, but it also unlocks a wide range of new native interoperability scenarios that were difficult or even impossible before. In this session, we will unveil some of the magic behind native interop, and see how NativeAOT can help us pushing C# to places where it couldn't be used before.
01:30 - 02:00 PST
Authorization in a Distributed / Microservice System
Halil İbrahim Kalkan
In this talk, I will introduce the challenges of permission-based authorization systems and explain the solution we've implemented with the open source ABP Framework and .NET.
02:00 - 02:30 PST
Down the Oregon Trail with Functional C#
Simon Painter
In 1971, three students from Minnesota thought they could liven up a history lecture by creating a computer game for the students to play, and after several days of work in HP Time Share BASIC, they came up with what turned out to be a significant milestone in the history of computer games - Oregon Trail. Oregon Trail is often regarded as one of the first great computer games, as well as being the originator of a franchise that is still running to this day. It was effectively also one of the first instances of both Shareware and a Commercial home release of(depending on the version). My interest though, isn't just in historical computer games, it's also .NET and Functional Programming. I want to use this as a worked example of one of my passions - Functional Programming in C#! The challenge I've set myself is to redevelop Oregon Trail into C# using the following restrictions: * Near 100% unit test coverage * No variables can change state once set * No statements (for, foreach, if, where, etc.) unless there literally is no way of avoiding them I'll also be demonstrating a few of the tricks Functional Programming can offer, like Higher-order functions, functional flows with simple Monads and Tail Recursion. There should also be a bit of retro computing fun, while we're at it.
02:30 - 03:00 PST
.NET 7, Docker, K8S and Azure DevOps
Vahid Farahmandian
In this session I am going to show that how we can host our .NET 7 application in docker and how we can get the zero downtime for our application using k8s. Finally I will show how we can design our CI/CD pipeline using Microsoft Azure DevOps to automate the whole delivery process(change management, docker, k8s)
03:00 - 03:30 PST
Leverage the power of the GPU, DX12 and D2D1 with ease using ComputeSharp
Sergio Pedri
GPU computing and rendering has always been extremely complex and out of reach for most C# developers, to the point most would not even try. ComputeSharp is a new open source, C# library that solves this by leveraging the power of Roslyn source generators, full C# projections for HLSL types and APIs, and higher level APIs to interact with DX12 and D2D1, to empower every C# developer to easily integrate GPU acceleration into their apps. This talk includes an introduction to the library (https://github.com/Sergio0694/ComputeSharp), a deep dive into its architecture and how source generators make all of this possible, extremely efficient at runtime and fully trimmable, and a demo of how to use ComputeSharp to write and run a DX12 compute shader and a D2D1 pixel shader from scratch in a UWP/WinUI 3 application, doing all from just C#!
03:30 - 04:00 PST
Using Durable Azure Functions in .NET 7
Niels Filter
With .NET 7 durable functions will be available for Azure Functions running in isolated mode. I've found that many people I've chatted to aren't aware of durable functions. They can drastically simplify implementations by coordinating various distributed functions and queues. I'd love to be able to show some realistic use cases for using these, specifically using isolated functions (which will be available from .NET 7).
04:00 - 04:30 PST
Performance tricks I learned from contributing to the Azure .NET SDK
Daniel Marbach
As a practical learner, I've found performance optimizations are my biggest challenge and where I've learned the most helpful tricks, mostly by trial and error. It turns out the Azure .NET SDK is a perfect “playground” for learning those tricks—it's maintained by people who care and give feedback. Over the past few years, I've contributed over fifty pull requests to the Azure .NET SDK. In this session, I'll walk you through the performance improvements I made, and help you develop your own “superpowers”—avoiding unnecessary allocations, finding opportunities for memory pooling, and more.
04:30 - 05:00 PST
Build a .NET SDK with OpenAPI and NSwag
Laura Rodriguez
In this session, I'll walk you through the process of building a modern Web API leveraging the latest .NET features and generating an SDK with broad compatibility with other .NET versions or even other languages, thanks to OpenAPI! We're going to use Minimal APIs, User JWTs, OpenAPI, Swagger, NSwag and review how you can expand your SDK support to other programming languages. See you there :)
05:00 - 05:30 PST
WatchDog: What's New in Open-source Logging
Israel Ulelu, Kelechi Onyekwere
In the session, we will be introducing WatchDog. An open-source, lightweight, real-time logger for ASP.NET with an interactive dashboard providing sorting, filtering and searching functionalities for logs (messages and events), HTTP requests and responses that hit your endpoints and exceptions that occur in your web application. All in real-time. All with a 600kb nuget package. Check the official documentation here: https://github.com/IzyPro/WatchDog
05:30 - 06:00 PST
Dynamically adding functionality to ASP.NET Core
Chris Klug
Have you ever wondered how Microsoft is able to add Application Insights to you Web App in Azure when you tick a checkbox, even if your application has never heard of it? Well, Chris Klug has... So he set out to find a way. And after digging into runtime stores, startup filters and hosting startup assemblies, he found a solution. In this talk, he will show you how to do it as well!
06:00 - 06:30 PST
ASP.NET Basics for Experts
Layla Porter
People love to stay in their comfort zone and do what they've always done. But what if you could take your web applications to the next level just by getting the fundamentals right? In this .NET 6 demo-rich session, I will show you how to make your applications more testable, maintainable and resilient. Whether you are working with a monolith or a vast distributed application, the areas we'll cover will be applicable. Join me and learn about the following topics and more! - Minimal APIs, top-level statements and good design practise - Dependency injection and inversion of control - HTTP clients and policies - Resiliency and circuit breakers with Polly - Discovery clients with Steeltoe OSS
06:30 - 07:00 PST
.NET Configuration In Depth
Chris Ayers
Working as a consultant, something I often saw was teams moving from .NET Framework to .NET Core and .NET 5/6. As they adopted these new versions, they kept similar patterns and libraries. The teams weren't taking full advantage of the improvements in .NET. One of those areas is Configuration. Configuration holds our secrets, connection strings, application settings, and other data. We have checked it in, stored it in a web.config and transformed it in a pipeline. Today there are a variety of ways to configure our applications securely. This session will cover: Strongly typed configuration Configuration providers - JSON, XML, INI files; Environment variables; Command Line;Azure App Config; Key Vault Dependency Injection The Options Pattern
07:00 - 07:30 PST
Networking in .NET 7.0
Karel Zikmund
What's new in .NET 7.0 Networking - HTTP/3 & QUIC protocols - Evolution of HTTP protocol, benefits of HTTP/3 and QUIC. What is available in .NET 7.0. - HTTP/2 WebSockets - Benefits compared to HTTP/1.1 WebSockets. How to use it in .NET 7.0.
07:30 - 08:00 PST
Creating Business Applications Using Azure Maps
Michael Washington
You can create Microsoft Azure Maps applications in Microsoft Blazor. In addition to displaying maps, Azure Maps provides a full range of services including Search, Traffic, Routing, Elevation, Spatial operations, Geolocation, Weather Service and more.
Linux
08:00 - 08:30 PST
Building .NET apps on WSL
Scott Hanselman
Can you really use Windows to develop Linux apps? Should you? How real is WSL (Windows Subsystem for Linux) and how close is it to reality? Join Scott Hanselman as he walks you through the state of the art of Linux on Windows. What's possible, what's not, what about the Windows Terminal and Docker? Tons of lives demos in this highly technical - no slides - session.
08:30 - 09:00 PST
Using .NET with Chiseled Ubuntu Containers
Richard Lander, Valentin Viennot
Chiseled Ubuntu Containers are new and exciting. You'll see how easy it is to switch to using them with .NET and what the benefits are. We'll show using them at your desktop, deploying them to the cloud, and also making an evil hacker fail to compromise an app (that might otherwise succeed).
09:00 - 09:30 PST
.NET GUI Applications for Embedded Linux Using Containers
Matheus Castello
The development of graphical user interface applications for IoT using embedded Linux is a challenge. In this talk I want to show the solutions we have within the .NET ecosystem, the pros and cons, challenges and some tips and tricks.
Data
09:30 - 10:00 PST
Leveling up data: Upgrade from EF6 to EF7 and blast off!
Arthur Vickers, Shay Rojansky
In this code-heavy session, Arthur and Shay from the .NET Data team take an Entity Framework 6 application running on .NET Framework 4.8 and upgrade it to Entity Framework Core 7 running on .NET 7. After the upgrade, queries run faster and the roundtrips needed to save data are massively reduced. We’ll then use several new features from EF7, including bulk updates to further boost performance, and querying into JSON embedded in a column. Join us to take your EF apps out of this world!
10:00 - 10:30 PST
Navigating Graphs in Azure Cosmos DB using Gremlin.Net
Sarah Dutkiewicz
Graph databases are commonly seen in recommendation engines, fraud detection, IT network diagrams, symbolic reasoning, and access management. Azure Cosmos DB for Apache Gremlin is the API for graph data in Azure Cosmos DB. In this talk, we will navigate through a graph database using C# and Gremlin.Net. By the end of this talk, you should be comfortable exploring relationships with Gremlin.Net.
10:30 - 11:00 PST
Event Sourcing with Marten and Postgresql
Jeremy Miller
Marten (https://martendb.io) is an open source library that enables .Net developers to use the rock solid Postgresql database as both a document database and event store. In this session I'll show how Marten provides "event sourcing in a box" through its integrated support for capturing event streams, projecting "read-side" views of those same event streams, and full support for storing and querying the projected views. All with one library and database. We'll go beyond the basics of event sourcing into Marten's unique abilities like live aggregation and "inline" projections when you need ACID compliance rather than eventual consistency. We'll also look at how Marten helps you deal with concurrency issues during event sourcing. And lastly, because Marten is absolutely intended for real world development, we'll work through common integration scenarios with messaging infrastructure and Marten's place within a CQRS architecture as well.
ML/AI
11:00 - 11:30 PST
Announcing ML.NET 2.0
Luis Quintanilla
ML.NET is a free, cross-platform, and open-source machine learning framework built for .NET developers that simplifies the model training and deployment process by letting you use the .NET languages, tools, and libraries you're already productive in. In this session, we'll talk about what's new in ML.NET 2.0 and share what's next for ML.NET.
11:30 - 12:00 PST
Machine learning models with ONNX and .NET
Henk Boelman, Beatriz Stollnitz
Most machine learning models are trained in Python using frameworks like PyTorch and TensorFlow. You might expect that an application that runs the trained model would need to have all those frameworks installed. But does it need to? It does not! By converting your model to ONNX, you can run it in any supported language, including your .NET applications! ONNX (Open Neural Network Exchange) is an open standard for machine learning interoperability. It enables tools to work together by allowing them to share models in a commonly understood format. In this presentation we will show you how you can train a machine learning model using transfer learning in PyTorch, we’ll convert the model to ONNX, and we’ll use it in a .NET application.
General
12:00 - 12:30 PST
Lessons learnt using DevContainers and the Azure Developer Cli to code apps anywhere, anytime.
Rory Preddy
My best moment of harmony is when I take a shower. I'm not even thinking, then suddenly BAM! The solution hits me! In the past, I had rushed to my laptop, powered it up, and spent critical time setting it up! Instead, I can spin up a customized development environment from zero in a few seconds! Once set up, I can use the new Azure Developer CLI and its developer-friendly commands that map to key stages in my workflow - code, build, deploy, monitor, repeat. Join us for a fascinating reflection on our original vision, new achievements, and the development tools that remove the friction of spinning up developer environments!
12:30 - 13:00 PST
Clean Architecture with ASP.NET Core 7
Steve Smith
Clean Architecture (aka Onion, Hexagonal, Ports-and-Adapters) organizes your code in a way that limits its dependencies on infrastructure concerns. Learn how to apply it to your ASP.NET Core apps!
13:00 - 13:30 PST
.NET 7 on App Service
Byron Tardif, Gaurav Seth
Join this session to learn about Day Zero support for .NET 7.0 on Azure App Services. In the session we will also demo how to discover, assess, and bulk migrate legacy ASP.NET web applications to Azure App Services using Azure Migrate. You’ll learn: How to deploy .NET 7.0 web applications to Azure App Services, GPRC support on Azure App Services, At scale discovery and assessment of ASP.NET web apps using Azure Migrate, and Perform bulk migration of ASP.NET web apps to Azure App Services Using Azure Migrate
13:30 - 14:00 PST
Azure Static Web Apps with Blazor and .NET
Melissa Houghton
Are you a .NET developer who wants to quickly build and deploy full-stack .NET serverless applications? Then this talk is for you! In this session, we will learn how to use Azure Static Web Apps with Blazor and .NET. First, we will explore Azure Static Web Apps. Then take a look at getting started with Blazor WebAssembly paired with the serverless power of .NET Azure Functions or Azure Container Apps. We will continue on to explore other .NET API options now available. And finally, we will discover how to automatically build and deploy to Azure directly from our code repository. Join me in discussing the benefits and use cases of Azure Static Web Apps while diving into basic and advanced scenarios of using Azure Static Web Apps with Blazor and .NET.
14:00 - 14:30 PST
Building Accessible Apps with .NET MAUI
Rachel Kang (SHE/HER)
Making your apps accessible has never been easier. Learn about the new APIs, improvements, and tools that make it easy to develop accessible apps with .NET MAUI. No matter what stage of the app development process you’re at, and no matter your level of familiarity with developing apps with accessibility in mind, it is always the right time to make your apps more accessible. Get started with .NET MAUI today!
14:30 - 15:00 PST
Performance benefits of .NET 7 for Web Applications
Jérôme Laban
We are most excited about .NET WebAssembly Exceptions and Threading support in .NET 7, AND YOU SHOULD BE TOO! Enabling WebAssembly exceptions in your projects allows for your code to stay entirely in WebAssembly for exception handling, improving the performance as expensive JavaScript/Wasm boundaries crossing is avoided. Also, the generated code size is smaller. In addition, Threading allows your Web Apps to perform expensive tasks off the UI thread and avoid freezing the UI. Come see how our clients have been able to experience 30%+ performance increase compared to even the very fast .NET 6, and to see how even Microsoft uses Uno Platform to power Windows Community Toolkit Labs, all using C# and XAML on the web.
15:00 - 15:30 PST
Making Technology More Accessible with .NET and AI
Alex Dunn
The story of building Project Enabled Play - a platform built in .NET on Azure that enables users to turn their voice, face expressions, hand gestures, smartphones, watches, virtual inputs, and more into a gaming controller, keyboard, and mouse on any platform they have access to. Come learn about scaling applications in .NET to over a dozen different platforms and channels while building for accessibility to even the playing field. Gain an understanding of voice and conversational platforms, real-time communication technology, computer vision, and best practices for sharing code and going from PoC to product. Try your shot at landing a win in Call of Duty, Halo, Fall Guys, Minecraft, and more using your voice or write a block of code using Visual Studio and your face, then leave with a working knowledge of other ways you can use .NET and the tools you're familiar with.
Games
15:30 - 16:00 PST
Build games with C# and Visual Studio
Jb Evain
When you think about C#, game development might not be the first thing that comes to your mind, but C# is used all over the game development industry. In this session we'll see an overview of different tools and frameworks to build cross platform games with C# and Visual Studio.
16:00 - 17:00 PST
The future of .NET in real time 3D applications using Unity
Josh Peterson
Join us as we explore how Unity uses .NET technology to empower creators to deliver incredible real time 3D experiences. We will explore the past, present, and future of .NET at Unity, featuring high-level strategy, technical deep dives, and live coding!