Building Web Apps with C# and .NET 8
It’s 2024. .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 hands-on workshop, we’ll cover the fundamentals of .NET web development - Razor pages, minimal APIs, model/view/controller. We’ll learn about Entity Framework Core, the new features in EF Core version 8 that make it easier to model and manage complex data types - and how you can use EF Core with Sqlite to make building and testing web apps a breeze. We’ll learn about the latest web standards and technologies, like responsive layouts, SASS, scoped CSS, and how these fit into the .NET ecosystem. We’ll learn how to test web applications, whether that’s testing a single controller action or a complete end-to-end test covering every part of your application. We’ll learn how to create continuous deployment pipelines using using Github Actions and deploy our apps into the cloud with Microsoft Azure - and we’ll look at internationalisation: cultures, currencies and timezones. It is the world wide web, after all.
And we’re going to do all this without nodeJS... that’s right: full stack web development and not a node_module in sight. :)
If you’re a backend dev who wants to learn more about frontend? Come along. If you’re already building web apps with .NET and want to know what’s new and exciting in .NET 8? Come along. And if you’ve never build a web app with .NET... hey, this workshop is a great place to start.
Overview of .NET web application architecture
- Minimal APIs, Razor Pages and Model/View/Controller
- Scaffolding code using the dotnet CLI tools
- Configuration management
- Service registration, dependency injection and component lifecycles
Working with Relational Databases
- Managing data with Entity Framework Core
- Running EF Core with Sqlite
- Deploying to SQL Server using EF Core Migrations
- What’s new in EF Core 8?
Business Logic and Domain Modelling
- Entities, DTOs and view models
- Interfaces and abstractions
- Testing 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: 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.
Attendees will need a computer running .NET 8, and a code editor that supports .NET such as Microsoft Visual Studio 2022, JetBrains Rider, or Visual Studio Code.
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.