- Animation
- Application design
- ASP.NET
- C#, .NET 3.5
- Controls
- Data access
- Effects
- Expression Blend
- Expression Design
- Game development
- Graphics
- Javascript and AJAX
- Math and Physics
- Media streaming
- Multimedia
- Security
- Silverlight
- Styling
- UI Design
- VB.NET
- Video
- Visual Studio
- WCF
- WPF
- XAML

BlueForest Networks

Microsoft® .NET: Architecting Applications for the Enterprise
Publisher: 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
This 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
Better 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
Excellent 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
Great 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
Mustknown 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