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

Agenda

Day 1

Tuesday, November 14

08:00 - 09:00 PST

Welcome to .NET 8

Damian Edwards, Safia Abdalla, David Fowler, Gaurav Seth, Daniel Roth, Glenn Condron, Maddy Montaquila, Maria Naggaga

.NET 8 is here! Find out what is new for .NET developers across all workloads including cloud, mobile, desktop, web, AI, IoT, and so much more.

09:00 - 10:00 PST

Full stack web UI with Blazor in .NET 8

Daniel Roth, Steve Sanderson

In .NET 8 you can deliver the best web app experiences entirely in Blazor using Blazor's convenient component model. You can build your entire web app in Blazor without the needed for writing JavaScript or mixing web frameworks. In this session you'll see how you can use Blazor's new server-side rendering support to power your web apps from the server for maximum performance and scalability. You'll see how you can easily add advanced capabilities like streaming rendering and enhanced navigation & form handling to further optimize the user experience. Then add rich client-side interactivity wherever it is needed using Blazor Server or Blazor WebAssembly.

10:00 - 11:00 PST

Building Cloud Native apps with .NET 8

Glenn Condron, David Fowler

Kickstart your Day 1 morning at .NET Conf by diving deep into the future of cloud-native development in .NET. Get the first look at what's new in .NET 8.0 for building high-performance, resilient services that shine on any cloud platform. See how Native AOT is a game-changer for app speed and size, and gain a new level of insight with Open Telemetry support. Don't miss live demos and a special reveal that promises to elevate your .NET development experience to new heights!

11:00 - 12:00 PST

Performance Improvements in .NET 8, ASP.NET Core, and .NET MAUI

David Fowler, Stephen Toub, Jonathan Peppers

.NET 8 has seen many improvements in performance across the entire stack. In this session, we’ll take a tour through some of the more interesting improvements in the release and examine the positive impact they can have on your services and applications.

12:00 - 12:45 PST

What's New in C# 12

Mads Torgersen, Dustin Campbell

A new .NET means a new C#! Dustin and Mads will take you through the new features in C# 12, including collection expressions and primary constructors.

12:45 - 13:30 PST

Packing light with VS Code and the C# Dev Kit

Burke Holland, Leslie Richardson

Join us for an enlightening (get it?) session on lightweight C# development with the all new C# DevKit extension and Visual Studio Code. In this session, we'll explore the key features of the C# Dev Kit, as well as some valuable tips and tricks for getting the most out of Visual Studio Code. Learn how to navigate your codebase with ease, utilize debugging tools effectively and map the concepts you already know onto an editor that might be new to you. Whether you're a seasoned developer or just starting with C#, this session will provide you with practical insights and techniques to make your C# development lightweight and efficient.

13:30 - 14:15 PST

Entity Framework Core 8: Improved JSON, queryable collections , and more…

Arthur Vickers, Shay Rojansky

Entity Framework Core 8 (EF8) introduces several new highly-requested features, as well as major underlying infrastructure changes setting up EF Core for future enhancements. The new EF8 features include: - Further JSON support in relational databases, including: - Use JSON to send multi-value parameters for translations such as `List.Contains` - Mapping and querying collections of primitive types - Mapping to JSON columns using SQLite - Leverage the new support for performance improvements, e.g. when using Contains - Use C# structs with DDD value object semantics in your classes while still splitting the contents to multiple columns in the database - Raw SQL queries for unmapped types - Official `HierarchyId` support for EF Core on SQL Server - Improvements to lazy loading and the change tracking APIs - Many small enhancements to existing features Join Arthur Vickers and Shay Rojansky from the EF team for a tour of these new features, with demos showing the JSON mapping and queries, and value type support.

14:15 - 15:00 PST

.NET 💖 AI

John Maeda, Scott Hanselman

Want to add LLM AI easily to your app? That's what the open-source project "Semantic Kernel" was built for in the wake of the ChatGPT explosion of late 2022. Learn about Semantic Kernel's latest advances for building AI Plugins and Planners.

15:00 - 15:45 PST

Build Intelligent Apps with .NET and Azure

Luis Quintanilla, Maria Naggaga

Join us for this exciting session and discover how you can leverage the power of AI to create the next generation of intelligent apps that transform productivity, automate processes, and derive key insights. Across the entire stack, from the runtime, to the libraries, SDKs and tools, to the services, .NET and Azure make the process of building intelligent apps more productive.

15:45 - 16:30 PST

What’s New in .NET MAUI

David Ortinau, Maddy Montaquila

Companies worldwide are building mobile and desktop apps with .NET MAUI, and .NET 8 brings greater stability, memory management, and new desktop features to everyone. In this session we’ll introduce you to what’s new in .NET 8, how companies are being successful shipping production quality applications with .NET MAUI, and how you can get the most out of Visual Studio and Visual Studio Code.

16:30 - 17:15 PST

Building and scaling cloud-native, intelligent applications on Azure and .NET

Scott Hunter

Learn how to run cloud-native serverless and container applications in Azure using Azure Kubernetes Service and Azure Container Apps. We help you choose the right service for your apps. We show you how Azure is the best platform for hosting cloud native and intelligent apps, and an app using Azure OpenAI Service and Azure Data. Learn all the new capabilities of our container platforms including how to deploy, test for scale, monitor, and much more.

17:15 - 18:15 PST

CodeParty Attendee Party

Jeffrey T. Fritz

Join Jeff Fritz, Dee Dee Walsh, Sara Faatz and more special guests for our attendee party for some fun and prizes to be given away from our sponsors.

Day 2

Wednesday, November 15

09:00 - 09:30 PST

Improving your application telemetry using .NET 8 and Open Telemetry

Noah Falk, Sam Spencer

The 3 pillars of observability are Logging, Metrics and Distributed tracing. Learn about the improvements we have made in .NET 8 including logging extensions for enrichment and data redaction, and the new metrics support which follows the Open Telemetry semantic conventions.

09:30 - 10:00 PST

Building resilient cloud services with .NET 8

Martin Tomka

