An Overview of the Simplified Application Framework
(Page 1 of 7 )
Have you ever wondered how to apply application frameworks in the real world? Xin Chen explains how, with a sample application framework. This article is taken from chapter three of the book
Developing Application Frameworks in .NET by Xin Chen (Apress Publishing, 2004; ISBN: 1590592883).

IN THE PREVIOUS TWO CHAPTERS we discussed some of the key concepts regarding application frameworks. Now we will begin to develop some concrete examples for you to test your understanding as well as to provide you a jump start for applying these ideas in a real-world situation. To this end, I have created a sample application framework project to provide a concrete view of what a framework look like and what it offers to application development.
What Is SAF? I began brainstorming about this sample framework and gathering some ideas from existing software products and my previous experience. I finally decided to create a framework for business-to-business (B2B) applications. It is relatively easy to identify the common services used in most of customized applications, but it is more difficult to identify some of the domain-specific framework components, since they are visible only to those who have an extensive understanding of the business domain. To make this book complete, I felt that I had to come up with a good example for domain-specific components that are easy to understand. I had worked with the Microsoft BizTalk Server (a server product Microsoft first released in 2000 that allows companies to quickly set up a system to exchange and process business documents with their business partners) on several projects and written a book on it, and I have a number of ideas about what is involved in a typical B2B application, so I chose the B2B application as the model on which to base the sample framework. I jotted down a list of a number of items that are commonly found in B2B applications and used it as part of the sample framework I created for this book.
I named this framework Simplified Application Framework, or SAF. My goal was to create a framework project that was easy to understand, with just enough code to achieve its intended goals and get my points across.
SAF consists of two groups of framework components. The first group consists of generic cross-domain components, while the second group contains the domain-specific components. The first group includes some of the generic components such as class factory service, caching service, and event notification services. These services are commonly found in every application regardless of the business domain, and little domain-specific knowledge resides in such components. The second group, on the other hand, consists of the domain-specific components that are commonly found in a B2B application. The essence of a B2B application is the exchange and processing of business documents among business partners. A component that makes possible the application of multiple processing layers on the document object would be very useful in development of many B2B applications. One of the SAF components achieves precisely that goal.
In Chapter 2 we looked at the different layers that exist in an application framework. SAF has a similar layer structure. Figure 3-1 illustrates the SAF’s layer structure and the components that belong to each layer.

Figure 3-1. Layer structure of SAF
At the bottom of the structure is the .NET framework, which consists of sets of classes that provides the fundamental functionalities on which every. NET application is built. In fact, every .NET application will have the .NET framework as the lowest layer of the structure. The layer on top of the .NET framework is the home of SAF cross-domain components. There are currently ten components that provide common services in many .NET applications. We will briefly look at each of them later in this chapter. I will also use the next ten chapters to discuss each of the components in detail. The layer on top of the SAF cross-domain component layer is the home of SAF B2B domain-specific components. The components in this layer are specialized components that target B2B applications. The very top layer is the customized application layer. It is where the customized application is located. Developers create their applications by coding against the .NET framework, SAF cross-domain components, and SAF B2B components.
As illustrated in Figure 3-1, SAF contains ten foundation components and two domain components. I want to use it as a model to show you how to design and develop an application framework by giving an in-depth discussion on each of these twelve framework components. In the next 12 chapters, I will talk about these components by listing the goals and benefits for each component. I will then talk about some of the .NET technologies that are involved in developing these components. For example, I will explain .NET remoting and .NET reflection when we cover the class factory service, XML when covering the caching service, ServicedComponent when covering the transaction service, etc. Some of the .NET technologies used by the framework components are basic, while others are a bit tricky; either way, I will try to give a concise tutorial on those technologies before diving into the actual code of the framework. Design patterns are commonly used inside frameworks to solve many of their design problems. They are wonderful things that allow you to unravel the intricacies of relationships among different pieces inside the application. Many of SAF’s components rely on design patterns as their underlying object-oriented techniques to make them more flexible and customizable. As you read through the chapters, you will learn about these design patterns, see their implementation in the SAF components, and most importantly, understand why using a particular pattern makes sense for a particular SAF component.
This chapter is from Developing Application Frameworks in .NET by Xin Chen (Apress, 2004, ISBN: 1590592883). Check it out at your favorite bookstore today. Buy this book now.
|
Next: SAF Foundation Components >>
More .NET Articles
More By Apress Publishing