In Chapters 2 through 5, we discussed some of the mainstream patterns in the architecture catalog when implementing a basic framework in .NET. What this chapter outlines are those patterns that really fall out of any "normally applied" or 80% category, where 80% of the architectures use them as a delivery vehicle. The following patterns deal with more advanced concepts, such as asynchronous processing, caching, interfacing, and pooling. This doesn't mean that these patterns are not needed in 80% of those systems. As you are probably well aware, many tactical applications will not require or have the luxury of time to design these value-added features. These are typically applied as an adjunct to an existing system. In fact, many of the patterns I'm about to discuss can be later added to these systems and are not necessarily required from inception. For some patterns, such as the Loosely Coupled Transactor (LCT), an entire framework gateway could be built around this one pattern or even can be used to wrap a system already in production so that your time to market doesn't suffer up front.
Like the other chapters, most of the following examples keep within the general solution "theme" and use our financial processing application to drive the example code. We cover the following patterns in this chapter: