I got this question from someone about the Visual Designers in VSTS Enterprise Architect Edition, basically the person was confused with all the designers available and what each one does.
I decided to do a little explanation here, but first I would like to discuss the concept of VSTS Arch Edition. Basically the whole idea behind VSTS is to have Architects (Enterprise, Solution, Infrastructure), Developers, Quality Engineers, Configuration Managers, Project Managers all working together from the same IDE and to have the output of each role saved to a central server so that the whole team can collaborate and communicate easily.
Using VSTS the whole idea of the Architect who walks in, draws fancy diagrams, and lets the developers and project implementers handle the details is over. This type of collaboration helps verify that designs are implementable and keeps the architect in the picture as the design evolves towards implementation requirements.
VSTS Architects Edition:
This edition of Visual Studio is used by Architects to design the system, and communicate those designs with the other members of the team. The word Architect here is very generic, because in reality you can have lots of different types of Architects, each looking at the system from a different perspective.
The main roles and perspectives that are found in almost every software project are as follows:
- The Enterprise Architect:This person makes sure that the system being design acts as part of a bigger larger system that benefits the organization as a whole and that conforms to the organization’s standards. The main focus here would be integration with other systems and standards compliance including performance and messaging.
- The Infrastructure Architect:This person focuses mainly on the system Physical Architecture, so the diagrams produced would contain information like the number of servers, server configuration, locations, communication lines.
- The Solution Architect:The main focus here is the solution at hand; this person takes the input from the Enterprise and Infrastructure Architect and creates a solution that would fit in the Physical and Logical requirements of the entire system. The diagram produced would contain information like the Logical Architecture, the distinct system layers, and the communication points with other systems.
The Designers and how they fit in:
VSTS Architects Edition has a lot of designers that can be used to represent different views of the system. As mentioned above it is possible for each of the above roles to be performed by a different person which makes consolidating and validating these designs all the lot harder. VSTS makes this task so much easier by validating the diagrams against each other, hence allowing the Architects to work together and not to break each other’s designs.
I will mention the most important designers:
- Distributed System Designer
- Application Designer
- Class Designer
- Deployment Designer
- Logical Datacenter designer
In this posting I will basically answer the question about the Application Designer, I will post on each of the designers I mentioned here in coming posts.
Application Designer is used to design applications that can provide or use services within the scope of a Visual Studio solution. It is a designer mainly used for high level tasks.
I will explain some common scenarios for this tool :
1. If you have a visual studio solution and would like to reverse engineer it so you could see the different components and how they communicated Application Designer would be the tool to use.
2. You could also specify settings and constraints for my application like which protocol it would use to communicate with other services, and connection strings in the web.config.
3. You could define the databases and web services that communicate with my application.
4. You could specify a custom communication protocol that my application will use with windows communication foundation.
After designing your application, you would need to perform the following tasks:
1. Evaluate the application for deployment on the deployment production environment using the development configurations, this would help determine whether or not your logical design is compatible with your physical design.
2. Design parts of your system for reusability.
These are the main features of Application Designer, please post your comments if you there is anything that needs clarification and I will address them in my coming posts.