Creating an Application Development Framework Using Enterprise Templates - Part 1
Distributed Applications are often large, complex systems with multi-tiered architectures, comprising thousands of globally deployed components. These applications are expected to deliver a wide variety of solutions to address different kinds of customer and business needs. Before .NET, Windows DNA was the platform of choice for developing scalable and extensible applications in the Windows platform. With the arrival of .NET, things have not changed much in terms of the application design and reusable application framework.
One of the real strengths of .NET is its ability to allow application architects to enforce application architecture and provide architectural guidance using enterprise templates. By using Enterprise Templates, you can provide development teams with a starting point that is a lot more sophisticated than an empty solution, while reducing the number of decisions and complexity of choices that the developers must make. Moreover since most of the distributed applications are very similar in nature (in terms of application architecture, operational management and so on), a custom distributed application template of this kind will be very useful and can be used as the starting point while building new applications.
In this series of articles, I will present details on how to customize enterprise templates to create an application development framework that is based on the pre-defined application architecture. Along the way, you will also gain an understanding of how application architects can enforce policies by using the extensible new language named Template Description Language (TDL) thereby making the life of the developers that much easier. At the end of this series of articles, you will have built a complete application development toolkit (based on the application building blocks such as exception management, data access application block, configuration files handling, encryption and decryption and so on) that can be used by any development team to build a distributed web application.
When applications were developed using Windows DNA methodology, a pre-defined application development framework was used to start the development. Every time we develop a new application, we have to start from scratch, create our application framework to it and then go about developing the application.
To avoid the repetitive work, Microsoft created a set of pre-defined templates known as Enterprise templates that provide the base framework for developing N-Tier enterprise applications using the .NET Framework and Visual Studio.NET. These templates can be used as the basis for developing more complex applications. When developing applications, you can either use one of the existing templates supplied by Microsoft or customize one of the existing templates to create your template. If you are an application architect, you will find this feature immensely useful as it allows you to clearly communicate the application architecture to your developers. Moreover you can also provide your development team with an application development framework that is made up of application building blocks.
What is an enterprise template?
Before looking at enterprise templates, let us understand the need for enterprise templates. To answer this issue, we need to consider the common problems that developers, face during application development.
- IT development projects are getting more complex, larger, and more critical
- A poor application architecture can make any platform perform poorly
- A good architecture only works if people follow the rules when implementing it
- Good help is hard to find (and expensive!)
- Developers have been faced with ever-increasing complexity as technologies and opportunities have proliferated.
The enterprise templates are designed to address all of the above problems. The Enterprise Template is an intuitive, productive, and cost-effective mechanism for rapidly developing Distributed Applications using Visual Studio .NET. Enterprise templates and the Template Description Language will help to reduce developer complexity and will increase collaboration across the development team.
The Enterprise Templates allow us to:
- Rapidly define and communicate the initial structure of our distributed application
- Provide architectural best practices and suggestions
- Provide technological best practices and suggestions
- Minimize collections of white papers, standards, and policies documents
- Reduce complexity for developers by providing a clearly defined application development framework
Enterprise templates also enable companies to leverage their most experienced people to define development guidance and policy that can be easily used by developers for building applications. Instead of being limited to documents, this guidance can take the form of architectural blueprints, reusable components and policies or instructions for building applications — all delivered within the Visual Studio .NET environment.
Enterprise Templates also provide a powerful way to solve both the "blank slate" (no starting point) and the "full slate" (too many alternatives) problems. This innovative set of features enables organizations to provide architectural guidance within the Visual Studio .NET environment.