Background gradient ellipse Background gradient ellipse Background gradient ellipse Background gradient ellipse Background gradient ellipse

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!