Rewrite a legacy application using DDD, TDD, .NET and CoreDdd library

Posted By Martin Havlišta

This blog post is for a software developer who would like to learn about rewriting a legacy application (e.g. ASP.NET Web Forms) using domain-driven design (DDD), CQRS and Chicago style test-driven development (TDD) and CoreDdd .NET library. We will compare the original legacy implementation (code-behind page model, stored procedures) with the new test driven implementation using commands, queries and domain entities.

More …

CoreDdd tutorial - developing an application with CoreDdd library using DDD and TDD

This article is for the legacy CoreDdd version 1.7.1.1. There is a newer CoreDdd version 3, with a documentation and code samples. Newer blog posts about CoreDdd are here. Also this tutorial uses London style TDD which I used at the point of writing this article (~2012), but since then I switched to Chicago style TDD, and now I consider the TDD code samples in this article a legacy code.

In a previous article you can read more about a motivation behind CoreDdd library. Application we are going to build on CoreDdd library is an e-shop, source code here. Initially it’s going to be a simplified version, but agile process enables you to iteratively add more features, DDD/TDD/CQRS/patterns & principles ensure not to plunge into a spaghetti waterfall code, and as you learn the business/domain as you go along, you can safely refactor if required and take the project to a more mature version. Initial version of the e-shop application would contain:

More …

Readable maintainable code? Use DDD TDD CQRS IoC

Back in 1994 when I was 14 my parents asked me if I want a video player or a computer. So I got a PC, 286, 12 MHz, EGA graphics with 16 bloody colours. Everybody was playing Doom except me. After completing all sorts of 16 coloured games distributed on faulty 3.5” diskettes, I became bored. A friend of mine installed Turbo Pascal on my machine, and I was started. Later I learned C/C++, Java, wrote couple of university projects in it, and at last C#/.NET - a language and a platform of my choice.

More …