Tuesday, October 27, 2009

VSTS 2008 Architecture Edition



Chapter 19 -
Visual Studio Team System 2008
Microsoft Visual Studio 2008 Programming
by Jamie Plenderleith and Steve Bunn 
McGraw-Hill/Osborne © 2009























VSTS 2008 Architecture Edition



VSTS 2008 Architecture Edition is intended for architects who have to design distributed applications, especially those that have multiple components as part of a large project. With a set of enhanced tools in the Distributed System Design toolkit, Architecture Edition is geared toward making design tasks easier.


The tools that are exclusive to Architecture Edition (though part of Team Suite, of course) include a set of modeling tools for application design (either top-down or bottom-up), tools to generate ASP.NET web application projects with a new template property, tools to define .NET web service endpoints using Web Services Description Language (WSDL), and a few other features such as tools to create and share custom prototypes. To enable users to create diagrams, Architecture Edition offers a modification of the Visio modeling system that supports UML-based visual representations.


The modeling tools included with VSTS 2008 Architecture Edition help designers create local and distributed applications. The Distributed System Design Toolkit is not the set of more traditional UML-based visual tools, but instead is tied to Microsoft’s new Dynamic Systems Initiative. There are a number of tools included in the Architecture Edition, all of which are lumped under the title “Distributed System Designers”:




  • Logical Data Center Designer




  • Application Designer




  • System Designer




  • Deployment Designer




  • Class Designer




All these design tools are integrated, which enables a team to build a model in stages (by using the tools in the preceding sequence) and then evaluate the model against the deployment design. The class designer component allows you to synchronize the application design diagrams with the source code being built by developers, which helps to keep the design current and reduce obsolete design components.






Note 

Although these design tools are intended to be used in sequence, in practice most users bounce around among the tools.



The design process starts with the Logical Data Center Designer, which models the servers used for the distributed application. The output from the Logical Data Center Designer is intended to be used by a network architect to model the server and network environment for the application. Each endpoint between servers is defined, and you can create zones of servers (separated by any criteria you choose, such as physical location, logical function, or logical location in the larger network) as needed. From the Logical Data Center Designer, the application itself can start to be modeled using the Application Designer and System Designer.


The Application Designer lets an architect model database or web-based applications, as well as web services. The Application Designer output is an application design overview, as well as configuration settings for the application. From this architectural design, a starting project code can be created automatically for developers to use as a base. The Application Designer works through a graphical user interface (see Figure 19-4) that lets you drag applications from the toolbox and then use connectors to define data interactions between the components.






Figure 19-4: The graphical user interface of the Application Designer

To properly generate code from this Application Designer model, you can provide connection details as part of the model. For example, when connecting to an external database, you can embed the database connection strings as a property of the connection, so the generated code has this information already in place. Alternatively, you omit these details, either to provide a generic design or if the information is not available.


The System Designer groups two or more applications together to create a larger application, with each piece defined in the Application Designer but integrated in the System Designer. For example, an architect may use the Application Designer to create a web service, a database application, and a website separately, and then use the System Designer to tie all three into a larger application.


The Deployment Designer lets you validate your architecture by testing against the Logical Data Center design, ensuring that the components of the architecture can communicate with each other properly. The Deployment Designer also enables you to validate the architecture against the constraints of the server and network, to ensure that it complies with any constraints imposed in those components.


The final tool among the Architecture Edition design tools is the Class Designer, which takes the application design and generates classes from that design. These classes can then be used as a base for the development process, and, with the synchronization aspect of the Architecture Edition tools, any changes to the classes can be passed back to the design diagram to ensure that it is always current.


The tasks that Architecture Edition enables you to perform are often ignored in application development, but performing these tasks helps to reduce the amount of design churn later in the development cycle. Performing these tasks also produces early in the process a clear scope assessment for a distributed application, including an evaluation of the network and server requirements.


VSTS 2008 Architecture Edition now enables architects to create a top-down design. Visual Studio 2005 forced designers and architects to create a bottom-up design, aggregating those designs into larger system diagrams. This approach required a complete understanding of the application components in order to produce a workable design, and was not intuitive or useful for most design purposes. The ability to design from the top down allows for increasing levels of complexity in the design, building on the framework at each step, and leading to a complete system design that can be created more easily than previously possible.


With VSTS 2008 Architecture Edition, you can define the larger system approach, deferring details until later. To enable you to create a top-down design, a new System Design template has been added that includes all the files needed for a top-down design. When you use this template, a set of application design (*.ad) files is created, along with a system design (*.sd) file.


In use, you create a high-level system design by adding blocks for each functional component. Each component has its own system design entry in the Solution Explorer and a block on the higher-level system design diagram. Then, you can drill down into the system design diagram to provide more details. You add applications to the system design by selecting the type of application from a pop-up menu. You can leave details vague, as simple as a name, to allow for expansion later in the design process. Connections between components are drawn using endpoints.


To expand the details in a system design, you define properties for each system. This is an application design step that mirrors the same step in the earlier, Visual Studio 2005 Team Architect Edition. VSTS 2008 adds the choice of a target framework and support for ASP.NET web applications. You can define constraints as part of the application design, which you can then roll up into the overall design.


As part of the top-down focus in VSTS 2008 Architecture Edition, a new feature called delegation has been added. Delegation enables an architect to define a system by using a high level of abstraction, and then refine the level of detail progressively down through the design. The behavior of a component can be delegated through the endpoints it shares with other components, essentially copying the endpoint details and creating proxy endpoints.


A useful new feature in VSTS 2008 Architecture Edition is the capability to use WSDL files. When you define an architecture, a Conform to WSDL selection is available that enables you to use WSDL files to define properties. The advantage to using WSDL in a design is that, as an application is developed, changes in the web service implementation (methods, classes, signatures, and so forth) can be automatically reflected in the design without forcing manual modifications to the business logic.


A change in the way designs are created in VSTS 2008 Architecture Edition employs the use of architectural roles. Roles enable architects to add to application diagrams, system diagrams, and logical datacenter diagrams metadata that describes the responsibilities each object has within a design. In the simplest cases, a role is a short label that describes the function of the component, but it can also include comprehensive details about the responsibilities. As a nice feature, VSTS 2008 Architecture Edition enables you to embed documents and links within the metadata descriptions, making access to details of a component and its design specifications easier. The use of roles in a system architecture diagram depends on the designer, but one important use will be for the architect to provide to developers guidance and details about the specifics of a component.


If there is a flaw in the Architecture Edition implementation, it is the lack of any unit test capabilities. This is a curious omission, because unit test capabilities were added to the Team Suite edition, and should be available to all four smaller editions.


There is also a downloadable Power Tools pack for Architecture Edition. This includes some new class library capabilities for architects and system designers.


























No comments:

Post a Comment