Session

1-day Workshop: Functional Domain Modeling with C# 11

Domain modeling is probably the hardest part of modern software development and, beyond doubt, the most complicated process of them all. The complexity we observe in domain modeling comes from the intrinsic complexity of the domain itself - there are no simple businesses anymore. We must accept that.

Software developers have already observed that domain modeling benefits from functional programming. The reasons are manifold, but the most important ones have to do with how the functional modeling process is aligned with how businesses evolve (along with the software that models them).

It is beneficial to model the data separately from the rest of the system, and consequently to possess the domain state isolated from any processes. It is also beneficial to design functions separately from the data because behaviors are many and their stakeholders are often disconnected, often with little sympathy to the needs of others. Both these principles are orthogonal to object-oriented programming, but native to functional programming.

Hence this workshop, in which you will learn the benefits of functional modeling, on an example of a realistic ASP.NET Core Web application, as well as the practices and techniques we apply to implement the fully operational application.

Table of contents:
- Modeling the data separate from behavior,
- Modeling behavior on top of the data model,
- Using value objects and values; using records,
- Modeling discriminated unions,
- Modeling function composition,
- Optional objects and railway-oriented programming.

Prerequisites:
- Proficiency in C#; programmers mainly dedicated to other programming languages will probably not be able to follow through the workshop
- Proficiency in developing ASP.NET Core applications with EF Core is a plus, but not strictly required
- All attendees need their own laptop

Advanced level.
I have been holding this workshop (both in the form of a 1-day workshop, 2-day workshop, or 1-day training) since 2014 to several dozens of teams, and also at some conferences. The content has sustained numerous evolutions and several complete rewrites.
The entire set of lectures is now in the form of an ASP.NET Core business application using EF Core, though UI & database technologies are not relevant for the content - even backend-only developers with little knowledge of EF core or UI had no problems participating.

Zoran Horvat

Principal consultant at Coding Helmet s.p.r.l.

Belgrade, Serbia

View Speaker Profile

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top