Microsoft® .NET: Architecting Applications for the Enterprise



Price: $29.69


Microsoft® .NET: Architecting Applications for the Enterprise (Microsoft Press) - October 2008Publisher: Microsoft Press - October 15, 2008

ISBN-10: 073562609X, ISBN-13: 9780735626096

Author: Dino Esposito
Andrea Saltarello


304 pages


Microsoft® .NET: Architecting Applications for the Enterprise - book reviews: 27



Book Description
Make the right architectural decisions up front and improve the quality and reliability of your results. Led by two enterprise programming experts, you ll learn how to apply the patterns and techniques that help control project complexity and make systems easier to build, support, and upgrade right from the start. Get pragmatic architectural guidance on how to: Build testability, maintainability, and security into your system early in the design Expose business logic through a service-oriented interface Choose the best pattern for organizing business logic and behavior Review and apply the patterns for separating the UI and presentation logic Delve deep into the patterns and practices for the data access layer Tackle the impedance mismatch between objects and data Minimize development effort and avoid over-engineering and deliver more robust results Get code samples on the Web.


Most helpful customer reviews

Book rating: 5This is a great book with balanced perspective

Prior to reading it I struggled with a few things when it came to developing in .Net. For example, I wanted to further develop my object-oriented skills and thought this would be easy to do. Instead, I found out I was having a hard time reconciling using various ADO.Net features like TableAdapters, DataSets and DataTables, with good object-oriented design concepts. The problem was partly that many online references about programming in .NET dealt with using these ADO.Net objects, along with in-line SQL statements, for accessing data. Even the official Microsoft Course I took (Programming with .Net Framework using Microsoft Visual Studio 2005) emphasized these methods.

The tendency to develop in a more procedural style instead of an object oriented one was nearly unavoidable, as exemplified in the examples I found. I even tried for a time to use a layered, object model approach along with DataSets and DataTables and found this to be very clunky to say the least. Now I know why.

The book, Microsoft .NET: Architecting Applications for the Enterprise, recognizes this very situation regarding using these ADO.Net objects on page 154 saying, "Each business component then talks to the DAL either directly or through relatively dumb data objects. The logic is implemented in large chunks of code that can be difficult to understand, maintain, and reuse." It refers to such a design as the Table Module Pattern (TM) and further says on page 165, "TM is based on objects, but it's not an object-based pattern for modeling the business logic. Why? Because it doesn't care much about the business and focuses instead on the tables. TM does have objects, but they are objects representing tables, not objects representing the domain of the problem." Additionally, the book does describes very well how the Table Module Pattern can fit appropriately into a program's architecture, as there are times when using this method is warranted.

It was reading this book that really opened my eyes on how to go about creating a multi-layer application using true object-oriented design in .Net, and getting away from procedural scripting. Primarily I'm referring to using a domain model along with plain class objects for containing business logic and/or data that are not tied to any database design. The book does a great job in helping one understand how and why multi-layered architecture and domain modeling should be used in complex enterprise applications. This is exactly what I was looking for. It touches on other ways to develop the business layer to an application, as well as the other layers, and provides balanced advice for all approaches.

And balance is one thing that stands out in this book. It is not dogmatic at all about how one should construct software. The number one mantra of the book is, "It always depends." With such a refreshing viewpoint, it exposes the reader to a variety of development methodologies and framework. I found this book provides excellent advice on object-oriented design and modern software architecture overall, and specifically on domain-driven design. It also serves as a nice starting point in learning about UML, agile development, unit testing and isolation frameworks, inversion of control frameworks, aspect oriented programming, NHibernate and Entity O/RM frameworks, and the MVC# framework.

Matt
19 August, 2010


Book rating: 5Better than I thought

This is one of my Favorite books, its much better than i thought, the good thing about this book is that it never assume that you are an already professional/experienced programmer, this books guide you from intermediate to advance level in no time, "Must Buy" for any mid term developer.

Nawaz Ali
06 May, 2010


Book rating: 5Excellent book

This book is well written and structured in a very intuitive way. It starts with a general and informative discussion of software architecture and then proceeds to take a detailed look at the various design decisions, patterns and components that can be found in a layered design. It references and elaborates upon many of the patterns in Martin Fowler's Patterns of Enterprise Application Architecture so a familiarity with that work is recommended but not necessarily required. It can both act as a supplement to the PoEAA in addition to standing very well on its own.

This book is required reading and highly recommended.

Adam Garren
17 November, 2009


Book rating: 5Great Book

This is a great book. Microsft has never been very good at guiding developers and software architects for building complex systems. I think this books fills that gap. Dino Esposito is one of the best .NET writers and he shows that in this book.
The book is very well structured and easy to read. The first part is about principles and best practices of software architecture, design and developement (UML, the role of an enterprise architect, OOP).
The second part covers each layer of an enterprise application: Business Layer, Service Layer, Data Access Layer and UI Layer. It covers the most important patterns presented in Martin Fowler's book Patterns of Enterprise Application Architecture. Some of them are:
-BL:
Transaction Script
Table Module
Domain Model
Active Record (Although Fowler categorizes this pattern as a DAL)
-Service Layer:
Service Layer
DTO
-DAL:
Plugin
Inversion of Control
Lazy Loading,
Identity Map
Data Mapper
Unit Of Work
-UI:
MVC
MVP
PM
Front Controller
There's also a sample application that shows all the patterns and practices covered in the book.

Alan Macgowan
29 September, 2009


Book rating: 5Mustknown material for the .NET architect, nicely gathered within this book

Full of known material for the experienced .NET architect, but even then useful for confirmation and reference.

W. J. M. Strien
14 September, 2009