This is a deep dive into the .NET 8 resiliency features and integration with the popular Polly library.

10:00 - 10:30 PST

App Service the best place to host your .NET 8 Web Apps

Byron Tardif

.NET 8 is supported on App Service on day 0! Learn about some of the new exciting platform features that will take your .NET 8 workloads to the next level.

10:30 - 11:00 PST

In .NET 8, ASP.NET Ate

Safia Abdalla, Stephen Halter

Learn all about new features coming to the ASP.NET stack, from metrics support to improved route tooling, that are guaranteed to supercharge your development.

11:00 - 11:30 PST

What's new in System.Text.Json

Eirik George Tsarpalis

Our focus for System.Text.Json in this release has been to substantially improve the user experience when using the library in Native AOT applications, as well as delivering a number of highly requested features and reliability enhancements. These include support for populating read-only members, customizable unmapped member handling, support for interface hierarchies and snake case and kebab case naming policies and much more.

11:30 - 12:00 PST

Tiny, fast ASP.NET Core APIs with native AOT

Damian Edwards

.NET 8 introduces support for publishing ASP.NET Core applications to native AOT for lightning-fast startup times & small, self-contained, native executables & containers. This session will provide an overview of when you might want to consider publishing native AOT for your ASP.NET Core APIs and demonstrate the benefits and compatibility considerations.

12:00 - 12:30 PST

Learning C# and .NET with freeCodeCamp!

Scott Hanselman, Quincy Larson

Excited to learn C# and put a certificate on your LinkedIn? freeCodeCamp and Microsoft teamed up to release the new Foundational C# Certification. It’s absolutely free, so why don’t you join us in getting certified with Microsoft learn and freeCodeCamp. In this session, Scott Hanselman sits down with freeCodeCamp founder, Quincy Larson, to discuss the certification, the origin or freeCodeCamp, accessibility in computing education, and how to keep learning throughout your career.

12:30 - 13:00 PST

Leveraging the power of the .NET platform in Azure Functions

Matthew Henderson, Fabio Cavalcante

Recent updates to Azure Functions make it easier than ever to build scalable, event-driven, serverless applications in .NET! In this session, the Azure Functions team will show you how to leverage .NET 8, ASP.NET Core integration, the latest Azure SDKs, and more so that you can make the most of your function projects.

13:00 - 13:30 PST

Visual Studio Updates for .NET Devs

Sayed Hashimi

There's so much new good stuff in Visual Studio for .NET developers - Endpoint Explorer, Dev Tunnels, REST endpoint testing with .http files, and more!

13:30 - 14:00 PST

Everyday C# - A blend of modern and time tested features

Bill Wagner

Everyday C# C# innovates quickly. Your team needs to chart a course to adopt new features most applicable to you and your team. Everyday C# defines the subset of C# we expect developers to learn first when they begin learning C#. We include the latest features when they are ones that we expect most developers will use. You can examine the set of features included (and excluded) as a starting point for what features to adopt in your application. You can use the same process we used to define your team's version of "Everyday C#". You'll adapt our process to match your environment. This gives your team guidance on when to adopt each new language innovation, and when to continue your current practices.

14:00 - 14:30 PST

ASP.NET Core Authentication Simplified

Stephen Halter, Jeremy Likness

An introduction to the new auth features introduced in ASP.NET Core 8 that make it easier to set up and customize local authentication for client applications (SPA, Blazor, mobile, etc...) New features include: the new MapIdentityApi method which adds Identity HTTP APIs ( /register, /login, etc...) and can be used by mobile, desktop and SPA applications; a new opaque bearer token authentication handler; and new Identity Blazor Components.

14:30 - 15:00 PST

Migrating .NET applications to Azure

Mike Rousos, Olia Gavrysh

This session introduces Azure Migrate application and code assessment, a Visual Studio extension that helps identify code and configuration in your solution that need reviewed prior to migrating the solution to Azure. Azure Migrate application and code assessment for .NET works with both .NET Framework and .NET, providing useful insights to accelerate your migration from on-premises deployments to Azure App Service, Azure Kubernetes Service, and/or Azure Container Apps.

15:00 - 15:30 PST

.NET Containers advancements in .NET 8

Chet Husk, Richard Lander

.NET 8 brings new advancements in performance in security not just for your apps, but for the containers that run them. Learn more about changes to the Microsoft base images to support rootless execution, new container images that support more secure deployment and entirely new scenarios like Ahead of Time compilation. Then, see how the SDK Container publishing tooling that builds on these to make container deployments easier than ever.

15:30 - 16:00 PST

Build hybrid apps with .NET MAUI

Beth Massi, Eilon Lipton

In this session learn why you would choose a hybrid web approach to building native apps with .NET MAUI in .NET 8. Learn about Blazor hybrid and how you can build full-featured native apps for Windows, Mac, iOS and Android within a single codebase that can take advantage of your web skills. Take a tour of some of the new capabilities and see how you can reuse UI and build solutions that target the web at the same time. Also get a peek at how you can leverage other web frameworks in .NET MAUI.

16:00 - 16:30 PST

What's New in NuGet for .NET 8

Allie Barry

This session will provide a description and walkthrough of all of the new features available in NuGet, the .NET package manager tool, for .NET 8!

16:30 - 17:00 PST

What's new with WinForms

Merrie McGaw, Klaus Loeffelmann

Since we added WinForms to .NET in .NET Core 3.0 we've been making a lot of improvements for our developers. This session will go over some of these improvements in both the runtime and the Visual Studio WinForms designer. You'll see that WinForms is alive and well in .NET!

17:00 - 17:30 PST

Best Practices for Cross-Platform .NET 8 Applications

Nick Randolph

You shouldn’t need to ever write code from scratch for commonly used functions. Microsoft has extracted a host of capabilities outside of ASP.NET and made them available through Microsoft Extensions – covering hosting, logging, configuration, etc. In turn, the open-source Uno Platform Extensions are based on Microsoft Extensions and enable cross-platform scenarios for .NET applications such as Navigation, Localization and more.  In addition, we will cover the new Reactive extension for cross-platform scenarios inspired by Kotlin Flows, Scala Streams and Reactive Extensions  In this session we will show how you can bootstrap a new Uno Platform application and get started with proper architecture in minutes, for work that would usually take weeks to do.

