Click here to Skip to main content
13,199,026 members (44,557 online)
Click here to Skip to main content
Add your own
alternative version


22 bookmarked
Posted 4 Sep 2003

Visual Basic .NET Business Objects - Rockford Lhotka

, 4 Sep 2003
Rate this:
Please Sign up or sign in to vote.
A review

Editorial Note

This article is in the Book Review chapter. Reviews are intended to provide you with information on books - both paid and free - that others consider useful and of value to developers. Read a good programming book? Write a review!

TitleVisual Basic .NET Business Objects
AuthorRockford 'Rocky' Lhotka
PublisherApress - The Author's Press
PublishedJune 2003


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. 

Topics covered:

  • 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 maintainability
  • 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

Topics covered:

  • 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.

Topics covered:

  • Remoting
  • Serialization (passing an object by value from one machine to another)
  • Enterprise services (COM+, an optional part of the framework)
  • Reflection
  • Attributes
  • .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 'engine'.

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.

Objectively speaking

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 brief). 

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.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Member 96
Canada Canada
No Biography provided

You may also be interested in...

Comments and Discussions

General[My vote of 2] book review Pin
Simon_Whale27-May-10 0:25
memberSimon_Whale27-May-10 0:25 
GeneralRe: [My vote of 2] book review Pin
John C27-May-10 5:30
memberJohn C27-May-10 5:30 
GeneralMy vote of 1 Pin
Howard Richards29-Jan-09 22:08
memberHoward Richards29-Jan-09 22:08 
GeneralA Great book Pin
cycnus2-Nov-05 22:47
membercycnus2-Nov-05 22:47 
GeneralRe: A Great book Pin
John Cardinal3-Nov-05 3:51
memberJohn Cardinal3-Nov-05 3:51 
Generalaaa Pin
Anonymous8-Dec-03 2:12
sussAnonymous8-Dec-03 2:12 
GeneralBusiness Objects Book, Pin
Randal Wilcox8-Sep-03 2:03
memberRandal Wilcox8-Sep-03 2:03 
GeneralRe: Business Objects Book, Pin
John Cardinal8-Sep-03 10:25
memberJohn Cardinal8-Sep-03 10:25 
GeneralBusiness objects Pin
dog_spawn5-Sep-03 12:32
memberdog_spawn5-Sep-03 12:32 
GeneralRe: Business objects Pin
John Cardinal5-Sep-03 12:46
memberJohn Cardinal5-Sep-03 12:46 
GeneralRe: Business objects Pin
dog_spawn5-Sep-03 13:03
memberdog_spawn5-Sep-03 13:03 
GeneralRe: Business objects Pin
John Cardinal5-Sep-03 13:29
memberJohn Cardinal5-Sep-03 13:29 
GeneralRe: Business objects Pin
dog_spawn5-Sep-03 13:35
memberdog_spawn5-Sep-03 13:35 
GeneralRe: Business objects Pin
Tim McCurdy7-Sep-03 11:37
memberTim McCurdy7-Sep-03 11:37 
GeneralRe: Business objects Pin
Kevin McFarlane31-Jul-04 0:52
memberKevin McFarlane31-Jul-04 0:52 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.171020.1 | Last Updated 5 Sep 2003
Article Copyright 2003 by Member 96
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid