Diseño Arquitectonico En Vsts

   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

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