17:30 - 18:00 PST

Vertical Slice Architecture: How Does it Compare to Clean Architecture

Luke Parker

Is Vertical Slice Architecture the next big thing or just as cool new kid? Enterprise software development requires you to choose the right architecture. This session with Luke Parker will provide a realistic dive into Vertical Slice Architecture (VSA) with .NET; showcasing the potential shift from Clean Architecture (CA) to VSA. You will learn the benefits and drawbacks of both Clean Architecture & VSA. We'll reflect on some changes to increase development speed, focusing on a modern Web API, utilising the latest C# features. See Luke demonstrate how to architect an application that is maintainable and scalable. Utilising a template for faster development, you can get up and running very quickly if you know how! Join us and get ahead of the curve, and be the one driving innovation in your .NET application.

18:00 - 18:30 PST

Generative AI for the .NET Developer

Aaron Powell

Have you ever wondered how to create intelligent apps with .NET and Azure OpenAI? Do you want to learn how to leverage the power of large language models like ChatGPT to generate natural and engaging conversations? Do you want to see how AI can build AI apps? If you answered yes to any of these questions, then this talk is for you! In this talk, you will discover how to use .NET, C#, and Azure to create amazing applications with OpenAI and other generative AI technologies. You will learn the fundamental concepts of this latest wave of AI, the benefits and challenges of using .NET with it, and the best practices and tips for developing intelligent apps. You will also see a live demo of how AI can build AI apps using .NET and OpenAI. And yes, this abstract was created using Bing's Chat 😀

18:30 - 19:00 PST

Bye ASP.NET WebForm, Welcome Blazor: Transform your ASP.NET WebForm Chatbot in no time, and beyond!

Justin Yoo

Is your chatbot still running on a legacy ASP.NET WebForm app, and you’re wondering if it’s time for an upgrade? In today's fast-paced tech world, remaining stagnant is not an option. This session is designed to provide you with a step-by-step guide on how to seamlessly migrate your existing chatbot from the old ASP.NET WebForm to the newer, more robust Blazor with minimal disruptions. The presentation aims to offer a balanced perspective by diving deep into the pros and cons of making the move to Blazor. While the benefits like improved performance, scalability, and modern architecture are compelling, it's crucial to consider potential downsides such as the learning curve and short-term disruptions. This comprehensive analysis will empower developers, software architects, and decision-makers to make informed choices that are right for their specific needs and scenarios. One of the session's highlights will be a thorough examination of Blazor’s versatility. We'll explore how Blazor can be configured for various applications—ranging from server to WebAssembly, and even to MAUI for native applications. These insights will provide attendees with a wider lens to evaluate the Blazor's capabilities, and how it fits into a diversified technology stack, adding more value than ever to your projects. Throughout the session, I'm going to deliver: 1. **Case Study**: A real-world example of a chatbot currently running on a legacy ASP.NET WebForm app, focusing on its limitations. 2. **Step-by-Step Migration Guide**: Concrete steps on how to transition from ASP.NET WebForm to Blazor with minimal operational disruptions. 3. **Pros and Cons**: A balanced perspective on the benefits and challenges of migrating to Blazor, aiding attendees in making informed decisions. 4. **Blazor's Versatility**: Detailed insights into how Blazor can be configured for different applications—Blazor Server, Blazor WebAssembly, and MAUI. Afer the session, attendees will get those takeaways: 1. **Actionable Migration Plan**: Attendees will walk away with a detailed roadmap for migrating from ASP.NET WebForm to Blazor. 2. **Informed Decision-making**: The discussion of pros and cons will empower attendees to decide if migration aligns with their organizational goals. 3. **Understanding Blazor's Capabilities**: Attendees will gain a thorough understanding of the versatility of Blazor in different application settings. 4. **Up-to-date Skillset**: Insights gained will ensure attendees are abreast of current technologies, aiding their personal and professional development. 5. **Confidence to Act**: Attendees will be empowered to make and execute decisions regarding the migration of existing applications to newer frameworks.

19:00 - 19:30 PST

Create an enterprise Copilot extension for Visual Studio Code through Semantic Kernel

Kinfey Lo

GitHub Copilot is very popular with enterprise users, but how to inject enterprise coding specifications, relevant coding requirements, and documentation content for enterprises? It's time to create a Copilot Extension that's right for a specific enterprise scenario. This session will show you how to build an enterprise-level Visual Studio Code Extension using .NET with Semantic Kernel and Nodejs

19:30 - 20:00 PST

Concurrent Hosted Service in .NET 8

Saeed Esmaeelinejad

Before .NET 8, hosted services were started and stopped sequentially, with each service's StartAsync and StopAsync methods awaiting completion before the next service's methods were triggered. This default behavior, though mostly fine, could cause problems, particularly with slow services delaying the application's overall start or shutdown. In .NET 8, developers now have the option to enable concurrent start and/or stop behavior for registered hosted services using the new properties in HostOptions. This allows services to start and stop concurrently, potentially improving application startup and shutdown times.

20:00 - 20:30 PST

We are not just a .NET Community, we run our community on .NET

Augustine Correa

