Diseño arquitectonico en VSTS

Anuncio
Diciembre/2006.
Ayudantía: Visual Studio Team System
Autor:
Alejandro Martorell
Diseño y Arquitectura en VSTS 2005
Microsoft en la nueva versión del VSTS 2005, desarrollo un diseñador de sistemas
distribuidos (DSD) que pretende complementar con mejoraras y facilidades, el
modelado tradicional que se venia realizando con Microsoft Visio. Los motivos de la
creación de esta nueva herramienta, es mejorar la integración entre las diferentes
disciplinas utilizando el VSTS con el fin de aumentar la productividad, reduciendo
tiempos y costos.
El diseñador de sistemas distribuidos DSD utiliza un modelador de lenguaje específico
del dominio DSL (Domain Specific Lenguages). Un ejemplo de DSL es SQL para la
manipulación de datos. Otro ejemplo es el DSL que utiliza Visual Studio Team Edition
for Software Architects.
El lenguaje DSL para VSTS, fue diseñado para modelar la estructura lógica del
hardware del centro de datos y las configuraciones de software del host. Estructuras que
en algunos casos con UML serian muy complejas de describir o tan sencillas como una
nota o constrain; la cual puede tener menos valor que si por el contrario diseñamos con
el nuevo Lenguaje. Un ejemplo de lo anterior puede ser el string de conexión a una Base
de Datos, el cual en UML utilizaríamos un {constrain}, en cambio en el nuevo
diseñador, esta información forma parte de una propiedad de un elemento del diseño el
cual puede ser validado y compilado con su diagrama.
Este DSL y el diseñador gráfico correspondiente se deben utilizar durante el tiempo de
diseño para asegurarse de que las aplicaciones se configuran de forma que se ajusten a
los objetivos de desarrollo que se hayan marcado. Si se realiza algún cambio, la
herramienta “notifica” (alerta) mediante el código o diagrama al desarrollador, de
problemas en momentos que se pueden solucionar de forma que resulte más económica.
Los diagramas que permite realizar el DSD son los siguientes:
• Logical datacenter
• Application
• System
• Deployment designer
Además del nuevo DSD, VSTS, integra al entorno un Diseñador de Diagrama de Clases
y la herramienta Refactor. Otro agregado, que es posible utilizar es el la herramienta de
WorkFlow que si bien no viene con el VSTS 2005, es posible integrarla mediante
WinFx (FrameWork 3.0) explicado más adelante.
Página 1 de 9
1) Logical datacenter : describe las características de distintos tipos de servidores
(los servidores son de software no hardware, por ejemplo un web Server puede
representar un grupo de servidores de hardware en una server farm).
Tiene
Zones las zones son los límites que separan centros de datos ya sea por
seguridad, separación física, comunicación, etc.
Para crear un nuevo diagrama:
file, new proyect, other proyect types, Visual Studio Solution, blank Solution,
luego para realizar un Logical datacenter diagram:
Click derecho sobre el Solution Explorer, new ,new distributed system diagram,
logical datacenter diagram.
Para comenzar a diseñar el diagrama, se cuenta con el tool box que esta dividido
en dos secciones principalmente, la de los Logical Server y la de los End Point.
Además de contar con el tool box podemos hacer clic derecho sobre el diagrama
y mediante las opciones del menú contextual y agregando los elementos,
formamos el diagrama.
La Logical Server contiene las Zonas que determinan los límites físicos o
lógicos de los centros de datos. Los centros de datos pueden estar formados por
servidores genéricos, de base de datos, proveedor de IIS o Clientes de Windows.
Los End Ponit son los puntos de conexión entre las zonas, así como también
entre los diferentes centros de datos que se encuentran en una zona. Los End
Point son de determinado tipo y el diseñador no te permite una conexión entre
End Ponit que no compatibles. Los End Point (EP) como los Centros de Datos
tienen propiedades pero en los EP además tiene setting and constrains que varían
en función del tipo de EP. Por ejemplo en una sevidor IIS le podemos
deshabilitar en la seguridad la autentificación mediante Winodows y Passport,
habilitando None.
Logical Server
Contenido tool box del diagrama.
§ Zones
§ GenericServer
§ DataBaseServer
§ IISWebServer
§ WindowsClient
End Points
§ ZoneEndPoint
§ GenericClientEndPoint
§ GenericServerEndPont
§ DataBaseClientEndPonit
§ HttpClientEndPoint
§ WebSiteEndPonit
General Designer
§ Conection
§ Coment
Se presenta parte de un diagrama en
donde a una aplicación de escritorio
que se encuentra en una zona (Lan), se
le agrega un nuevo EndPoint.
Página 2 de 9
2) Application: se usa para definir o visualizar aplicaciones en una solución de
Visual Studio y para ver como se conectar las aplicaciones.
Para crear un nuevo diagrama:
Click sobre el solution Explorer, new distributed system diagram, Application
Diagram.
Análogamente que el diagrama de Logical Data Center tenemos otro tool box
que esta dividido en dos secciones principalmente, la de las Aplications y la de
los End Point. Además del tool box podemos hacer clic derecho sobre el
diagrama y mediante las opciones del menú contextual podemos ir desarrollando
el diagrama.
Las Aplication son de diferentes tipos: Generic, BizTalkWebService, External
DB, External WebService, Office, ASP.NET WebAplication, ASP.NET
WebService , Windows Aplication.
Los End Ponit (EP) son los puntos de conexión entre las aplicaciones. Los EP
son de determinado tipo y el diseñador no te permite una conexión entre EP no
son compatibles. Los EP como en el diagrama de Centros de Datos tienen
propiedades, setting and constrains que varían en función del tipo. Los tipos de
EP son Generis End Point, Web Content End Ponit, Web Service End Point.
Como se presenta en el diagrama una aplicación WebServiceCarrito, tiene tres tipos de
End Point Diferentes. Un Web Content para la comunicación con la aplicación ASP; un
Web Service para la aplicación Windows y un tercero que es para la comunicació n con
la BD.
Nota: en las propiedades de cada aplicación se configura el lenguaje en el que se desarrolla. Para que
implemente toda la aplicación, se hace clic derecho sobre el diagrama. Es recomendable implementar una
vez realizada la validación de los cuatro diagramas
Página 3 de 9
3) System: Se usar para definir configuraciones específicas y otros sistemas (por
ejemplo dos deployments con bases de datos diferentes).
Para crear un nuevo diagrama:
Click sobre el solution Explorer, new distributed system diagram, System Diagram.
Para realizar este diagrama se utiliza el System View y el ToolBox. Con el primero
arrastro las aplicaciones definidas en el. Diagrama de Aplicación que necesite.
Luego con el ToolBox interconecto las aplicaciones del diagrama.
Página 4 de 9
4) Deployment designer: es el DSD que contiene y se genera en base a los
anteriores.
Para generarlo es necesario hacer clic derecho-> Define Deployment, sobre uno de
los tres diagramas anteriores.
Luego que todas las aplicaciones del “system view” están vinculadas por el
diagrama de deployment, es posible validar el diagrama con éxito si están bien
conectadas. Una vez validado el diagrama se puede generar el código haciendo clic
derecho sobre el diagrama anterior (crea un proyecto por cada application dentro de
la misma solución del diagrama). Para especificar el lenguaje en el que se desea
generar cada aplicación es necesario ir a las propiedades de la aplicación en el
diagrama de aplicación.
Nota: Este tipo de modelo de conectividad de aplicaciones, admite la validación de
protocolos de contrato (como pueden ser mediante tcp, http), el análisis de seguridad
(forma y manera de autentificación) o el análisis de rendimiento; que al momento de
validar pueden dar errores si no se conectaron adecuadamente.
Página 5 de 9
5) Class Diagram : Este diagrama puede desarrollarse antes escribir código y
viceversa, es una veloz herramienta para desarrollar ya que el diagrama lo
traduce al código fuente y en el mismo instante VS lo actualiza.
Para crear un diagrama de clases es necesario hacer clic derecho sobre un proyecto y
elegir Clas Diagram.
Contamos con la toolbox que contiene los siguientes elementos para diseñar: Clases
(con sus métodos, variables privadas, publicas protected y hasta los properties), Enum,
Interface, Abstract Clase, Struct, Delegate, Inheritance, Association, Coment.
Un ejemplo de un diagrama de clases que contiene tipos enumerados, interfaces, clases
abstractas, herencia y asociaciones.
Página 6 de 9
6) Refactor Tool
La herramienta Refactor esta presente en el entorno y en función de la ubicación del
cursor en el código son las alternativas que presenta.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Rename : En general permite renombrar variables, métodos y clases, generando
un lista de lugares en donde impacta la modificación del código, para que
aceptemos la acción de renombrado.
Rename Type : cambia el nombre a una clase, struct, enum, delegate or
interface.
Rename Member: Cambia el nombre de un método, property o atributo de una
clase, struct o interface.
Rename Parameter: Cambia el nombre de uno o más de los parámetros que
tiene un método.
Rename Local Variable: Cambia el nombre a una variable local.
Encapsulate field: Automáticamente genera la properties con los get y set
adecuados.
Extract Method: De un conjunto de sentencias permite crear un nuevo método
que remplace las sentencias por el llamado al método.
Extract Interface: Extrae un grupo de miembros de una clase existente, crea
una clase interface con ellos e implementa la interface en la clase originaria.
Change signature : Permite agregar, modificar, eliminar parámetros en la firma
de un método.
Find referentes: Cuando se esta trabajando con un método, tipo, parámetro, o
variable local, es de suma importancia llegar a ver en donde esta siendo
utilizado. Como resultado de la búsqueda, es presentada una lista de lugares en
donde hace referencia el ítem buscado.
Copy Class: Crea una nueva clase en base a una clase (crea una copia de la
clase) o una plantilla.
Extract Variable : Remplaza por una variable un segmento de la expresión que
forma parte de una cond ición, para utilizar la variable en vez de la condición.
Extract superclase: Extrae un grupo de miembros de una clase para crear con
ellos una super clase.
Push up Members : Un conjunto de miembros los mueve a la clase superior.
Tidy Imports: La lista de namespace que son escritos o incluidos, en algunos
casos puede contener namespace que no se utilicen. Esta herramienta elimina los
namespace (imports) que en el código no se les hace referencia y no son
necesarios importar.
Descompose Condicional: Dentro de una sentencia extensa de una condición
permite extraer parte de la misma a un método para que luego lo llame al
ejecutarse la aplicación.
Página 7 de 9
7) Windows Workflow
Es un frame work extensible para desarrollar workflow que permite desarrollar
soluciones de este tipo sobre la plataforma windows.
• Diagrama de estados
• Diagrama de actividad
Windows Workflow es parte de .NET FrameWork 3.0 junto con Windows Presentation
Foundation (Avalon) y Windows Communication Foundation (Indigo).
Windows Workflow permite desarrollar proyectos de:
• Aplicaciones consola
• WinForms
• Servicios Windows y Web
• Páginas ASP.Net
Dentro de Microsoft Visual Studio 2005, y luego de instalar el runtime de .NET
FrameWork 3.0 y el pack de WWF (Windows Workflow Fundation), tendremos
algunas capacidades muy interesantes, tales como el Diseñador Visual, Visual Studio
Workflow Templates y Depurador Visual, lo cual ayuda a desarrollar aplicaciones ricas
en workflows.
Página 8 de 9
Bibliografia
Whitepapers on MSDN, Visual Studio Enterprise
http://msdn.microsoft.com/vstudio/enterprise
VSTS 2005
http://lab.msdn.microsoft.com/vs2005/teamsystem/
Bridge the Gap Between Development and Operations with Whitehorse
http://msdn.microsoft.com/msdnmag/issues/04/07/whitehorse/default.aspx
Visual Studio 2005 Team System: Designing Distributed Systems for Deployment
http://msdn.microsoft.com/library/en-us/dnvsent/html/vsts-arch.asp
Modeling Languages for Distributed Applications
http://msdn.microsoft.com/library/en-us/dnvsent/html/vsent_ModelingLangs.asp
Refactor
http://www.xtreme-simplicity.net/vs2005.htm
Foro de herramientas para UML
http://foros.dotnetclubs.com/forums/thread/302.aspx
WorkFlow
http://www.bs.com.ar/bsweb/RevistaBSknow/PDFs/n21/workflow.pdf#search=%22dia
gramas%20de%20actividad%20VS2005%22
Página 9 de 9
Descargar