- Page 2 and 3: PUBLISHED BY Microsoft Press A Divi
- Page 5: Contents at a Glance Part I Princip
- Page 8 and 9: viii Table of Contents Summary . .
- Page 10 and 11: x Table of Contents Designing Your
- Page 14 and 15: xiv Acknowledgments Dino’s Credit
- Page 16 and 17: xvi Acknowledgments Being a full-ti
- Page 18 and 19: xviii Introduction The architect is
- Page 20 and 21: xx Introduction Refer to the Manage
- Page 23: Part I Principles You know you’ve
- Page 26 and 27: 4 Part I Principles Note While some
- Page 28 and 29: 6 Part I Principles Defi ning the S
- Page 30 and 31: 8 Part I Principles requirements. T
- Page 32 and 33: 10 Part I Principles Architecture I
- Page 34 and 35: 12 Part I Principles Now what shoul
- Page 36 and 37: 14 Part I Principles Important If y
- Page 38 and 39: 16 Part I Principles A user story i
- Page 40 and 41: 18 Part I Principles Let’s expand
- Page 42 and 43: 20 Part I Principles Communication
- Page 44 and 45: 22 Part I Principles Today, the rol
- Page 46 and 47: 24 Part I Principles Overview of th
- Page 48 and 49: 26 Part I Principles the system in
- Page 50 and 51: 28 Part I Principles Iterative deve
- Page 52 and 53: 30 Part I Principles Summary Archit
- Page 54 and 55: 32 Part I Principles We should add
- Page 56 and 57: 34 Part I Principles 19501:2005. Yo
- Page 58 and 59: 36 Part I Principles You basically
- Page 60 and 61: 38 Part I Principles You might reas
- Page 62 and 63:
40 Part I Principles For sure, Micr
- Page 64 and 65:
42 Part I Principles TABLE 2-2 Diag
- Page 66 and 67:
44 Part I Principles Customer Retri
- Page 68 and 69:
46 Part I Principles What’s the r
- Page 70 and 71:
48 Part I Principles TABLE 2-3 UML
- Page 72 and 73:
50 Part I Principles This UML defi
- Page 74 and 75:
52 Part I Principles Two special ty
- Page 76 and 77:
54 Part I Principles could observe
- Page 78 and 79:
56 Part I Principles Approve(custom
- Page 80 and 81:
58 Part I Principles Standing in th
- Page 82 and 83:
60 Part I Principles Finally, note
- Page 85 and 86:
Chapter 3 Design Principles and Pat
- Page 87 and 88:
For What the Alarm Bell Should Ring
- Page 89 and 90:
Chapter 3 Design Principles and Pat
- Page 91 and 92:
Chapter 3 Design Principles and Pat
- Page 93 and 94:
Information Hiding Chapter 3 Design
- Page 95 and 96:
Chapter 3 Design Principles and Pat
- Page 97 and 98:
Chapter 3 Design Principles and Pat
- Page 99 and 100:
Chapter 3 Design Principles and Pat
- Page 101 and 102:
} } private object Process(object d
- Page 103 and 104:
Chapter 3 Design Principles and Pat
- Page 105 and 106:
Chapter 3 Design Principles and Pat
- Page 107 and 108:
} // Grab raw data StockInfo[] stoc
- Page 109 and 110:
Chapter 3 Design Principles and Pat
- Page 111 and 112:
Chapter 3 Design Principles and Pat
- Page 113 and 114:
Antipatterns Chapter 3 Design Princ
- Page 115 and 116:
Chapter 3 Design Principles and Pat
- Page 117 and 118:
Dependency Injection Chapter 3 Desi
- Page 119 and 120:
Chapter 3 Design Principle
- Page 121 and 122:
Chapter 3 Design Principles and Pat
- Page 123 and 124:
Chapter 3 Design Principles and Pat
- Page 125 and 126:
Dealing with Dependencies Chapter 3
- Page 127 and 128:
Chapter 3 Design Principles and Pat
- Page 129 and 130:
[TestInitialize] public void SetUp(
- Page 131 and 132:
Chapter 3 Design Principles and Pat
- Page 133 and 134:
Chapter 3 Design Principles and Pat
- Page 135 and 136:
Chapter 3 Design Principles and Pat
- Page 137 and 138:
Performance Considerations Chapter
- Page 139 and 140:
Chapter 3 Design Principles and Pat
- Page 141 and 142:
Chapter 3 Design Principles and Pat
- Page 143 and 144:
} Chapter 3 Design Principles and P
- Page 145 and 146:
Chapter 3 Design Principles and Pat
- Page 147:
Chapter 3 Design Principles and Pat
- Page 151 and 152:
Chapter 4 The Business Layer Any fo
- Page 153 and 154:
Object Model and Domain Model Chapt
- Page 155 and 156:
Validation Chapter 4 The Business L
- Page 157 and 158:
Chapter 4 The Business Layer 135 A
- Page 159 and 160:
Chapter 4 The Business Layer 137 In
- Page 161 and 162:
Chapter 4 The Business Layer 139 fo
- Page 163 and 164:
Chapter 4 The Business Layer 141 No
- Page 165 and 166:
Chapter 4 The Business Layer 143 ea
- Page 167 and 168:
Chapter 4 The Business Layer 145 Th
- Page 169 and 170:
Chapter 4 The Business Layer 147 Us
- Page 171 and 172:
The Pattern in Action Chapter 4 The
- Page 173 and 174:
Chapter 4 The Business Layer 151 No
- Page 175 and 176:
Chapter 4 The Business Layer 153 to
- Page 177 and 178:
Generalities of the TM Pattern Chap
- Page 179 and 180:
Chapter 4 The Business Layer 157 FI
- Page 181 and 182:
Chapter 4 The Business Layer 159 Be
- Page 183 and 184:
Chapter 4 The Business Layer 161 Th
- Page 185 and 186:
Chapter 4 The Business Layer 163 or
- Page 187 and 188:
Chapter 4 The Business Layer 165 An
- Page 189 and 190:
Chapter 4 The Business Layer 167 it
- Page 191 and 192:
public class Order { public Order()
- Page 193 and 194:
Chapter 4 The Business Layer 171 ta
- Page 195 and 196:
Chapter 4 The Business Layer 173 No
- Page 197 and 198:
Chapter 4 The Business Layer 175 Ho
- Page 199 and 200:
Chapter 4 The Business Layer 177 We
- Page 201 and 202:
Chapter 4 The Business Layer 179 Se
- Page 203 and 204:
Chapter 4 The Business Layer 181 Th
- Page 205 and 206:
public class Customer : DomainObjec
- Page 207 and 208:
Persistence Ignorance Chapter 4 The
- Page 209 and 210:
Chapter 4 The Business Layer 187 A
- Page 211 and 212:
Chapter 4 The Business Layer 189 Wh
- Page 213 and 214:
Summary Chapter 4 The Business Laye
- Page 215 and 216:
Chapter 5 The Service Layer If you
- Page 217 and 218:
Chapter 5 The Service Layer 195 Not
- Page 219 and 220:
Chapter 5 The Service Layer 197 At
- Page 221 and 222:
Chapter 5 The Service Layer 199 For
- Page 223 and 224:
Chapter 5 The Service Layer 201 It
- Page 225 and 226:
Chapter 5 The Service Layer 203 pub
- Page 227 and 228:
Chapter 5 The Service Layer 205 It
- Page 229 and 230:
Chapter 5 The Service Layer 207 Do
- Page 231 and 232:
Chapter 5 The Service Layer 209 you
- Page 233 and 234:
Chapter 5 The Service Layer 211 Aga
- Page 235 and 236:
Chapter 5 The Service Layer 213 Not
- Page 237 and 238:
Chapter 5 The Service Layer 215 som
- Page 239 and 240:
Chapter 5 The Service Layer 217 tha
- Page 241 and 242:
Chapter 5 The Service Layer 219 nee
- Page 243 and 244:
DTO vs. Assembly Chapter 5 The Serv
- Page 245 and 246:
public class OrderServiceFindByIDRe
- Page 247 and 248:
Chapter 5 The Service Layer 225 You
- Page 249 and 250:
.NET .NET UI Back Office Connectors
- Page 251 and 252:
Chapter 5 The Service Layer 229 As
- Page 253 and 254:
Chapter 5 The Service Layer 231 An
- Page 255 and 256:
SOA Is Not a Revolution Chapter 5 T
- Page 257 and 258:
Chapter 5 The Service Layer 235 ■
- Page 259 and 260:
Chapter 5 The Service Layer 237 Not
- Page 261 and 262:
Browser Plugin JS IIS Worker Proces
- Page 263 and 264:
Chapter 5 The Service Layer 241 ser
- Page 265 and 266:
Chapter 5 The Service Layer 243 Not
- Page 267 and 268:
Chapter 5 The Service Layer 245 As
- Page 269 and 270:
JSON JavaScript Silverlight 2 JSON
- Page 271 and 272:
Chapter 5 The Service Layer 249 In
- Page 273 and 274:
Chapter 6 The Data Access Layer Hig
- Page 275 and 276:
Confi gurable as a Plug-in Chapter
- Page 277 and 278:
Chapter 6 The Data Access Layer 255
- Page 279 and 280:
Chapter 6 The Data Access Layer 257
- Page 281 and 282:
Handling Concurrency Chapter 6 The
- Page 283 and 284:
Chapter 6 The Data Access Layer 261
- Page 285 and 286:
Chapter 6 The Data Access Layer 263
- Page 287 and 288:
CustomerServices OrderServices SQL
- Page 289 and 290:
Abstracting the Capabilities of a D
- Page 291 and 292:
The DAL Factory in Action Chapter 6
- Page 293 and 294:
} Chapter 6 The Data Access Layer 2
- Page 295 and 296:
The Inversion of Control Pattern Ch
- Page 297 and 298:
The section in the .NET confi gura
- Page 299 and 300:
Chapter 6 The Data Access Layer 277
- Page 301 and 302:
SQLServerDataContext FIGURE 6-11 Hi
- Page 303 and 304:
Implementing the Persistence Layer
- Page 305 and 306:
Chapter 6 The Data Access Layer 283
- Page 307 and 308:
} } public virtual void Update(Cust
- Page 309 and 310:
} Chapter 6 The Data Access Layer 2
- Page 311 and 312:
Chapter 6 The Data Access Layer 289
- Page 313 and 314:
Chapter 6 The Data Access Layer 291
- Page 315 and 316:
Chapter 6 The Data Access Layer 293
- Page 317 and 318:
} } } Chapter 6 The Data Access Lay
- Page 319 and 320:
} public List Criteria { get { retu
- Page 321 and 322:
Chapter 6 The Data Access Layer 299
- Page 323 and 324:
} public void Save(object item) { i
- Page 325 and 326:
} } } case ScheduledAction.ActionTy
- Page 327 and 328:
public void Rollback() { if (!this.
- Page 329 and 330:
Chapter 6 The Data Access Layer 307
- Page 331 and 332:
Chapter 6 The Data Access Layer 309
- Page 333 and 334:
Chapter 6 The Data Access Layer 311
- Page 335 and 336:
Chapter 6 The Data Access Layer 313
- Page 337 and 338:
Chapter 6 The Data Access Layer 315
- Page 339 and 340:
Chapter 6 The Data Access Layer 317
- Page 341 and 342:
Chapter 6 The Data Access Layer 319
- Page 343 and 344:
Chapter 6 The Data Access Layer 321
- Page 345 and 346:
Chapter 6 The Data Access Layer 323
- Page 347 and 348:
TABLE 6-2 Main O/RM Tools O/RM More
- Page 349 and 350:
Chapter 6 The Data Access Layer 327
- Page 351 and 352:
Transactions with an O/RM Chapter 6
- Page 353 and 354:
Set first and last record to access
- Page 355 and 356:
Chapter 6 The Data Access Layer 333
- Page 357 and 358:
Chapter 6 The Data Access Layer 335
- Page 359 and 360:
Chapter 6 The Data Access Layer 337
- Page 361 and 362:
Chapter 6 The Data Access Layer 339
- Page 363:
Chapter 6 The Data Access Layer 341
- Page 366 and 367:
344 Part II Design of the System Us
- Page 368 and 369:
346 Part II Design of the System In
- Page 370 and 371:
348 Part II Design of the System No
- Page 372 and 373:
350 Part II Design of the System Ge
- Page 374 and 375:
352 Part II Design of the System Al
- Page 376 and 377:
354 Part II Design of the System Mo
- Page 378 and 379:
356 Part II Design of the System MV
- Page 380 and 381:
358 Part II Design of the System Th
- Page 382 and 383:
360 Part II Design of the System In
- Page 384 and 385:
362 Part II Design of the System A
- Page 386 and 387:
364 Part II Design of the System No
- Page 388 and 389:
366 Part II Design of the System Th
- Page 390 and 391:
368 Part II Design of the System LC
- Page 392 and 393:
370 Part II Design of the System Us
- Page 394 and 395:
372 Part II Design of the System Wh
- Page 396 and 397:
374 Part II Design of the System I
- Page 398 and 399:
376 Part II Design of the System Co
- Page 400 and 401:
378 Part II Design of the System Th
- Page 402 and 403:
380 Part II Design of the System }
- Page 404 and 405:
382 Part II Design of the System }
- Page 406 and 407:
384 Part II Design of the System }
- Page 408 and 409:
386 Part II Design of the System }
- Page 410 and 411:
388 Part II Design of the System Th
- Page 412 and 413:
390 Part II Design of the System in
- Page 414 and 415:
392 Part II Design of the System pu
- Page 416 and 417:
394 Part II Design of the System An
- Page 418 and 419:
396 Part II Design of the System Th
- Page 420 and 421:
398 Part II Design of the System Su
- Page 423 and 424:
Final Thoughts The pessimist compla
- Page 425:
Mantra #6—Not the DAL? Don’t To
- Page 428 and 429:
406 Appendix least, this was often
- Page 430 and 431:
408 Appendix The solution is articu
- Page 432 and 433:
410 Appendix FIGURE A-2 A WPF front
- Page 435 and 436:
Index Symbols and Numbers .asmx ext
- Page 437 and 438:
authorization, 112 AJAX Service Lay
- Page 439 and 440:
concurrency, 259-60 implementation,
- Page 441 and 442:
Design Patterns (GoF), 73, 265 desi
- Page 443 and 444:
Hibernate Query Language (HQL), 330
- Page 445 and 446:
LoadAllCustomers, 384-86 loading, l
- Page 447 and 448:
object-oriented programming, 71 obj
- Page 449 and 450:
apid application development (RAD),
- Page 451 and 452:
SOA (service-oriented architecture)
- Page 453 and 454:
T-SQL data mappers, 285 Repository
- Page 455:
XML Web Services, 208-9, 215 DTOs,
- Page 458:
Andrea Saltarello Andrea Saltarello