Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 435 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
435
Dung lượng
6,7 MB
Nội dung
[...]... The Problem The Design 265 266 Designing the Domain Model Designing the Change Order Aggregate Defining the Aggregate Boundaries Designing the Repository Writing the Unit Tests The Solution The The The The Change Change Change Change 271 Order Order Order Order Repository Implementation Service Implementation View Model Class View Summary The Problem The Design 295 295 295 Designing the Domain Model Designing... Synchronizing With the Server The Problem The Design Redesigning the Unit of Work Designing the Synchronization Writing the Unit Tests 300 307 313 314 324 325 327 327 327 328 330 331 xii ftoc.indd xii 3/20/08 2:05:44 PM Contents The Solution Unit of Work Refactoring Synchronizing with the Synchronizer Class Summary Chapter 11: The Client Membership System The Problem The Design Password Security Designing... self-contained module with a problem, design, and solution that adds some new aspect of functionality to the application that is being built, followed by a summary at the end of the chapter Most of the time, the Problem sections are fairly short, whereas the Design and Solution sections make up most of the bulk of the chapters The Solution section will always contain the code that implements what was designed... Implementation View Model View Summary The Problem The Design Designing the Domain Model Defining the RFI Aggregate Defining the Aggregate Boundaries Designing the Repository Writing the Unit Tests The Solution RFI RFI RFI RFI Repository Implementation Service Implementation ViewModel Classes View Summary Chapter 7: Proposal Requests The Problem The Design Designing the Domain Model Designing the Proposal Request... Requirement Fulfilling the Web Access Requirement Fulfilling the Intelligent Installation and Auto-Update Functionality Requirement Summary Chapter 2: Designing the Layered Architecture The Problem The Design Designing the Visual Studio Solution Designing the Architectural Layers The Solution Implementing the Visual Studio Solution Implementing the Architectural Layers Summary ftoc.indd ix xv xvii 1 1 4 4 5 5... 2:57:30 PM Introduction After reading Eric Evans’ book Domain-Driven Design, Tackling Complexity in the Heart of Software, my way of designing software systems completely changed Before that, I used to design software object models in a very data-centric way, and I did not really focus on how to combine behavior and data in objects I was so inspired with this new way of thinking that I started trying... (Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software [Addison-Wesley, 2004], 77) 2 c01.indd 2 3/17/08 2:37:04 PM Chapter 1: Introducing the Project: The SmartCA Application Figure 1.2 shows the architecture of the current application Access Front End (.mdb) Data Entry Forms Reports VBA Code-Behind VBA Code-Behind Standalone VBA Modules Linked Tables Queries Access Back End (.mdb) -. .. API will enable It should be noted that I will not be talking much about databases in this book, since the focus of this book is on Domain-DrivenDesign One of the main tenants of Domain-DrivenDesign is persistence ignorance, and therefore, while the application is being designed, as far as you and I are concerned, the data could be coming from a text file Therefore, from this point on, I will only... along came Jimmy Nilsson’s book Applying Domain-DrivenDesign and Patterns, and it was then that I started to see a lot more of the patterns that could be used in conjunction with the DDD concepts Jimmy tied together some of the concepts from Martin Fowler ’s excellent book Patterns of Enterprise Application Architecture and showed how they could help with good DDD design principles Jimmy also did a great... Keys - Foreign Keys - Other Constraints Data Figure 1.2: Legacy Construction Administration application architecture Recently, Smart Design merged with another architectural design company, and as a result the CA application became even more important It is now being used more often than before by many more users from several remote offices The increased use has caused scalability and performance problems