JetBrains logo

.NET Days
Online 2024

Join us for a free two-day community event

September 25 - 26, 2024

    Get ready to learn and connect with speakers

    Watch .NET Days from anywhere

    Join .NET enthusiasts, developers, and industry leaders from around the globe for two days of demo-rich sessions and insightful discussions. We’ll livestream on YouTube and Twitch, and you can catch anything you miss later.

    Discover topics you care about

    This year’s agenda includes topics like developing with C#, F#, .NET Aspire, Blazor, Razor, HTMX, and even ASP.NET MVC! We’ll discuss microservices, code verification, writing tests and look back at ReSharper's 20 years on the market.

    Ask questions during the livestreams

    Learn useful tips that you can apply in your daily development, connect with speakers, and enrich your .NET expertise. Our JetBrains hosts will facilitate engaging Q&A sessions and ensure that your questions are addressed.

    This event is supported by the .NET Foundation.

    Speakers

    Laila Bougria

    Laila Bougria

    Software Engineer at Particular Software, speaker, and knitting addict
    Mariekie Coetzee

    Mariekie Coetzee

    Software Developer, Metro North Health
    Gael Fraiteur

    Gael Fraiteur

    Founder and President, PostSharp Technologies
    Andrew Karpov

    Andrew Karpov

    Senior Software Developer, JetBrains
    Cecil Philip

    Cecil Phillip

    Developer Advocate
    Roman Provazník

    Roman Provazník

    Head of Product Engineering, Ciklum Western Europe
    Andrii Rublov

    Andrii Rublov

    Software Developer, JetBrains
    Konstantin Saltuk

    Konstantin Saltuk

    Software Developer, .NET IDE Core team, JetBrains
    Irina Scurtu

    Irina Scurtu

    Microsoft MVP, Software Architect
    Stefano Tempesta

    Stefano Tempesta

    Web3 Architect and CTO at Aetlas, AI and Blockchain for Good Ambassador
    Daniel Ward

    Daniel Ward

    Software Consultant, Lean TECHniques
    Chris Woodruff

    Chris Woodruff

    Architect, Real Time Technologies
    Alexander Zeitler

    Alexander Zeitler

    Cloud Solutions Architect

    Agenda

    September 25, Wednesday

    • 11:30–12:30 CET/CEST
    • 05:30–06:30 EST/EDT
    • 02:30–03:30 PST/PDT
    Andrew Karpov
    Not Your Father’s ReSharper

    ReSharper turned 20! Some people have been using it from the very beginning, some for just a year or two. In this talk, we’ll discuss how ReSharper has evolved over the years and what it has become.

    ReSharper turned 20! Some people have been using it from the very beginning, some for just a year or two. In this talk, we’ll discuss how ReSharper has evolved over the years and what it has become.

    Not Your Father’s ReSharper

    Introductory and overview
    Andrew Karpov

    ReSharper turned 20! Some people have been using it from the very beginning, some for just a year or two. In this talk, we’ll discuss how ReSharper has evolved over the years and what it has become.

    ReSharper turned 20! Some people have been using it from the very beginning, some for just a year or two. In this talk, we’ll discuss how ReSharper has evolved over the years and what it has become.

    ReSharperC#Code analysisRefactoring
    • 12:45–13:30 CET/CEST
    • 06:45–07:30 EST/EDT
    • 03:45–04:30 PST/PDT
    Mariekie Coetzee
    Crafting Blazor Components With Precision and Assurance

    In this session, we’ll explore Blazing Story, a template inspired by Storybook that allows developers to develop Blazor components in isolation. We’ll discuss the use of Playwright for end-to-end testing and explore the integration of an accessibility testing library to ensure that the components comply with the agreed guidelines.

    In this session, we’ll explore Blazing Story, a template inspired by Storybook that allows developers to develop Blazor components in isolation. We’ll discuss the use of Playwright for end-to-end testing and explore the integration of an accessibility testing library to ensure that the components comply with the agreed guidelines.

    Crafting Blazor Components With Precision and Assurance

    Introductory and overview
    Mariekie Coetzee

    In this session, we’ll explore Blazing Story, a template inspired by Storybook that allows developers to develop Blazor components in isolation. We’ll discuss the use of Playwright for end-to-end testing and explore the integration of an accessibility testing library to ensure that the components comply with the agreed guidelines.

    In this session, we’ll explore Blazing Story, a template inspired by Storybook that allows developers to develop Blazor components in isolation. We’ll discuss the use of Playwright for end-to-end testing and explore the integration of an accessibility testing library to ensure that the components comply with the agreed guidelines.

    BlazorWeb developmentRiderPlaywright
    • 13:45–14:45 CET/CEST
    • 07:45–08:45 EST/EDT
    • 04:45–05:45 PST/PDT
    Alexander Zeitler
    A Homage to the Good Old MVC

    ASP.NET was a bit behind the curve when it came to the MVC pattern. It was not until 2009 that Microsoft released the first version of ASP.NET MVC. This was a time when the MVC pattern was already well-established in the web development community. Part of the reason for this was that Microsoft was initially heavily invested in WebForms. Later, they pivoted to Silverlight as the future of web development. Aside from legacy projects, WebForms is now a thing of the past. Silverlight is also long gone.

    Today, there's a lot of talk about the new and shiny Blazor. But I'm not convinced that it will fully replace ASP.NET MVC. And I'm not convinced that it should. This talk will be a homage to the good old (new) ASP.NET Core MVC. In it, I’ll explain why I think it's still a good choice for web development in 2024.

    ASP.NET was a bit behind the curve when it came to the MVC pattern. It was not until 2009 that Microsoft released the first version of ASP.NET MVC. This was a time when the MVC pattern was already well-established in the web development community. Part of the reason for this was that Microsoft was initially heavily invested in WebForms. Later, they pivoted to Silverlight as the future of web development. Aside from legacy projects, WebForms is now a thing of the past. Silverlight is also long gone.

    Today, there's a lot of talk about the new and shiny Blazor. But I'm not convinced that it will fully replace ASP.NET MVC. And I'm not convinced that it should. This talk will be a homage to the good old (new) ASP.NET Core MVC. In it, I’ll explain why I think it's still a good choice for web development in 2024.

    A Homage to the Good Old MVC

    Advanced
    Alexander Zeitler

    ASP.NET was a bit behind the curve when it came to the MVC pattern. It was not until 2009 that Microsoft released the first version of ASP.NET MVC. This was a time when the MVC pattern was already well-established in the web development community. Part of the reason for this was that Microsoft was initially heavily invested in WebForms. Later, they pivoted to Silverlight as the future of web development. Aside from legacy projects, WebForms is now a thing of the past. Silverlight is also long gone.

    Today, there's a lot of talk about the new and shiny Blazor. But I'm not convinced that it will fully replace ASP.NET MVC. And I'm not convinced that it should. This talk will be a homage to the good old (new) ASP.NET Core MVC. In it, I’ll explain why I think it's still a good choice for web development in 2024.

    ASP.NET was a bit behind the curve when it came to the MVC pattern. It was not until 2009 that Microsoft released the first version of ASP.NET MVC. This was a time when the MVC pattern was already well-established in the web development community. Part of the reason for this was that Microsoft was initially heavily invested in WebForms. Later, they pivoted to Silverlight as the future of web development. Aside from legacy projects, WebForms is now a thing of the past. Silverlight is also long gone.

    Today, there's a lot of talk about the new and shiny Blazor. But I'm not convinced that it will fully replace ASP.NET MVC. And I'm not convinced that it should. This talk will be a homage to the good old (new) ASP.NET Core MVC. In it, I’ll explain why I think it's still a good choice for web development in 2024.

    ASP.NET MVCWeb developmentRider
    • 15:00–15:45 CET/CEST
    • 09:00–09:45 EST/EDT
    • 06:00–06:45 PST/PDT
    Gael Fraiteur
    Overcoming Broken Window Syndrome: Code Verification Techniques for .NET Developers

    When coding standards, architectural guidelines, and conventions are only available in non-executable forms like documentation and diagrams, code quality tends to deteriorate over time. This deterioration leads to increased complexity, lower quality, and the accumulation of technical debt. To counteract this decline in quality, it’s essential to actively validate your source code against design rules and architectural standards as part of your DevOps pipeline.

    This talk will explore several techniques for enforcing coding standards in .NET development. We’ll see how to use Reflection and Roslyn for thorough code analysis and demonstrate the implementation of architecture unit tests. We’ll also highlight the use of Roslyn analyzers and tools like NDepend and Qodana to provide real-time feedback. Additionally, we’ll introduce Metalama, a powerful tool that offers a fresh perspective on architecture enforcement, combining simplicity with real-time validation.

    When coding standards, architectural guidelines, and conventions are only available in non-executable forms like documentation and diagrams, code quality tends to deteriorate over time. This deterioration leads to increased complexity, lower quality, and the accumulation of technical debt. To counteract this decline in quality, it’s essential to actively validate your source code against design rules and architectural standards as part of your DevOps pipeline.

    This talk will explore several techniques for enforcing coding standards in .NET development. We’ll see how to use Reflection and Roslyn for thorough code analysis and demonstrate the implementation of architecture unit tests. We’ll also highlight the use of Roslyn analyzers and tools like NDepend and Qodana to provide real-time feedback. Additionally, we’ll introduce Metalama, a powerful tool that offers a fresh perspective on architecture enforcement, combining simplicity with real-time validation.

    Overcoming Broken Window Syndrome: Code Verification Techniques for .NET Developers

    Intermediate
    Gael Fraiteur

    When coding standards, architectural guidelines, and conventions are only available in non-executable forms like documentation and diagrams, code quality tends to deteriorate over time. This deterioration leads to increased complexity, lower quality, and the accumulation of technical debt. To counteract this decline in quality, it’s essential to actively validate your source code against design rules and architectural standards as part of your DevOps pipeline.

    This talk will explore several techniques for enforcing coding standards in .NET development. We’ll see how to use Reflection and Roslyn for thorough code analysis and demonstrate the implementation of architecture unit tests. We’ll also highlight the use of Roslyn analyzers and tools like NDepend and Qodana to provide real-time feedback. Additionally, we’ll introduce Metalama, a powerful tool that offers a fresh perspective on architecture enforcement, combining simplicity with real-time validation.

    When coding standards, architectural guidelines, and conventions are only available in non-executable forms like documentation and diagrams, code quality tends to deteriorate over time. This deterioration leads to increased complexity, lower quality, and the accumulation of technical debt. To counteract this decline in quality, it’s essential to actively validate your source code against design rules and architectural standards as part of your DevOps pipeline.

    This talk will explore several techniques for enforcing coding standards in .NET development. We’ll see how to use Reflection and Roslyn for thorough code analysis and demonstrate the implementation of architecture unit tests. We’ll also highlight the use of Roslyn analyzers and tools like NDepend and Qodana to provide real-time feedback. Additionally, we’ll introduce Metalama, a powerful tool that offers a fresh perspective on architecture enforcement, combining simplicity with real-time validation.

    Code verificationCode analysisQodanaNDependMetalamaRiderReSharper
    • 16:00–17:00 CET/CEST
    • 10:00–11:00 EST/EDT
    • 07:00–08:00 PST/PDT
    Chris Woodruff
    Enhancing ASP.NET Core Razor Pages With HTMX: A Simplicity-First Approach

    Dive into the dynamic world of web development in this engaging talk, where we explore the innovative blend of HTMX with ASP.NET Core Razor Pages. Discover how to bring simplicity back to your web applications without sacrificing power or scalability. We'll navigate through practical examples demonstrating how HTMX can make your Razor Pages more interactive with minimal JavaScript. Learn to enhance user experiences with easy-to-implement features like long polling, modals, and server-side validation that feel like the client side without a full page refresh. Whether you're a seasoned developer or new to the ASP.NET ecosystem, this talk will equip you with the knowledge to create more responsive and efficient web applications. Get ready to transform your approach to web development by leveraging the best of both worlds: the robustness of ASP.NET Core and the simplicity of HTMX.

    Dive into the dynamic world of web development in this engaging talk, where we explore the innovative blend of HTMX with ASP.NET Core Razor Pages. Discover how to bring simplicity back to your web applications without sacrificing power or scalability. We'll navigate through practical examples demonstrating how HTMX can make your Razor Pages more interactive with minimal JavaScript. Learn to enhance user experiences with easy-to-implement features like long polling, modals, and server-side validation that feel like the client side without a full page refresh. Whether you're a seasoned developer or new to the ASP.NET ecosystem, this talk will equip you with the knowledge to create more responsive and efficient web applications. Get ready to transform your approach to web development by leveraging the best of both worlds: the robustness of ASP.NET Core and the simplicity of HTMX.

    Enhancing ASP.NET Core Razor Pages With HTMX: A Simplicity-First Approach

    Intermediate
    Chris Woodruff

    Dive into the dynamic world of web development in this engaging talk, where we explore the innovative blend of HTMX with ASP.NET Core Razor Pages. Discover how to bring simplicity back to your web applications without sacrificing power or scalability. We'll navigate through practical examples demonstrating how HTMX can make your Razor Pages more interactive with minimal JavaScript. Learn to enhance user experiences with easy-to-implement features like long polling, modals, and server-side validation that feel like the client side without a full page refresh. Whether you're a seasoned developer or new to the ASP.NET ecosystem, this talk will equip you with the knowledge to create more responsive and efficient web applications. Get ready to transform your approach to web development by leveraging the best of both worlds: the robustness of ASP.NET Core and the simplicity of HTMX.

    Dive into the dynamic world of web development in this engaging talk, where we explore the innovative blend of HTMX with ASP.NET Core Razor Pages. Discover how to bring simplicity back to your web applications without sacrificing power or scalability. We'll navigate through practical examples demonstrating how HTMX can make your Razor Pages more interactive with minimal JavaScript. Learn to enhance user experiences with easy-to-implement features like long polling, modals, and server-side validation that feel like the client side without a full page refresh. Whether you're a seasoned developer or new to the ASP.NET ecosystem, this talk will equip you with the knowledge to create more responsive and efficient web applications. Get ready to transform your approach to web development by leveraging the best of both worlds: the robustness of ASP.NET Core and the simplicity of HTMX.

    HTMXRazor pagesASP.NET CoreWeb developmentRiderReSharper
    • 17:15–18:00 CET/CEST
    • 11:15–12:00 EST/EDT
    • 08:15–09:00 PST/PDT
    Daniel Ward
    No More SQLite – How to Write Tests With EF Core Using Testcontainers

    Integration tests are crucial to ensuring your app's reliability. However, traditional options for writing these with EF Core, such as using SQLite or a real dev database, often introduce challenges both in terms of maintainability and confidence – sometimes even secretly making tests pass with false positives.

    This session will offer an alternative, a library called Testcontainers, that addresses these challenges. After going through the more common options and their pitfalls, I'll introduce the Testcontainers library, the benefits it offers, and demonstrate with a coding demo how to implement it in some real integration tests using EF Core.

    While this talk will be made with .NET in mind and use examples in C#, the Testcontainers library is offered in 10+ languages, and the knowledge can be transferred to other ecosystems. Attendees will be assumed to have basic knowledge of unit and integration testing.

    Integration tests are crucial to ensuring your app's reliability. However, traditional options for writing these with EF Core, such as using SQLite or a real dev database, often introduce challenges both in terms of maintainability and confidence – sometimes even secretly making tests pass with false positives.

    This session will offer an alternative, a library called Testcontainers, that addresses these challenges. After going through the more common options and their pitfalls, I'll introduce the Testcontainers library, the benefits it offers, and demonstrate with a coding demo how to implement it in some real integration tests using EF Core.

    While this talk will be made with .NET in mind and use examples in C#, the Testcontainers library is offered in 10+ languages, and the knowledge can be transferred to other ecosystems. Attendees will be assumed to have basic knowledge of unit and integration testing.

    No More SQLite – How to Write Tests With EF Core Using Testcontainers

    Introductory and overview
    Daniel Ward

    Integration tests are crucial to ensuring your app's reliability. However, traditional options for writing these with EF Core, such as using SQLite or a real dev database, often introduce challenges both in terms of maintainability and confidence – sometimes even secretly making tests pass with false positives.

    This session will offer an alternative, a library called Testcontainers, that addresses these challenges. After going through the more common options and their pitfalls, I'll introduce the Testcontainers library, the benefits it offers, and demonstrate with a coding demo how to implement it in some real integration tests using EF Core.

    While this talk will be made with .NET in mind and use examples in C#, the Testcontainers library is offered in 10+ languages, and the knowledge can be transferred to other ecosystems. Attendees will be assumed to have basic knowledge of unit and integration testing.

    Integration tests are crucial to ensuring your app's reliability. However, traditional options for writing these with EF Core, such as using SQLite or a real dev database, often introduce challenges both in terms of maintainability and confidence – sometimes even secretly making tests pass with false positives.

    This session will offer an alternative, a library called Testcontainers, that addresses these challenges. After going through the more common options and their pitfalls, I'll introduce the Testcontainers library, the benefits it offers, and demonstrate with a coding demo how to implement it in some real integration tests using EF Core.

    While this talk will be made with .NET in mind and use examples in C#, the Testcontainers library is offered in 10+ languages, and the knowledge can be transferred to other ecosystems. Attendees will be assumed to have basic knowledge of unit and integration testing.

    EF CoreTestcontainersSQLiteUnit testingIntegration testing

    September 26, Thursday

    • 11:30–12:30 CET/CEST
    • 05:30–06:30 EST/EDT
    • 02:30–03:30 PST/PDT
    Roman Provazník
    Building Functional DSLs for Life-Saving Applications

    We tend to call some F# language features "lifesavers", but what if I told you we actually built software for saving lives? In this talk, I'll walk you through designing custom DSLs for applications used by emergency operations center controllers with a pinch of C# and F# interop on the top of a SignalR- and Fable Compiler-powered UI renderer.

    We tend to call some F# language features "lifesavers", but what if I told you we actually built software for saving lives? In this talk, I'll walk you through designing custom DSLs for applications used by emergency operations center controllers with a pinch of C# and F# interop on the top of a SignalR- and Fable Compiler-powered UI renderer.

    Building Functional DSLs for Life-Saving Applications

    Intermediate
    Roman Provazník

    We tend to call some F# language features "lifesavers", but what if I told you we actually built software for saving lives? In this talk, I'll walk you through designing custom DSLs for applications used by emergency operations center controllers with a pinch of C# and F# interop on the top of a SignalR- and Fable Compiler-powered UI renderer.

    We tend to call some F# language features "lifesavers", but what if I told you we actually built software for saving lives? In this talk, I'll walk you through designing custom DSLs for applications used by emergency operations center controllers with a pinch of C# and F# interop on the top of a SignalR- and Fable Compiler-powered UI renderer.

    F#DSLC#Rider
    • 12:40–13:10 CET/CEST
    • 06:40–07:10 EST/EDT
    • 03:40–04:10 PST/PDT
    Konstantin Saltuk
    Pushing 'await' to the Limits

    After the introduction of the await operator, C# developers can write asynchronous code in a way that looks almost like regular synchronous code. There's no more need for explicit callbacks and lambda expressions in certain scenarios. Great! However, it did not add a solution for multi-threaded programming. With the help of IAsyncDisposable, IAsyncEnumerable, and some custom task-like types, we can make multi-threading as easy as async/await. Come learn how to make async/await even more powerful and unlock the way to write multithreaded code cleanly and concisely.

    After the introduction of the await operator, C# developers can write asynchronous code in a way that looks almost like regular synchronous code. There's no more need for explicit callbacks and lambda expressions in certain scenarios. Great! However, it did not add a solution for multi-threaded programming. With the help of IAsyncDisposable, IAsyncEnumerable, and some custom task-like types, we can make multi-threading as easy as async/await. Come learn how to make async/await even more powerful and unlock the way to write multithreaded code cleanly and concisely.

    Pushing 'await' to the Limits

    Advanced
    Konstantin Saltuk

    After the introduction of the await operator, C# developers can write asynchronous code in a way that looks almost like regular synchronous code. There's no more need for explicit callbacks and lambda expressions in certain scenarios. Great! However, it did not add a solution for multi-threaded programming. With the help of IAsyncDisposable, IAsyncEnumerable, and some custom task-like types, we can make multi-threading as easy as async/await. Come learn how to make async/await even more powerful and unlock the way to write multithreaded code cleanly and concisely.

    After the introduction of the await operator, C# developers can write asynchronous code in a way that looks almost like regular synchronous code. There's no more need for explicit callbacks and lambda expressions in certain scenarios. Great! However, it did not add a solution for multi-threaded programming. With the help of IAsyncDisposable, IAsyncEnumerable, and some custom task-like types, we can make multi-threading as easy as async/await. Come learn how to make async/await even more powerful and unlock the way to write multithreaded code cleanly and concisely.

    C#ReSharper
    • 13:20–13:50 CET/CEST
    • 07:20–07:50 EST/EDT
    • 04:20–04:50 PST/PDT
    Stefano Tempesta
    Functional Programming Made Easy in C# With Language Extensions

    LanguageExt is a library that uses and abuses the features of C# to provide a functional base class library. The class extensions bring some of the functional world into C#, making even the most seasoned object-oriented programmers more productive.

    Join this session to see the most commonly used functional effects that LanguageExt offers in action, across a variety of capabilities: input/output (IO) handling, atomic concurrency, and state management with monads (mona-what?). And you’ll also learn about all the functional programming features that you'd expect, including memoization, currying, type aliasing, etc. Everything is flavored with the rich refactoring capabilities of Rider, to get you started in the blink of an eye!

    LanguageExt is a library that uses and abuses the features of C# to provide a functional base class library. The class extensions bring some of the functional world into C#, making even the most seasoned object-oriented programmers more productive.

    Join this session to see the most commonly used functional effects that LanguageExt offers in action, across a variety of capabilities: input/output (IO) handling, atomic concurrency, and state management with monads (mona-what?). And you’ll also learn about all the functional programming features that you'd expect, including memoization, currying, type aliasing, etc. Everything is flavored with the rich refactoring capabilities of Rider, to get you started in the blink of an eye!

    Functional Programming Made Easy in C# With Language Extensions

    Introductory and overview
    Stefano Tempesta

    LanguageExt is a library that uses and abuses the features of C# to provide a functional base class library. The class extensions bring some of the functional world into C#, making even the most seasoned object-oriented programmers more productive.

    Join this session to see the most commonly used functional effects that LanguageExt offers in action, across a variety of capabilities: input/output (IO) handling, atomic concurrency, and state management with monads (mona-what?). And you’ll also learn about all the functional programming features that you'd expect, including memoization, currying, type aliasing, etc. Everything is flavored with the rich refactoring capabilities of Rider, to get you started in the blink of an eye!

    LanguageExt is a library that uses and abuses the features of C# to provide a functional base class library. The class extensions bring some of the functional world into C#, making even the most seasoned object-oriented programmers more productive.

    Join this session to see the most commonly used functional effects that LanguageExt offers in action, across a variety of capabilities: input/output (IO) handling, atomic concurrency, and state management with monads (mona-what?). And you’ll also learn about all the functional programming features that you'd expect, including memoization, currying, type aliasing, etc. Everything is flavored with the rich refactoring capabilities of Rider, to get you started in the blink of an eye!

    C#LanguageExtRefactoringRider
    • 14:00–15:00 CET/CEST
    • 08:00–09:00 EST/EDT
    • 05:00–06:00 PST/PDT
    Andrii Rublov
    Into the Rabbit Hole of Blazor Wasm Hot Reload

    This deep dive will reveal the magic behind how Rider seamlessly integrates with Blazor WebAssembly to provide a dynamic, real-time development experience. We'll explore the technical architecture, delve into the communication mechanisms between the IDE, the runtime, and the browser, and understand how code changes are instantly reflected without a full reload. Perfect for developers looking to enhance their knowledge of Blazor capabilities, this session will provide a thorough understanding of the behind-the-scenes processes that make hot reload a powerful tool in your Blazor Wasm development toolkit.

    This deep dive will reveal the magic behind how Rider seamlessly integrates with Blazor WebAssembly to provide a dynamic, real-time development experience. We'll explore the technical architecture, delve into the communication mechanisms between the IDE, the runtime, and the browser, and understand how code changes are instantly reflected without a full reload. Perfect for developers looking to enhance their knowledge of Blazor capabilities, this session will provide a thorough understanding of the behind-the-scenes processes that make hot reload a powerful tool in your Blazor Wasm development toolkit.

    Into the Rabbit Hole of Blazor Wasm Hot Reload

    Advanced
    Andrii Rublov

    This deep dive will reveal the magic behind how Rider seamlessly integrates with Blazor WebAssembly to provide a dynamic, real-time development experience. We'll explore the technical architecture, delve into the communication mechanisms between the IDE, the runtime, and the browser, and understand how code changes are instantly reflected without a full reload. Perfect for developers looking to enhance their knowledge of Blazor capabilities, this session will provide a thorough understanding of the behind-the-scenes processes that make hot reload a powerful tool in your Blazor Wasm development toolkit.

    This deep dive will reveal the magic behind how Rider seamlessly integrates with Blazor WebAssembly to provide a dynamic, real-time development experience. We'll explore the technical architecture, delve into the communication mechanisms between the IDE, the runtime, and the browser, and understand how code changes are instantly reflected without a full reload. Perfect for developers looking to enhance their knowledge of Blazor capabilities, this session will provide a thorough understanding of the behind-the-scenes processes that make hot reload a powerful tool in your Blazor Wasm development toolkit.

    BlazorRider
    • 15:15–16:15 CET/CEST
    • 09:15–10:15 EST/EDT
    • 06:15–07:15 PST/PDT
    Laila Bougria
    Orchestration vs. Choreography: The Good, the Bad, and the Trade-Offs

    One of the goals of building microservice-based architectures is to reduce the complexity of individual components. In doing so, much of that complexity shifts from individual services towards interservice communication, making how we design those service interactions essential to our system design. That's where orchestration and choreography come in – two coordination techniques that can help us design complex workflows in our system.

    In this session, we’ll thoroughly examine each pattern with practical examples from the banking sector that are based on almost five years of experience in this domain. By thoroughly understanding the trade-offs of each approach and understanding the right questions to ask, we can build a mental framework that helps us make well-balanced decisions about which pattern to use. Join me in this session, where we’ll transform the abstract concepts of orchestration and choreography into a tangible decision-making framework that steers you in the right direction!

    One of the goals of building microservice-based architectures is to reduce the complexity of individual components. In doing so, much of that complexity shifts from individual services towards interservice communication, making how we design those service interactions essential to our system design. That's where orchestration and choreography come in – two coordination techniques that can help us design complex workflows in our system.

    In this session, we’ll thoroughly examine each pattern with practical examples from the banking sector that are based on almost five years of experience in this domain. By thoroughly understanding the trade-offs of each approach and understanding the right questions to ask, we can build a mental framework that helps us make well-balanced decisions about which pattern to use. Join me in this session, where we’ll transform the abstract concepts of orchestration and choreography into a tangible decision-making framework that steers you in the right direction!

    Orchestration vs. Choreography: The Good, the Bad, and the Trade-Offs

    Advanced
    Laila Bougria

    One of the goals of building microservice-based architectures is to reduce the complexity of individual components. In doing so, much of that complexity shifts from individual services towards interservice communication, making how we design those service interactions essential to our system design. That's where orchestration and choreography come in – two coordination techniques that can help us design complex workflows in our system.

    In this session, we’ll thoroughly examine each pattern with practical examples from the banking sector that are based on almost five years of experience in this domain. By thoroughly understanding the trade-offs of each approach and understanding the right questions to ask, we can build a mental framework that helps us make well-balanced decisions about which pattern to use. Join me in this session, where we’ll transform the abstract concepts of orchestration and choreography into a tangible decision-making framework that steers you in the right direction!

    One of the goals of building microservice-based architectures is to reduce the complexity of individual components. In doing so, much of that complexity shifts from individual services towards interservice communication, making how we design those service interactions essential to our system design. That's where orchestration and choreography come in – two coordination techniques that can help us design complex workflows in our system.

    In this session, we’ll thoroughly examine each pattern with practical examples from the banking sector that are based on almost five years of experience in this domain. By thoroughly understanding the trade-offs of each approach and understanding the right questions to ask, we can build a mental framework that helps us make well-balanced decisions about which pattern to use. Join me in this session, where we’ll transform the abstract concepts of orchestration and choreography into a tangible decision-making framework that steers you in the right direction!

    Microservices
    • 16:30–17:30 CET/CEST
    • 10:30–11:30 EST/EDT
    • 07:30–08:30 PST/PDT
    Irina Scurtu
    Contract Testing Made Easy: Mastering Pact for Microservices in C#

    In a forever-evolving world of microservices, with so many moving parts, we often rely on integration testing to prevent bugs and regressions.

    The problem with these tests is that sometimes they become flaky, unreliable, and expensive to maintain and execute, due to the distributed nature of our system.

    But what if we could ensure that our system’s components are compatible and can communicate with each other straight from the development phase?

    Let’s have a look at what contract testing is and see how it can help us mitigate the risk of integration bugs before running long tests, with examples in C#.

    In a forever-evolving world of microservices, with so many moving parts, we often rely on integration testing to prevent bugs and regressions.

    The problem with these tests is that sometimes they become flaky, unreliable, and expensive to maintain and execute, due to the distributed nature of our system.

    But what if we could ensure that our system’s components are compatible and can communicate with each other straight from the development phase?

    Let’s have a look at what contract testing is and see how it can help us mitigate the risk of integration bugs before running long tests, with examples in C#.

    Contract Testing Made Easy: Mastering Pact for Microservices in C#

    Intermediate
    Irina Scurtu

    In a forever-evolving world of microservices, with so many moving parts, we often rely on integration testing to prevent bugs and regressions.

    The problem with these tests is that sometimes they become flaky, unreliable, and expensive to maintain and execute, due to the distributed nature of our system.

    But what if we could ensure that our system’s components are compatible and can communicate with each other straight from the development phase?

    Let’s have a look at what contract testing is and see how it can help us mitigate the risk of integration bugs before running long tests, with examples in C#.

    In a forever-evolving world of microservices, with so many moving parts, we often rely on integration testing to prevent bugs and regressions.

    The problem with these tests is that sometimes they become flaky, unreliable, and expensive to maintain and execute, due to the distributed nature of our system.

    But what if we could ensure that our system’s components are compatible and can communicate with each other straight from the development phase?

    Let’s have a look at what contract testing is and see how it can help us mitigate the risk of integration bugs before running long tests, with examples in C#.

    MicroservicesC#Contract testing
    • 17:45–18:45 CET/CEST
    • 11:45–12:45 EST/EDT
    • 08:45–09:45 PST/PDT
    Cecil Phillip
    Composing Distributed Applications With .NET Aspire

    The .NET Aspire stack bundles together an opinionated collection of libraries and tooling designed to streamline the development of distributed applications for developers. At the heart of .NET Aspire is its built-in orchestrator, which offers a code-centric approach, allowing you to effortlessly manage all the resources that make up your application – containers, executables, projects, and configurations – with the power of strong typing.

    In this session, we’ll explore how you can use the API in the application model to compose the resources that make up our distributed application. We’ll get a solid understanding of what Aspire Resources are, explore some of the built-in resource types, as well as learn how we can create our own custom resources.

    The .NET Aspire stack bundles together an opinionated collection of libraries and tooling designed to streamline the development of distributed applications for developers. At the heart of .NET Aspire is its built-in orchestrator, which offers a code-centric approach, allowing you to effortlessly manage all the resources that make up your application – containers, executables, projects, and configurations – with the power of strong typing.

    In this session, we’ll explore how you can use the API in the application model to compose the resources that make up our distributed application. We’ll get a solid understanding of what Aspire Resources are, explore some of the built-in resource types, as well as learn how we can create our own custom resources.

    Composing Distributed Applications With .NET Aspire

    Intermediate
    Cecil Phillip

    The .NET Aspire stack bundles together an opinionated collection of libraries and tooling designed to streamline the development of distributed applications for developers. At the heart of .NET Aspire is its built-in orchestrator, which offers a code-centric approach, allowing you to effortlessly manage all the resources that make up your application – containers, executables, projects, and configurations – with the power of strong typing.

    In this session, we’ll explore how you can use the API in the application model to compose the resources that make up our distributed application. We’ll get a solid understanding of what Aspire Resources are, explore some of the built-in resource types, as well as learn how we can create our own custom resources.

    The .NET Aspire stack bundles together an opinionated collection of libraries and tooling designed to streamline the development of distributed applications for developers. At the heart of .NET Aspire is its built-in orchestrator, which offers a code-centric approach, allowing you to effortlessly manage all the resources that make up your application – containers, executables, projects, and configurations – with the power of strong typing.

    In this session, we’ll explore how you can use the API in the application model to compose the resources that make up our distributed application. We’ll get a solid understanding of what Aspire Resources are, explore some of the built-in resource types, as well as learn how we can create our own custom resources.

    .NET AspireRider

    FAQ

    Is JetBrains .NET Day Online 2024 free?

    Yes, JetBrains .NET Day Online 2024 is completely free to attend.

    Do I have to attend all the sessions?

    You can join the livestreams at any time. You are welcome to pick specific presentations or join us for all of them.

    Can I ask questions during the event?

    Yes! We encourage you to ask questions in the YouTube or Twitch chats during the presentations. We will try to answer your questions as we go along. Also, feel free to reach out to the speakers on their social media or through their blogs!

    Will the sessions be recorded?

    All of the sessions will be recorded and uploaded to YouTube so you can catch any you miss. While you’re waiting for the first session to begin, we invite you to check out the recordings from our previous events:

    What do I need in order to join the sessions?

    Register to receive reminders and updates about the sessions. We’ll send you links to the livestreams each day. You are welcome to tune in live or watch the talks later at your convenience.

    #JBDotNetDays on X

    Registration for .NET Days Online 2024