Introduction | p. xxi |
Introduction to Practical Enterprise Development | |
What is Enterprise Design? | p. 3 |
What Is Enterprise Architecture? | p. 5 |
What Is Enterprise Development? | p. 6 |
Reliability | p. 6 |
Flexibility | p. 6 |
Separation of Concerns | p. 7 |
Reusability | p. 7 |
Maintainability | p. 7 |
Where Is All of the Microsoft Enterprise? | p. 9 |
The COM Factor | p. 10 |
The Shift to Java | p. 10 |
The .NET Revolution | p. 11 |
Summary | p. 14 |
The Enterprise Code | p. 15 |
A New Way to Look At Code | p. 15 |
Modularity | p. 16 |
Loosely Coupled Classes | p. 17 |
Unit Testing | p. 23 |
Inversion of Control Containers | p. 25 |
Summary | p. 29 |
The New Code - Changing the Way You Build | |
Emancipate Your Classes | p. 33 |
Evaluating Your Code for Dependencies | p. 33 |
Rigidity | p. 45 |
Flexibility | p. 45 |
Separation of Concerns | p. 45 |
Reusability | p. 45 |
Maintainabilty | p. 45 |
Separation of Concerns and Identifying Modularity | p. 46 |
The Dependency Inversion Principle | p. 61 |
Turning Classes Inside Out Using Dependency Injection | p. 64 |
Rigidity | p. 70 |
Flexibility | p. 70 |
Separation of Concerns | p. 70 |
Reusability | p. 70 |
Maintainability | p. 70 |
Summary | p. 72 |
Test Driven Development | p. 73 |
Tic Tac Toe and Test Driven Development: An Example | p. 74 |
Tic Tac Toe Requirements | p. 75 |
Testing Frameworks | p. 110 |
Identifying Testable Elements | p. 110 |
Writing Unit Tests That Work and Help | p. 112 |
Refactoring | p. 116 |
Refactoring Tools | p. 117 |
ReSharper | p. 117 |
Refactor Pro | p. 117 |
Dealing with Dependencies in Test Driven Development - Mocking, Stubs, and Fakes | p. 118 |
Mocking Frameworks | p. 127 |
Rhino Mocks | p. 128 |
Moq | p. 128 |
NMock | p. 128 |
Summary | p. 128 |
Make It Simple Again - Inversion of Control | p. 131 |
Creating Dependencies | p. 131 |
Factory Pattern | p. 138 |
Service Locator | p. 142 |
Inversion of Control and IoC Containers | p. 144 |
What's in a Name? Dependency Injection vs. Inversion of Control | p. 146 |
Choosing Your Container | p. 146 |
StructureMap | p. 150 |
Wire Up Using the Fluent Interface | p. 151 |
Wire Up Using Attributes - the Plugin Family | p. 153 |
Wire Up Using Configuration Meta Data | p. 157 |
To XML or Not to XML, That Is the Question | p. 160 |
Other IoC Frameworks | p. 160 |
Summary | p. 160 |
Enterprise Design Patterns | |
Getting to the Middle of Things | p. 165 |
On Middleware | p. 165 |
The Wild West | p. 166 |
Tiered Designs | p. 166 |
The Internet Age | p. 168 |
The Enterprise Middleware Age | p. 169 |
A WCF Web Service | p. 172 |
The Messaging Model | p. 182 |
A Brief Note on SOA | p. 183 |
Summary | p. 184 |
Writing Your Own Middleware | p. 185 |
Business Logic Layer | p. 185 |
Patterns for Your Business | p. 186 |
Transaction Script | p. 186 |
Active Record Pattern | p. 188 |
Domain Model Pattern | p. 190 |
Which Pattern to Use? | p. 194 |
Serving Your Business | p. 195 |
The Service Layer | p. 195 |
Putting Patterns into Practice | p. 196 |
Mortgage Loan Prequalification Application | p. 197 |
Talking the Language of the Domain | p. 197 |
A Little Bit about Domain-Driven Design | p. 198 |
Entities | p. 198 |
Value Objects | p. 199 |
Aggregates and Aggregate Roots | p. 199 |
Talking with the Domain Expert | p. 200 |
Building the Domain Model | p. 202 |
Identifying the Aggregates | p. 203 |
Building the Application | p. 204 |
Creating the Repositories | p. 242 |
Creating the Domain Services | p. 244 |
Summary | p. 250 |
"Mining" Your Own Business | p. 251 |
What is the Data Access Layer? | p. 251 |
Rolling Your Own Data Access Layer | p. 252 |
Object Relation Mapping | p. 252 |
The Data Context | p. 253 |
Entity Framework | p. 269 |
LinqToSQL or the Entity Framework? | p. 284 |
Mapping the Mortgage Application with NHibernate | p. 299 |
Summary | p. 318 |
Organizing Your Front End | p. 321 |
The Neglected Front End | p. 321 |
Early Front-End Patterns | p. 322 |
Java Struts | p. 324 |
ASP.NET | p. 325 |
Model-View-Presenter | p. 328 |
Back to MVCà the Rails Way | p. 332 |
Summary | p. 336 |
Model-View-Presenter | p. 337 |
The MVP Pattern - Simplified | p. 337 |
The Model | p. 338 |
The View | p. 338 |
The Presenter | p. 339 |
The MVP Mortgage Calculator - Web Sample | p. 339 |
Switching Platforms - Thick Client Sample | p. 360 |
Setting Up the WPF Application | p. 361 |
Summary | p. 365 |
The Model-View-Controller Pattern | p. 367 |
Back to Basics | p. 367 |
Models | p. 369 |
Controllers | p. 370 |
Views | p. 370 |
The Mortgage Loan Application | p. 371 |
The Model | p. 374 |
The Controller | p. 376 |
The View | p. 378 |
A Simple Repository | p. 382 |
Creating and Editing | p. 386 |
Flushing Out the Model | p. 401 |
The Full Source Code | p. 413 |
Summary | p. 413 |
Puttting It All Together | p. 415 |
One Step Back, Many Steps Forward | p. 415 |
The concepts | p. 416 |
Reliability | p. 416 |
Flexibility | p. 416 |
Separation of Concerns | p. 416 |
Reusability | p. 416 |
Maintainability | p. 416 |
The Big Picture | p. 417 |
The Code | p. 417 |
The Big Picture | p. 418 |
The Patterns | p. 418 |
Middleware | p. 419 |
Persistence | p. 420 |
The User Interface | p. 421 |
The Big Picture | p. 422 |
Being Holistic - The Big, BIG Picture | p. 422 |
The Mortgage Service | p. 423 |
Final Thoughts | p. 423 |
Summary | p. 424 |
C#.NET Primer | p. 425 |
Index | p. 455 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.