Converting a Monolithic App to a more Domain-Driven Design
Implementing a system using domain-driven design seems “straight-forward” when looking at a brand new system. Changing an existing enterprise system, especially one built in the monolithic approach that was common a few years ago, can be daunting. In this workshop we will take a hands-on approach to working through the steps necessary to refactor a non-DDD monolithic application using "traditional" DDD approaches.
As part of this workshop you will convert a simplified monolithic web application to a system running in a more domain-driven approach. Generally, in each section we will talk about various patterns and implementation strategies, you will have some time to do some implementation yourself in code, and then we will review an example where the conversion has already been completed. As we go through each area there will be some discussion of tips and tricks and perhaps some horror stories about where it has gone completely wrong.
The various areas we will cover:
1) Strategies for getting started
2) Defining domains when working within a monolithic system
3) Evaluating current unit and integration tests for ability to support refactoring efforts
4) Implementing micro-services over a monolothic back-end
5) Converting historical-data access patterns to CQRS
6) Splitting, segmenting, and changing the business layer to stay within the domain
7) Communicating between domains with events and messaging
8) Dev-Ops considerations in a DDD world
Computer with IDE (Rider or Visual Studio).
An AWS Account (for database and event queue management). If you do not have one, get one here. http://amzn.to/39Pb9Pg
AWS Credits will be granted to all attendees so that they will have no cost.
With over 25 years in software development (almost 15 of which is .NET), Dr. Bill brings a pragmatic (curmudgeonly?) approach to software development. With much of that time spent in consulting, he has worked on many different projects and used many different designs and approaches. He recently switched to the dark side and uses his development experience in a product management role where he acts as a .NET developer advocate with AWS, helping AWS to build a better and more rich .NET developer experience.
Steve Roberts is a Developer Advocate for .NET and PowerShell tools and technologies on Amazon Web Services. Now based in Seattle, Washington, Steve's career as a software developer spans thirty years with a focus on creating developer tools and IDE integrations to help developers be more productive in their chosen languages and platforms.
Prior to becoming a Developer Advocate, Steve spent almost eight years as a Senior Development Engineer at Amazon Web Services, working on the AWS SDKs and tools for .NET and PowerShell developers. He was the development lead for the AWS Tools for PowerShell and the AWS Tools for Microsoft Visual Studio Team Services, and also worked on the AWS Toolkits for Visual Studio and Visual Studio Code, together with the AWS SDK for .NET.