I have a passion for frameworks. In more than 20 years as a professional developer, I’ve never worked on a computing platform that did everything I needed it to do to build applications productively. The Microsoft .NET platform is wonderful, but it doesn’t always do quite what I want or need. To address those needs, I’m always looking for tools and frameworks, and sometimes I end up creating them myself.
A framework is simply the codification of an architecture or design pattern. Before you can have a good framework, you need to have an architecture. That means you need to have a vision and a set of goals both for the architecture and the kinds of applications it should enable.
This book is about application architecture, design, and development in .NET using object-oriented concepts. The focus is on creating business objects and implementing them to work in various distributed environments, including web and client/server configurations. The book makes use of a great many .NET technologies, object-oriented design and programming concepts, and distributed architectures.
Much of the book walks through the thought process I used in designing and creating the CSLA .NET framework to support object-oriented application development in .NET. This includes a lot of architectural concepts and ideas. It also involves some in-depth use of advanced .NET techniques to create the framework.
The middle section of the book (Chapters 6 through 16) provides this theoretical framework design material, illustrated with VB code. It’s a treatise on framework design and not a practical tutorial on actually building the framework with complete source code. So, it’ll help you use the framework effectively, rather than provide perfunctory type-and-compile exercises. After all, the full framework is available as a binary download.
You can download the framework code in both VB and C#. The VB code is for reference. Only the C# version is “official,” and I recommend using the C# version for any real development work. The practical aspects of the book are in the first five and the final five chapters, which show you how to use the framework to build a sample application with several different interfaces. If you want, you could skip the framework design chapters and simply use the framework to build object-oriented applications in VB.
One of my primary goals in creating the CSLA .NET framework was to simplify .NET development. Developers using the framework in this book don’t need to worry about the details of underlying technologies such as remoting, serialization, or reflection. All of these are embedded in the framework so that a developer using it can focus almost entirely on business logic and application design rather than on getting caught up in “plumbing” issues.
This book is a major update to the previous edition, Expert VB 2005 Business Objects. This updated book takes advantage of new features of .NET 3.5 and applies lessons learned by using .NET 2.0 and 3.0 over the past few years.
This book is the most recent expression of concepts I’ve been working on for more than a dozen years. My goal all along has been to enable the productive use of object-oriented design in distributed n-tier applications. Over the years, both the technologies and my understanding and expression of the concepts have evolved greatly.