Distributed Application Architecture Overview
The concepts associated with Enterprise Templates are based on and built around a general distributed application architecture Microsoft developed in recent years to reduce the complexity associated with applications within the enterprise space.
This model is sometimes referred to as "multitier" because it can be most easily understood in terms of logical groupings. Because you are working with a template, some decisions are made for you before you even open a project. The advantage is in reducing your workload and planning time but it also means you yield some amount of control. One of those places is in the choice of where you choose to implement additional services.
The various distributed-application templates provide a standard way of developing an application that uses a distributed architecture. By using the templates, you are choosing to implement services in a standard location. You are not required to implement all of the layers. The template assumes for those pieces implemented, that they will be implemented within the layers consistent with the Distributed Application architecture. For example, if you want an XML Web service, implement it within the Web Service Projects layer, rather than add it to the client or the business logic layer.
Within each major group, additional categories exist to supply the complete range of services the application must provide. In Visual Studio's Distributed Application Templates, these logical divisions can be viewed in the following way:
- User Services refers, primarily, to the type of client implementation.
- Business Services is made up of more than one layer, typically, and provide server-side services related to a wide range of business functions.
- Data Access and Persistence Services include the physical database storing the distributed application's data and the interface to the data contained in the database.
Within and between each of these levels, key Visual Studio .NET and Windows technologies are used to provide security, scalability, performance, and so on. Notably, within each of these categories (or layers), certain fundamental elements and components recur in a wide range of Enterprise applications.
The operating system also provides infrastructure and a variety of services that fill in capabilities not present in the underlying operating system or language services. This layer allows the user to separate out this functionality into one or more outputs, such as DLLs.
Enterprise Templates and the Multitier Distributed Application
Enterprise Template architecture is designed to be consistent with the multitier distributed application commonly used in the Enterprise computing development space. The following shows the corresponding layers:
|User Services||WinUI and/or WebUI, WebServices|
|Business Services||BusinessFacade, BusinessRules|
|Data Access and Persistence||DataAccess|