In the late 1990s, the widespread availability of low-cost computers and access to global connectivity have fueled the demand for a new kind of application: the highly distributed application. Highly distributed applications are used by extremely large numbers of people around the world who are connected to many application and data servers via nonpermanent or slow links. These characteristics create application requirements that strain the capabilities of traditional application architectures.
The Microsoft Windows Distributed interNet Applications (DNA) architecture represents Microsoft's approach to creating highly distributed applications. DNA applications use a logical, three-tier, component-based architecture. Microsoft system services provide the infrastructure needed by this type of application. The key infrastructure services are the Component Object Model (COM), which provides the basic mechanism for component interaction, and Microsoft Transaction Server (MTS), which provides an execution environment for building scalable server applications.
This book is intended to help you succeed in building your first distributed three-tier application based on COM and MTS. It does not attempt to address every issue you will encounter when writing enterprise-wide applications. It does not attempt to define a methodology that will work for every development team. It does give you practical advice that will help you design, develop, test, and deploy three-tier applications based on the Microsoft Windows DNA technologies. The primary focus will be on the middle tier, or business logic, where you will use COM and MTS.
The recommendations in this book are based on experience gained from Microsoft's 3-2-1 program. "3-2-1" stands for three-tier application, two developers, one month—in other words, a project in which two developers work for one month to write a three-tier application. 3-2-1 projects are a way to get started with MTS. For more information, see the Appendix.
The primary audience for this book is the full-time professional developer who is familiar with an object-based programming language such as Microsoft C++, Java, or Microsoft Visual Basic. Some familiarity with the Internet and general database concepts, while not required, will be helpful. Several of the topics covered here will be of interest to system administrators as well.
Some portions of the sections of this book assume that you have some experience using Visual Basic or Visual C++. I also assume that you don't need a zillion screen shots to figure out how to install an application or use a development environment and that you understand how to use the documentation that comes with your tools. Pages of screen shots and step-by-step instructions for selecting a menu option bore me; I expect they bore you as well.