Modern Web Development with C# and .NET

Room 2
09:00 - 17:00
(UTC+02

2 Days

Monday 
An in-depth workshop about building data-driven web applications using C# and .NET. Learn how to combine reliable, performant backend code built with .NET, Entity Framework Core, and open-source frameworks like NodaTime and MailKit, and lightweight, responsive front-end interfaces incorporating CSS grid layouts, SASS, and JavaScript.
.NET
Web

It’s 2023. .NET is a free, open-source development framework that runs on everything from Raspberry Pis to cloud data centres, server-side rendering is cool again, and despite what you might have read on LinkedIn, AI is not about to take away all our jobs. In this two-day, workshop, you’ll learn how to design, deliver, and test state-of-the-art web applications that harness the power of the C# language and the ASP.NET Core platform. Alongside familiar patterns like model/view/controller and dependency injection, the latest versions of ASP.NET Core introduced a streamlined hosting model, a new set of conventions for routing requests within our applications, and a completely new architecture known as “minimal APIs” for building API endpoints and microservices.


.NET also supports a thriving ecosystem of open source projects and packages. Entity Framework Core provides first-class abstractions over relational databases like MS SQL Server and PostgreSQL. Libraries like NodaTime can simplify and streamline your application logic. Projects like xUnit, Moq, and Shouldly let you test your applications at whatever level makes sense - from low-level unit testing to end-to-end integration tests that test your app’s entire HTTP pipeline. And on the front-end, it’s never been easier to incorporate technologies like SASS, CSS grids, responsive layouts, and even libraries like MJML for sending HTML emails.

Workshop Structure

Overview of .NET web application architecture

  • .NET 6 vs .NET 7 - long term support, or latest & greatest?
  • Using the dotnet CLI tool
  • Creating a .NET web application
  • Configuration management
  • Registering services
  • Routing
  • Logging
  • Testing your web application

Working with Relational Databases

  • Lightweight data access with Dapper
  • Managing data with Entity Framework Core
  • Deploying database changes using EF Core Migrations
  • Development on localhost using Docker

Business Logic and Domain Modelling

  • Entities and data transfer objects
  • Introducing abstractions
  • Testing application behaviour and business logic

Locales, Times, and Timezones

  • What’s wrong with System.DateTime?
  • Introducing NodaTime
  • Mapping conventions for custom datatypes
  • Data formatting: dates, times, currencies
  • Formatting data using System.Globalization

Frontend: Presentation and Validation

  • Layouts, areas, partial views, and tag helpers.
  • Working with Razor Pages
  • Responsive layouts with CSS grid
  • Hosting SASS and SCSS in .NET
  • Styling forms and input validation

Deployment and Monitoring

  • Cross-platform gotchas: what to watch out for when you’re developing on Windows or macOS and hosting on Linux
  • Deploying to Microsoft Azure using GitHub Actions
  • Application monitoring using Application Insights

Target Audience and Prerequisites

This workshop is aimed at developers with some experience of the C# language, the .NET platform, and some basic web development. If you understand classes, inheritance, Console. WriteLine, and you know what the <select> tag in HTML does, then you should be just fine.

Computer Setup

Attendees will need a computer running .NET 6 or .NET 7, Docker, and a code editor that supports .NET such as Microsoft Visual Studio 2022, JetBrains Rider, or Visual Studio Code.

Dylan Beattie

Dylan Beattie is an independent consultant who has been building data-driven web applications since the 1990s. He’s managed teams, taught workshops, and worked on everything from tiny standalone websites to complex distributed systems. He’s a Microsoft MVP, and he regularly speaks at conferences and user groups all over the world.

Dylan is the creator of the Rockstar programming language, and is known for his live music shows featuring software-themed parodies of classic rock songs. He’s online at dylanbeattie.net and on Twitter as @dylanbeattie.