We are the largest Open-Source Software [OSS] community with its longest running (> 10 years) tech meetup in Bombay. And as such we are mostly houseful [ https://twitter.com/hackmum/status/1694780944778186885?s=20]. As a community that is committed to diversity and inclusiveness, most of our efforts and time is expended on registration triaging. And the next biggest friction in our meetup management is to ensure attendee check-ins and check-outs for building/civic code adherence So as a tech community, to solve this, we did the only thing we love to do: build an app. That too on .NET 8. We will tell you why .net8 is the best .NET yet and share what are the gotchas we had to look out for. And we wouldn't be an OSS community, if it's not on GitHub [https://github.com/HackerspaceMumbai/Visage/issues/69]. Contributors welcome 🙏

20:30 - 21:00 PST

Understanding Role-Based Access Control with ASP.NET Web APIs

Aditya Oberai

When you're building an application and want to restrict access to resources and information for different kinds of users, Role-Based Access Control (RBAC) is one of the best, most structured models you can implement. One of the simplest ways to achieve RBAC in web APIs is by leveraging JSON Web Tokens (JWTs) and adding roles as claims. In this session, join in as we discuss the importance of API security and how you can use JWTs to implement the RBAC pattern in an ASP.NET Web API and better secure your API endpoints.

21:00 - 21:30 PST

Spatial Data with Entity Framework Core and .NET MAUI

Giorgi Dalakishvili

Entity Framework Core is great for performing crud operations, but did you know that you can go beyond basic relational queries with Entity Framework Core? Do you need to store spatial data or find the nearest points of interest to a given location? If you answered Yes to any of the above questions, this is the talk you do not want to miss. Developers working with Entity Framework Core will learn how to store spatial data with Entity Framework Core and NetTopologySuite, how to index spatial data, and how to run spatial queries. Finally, attendees will see how to visualize spatial search results in a .NET MAUI app. Join me for a demo-rich session and learn about Entity Framework Core features that you will be able to apply right after the session.

21:30 - 22:00 PST

Building generative AI powered bots with Teams Toolkit and AI library for .NET

Ayca Bas, John Miller

In this session, you'll discover the new features of Teams Toolkit for Visual Studio and understand how it helps .NET developers to easily build, debug and deploy apps for Microsoft Teams. You'll also get introduced to the new Teams AI library for .NET and learn how you can build your first generative AI powered Teams bot using Teams Toolkit for Visual Studio and Teams AI library for .NET.

22:00 - 22:30 PST

Building Multi-Tenant ASP.NET Core Applications and ABP Framework

Alper Ebicoglu

What's SaaS development? What are the multi-tenancy pros and challenges? Multitenant deployment and database architectures. Multi-tenant development with the open-source ABP Framework.

22:30 - 23:00 PST

Reactive programming with .NET MAUI

Enis Necipoğlu

Reactive programming is a paradigm that allows us to write asynchronous and non-blocking code that reacts to changes in data and events. This session shows applying reactive programming in .NET MAUI with MVVM and ReactiveUI topics.

23:00 - 23:30 PST

From Zero to Million: How Amateur Developers and Infrastructure Engineers Built a Million-Dollar App

Werner Rall

Join us for an exciting presentation as we dive deep into the journey of an unlikely team of amateur developers and infrastructure engineers who crafted a million-dollar app using .NET and PowerShell. Starting with nothing more than a simple idea and their combined skills, this team harnessed the power of .NET to develop a robust and scalable application that not only caught the eye of industry veterans but also generated over $1 million in revenue for Microsoft. In this talk, we will walk through the challenges, breakthroughs, and technical details of the app development process. We will showcase how PowerShell was utilized to automate the creation and management of Azure resources, and how this contributed to the team's ability to rapidly iterate and scale the app. With valuable insights and key takeaways, we are hoping this session will inspire developers of all levels to explore the possibilities of .NET, PowerShell, and Azure, and demonstrate that with the right tools and a dedicated team, even amateur developers can achieve extraordinary success

23:30 - 00:00 PST

Visual Studio updates for F#

Petr Semkin

In this presentation, Petr will discuss the recent enhancements to Visual Studio for F# developers. The talk will cover built-in features such as code fixes and autocomplete, as well as adjustable functionalities like type hints. These updates aim to refine and optimize the F# coding experience in Visual Studio.

Day 3

Thursday, November 16

00:00 - 00:30 PST

From IL Weaving to Source Generators, the Realm story

Ferdinando Papale

Intermediate Language (IL) Weaving is a powerful technique that allows to greatly simplify the experience of developers using the .NET Realm SDK by hiding a fair amount of complexity from end-users. Working with a weaver, though, is tedious, error prone and the resulting code is a black box. These are some of the reasons that convinced us to migrate to Source Generators, a feature introduced in .NET 5 that allows to produce code on the fly during compilation. This talk will go through the reasons why IL Weaving was used in the first place, our long journey switching to Source Generators and why they do not yet satisfy all our needs.

00:30 - 01:00 PST

Let’s catch up with C#! Exciting new features in C# 9, 10, 11 and 12!

Filip Ekberg

With every iteration of C#, we get more and more features that are meant to make our lives as developer a lot easier. Let's explore what's new in C# 9, 10, 11 and 12! We will look at how the language has changed and why these changes to the language will make us better C# developers, with less bugs in our code. We will cover the following features: - Nullable reference types - Pattern Matching in C# 8 => C# 11 - Record types - Top level programs/statements - Init only & new() We'll also take a look at what is new in C# 12!

01:00 - 01:30 PST

Two ways of migrating old ASP.NET web apps to .NET 7/8

Tomas Herceg

Legacy ASP.NET apps updated to ASP.NET Core can benefit from improved performance and access to the latest web development features and capabilities. It is not easy to migrate a non-trivial web app - the migration must be done incrementally. In this session, I'll talk about two ways of doing the migration: * The first way involves creating a new app aside and configuring YARP to forward traffic to already migrated pages to the new app. * The second way uses an open-source framework DotVVM which can be added directly to the .NET Framework project and allows switching to the .NET 7/8 when the migration is complete. I'll share a lot of practical examples and my personal experience with both methods of migration.

01:30 - 02:00 PST

Unleashing the Power of Cross-Platform Development with Avalonia UI

Mike James

Join Mike as he delves into the exciting world of cross-platform .NET development powered by Avalonia UI! This session will demonstrate how Avalonia UI enables you to create sleek, modern applications running seamlessly across Windows, macOS, Linux, iOS, Android and WebAssembly. After discussing Avalonia UI, Mike will showcase how to revitalise legacy WPF applications and bring them to life on macOS and Linux using Avalonia XPF! Whether you're an experienced .NET developer or just starting your journey, this session is your ticket to embracing the future of cross-platform development.

02:00 - 02:30 PST

Design UI agnostic cross-platform applications with .NET

Dan Ciprian Ardelean

One of the first questions I hear from my clients, when they are starting developing a new cross platform applications with .NET, is: What framework should I use? Xamarin.Forms which is stable, MAUI which is the new child but still missing some things. But wait there is also Uno Platform and AvaloniaUI. The question is not wrong but maybe you could approach the problem in a different way? What if you could design your application to depend as little as possible on the UI framework thus making it easier to migrate from one UI framework to another without the need to rewrite everything. In this session I will show some strategies that you can use when you are developing a cross-platform application with .NET that should make testing, maintenance and migration easier .

02:30 - 03:00 PST

Unlocking the power of the Fluent UI Blazor components

Vincent Baaij, Denis Voituron

Dive into the world of Fluent UI and discover how to leverage its seamless integration with Blazor for building web and mobile applications. In this presentation, we'll take you on a journey to explore the fundamentals and building blocks of the library and demonstrate how to quickly incorporate it into your Blazor projects. Learn the basics of setting up the environment, use the interactive components, and change the styling of your application with Fluent UI design tokens. Whether you're a seasoned Blazor developer or just getting started, join us to learn how to create visually appealing and user-friendly applications with the Fluent UI Blazor library.

03:00 - 03:30 PST

Experimental C# Interceptors: AOT & Performance for free

Stefan Pölz

C# 12.0 - shipped with .NET 8.0 - brings us a new experimental language feature: Interceptors. An interceptor is basically the inverse of a goto statement that enables the Roslyn compiler to replace reflection-based call sites with specialized implementations. Combined with (incremental) source generators, codebases become more Native AOT-friendly and can unlock better performance. Let's inspect this new concept in detail and see it in action.

03:30 - 04:00 PST

Migrating a React Application to Blazor

Samson Amaugo

In this session, I would be discussing how I rewrote my open-source React Manifest.JSON file and Image generator (for Progressive Web Applications) to Blazor using DotNet 8.

04:00 - 04:30 PST

How to Achieve Optimistic Updates with Blazor and EF Core

Emanuele Bartolesi

Optimistic updates are a technique for improving the user experience of web applications by updating the UI before the server confirms the changes. This can make the app feel more responsive and reduce the perceived latency. In this session, you will learn how to implement optimistic updates with Blazor and Entity Framework Core (EF Core), a popular ORM framework for .NET. You will also learn how to leverage Blazor’s state management and data binding features to update the UI seamlessly. By the end of this session, you will be able to create Blazor apps that use optimistic updates with EF Core and provide a great user experience.

04:30 - 05:00 PST

EF Core database model first - take it to the next level with Power Tools CLI

Erik Ejlskov Jensen

Introducing the "EF Core Power Tools CLI," an open-source .NET 8 global tool designed to streamline your workflow. This powerful tool allows you to effortlessly generate a DbContext and entity classes from your existing database, offering a plethora of customization options. In this demo-packed session you will see how easy it is to get started with EF Core with and existing database in a matter of seconds, and we will dive into some of the many options you can tweak.

05:00 - 05:30 PST

What's new in F# 8

Tomáš Grošup

The session will bring an overview of new F# 8 language features, diagnostics and improvements.

05:30 - 06:00 PST

Modernizing Rx.NET

Ian Griffiths

The Reactive Extensions for .NET are one of the most well established and widely used open source .NET projects. Learn how this project is evolving to take advantage of changes in .NET.

06:00 - 06:30 PST

Building next-gen applications with event-driven architectures

Teena Idnani

In a world where events shape our interactions, embracing an event-driven mindset empowers innovation and responsiveness at every turn. By leveraging the power of events, businesses can stay ahead of the competition, deliver superior customer value, and achieve long-term success. In this talk, we will show how to use event-driven architecture to decouple and decentralize application components, promoting modular and independent development, and flexibility in system design. Learn how you can start thinking "event driven" as you approach designing your application. We will do a live demo using .NET8 and Azure PaaS services to highlight the immense potential of EDA in its ability to respond in real-time to events occurring in other systems and applications. By understanding the key components and benefits of EDA, you will be equipped to evaluate whether it is the right fit for your organization and empowered to initiate the implementation of event-driven architecture in your systems.

06:30 - 07:00 PST

Using .NET and Azure to build a green supercomputer for Vestas

Anders Lybecker, Tess Ferrandez-Norlander

Vestas is the world’s most sustainable energy company, and they wanted to reduce their carbon footprint even further by optimizing their wind turbine simulations. These simulations are compute-intensive and require a lot of resources and energy. In this session, we will show you how we helped Vestas achieve their goal by building a green workload in Azure, using .NET and various Azure services. You will learn how we: - Used location and time shifting to run your workload with lower carbon emissions - Utilized the hardware efficiently to reduce waste and cost - Leveraged Azure Event Grid, Azure Functions, and Azure Batch to create a scalable and resilient event-driven architecture - Built a Blazor frontend and an API backend using Azure Web Apps

07:00 - 07:30 PST

Lessons from a data science startup using F# and dotnet in a developing country

Eduardo Bellani

What happens when you have to rebuild the whole tech area of a data science company and you have the authority to drop python and JS? Dotnet and F#, that's what (at least for me, it was). This talk is my tale of being the CTO of a data science consultancy and: • Deciding to drop the existing investment on typescript and python and going on F# and dotnet; • Having to grow a team from ~4 to ~12 in the span of a year; • While facing the usual chaotic environment of a startup. What I promise with this talk is: 1. How it was to grow a high performing functional programming team in a developing country; 2. What was the impact that dotnet and F# brought to the table.

07:30 - 08:00 PST

Building beautiful Blazor apps with Tailwind CSS

Chris Sainty

Tailwind CSS has been growing in popularity for some time. It’s fast becoming one of the top frameworks to use when styling applications. It offers a different approach to the traditional frameworks like Bootstrap—utility based styling. Rather than using prebuilt components—which result in your application looking like a lot of others on the web—you can tailor your design by applying small focused CSS classes resulting in a unique style for your app. In this code focused talk, you will learn how to bring the power of Tailwind CSS to your Blazor applications. We’ll start off with a brief introduction to Tailwind. Then we’ll get into some code and see how we can integrate Tailwind with Blazor. For the rest of the time, we’ll explore the various features of Tailwind and see just how beautiful we can make our Blazor app!

08:00 - 08:30 PST

Blazor-testing from A to Z

Egil Hansen

This session will discuss and showcase the different Blazor testing strategies, libraries, and tools available to us, so whether you are building a website, web app, or a reusable Blazor component library, you can pick the ones that yield the most bang for the buck. Specifically, this session covers end-2-end testing, component testing, unit testing, Playwright, bUnit, snapshot testing, semantic markup comparison, emulating user interactions, and how and when to use test doubles (e.g., mocks). We will cover these topics with the goal of creating tests that protect against regressions, are resistant to refactoring, are maintainable, and give fast feedback.

08:30 - 09:00 PST

It's C# All The Way Down! Using .NET for home automation with IoT devices

Sammo Gabay

In this presentation, I demonstrate using .NET nanoFramework on a microcontroller along with .NET runtime on a Raspberry Pi to control home automation. The microcontroller acts a beacon relaying button presses from a repurposed Gravis PC GamePad to a microservice running on the Pi, which handles calling the various APIs needed to control smart home devices such as connected air conditioners and lighting. Echoing the expression “Turtles all the Way Down”, we see how C# can be leveraged across layers in an IoT solution.

09:00 - 09:30 PST

Community Toolkit Roundup

Michael Hawker, Gerald Versluis, Sergio Pedri

Join a lively discussion with maintainers of the Community Toolkits, the .NET Community Toolkit, the MAUI Community Toolkit, and the Windows Community Toolkit. Learn about these open-source projects which aim to provide useful and high-quality components, controls, and utilities for .NET developers. Discover how you can get involved, contribute, and benefit from these amazing toolkits that cover various .NET platforms and technologies. Whether you are developing desktop, mobile, web, or cross-platform applications, there is a Toolkit for you!

09:30 - 10:00 PST

Blazor Puzzles and Answers

Jeffrey T. Fritz, Carl Franklin

The Blazor Puzzle podcast team of Carl Franklin and Jeff Fritz have a collection of puzzles and brain-teasers for you in this code-focused session about the latest features of the Blazor framework. We'll fix bugs, build cool features, and even write a unit test or two

10:00 - 10:30 PST

Integrating Blazor with existing .NET web apps

Ed Charbeneau

ASP.NET's RazorComponent model is intuitive and brings productivity to web development. In this session we'll learn how RazorComponents aren't just for Blazor apps and how we can integrate the best part of Blazor with existing ASP.NET applications using: Razor Pages, MVC, and even other front-end technologies.

10:30 - 11:00 PST

.NET is the best backend for your JavaScript frontend

Jiayan Chen, Daniel Roth

We will be talking about the removal of the old SPA templates from .NET 8 and the recommended way of working with .NET using JavaScript as front end - the new multiple project combined templates shipped with Visual Studio and the JavaScript SDK. We will be walking through the full development lifecycle including project creation, build, unit testing, run and publish for a modern JavaScript framework.

11:00 - 11: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 8 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

11:30 - 12:00 PST

Integrating Third-party Services with .NET 8's Identity Framework

Kiah Imani

We've all been there - juggling multiple tools, trying to get them to play nicely together. And with .NET 8's robust Identity Framework, the idea of bringing in third-party services can feel a bit daunting. But here’s the good news: It doesn’t have to be! In this talk, we'll pull back the curtain on the seamless integration of third-party services with .NET 8. We'll start with the basics, understanding what the Identity Framework brings to our table. From there, we'll dive into real-world scenarios, like plugging in popular social logins and ensuring that Aunt Mabel can safely access her account without a hitch. And yes, we'll tackle the bumps along the way - challenges, security snags, and those "Oops, didn’t see that coming" moments. Together, we'll navigate the waters, learn from each other, and demystify the process of integrating third-party services, making it feel less like a chore and more like a new adventure. So, whether you're a .NET veteran or someone just dipping their toes in, come along! Let's make our projects a little less "How do I even?" and a lot more "Look what I just did!"

12:00 - 12:30 PST

.NET App modernization and cloud migration: Cross Platform Enterprise focus

Ben Prejean

A journey in modernizing and migrating .NET Applications to Private and Public Cloud within an enterprise focused on cross-platform cloud PaaS solutions

12:30 - 13:00 PST

Clean Architecture with ASP.NET Core 8

Steve Smith

Clean Architecture (aka Onion, Hexagonal, Ports-and-Adapters) organizes your code in a way that limits its dependencies on infrastructure concerns. This results in much more testable, maintainable code and is ideal for Domain-Driven Design as well as microservices. Learn how to apply it to your ASP.NET Core apps!

13:00 - 13:30 PST

Introducing project Kiota a client generator for OpenAPI

Vincent Biret, Darrel Miller

Integrating your application with APIs by manually implementing authentication, authorization, serialization, error handling and building requests represents a lot of additional work. Fortunately OpenAPI and Kiota are here to save the day by generating clients for you in seconds! Join us during this demo filled session to discover how you can generate your own tailored API client. Using your new Kiota generated tailored client, you can focus on what matter: building value for your end users.

13:30 - 14:00 PST

Meadow.Cloud and Azure, putting the “I” in IoT

Bryan Costanich

Today, getting an embedded device into production means successfully connecting to the cloud and sending data to inform real-time decisions. In this talk, we will show how developers can use a Meadow capable device to easily connect to Meadow.Cloud and integrate with Azure to send critical data and metrics for real-time analytics and AI Anomaly Detector.

14:00 - 14:30 PST

Uno Platform 5.0: Elevate Your Cross-Platform .NET Development with .NET 8

Jérôme Laban, Francois Tanguay

.NET ecosystem prides itself on all the options it provides to developers. The open-source Uno Platform is yet another option you have to create cross-platform .NET applications. Uno Platform 5.0 is built on top of .NET 8 it enables you to quickly create UI-rich and data-driven applications everywhere .NET runs using either XAML or C# Markup. Come learn what Uno Platform is all about, including the latest advancements for .NET 8, .NET MAUI Embedding, Model View Update eXtended (MVUX) reactive pattern, Figma integration, Hot Reload and more.

14:30 - 15:00 PST

Azure API Center and ASP.NET Web API Integration: A Developer's Guide

Julia Kasper

In a rapidly evolving digital landscape, the use of APIs is becoming increasingly popular. One key tool that has emerged as a game-changer is the ability to curate and organize APIs in an organizational repository. This is where Azure API Center comes in, a structured and organized API hub that provides comprehensive information about all organizational APIs. API Center is the centralized catalog for all APIs that maintains API metadata including versions and associated deployments. Follow a developer's journey and learn about how you can integrate your ASP.NET Core web API with Azure API Center. Learn about the benefits and use cases what you can do with Azure API Center.

15:00 - 15:30 PST

CQRS with Event Sourcing using the “Critter Stack”

Jeremy Miller

Do you have a system where you think would be a good fit for a CQRS architecture that also uses Event Sourcing for at least part of its persistence strategy? Are you intimidated by the potential complexity of that kind of approach? Fear not, using a combination of the Postgresql-backed Marten (https://martendb.io) library for event sourcing and its newer friend Wolverine (https://wolverine.netlify.app) for command handling and asynchronous messaging, I'll show you how you can quickly get started with both CQRS and Event Sourcing. Once we get past the quick start, I'll show you how the Critter Stack's unique approach to the "Decider" pattern will help you create robust command handlers with very little code ceremony while still enjoying easy testability. Moving beyond basic command handling, I'll show you how to reliably subscribe to and publish the events or other messages created by your command handlers through Wolverine's durable outbox and direct subscriptions to Marten's event storage.

15:30 - 16:00 PST

From Zero to Hero: Quickly Migrate Web Apps with Azure App Service

Gaurav Seth

Learn directly from the Azure migration product experts how to migrate your applications to Azure App Service by performing discovery, assessment and migration using the latest advances in Azure Migrate tooling and PowerShell scripts. See how customers have built intelligent apps in the cloud after migrating and modernizing these on-premises apps with no code changes.

16:00 - 16:30 PST

Dynamic PGO

Andy Ayers, Egor Bogatov

In .NET 8, Dynamic PGO is enabled by default, and we expect it will provide performance boosts for nearly all .NET applications. We'll explore how PGO works and show off some of the inner workings of the JIT and runtime that make this possible.

16:30 - 17:00 PST

Hardware Intrinsics in .NET

Tanner Gooding

Learn about the latest advancements around hardware intrinsics and vectorization in .NET, how you can take advantage of them either implicitly or explicitly, and how you can best support the wide variety of platforms (x64, Arm64, Wasm, etc) while still getting the best perf.

Premier Bonus

Day 3

Thursday, November 16

05:30 - 06:00 PST

AI and .NET with Semantic Kernel

Evan Chaki, John Maeda

In this session you will learn about getting started with AI concepts as well as using Semantic Kernel to build AI into your line of business applications and next generation Agents.

06:00 - 06:30 PST

Introducing Grial Studio for .NET MAUI

Diego Rivero, Pablo Germano

Explore a new, faster way of creating beautiful apps with Grial Studio for Visual Studio. In this session we will show you how to build a new .NET MAUI app in record time, using Grial UI Kit new free templates, controls and resources available inside Visual Studio. Never start from scratch again.

06:30 - 07:00 PST

Building 3D apps with .Net MAUI and Evergine

Jorge Cantón, Javier Suárez Ruiz

In this session, we will learn how to build 3D apps with .Net MAUI and Evergine. Evergine is an industrial cross-platform graphics engine that you can now use with .Net MAUI. Perhaps you have considered creating an e-commerce mobile app with 3D models for its products or a shopping mall mobile app that allows users to explore a 3D map. The ability to include 3D assets in .NET MAUI has been one of the most requested features within the .NET MAUI community. All this and more is possible with .NET MAUI and Evergine.

07:00 - 07:30 PST

Reverse proxying is easy with YARP

Sam Spencer, Benjamin Petit

How is YARP different from most other reverse proxies, and enables you to do easily customize to support your specific scenarios as its implemented as ASP.NET Core middleware.

07:30 - 08:00 PST

Mobile Application Development with C# only: Unifying Markup and Business Logic

Pedro Jesus

This session, "Streamlining Mobile Application Development with C#," shows how to leverage the power of C# to handle both markup and business logic, simplifying the development process and enhancing productivity. Traditionally, mobile applications have required developers to master multiple programming and markup languages to develop both the user interface (UI) and the underlying business logic. By embracing a unified approach, developers can seamlessly transition between UI design and functional implementation, leading to reduced development time and improved code maintainability. Join us to explore the future of mobile application development, where the power of C# transforms the way we create, iterate, and innovate.

08:00 - 08:30 PST

Cloud-Bound: Stack Overflow Teams Embraces Azure

Wouter de Kort

Explore the journey of Stack Overflow for Teams as it transitions to Azure. This session spotlights the pivotal decisions and learning experiences encountered during the migration. We'll focus on the shift from a shared on-premises infrastructure to a fully independent cloud presence, starting with the domain change and ending with the full embrace of Azure's capabilities.

08:30 - 09:00 PST

To the cloud with minimal changes: A pattern to make your app reliable

Matt Soucoup, Nish Anil

Do you want to move your web app to the cloud without rewriting it from scratch? Do you want to enjoy reliability and resilience benefits without sacrificing your existing codebase? This session will show you how to use essential developer patterns to re-platform your app to Azure with minimal changes. You will learn how to make your app more reliable and add resilience to protect against unexpected downtime in the cloud. And how to provision and deploy your app using the Azure Developer CLI, which lets you manage your infrastructure as code and automate your workflows with GitHub actions. These patterns are the first step in your cloud journey. Don't miss this opportunity to learn how to take your app to the cloud with ease and confidence!

09:00 - 09:30 PST

Improve your ASP.NET core web app performance using Azure Cache for Redis

Catherine Wang, Marc Gravell

Learn how to use Redis Cache to improve performance and resiliency with your ASP.NET core web application. We will look into scenarios such as session store, web response caching, and advanced analytics and search Redis Cache scenarios.

09:30 - 10:00 PST

Make a template for your template; profit!

Rob Conery

Ever wish you could create your own File | New template for your company or side projects? Complete with your favorite tools and settings ready to go? In this talk Rob Conery will show you how to do just that, utilizing one of the more “under the radar” features of .NET: the project template.

10:00 - 10:30 PST

Learn how to improve .NET application performance, leveraging Azure Code Optimizations

Jan Kalis, Ryan Kahng

Join us to learn more about how Azure Diagnostics team can help you improve your .NET application performance! Azure Code-Optimizations is a AI-based service can identify performance issues and offer recommendations specifically tailored for .NET applications and cloud services.

10:30 - 11:00 PST

How to build a story generator application for children with .NET MAUI and Microsoft Azure

Héctor Uriel Pérez Rojas

In this demo, I recount the process for using .NET MAUI to create a cross-platform application, along with Azure OpenAI services for creating stories and images for children, as well as Azure Text to Speech for storytelling.

11:00 - 11:30 PST

From databases to API: an efficient solution both on-premises and in Azure

Davide Mauri

Data API builder turns Azure Databases into REST a GraphQL API so that you can have the backend for your next modern application done in just a few minutes instead of days. With full support to authentication and authorization, integrated with Static Web Apps and easily scalable up and out – using API Management – Data API builder is something you really want to look at. Available both on Azure and on-premises, and Open Source, this is very likely to become your favorite tool. Come and learn everything about it!

11:30 - 12:00 PST

CoreWCF - It's not just for modernizing old WCF apps

Matt Connew

Covers what's new in WCF to make it easier to incorporate into modern applications and port old applications to modern .NET. Using JWT authentication, and Message queues for Azure or other cloud platforms.

12:00 - 12:30 PST

GitHub Copilot Tips for .NET Developers

Mark Downie

Accelerate your .NET Development in Visual Studio with GitHub Copilot Chat.

12:30 - 13:00 PST

Build .NET MAUI Apps with DevOps

Sweeky Satpathy, David Ortinau

In this session, we'll walk through DevOps pipelines to show how to build .NET MAUI apps. We'll also share some tips and tricks, tips on how to optimize your builds. We'll look at sample pipelines in GitHub Actions and Azure DevOps, discuss signing the apps for distribution and running Unit Tests as part of the pipeline.

13:00 - 13:30 PST

Building planet scale .NET apps with Azure Cosmos DB

Justine Cocchi

Building planet scale applications requires a database that can remain highly performant while seamlessly scaling as your needs grow. Azure Cosmos DB is a fully managed distributed database that can be transparently replicated across regions, making it great for applications of any scale! Learn how to build applications using the Azure Cosmos DB .NET SDK. We will cover some best practices as well as debugging tips using OpenTelemetry and Application Insights.

13:30 - 14:00 PST

COM Source Generation: An evolution of COM interop in .Net

Jackson Schuster

In .Net 8, the interop team created a source generator to enable you to easily transition from the runtime's built-in COM interop for IUnknown interfaces to cross platform C# code that is easier to debug, audit, and customize, all without losing performance. In this talk, we'll discuss what this source generator does, what the benefits are, and how to use it.

14:00 - 14:30 PST

Use C# with Godot to make Games!

Michael Hawker

Have you been wanting to make a game using C#? Godot is an easy-to-use open source game engine which makes it easy to get started! In this session we'll show you how to start a new project and how to easily connect game objects to C# to build your game. Then we'll add a NuGet reference to the MVVM Toolkit for their amazing Messenger class to easily decouple events between game objects instead of using Godot's signals/events!

14:30 - 15:00 PST

Unleashing Cross-Platform Magic in .NET 8: Creating .NET MAUI Apps on Linux with Visual Studio Code

Bruno Capuano, Luis Beltran

Developing .NET MAUI mobile apps on Linux is now a reality! Thanks to the recently announced .NET MAUI extension you can now develop apps on different operating systems with Visual Studio Code. Debugging on devices, emulators, and simulators as well as other features from Visual Studio is possible thanks to the C# Dev Kit, so you can enhance your productivity with C# in VS Code. In this session, we'll demonstrate and explain the essentials for starting your journey into developing .NET MAUI mobile apps with the VS Code extension on Linux operating system. From requirements, configuration, capabilities, limitations, demos, and features, this step-by-step guide will help you understand how .NET 8 offers a truly cross-platform experience.

15:00 - 15:30 PST

Monitoring of Containerized .NET Applications in Azure

Ye Gu, Scott Kinghorn, Kayode Prince

At-scale monitoring of your .NET application infrastructure in real time is challenging given the number of steps and pieces typically involved to construct an end-to-end solution. We would like to discuss how Azure helps simplify this process for containerized .NET applications, especially those running on AKS. With the availability of a full monitoring software stack as managed services and automatic data enrichment, Azure makes monitoring more integrated and accessible as part of your application development and deployment cycles.

15:30 - 16:00 PST

Build an Azure OpenAI powered .NET 8 Chat Bot on your data from scratch

Chander Dhall

In this session, you will learn how to build an Azure OpenAI Chat Bot that allows you to work with your own data. You will be able to build the API, UI and ChatBot from scratch. You will be able to ask questions in natural language.

16:00 - 16:30 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

16:30 - 17:00 PST

All About C# Source Generators

Shawn Wildermuth

While using Reflection is still a necessary tool for any developer. The Roslyn source generators are a compelling way to write code while your users are writing their code. In this talk, Shawn will build a source generator from scratch to show you all the gory details.