Helpful development and architecture advice for .NET developers
Home
Posts
Newsletter
Products
© Nick Chamberlain, LLC
3 Reasons to Model Identity as a Value Object
Pre-orders open for my new ebook!
Handling Non-Aggregate Root Events for Child Entities
Why we Avoid Putting Value Objects in Events
EventStorming's Coincidence with Business Process Improvement
Let's ship something together...
How do We Write Factories for Event Sourced Aggregates?
Using Event Sourcing in a Legacy Environment
Awkward Aggregate Root relationships and how to rethink them
A Reactive Process Manager in C# with Akka.NET
User Interface
The Read Model Facade
Handling Events on the Read Side
Projection
Publishing Events to the Bus
Testing the Bus
Sending Commands to the Bus
The Bus
The Read Model
An Executable Specification
Testing an Event Sourced Aggregate Root
Aggregate Event Persistence
Event Store
Command Handlers
Implementing an Event Sourced Aggregate
Design Level EventStorming Continued
Complexity and Cost
Design Level EventStorming
People and Commands
Hotspots
Domain Discoveries
Big Picture EventStorming
The Domain - First Pop Coffee Company
Un-swallowing Swallowed Exceptions with Fody and IL Weaving
More Efficient Domain Modeling with EventStorming
Where do you find resources for learning DDD, CQRS, Event Sourcing, and EventStorming?
Has the code devolved into a big ball of mud?... What can you do about it?
Does your workplace use best practices?...
I was thrown into the codebase from day 1...
I've inherited 200k lines of spaghetti code... what now?
Are you working on the greenfield code that you always dreamed of?...
What's better: bad tests or no tests at all?...
Cracking open a legacy code 'black box'...
Nobody plans to write smelly tests...
Debugging all the time isn't fun...
Just starting out with Domain Driven Design?
Flipping a Boolean When All Values Meet a Condition with LINQ
3 Ways to Loop Without do/do-while/for/foreach/etc...
Why Delegates? Why not Call Methods Directly?
New to Testing Time-Dependent Code?... Use NodaTime.Testing!
How to Map Nested JSON Objects to a .NET Dictionary
Weekly Keyboard Shortcut #5: ReSharper's Generate Type Constructor
Weekly Keyboard Shortcut #4: ReSharper's Go to File Member
Changing a Type within a Class when you Instantiate: An Intro to Generics
Weekly Keyboard Shortcut #3: ReSharper's Expand/Shrink Selection
Weekly Keyboard Shortcut #2: ReSharper's Rearrange Code
Weekly Keyboard Shortcut #1: ReSharper's Go To Everything
Getting Started with Entity Framework Code-First with an Existing Database
Erlang-style Supervisors in C# with Akka.NET and the Actor Model
Converting DateTimes by Offsets with NodaTime
Singleton Indexer - A Workaround for not having Static Indexers in C#
Bad Data, Try/Catch, and Slow Performance
Throwing an Invalid Cast Exception?... Look Out for Unboxing
Calculating Values using Calculated Values in LINQ
Exposing IQueryable in a CQRS Query Stack
A Pattern to Decouple your Aggregates from their Clients
A Better Way to Project Domain Entities into DTOs
Do I Really Have to Unit Test This Method?
What Needs to Be Disposed?
What's the Point of the 'dynamic' Primitive Type?...
Keep an Eye On Your Azure Service Bus with the Particular Platform
Building with Azure Service Bus?... Take a Test Drive with the NServiceBus Sample Project
How to Compare Object Instances in your Unit Tests Quickly and Easily
Entity Framework: Modeling an Email Domain with CC and BCC Addresses
Should You Jump into Unit Testing before OOP?
How Working the 'Vertical Slice' Can Fix your Coding Mental Block
Using TDD to Break Through 'Paralysis by Analysis'
Management Doesn't Care about Code Quality?... 3 Ways to Cope
A Strategy for an Unmovable Legacy Architecture
Struggling to Keep Up?... We All Are
How to Deal with Pre-Commit Nervousness
My AE/ED Line-Based Text Editor Cheat Sheet
The Simple Programmer Email Course
Logging with Ninject Interception and Serilog - Part 3
Logging with Ninject Interception and Serilog - Part 2
Logging with Ninject Interception and Serilog - Part 1
How to Do Dependency Injection in a CRM Plugin