I've never written a book review before so any suggestions are welcome.
I'm assuming that a review on CodeProject should include a lot more information
than may be found in most places; I have therefore provided a detailed
description of what is in the book with some analysis at the end.
This book details how to construct a highly scaleable, high
performance re-usable business object framework that can be used by
a variety of user interfaces in .NET.
Don't let the Visual Basic part of the title dissuade you, I have never
programmed in Visual Basic and there is absolutely nothing in here that
isn't useful and usable by C# programmers as well.
It is a very practical and easy to read book that takes a concept from
start to finish and doesn't just gloss over any part of it. There are
numerous illustrations at key places in the book to visually illustrate a
concept, most of which are UML type diagrams. It is clear that the author
has practical hands-on experience in this type of work and where design
decisions have been made they are clearly explained with pros and cons.
On a side note, this book was originally published through Wrox, however they
appear to have gone bankrupt and APress has taken over publication. The
general layout of the book is above average and if this is a typical example of
APress books I would not hesitate to buy another. (For some odd reason
even the paper it's printed on is whiter than usual)
What's in the book?
Chapter 1 Distributed architecture
Contains an introduction to distributed architectures including logical and
physical architectures, business objects and distributed objects. This
information forms the basis for the rest of the book.
- How logical N-Tier architectures help address reuse and maintainability
- How physical n-tier architectures impact performance, scalability, security
and fault tolerance
- Data-centric versus object-oriented application models
- How object oriented models help increase code reuse and application
- Effective use of objects in a distributed environment, include the concepts
of anchored (run on a single machine) and unanchored (can move from machine
to machine) objects.
Chapter 2 Framework design
Introduces the process of designing the framework to support the goals
outlined in Chapter 1
- N-Level undo capability
- Tracking broken business rules to determine whether an object is valid
- Tracking whether an object has changed (is dirty)
- Support for strongly typed collections of child objects
- A simple and abstract model for the UI developer
- Full support for data binding in both windows forms and web forms
- Saving objects to a database and getting them back again
- Table driven security (as well as windows security)
Chapter 3 Key technologies
Explanation of key technologies in the .NET framework that are necessary to
implement the business object framework.
- Serialization (passing an object by value from one machine to another)
- Enterprise services (COM+, an optional part of the framework)
- .NET role-based security
Chapter 4 Business framework implementation
Walks through creating the core classes used throughout the business object
framework and implements the requirements and goals outlined in earlier
chapters using the technologies in the previous chapter. There are
numerous, complete code listings with full text describing every part of them
without being excessively wordy.
Chapter 5 Data access and security
Completes the implementation of the remaining classes not covered in the
previous chapter, in particular a data 'portal' class and security class, as
well as a host application that can be run on an application server to host the
server side dataportal components.
At this point in the book, the business object application framework is
complete and the remainder of the book save the final chapter and appendix cover
actually using the framework in a real world example.
The remaining chapters are not filler, they are packed with
important information and concepts to take what was learned to this point into
the real world.
Chapter 6 Object-oriented application design
Not exactly what the title says thankfully, actually what it does is
introduce a sample scenario and application that is small enough to fit in the
book but large enough to illustrate the following key concepts:
- Creating business objects
- Implementing business rules
- Transaction and non-transactional data access (through com+)
- Parent-child relationships between objects
- Many to many relationships between objects
- Use of name-value lists (i.e. when you want to quickly populate a list box)
- Use of security within the framework designed earlier
The sample application is a project management application and does ideally
illustrate everything you would normally need to know in most business
applications and how to use it with the business object framework created in the
earlier parts of the book.
In fact, it contains a very brief and useful (at least it was to us who
are starting out with UML) example of object oriented analysis technique;
walking through the project from the requirements phase to the object design
phase, using the appropriate base class objects within the object framework and
finally database design.
Chapter 7 Business object implementation
This chapter contains the actual implementation of the business objects
designed in the previous chapter. In addition it discusses business object
lifecycle considerations and class structure considerations. It contains
pertinent UML diagrams as well as full source code broken down into discrete
sections with full explanation of what is going on and why.
Chapter 8 Windows Forms UI
This chapter walks through step by step the building of the client side of
the project tracker application using the business objects and framework created
previously in a windows forms client application.
It illustrates the key features of the business object framework and how they
are used in building a windows client application.
Chapter 9 Web forms UI
This chapter walks through building a web form UI for the project tracker
application. It also covers state management and using the business
objects in a web scenario and the considerations that must be made.
Chapter 10 Web services interface
Walks through building a web service interface to the project tracker
application. Also has an overview of web services, security, SOAP,
breaking change implications in ntier web services and much more.
This is the final chapter dealing with the sample application. At this
point in the book if you've been paying attention you should be able to write
pretty much any business application and deploy with confidence from a
single computer scenario to a distributed scenario with thousands of client
users applications server web farms etc.
Chapter 11 Reporting and batch processing
This chapters illustrates and provides solutions to scenarios that many
business applications have in common that are not covered in the business object
framework but may be necessary in a real world application. Batch
processing of potentially lengthy jobs requiring a large amount of data from the
database and how to deal with them in a distributed environment including
complete source code and step by step walkthrough of a complete batch processing
In the same vein there is a section on reporting. The problem being
that reporting software do not support business objects directly and so a
solution is outlined and walked through with code that is used to load a DataSet
with object data that can then be fed to reporting engines.
Appendix Netrun utility
I'm not sure why this was an appendix and not a full chapter. No-Touch
deployment is covered here. I.E. placing your application files on a web
server and then loading them on demand at each workstation by simply opening an
url to the .exe file.
Of course it's not as simple as that because of some bugs in the .NET
framework as well as some annoyances, so the author walks through building a
tiny .NET launcher app that is used to work around all the problems of no touch
deployment so it works as advertised.
Deployment issues are huge for larger companies and a big part of the IS
budget. There is a trend to move to web based applications for this
reason, however with no-touch deployment all the same benefits of a web
application are realized in a windows application.
What did I think?
This book is so perfectly suited to what I needed to know right now that I
can't be completely unbiased. To me it's worth it's weight in gold (almost
literally). It's greatest value is that it covers the subject completely
from start to end, nothing is left out.
It's well written and very readable, the author is a very good
communicator. The subject matter is covered in great detail while
being just what is needed to cover the subject and no more or less
(this even applies to the source code listings, they are complete and perfectly
There are no wasted pages anywhere in the book, no filler that bugs me so
much about other books. Every page contains something important to know
and explains it well.
For business application developers working in .NET (any language) I would
say this book is in the must have category without any hesitation.