The motivation behind this book began with the frustration of rarely finding material that is both theoretical and practical. There are just too few resources available that present sound theory as well as the practical examples to demonstrate it. As .NET matures, that case is slowly changing,. Through MSDN and its own patterns and practices articles, Microsoft is committed to providing .NET developers with as much architecture guidance as possible. However, besides having a .NET case study to resource, there are still too few step-by-step enterprise stories that document the use of patterned practices. This was the motivation behind this chapter.
In the book, I not only want to present the patterns but show them practically implemented in a real product. That also was how this chapter originated. I have read a lot of material that presents wonderful theory but unfortunately does not have the practical code to showcase it. Either the sample code is missing or it contains implementations so simple they are either useless or are exemplified in such a way as to cloud their meaning. I asked, Why can't there be more books that actually show you how their practices were applied to real applications sold to real individuals? This chapter and the product I will introduce provide me with the opportunity of presenting the material and a staging ground for my patterns and practices.
The examples used in this chapter refer to an actual commercial software company. For the sake of protecting their intellectual property all examples I will refer to the company as Company ABC. One of their primary financial services products will be featured here and will be referred to as Product X.
Company ABC, Inc. brought me on as a consultant to immediately begin converting its framework code base for a "cash cow" product to the .NET world. This chapter is devoted to the process of not only creating a commercial application using .NET and Web services but also applying the theories illustrated in this book to that product. It is this "story telling" that I hope will serve the purpose of solidifying an understanding of how the book's principles may be applied to a real-world application. All of the patterns in Chapter 4 and Chapter 5 and most of the others from other chapters are currently running in production and shipping as this commercial product is being sold. Doing this not only allowed me to showcase the patterns and their theories but also provided a real-world template upon which to tweak them as needed. This made the framework more design-conscious and the design more product-focused. From another perspective, this effort has also allowed me to eliminate patterns I believe do not serve some practical purpose. Those eliminated patterns may look great within a Rose diagram but I hesitated to cover them in this book because they do not carry much commercial weight and could be applied only in extreme cases. I did this to keep from doing what I see in many design books ”throwing "cool" but strictly theoretical and academic content at the reader.
Before I move into the implementation process and the "plugging-in" of each pattern into the final product, I first must give a little bit of a background. To explain how each pattern was applied, I will first provide you with a brief summary of the product itself and the business case behind it. I will also provide you with a little bit of the technology and business elements within ProductX so you will better understand its features.