Wiley.com
Print this page Share

.NET Domain-Driven Design with C#: Problem - Design - Solution

ISBN: 978-0-470-14756-6
Paperback
432 pages
April 2008
.NET Domain-Driven Design with C#: Problem - Design - Solution (0470147563) cover image
This title is out-of-print and not currently available for purchase from this site.

Acknowledgments xv

Introduction xvii

Chapter 1: Introducing the Project: The SmartCA Application 1

The Problem 1

The Design 4

Reliability and Availability 4

Scalability 5

Maintainability 5

Rich Client Application Functionality 5

Offline Capable 5

Web Access 5

Intelligent Installation and Auto-Update Functionality 5

Additional Client Device Support 5

The Solution 6

Fulfilling the Reliability, Availability, Scalability, Offline Capable, and Additional Client Device Support Requirements 6

Fulfilling the Maintainability Requirement 7

Fulfilling the Rich Client Application Functionality Requirement 9

Fulfilling the Web Access Requirement 11

Fulfilling the Intelligent Installation and Auto-Update Functionality Requirement 11

Summary 11

Chapter 2: Designing the Layered Architecture 13

The Problem 13

The Design 13

Designing the Visual Studio Solution 13

Designing the Architectural Layers 14

The Solution 18

Implementing the Visual Studio Solution 19

Implementing the Architectural Layers 19

Summary 53

Chapter 3: Managing Projects 55

The Problem 55

The Design 55

Designing the Domain Model 56

Defining the Project Aggregate 56

Defining the Aggregate Boundaries 57

Designing the Repositories 58

Writing the Unit Tests 60

The Solution 65

The Project Class 65

The Repository Implementations 77

The Service Class Implementations 90

The Project Information ViewModel Implementation 92

The Project Information View Implementation 102

Summary 107

Chapter 4: Companies and Contacts 109

The Problem 109

The Design 109

Designing the Domain Model 110

Defining the Company and Contact Aggregates 110

Defining the Aggregate Boundaries 111

Designing the Repositories 112

Writing the Unit Tests 114

The Solution 119

The Company Class 119

The Contact Class 121

The ProjectContact Class 123

The Repository Implementations 124

The Service Class Implementations 134

The Company ViewModel 137

The Company View 144

The Project Contact View Model 148

The Project Contact View 154

Summary 156

Chapter 5: Submittal Transmittals 157

The Problem 157

The Design 158

Designing the Domain Model 158

Defining the Submittal Aggregate 159

Defining the Aggregate Boundaries 159

Designing the Repository 160

Writing the Unit Tests 161

The Solution 164

The Submittal Repository Implementation 178

The Submittal Service Implementation 187

The Submittal View Model 188

The Submittal View 192

Summary 197

Chapter 6: Requests for Information 199

The Problem 199

The Design 200

Designing the Domain Model 200

Defining the RFI Aggregate 201

Defining the Aggregate Boundaries 202

Designing the Repository 203

Writing the Unit Tests 204

The Solution 207

The RFI Repository Implementation 213

The RFI Service Implementation 223

The RFI ViewModel Classes 224

The RFI View 231

Summary 232

Chapter 7: Proposal Requests 233

The Problem 233

The Design 234

Designing the Domain Model 234

Designing the Proposal Request Aggregate 235

Defining the Aggregate Boundaries 236

Designing the Repository 237

Writing the Unit Tests 239

The Solution 242

The Proposal Request Class Private Fields and Constructors 242

The ProposalRequest Properties 245

The Validate Method 248

The Proposal Request Repository Implementation 253

The Proposal Request Service Implementation 257

The Proposal Request View Model Class 258

The Proposal Request View 260

Summary 263

Chapter 8: Change Orders 265

The Problem 265

The Design 266

Designing the Domain Model 266

Designing the Change Order Aggregate 267

Defining the Aggregate Boundaries 268

Designing the Repository 268

Writing the Unit Tests 271

The Solution 271

The Change Order Repository Implementation 283

The Change Order Service Implementation 288

The Change Order View Model Class 289

The Change Order View 292

Summary 293

Chapter 9: Construction Change Directives 295

The Problem 295

The Design 295

Designing the Domain Model 296

Designing the Construction Change Directive Aggregate 297

Defining the Aggregate Boundaries 298

Designing the Repository 299

Writing the Unit Tests 300

The Solution 300

The Construction Change Directive Class Private Fields and Constructors 300

The Construction Change Directive Repository Implementation 307

The Construction Change Directive Service Implementation 313

The Construction Change Directive ViewModel Class 314

The Construction Change Directive View 324

Summary 325

Chapter 10: Synchronizing With the Server 327

The Problem 327

The Design 327

Redesigning the Unit of Work 328

Designing the Synchronization 330

Writing the Unit Tests 331

The Solution 333

Unit of Work Refactoring 333

Synchronizing with the Synchronizer Class 349

Summary 356

Chapter 11: The Client Membership System 357

The Problem 357

The Design 357

Password Security 358

Designing the Client Membership System 358

The Solution 359

The Client Membership System Domain Model Classes 360

Client Membership System Unit Tests 388

Summary 389

Index 391

Related Titles

More By This Author

General Programming & Software Development

by Richard N. Taylor, Nenad Medvidovic, Eric Dashofy
by Janet Valade
with Tricia Ballad, Bill Ballad
by Adrian Kingsley-Hughes, Kathie Kingsley-Hughes, Daniel Read
by Scot Hillier (Editor), Robert Bogue, Adam Buenz, Andrew Connell, Stacy Draper, Luis Du Solier Grinda, Todd Klindt, Jason Medero, Dustin Miller, Shane Perran, Joris Poelmans, Heather Solomon, Nick Swan, Jan Tielens, Mike Walsh, Shane Young
Back to Top