14 of 14 people found the following review helpful:
5.0 out of 5 stars
Outstanding, even for a C# developer..., September 4, 2003
This book follows probably the most logical progression of any technically oriented book I've ever read.
Architecture and Design
Key Technologies
Implementing a Business Framework
OO Design
Business Object Design (using the Framework)
Windows, Web, and Web Services Interfaces
Reporting and Batch Processing
The premise of this book is that there are best practices that apply when building software systems. We've all heard that catchphrase before, but Rocky does a very good job of distilling it down to a practical level.
The book walks you through from proposed architecture to a fully functioning program, and along the way you learn some very powerful concepts:
Business rule tracking
Principal-based security
n-Level Undo
DataBinding
Remoting over HTTP
Reflection
Transactional methods using both COM+ (Enterprise Services) and native .NET OleDbTransaction and SqlTransaction
Lightweight collection objects
The true best use of web services
No-touch deployment
My favorite parts of the book were:
1. His approach to data access. Rather than creating a separate Portal object and forcing the UI to create two objects to access data, this framework places virtual methods in the base classes that must be overridden in the business classes. The system then uses Reflection to call back into the business object (from the Portal object) for the implementation of the data portal methods. The UI developer, however, sees none of this. Instead, the UI calls static factory methods to fetch business objects, and a very simple Save() method to add, update, and delete. This is a very intuitive approach, because the abstract nature of a Save() command is very comfortable to a UI developer.
2. Separate, lightweight objects for collections (for display in lists &c). Since this intelligent business object approach can create fairly "heavy" business objects, the framework has some great base classes for collections. Since you usually display only summary information in lists &c, why not create a specific lightweight object just for this purpose? Rocky shows you how to do this using structs rather than objects. This helps performance since they are a value type and stored on the stack. That may seem counterintuitive, but since this framework makes heavy use of serialization to pass objects across the wire by remoting, the gains from using reference types are mostly wiped out anyway.
3. His approach to web services is very practical. Rather than seeing them as a universal savior and placing them as interfaces between every nook and cranny of our code, he takes the approach that they are the "machine interface" to our code, rather than the human interface. This frees us up to develop the business functionality for a specific project, create the forms and/or web UI, then build a specific web services interface to that project/module when the need arises for an external API. He also talks at length about the foolishness of exposing our core business objects to the web services interface. If we do that, we lose the ability to change the interface, because the external contract has been established. Imagine, for example, if UPS suddenly decided to change its web services interface. Mass chaos. Rather, he shows how to create methods that are specific to the web services interface, and are more abstract in their implementation, thus less likely to need changes.
As a C# programmer, I was a little leery of buying this book, but I found out that by having to translate the code in the book, rather than just typing it in, I had to think more about the techniques involved. This helped so much, in fact, that I would now purposely buy books that are not in my language of choice, so that I can better understand the concepts instead of the syntax.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
13 of 13 people found the following review helpful:
5.0 out of 5 stars
Must-Read for every .NET Developer, May 20, 2003
This review is from: Expert One-on-One Visual Basic .NET Business Objects (Paperback)
The amount of information provided by this book is enormous! Not only does Rocky explain how to build and use business objects in .NET, but he also provides a complete business object framework.
All .NET developers (not just VB.NET!!!) can benefit greatly from this book. Rocky provides insight and experience that would take years to accumulate, or hundreds of consulting hours to purchase.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
11 of 11 people found the following review helpful:
5.0 out of 5 stars
A well written book about a well thought out architecture, March 21, 2004
Being new to .NET when I bought this book (a year ago), I was looking for architectural guidance. I wanted a layered architecture that fit well with object oriented programming. This book clearly hits the mark. The topic (Rocky's CSLA architecture) is great. It's based on some really sound principles, and has a noble goal: namely, smart business objects. And it gives good detail. While CSLA centers on the business layer, Rocky does a good job of explaining how it fits in with other layers.
Perhaps the thing I like best is the writing. Rocky is an excellent author. He stays on track, he's organized, and above all he is clear. He forsees many of your questions and answers them up front.
And Rocky puts his money where his mouth is. He addresses questions about the CSLA framework in the MSN email group on a daily basis. Let me see: a free architecture (he isn't selling a product, you're free to use the CSLA architecture in your work), an excellent book, and an author who's accessible and keeps working to advance the architecture in his free time!
If you have any lingering doubts, then go to a book store and pick up a copy and read the first two chapters. He does a fantastic job of explaining what he was trying to accomplish and how he went about it and the various design trade-offs that he encountered and how and why he chose to address each of them. If even skimming the first two chapters doesn't convince you it's worth the read, I'd be very surprised.
Finally, I would like to comment on an earlier review suggested that Rocky was retrofitting CSLA for VB.NET. I would like to respectfully differ. I think that CSLA fits BETTER with the .NET framework than it did in VB6. In VB6, he required several work arounds to problems that have been resolved in .NET, and these are clearly mentioned in the book.
p.s. The book was so highly sought after in the development community that he has written a C# version of it too, for those who are interested. It may be out already.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No