Expert C# 2005 Business Objects, Second Edition

Expert C# 2005 Business Objects, Second Edition
Rockford Lhotka
24 Mar 2006
Purchase online

Rockford Lhotka started writing his Business Objects books in 1996, and over the years, hes become one of the worlds foremost authorities on building distributed object-oriented systems. His industry-standard VB .NET Business Objects book not only addresses changes in .NET 2.0 and Visual Studio 2005, but also reflects substantial enhancements and improvements to the CSLA .NET Framework and how it can be used to create enterprise-level .NET applications.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

Fred said
I have tracked CSLA and used the architecture since the Early VB6 days and I unfortunately have to admit that I have moved from being a follower to becomming increasingly dissapointed over the years. CSLA has in my opinion just failed to keep up with the newer concepts of Domain Modelling etc from Eric Evans it has also failed to in incorporating concepts and patterns from Martin Fowler et al. The architecture does not solve or present any real solution for the Object Relational mapping issues etc etc etc. The problem in my opininion stem from the fact that the architecture has remained rooted in the principles that worked and were needed in VB6. If you and your organisation are already committed to CSLA then keep buying the book and keep up with the minor changes that happen to the architecture with each iteration. The second problem for me is that the CSLA is not test driven (although there are some tests that appear to have been retrofitted). The Framework itself is fairly limited with most of the logic being in the generated code. This means that it is extremely difficult to extend or enhance since you need to start fiddling with templates etc. We all know that generated code is very hard to test so doing this makes things very fragile and frustrating.

If you are looking learn Domain Concepts and to utilise these in production projects then I would suggest that you go for one of the Open Source Enterprise Application Frameworks that are available. These are more feature rich and more alive in terms of contribution than CSLA.

My suggestions would be
1)NHibernate - this is an open source ORM but has many generators e.g. CodeSmith that allow you to generate the Business Object Layer. It is reasonably well documented and has a book (NHibernate in action) it has a reasonably active community. I have used this framework on a number of projects and it is very complex but works well.

2) My other Suggestion would be Habanero - this is an interesting Open Source Enterprise application framework (that I have been using for the last 7 months). The framework covers the ORM (Object Relational Mapping), The Domain Model and some generation of simple user interfaces. It also has many components that can be used and plugged in at both the Domain Model (Business Logic Layer) and User interface (Presentation layer). The documentation is pretty good with lots of videos etc for getting started. There is currently not that much available on the details of the architecture but the code is well documented. There is a alpha release of a book which is pretty good and explains the details of architecture (You need to request it via email). The impressive parts for me are that the entire architecture is fully Test Driven and ships with the ability to swap in a Memory Database. The In Memory database really allows you to develop your project in an agile manner. The community and forum is active and the Framework has already had several new releases in the 7 months I have been working with it. The framework ships with a Free Code Generator aka Firestarter. Firestarter is a bit rough and ready but works and is relatively easy to use.

Ryan Pfister said
When I decided to start reading this book, I was hoping to expand my knowledge of N-Tier programming to the point where I could develop my own business framework (not necessarily built on CSLA.NET) that was flexible and reusable across various solutions (Web, Windows, *WPF, *Silverlight,etc). I was not disappointed.

The author begins the book with a brief explanation on architectures (physical vs logical) and also discuss high level requirements for what a business framework needs (chapters 1-2). These chapters are fine and are exactly what you would expect.

The book really starts to pay off starting with chapter 3 when the author begins to build the CSLA.NET framework. He walks you through all the important code implementations and the various reasons why he did X vs Y. For several chapters you build the CSLA.NET framework from the ground up. This framework is meant to be the foundation for any solution-specific business architecture.

After building the framework, the author guides you through implementing a specific business architecture (Project Tracker) the uses CSLA.NET as it's foundation. This architecture is then implemented in a web based, win forms based, and SOA based solution, all of which use the same business framework dll, but differing UI layers (obviously).

I was happy with the time I invested in reading this book and I would recommended it to any non-novice C# developer.

*Not specifically discussed in this book (this was written in 2006)

Terrance Robinson said
A number of other reviewers have already covered this book well so I will just add a few comments.

This book is not general purpose. It only covers Mr. Lhotka's Csla framework. While that framework is interesting and fairly useful it should not be considered 'ready to use' for many real world projects. User authorization and data validation are both too limited for general use. And, in a manner similar to the .NET framework itself, Csla often causes problems by handling things a bit too automatically. And as others have pointed out, the poor separation of business logic and data access will cause complaints in some IT departments.

To Mr. Lhotka's credit, he acknowledges these problems and his license allows you to alter the framework. I do wish he would have given some examples of ways in which that could be done. The "Project Tracker" example from the book is a bit unusual and not particularly useful, which adds to the above problems.

I do feel it was very useful for the author to explain not only what the framework does, but how it does it. Without that information I would not have been able to actually get it to work (more or less) in a real-world application.

I've studied this book at length and built a non-trivial demo program using Csla. While I find both the book and Csla useful, I plan to explore other frameworks before I commit further to this one because it is simply not all that easy to use.

One final warning - the binding on my book broke within a few days of opening it. That certainly isn't the author's fault, but it makes me wary of purchasing more books from this company.

Adriano Repetti said
A good written book, it's a step by step trip in the author's mind: from idea through design to coding of his framework. You may not agree with all choices (such as heavy reflection use) but you always know why he did. A good start point to build your own businnes objects and a rich bag for your developer's toolbox.

C. fra said
The book itself is somehow disappointing. Sounds like the old vb6 bo book, rather outdated.
The main concept involved as a guideline on design is the fat table module object arbitrarily called business objects by the author, when the market is more oriented to model domains. Why should we choose fat objects instead of other solutions? It is not discussed on the book.
A big issue is the way the book is written. He assumes you are a vb6 person. The author is not fully aware of the architecture. Look at this paragraph about keeping state on the page:
"There's no automatic
mechanism that puts all state data into each page; you must do that by hand. Often this means creating
hidden fields on each page in which you can store state data that's required, but which the user
shouldn't see. The pages can quickly become very complex as you add these extra fields.
This can also be a security problem. When state data is sent to the client, that data becomes
potentially available to the end user."

So he's completely unaware of viewstate object which address all these issues. I think has gone a long way now and this guy don't even know one of the basic revolutionary concepts brought up by
I have constantly the sensation that he is addressing a vb6 developer, but vb6 is long gone.

You might also like...



Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.” - Bill Gates