DateTime as a Value Object
When teaching DDD, I often use DateTime as a good example of a value object. This article details some of the lessons one can learn from this common.NET data structure.
MANY articles on a wide array of topics. You’ll find a lot of my newer content is going to my YouTube channel first, but I do still blog occasionally.
When teaching DDD, I often use DateTime as a good example of a value object. This article details some of the lessons one can learn from this common.NET data structure.
A review of my online content, goals, etc. from 2021 written in early 2022.
Software developers deal with abstractions every day. But just what is an abstraction? There are differing definitions that can sometimes cause confusion. Let's consider a few of them.
When practicing software architecture and design, one important consideration is how the rules of the system are modeled. Are the rules ad hoc and a matter of tribal knowledge of the developers who came before, or are …
Clean Architecture is a way of structuring a solution such that dependencies and infrastructure concerns are kept separate from business logic and the domain model. It's frequently used with Domain-Driven Design and can …
It's typical for API endpoints to call application or domain services. In the case of success, the API can simply return Ok and the result of the service call. But for non-success cases, should you use exceptions to …
Recording a short screencast video can be a very effective way to provide a demo to stakeholders or show how a bug can be reproduced. Follow this checklist to make sure you don't miss something important.
If you're writing blog posts, GitHub content, and/or Stack Over flow questions and answers using Markdown, it's often helpful to show code in code blocks of within code fences. Did you know these support many different …
The dotnet format tool is now a part of the dotnet CLI with.NET 6, and you can use it to easily adopt the new file scoped namespace feature that ships with C# 10.
Design patterns provide reusable approaches to common problems and allow for higher level discussions of software design. Learn the basics of design patterns, how to recognize and implement them, how to combine them, and …