Team Foundation Sidekicks

Los usuarios que comunmente trabajamos con Team Foundation echamos de menos algunas caracterí­sticas avanzadas que no están disponibles a través del interfaz de Visual Studio, como es por ejemplo el desbloqueo de archivos, que como ya comentamos en un artí­culo anterior, se debí­a hacer desde la consola.
Estay otras caracterí­sticas están disponibles en la aplicación Team Foundation Sidekicks la cual provee de una serie de facilidades que ayudan al desarrollador a trabajar con Team Foundation y sacarle algo más de partido.
Os dejo el link a a la descripción ampliada del producto.
https://www.attrice.info/cm/tfs/index.htm
Gracias, Jaime y Guillermo, por la referencia.
Saludos.
Miguel.

TOAD Data Modeler

Para los desarrolladores que trabajan con base de datos Oracle, el TOAD, la ranita para muchos, es una herramienta más que conocida para trabajar contra el gestor de base de datos.
Con la versión básica de desarrollador disponemos de un entorno que permite realizar tí­picas operaciones de administración de la base de datos, así­ como la creación y edición de procedimientos almacenados.
Pero, en dicha versión se echan en falta otro tipo de funcionalidades avanzadas, como es la posibilidad de definición y mantenimiento del modelo de datos a través de diagramas entidad relación. A medida que se manipulan los diagramas, estos van modificando a bajo nivel la estructura real de la base de datos, lanzando los scripts de creación y modificación necesarios.
De esta funcionalidad se obtienen ventajas significativas tales como:

  • Aumento de la productividad en la construcción. A medida que se está definiendo el modelo entidad-relación en las fases de análisis, la estructura real pasa a estar disponible de forma inmediata.
  • Documentación. No es necesario utilizar otros modeladores para representar el entidad-relación, la propia definición ya forma parte de la documentación técnica.
  • Generación automática de scripts de cambio. Ante cualquier modificación en el modelo podemos optar por solicitar los scripts de cambio para poder lanzar las actualizaciones en otro entorno.

¿Y qué herramienta nos ofrece todo esto? Pues tal como marca la entrada del post, la versión Data Modeler de TOAD.
https://www.quest.com/Toad-Data-Modeler/
Saludos.
Miguel.

Pruebas de Integración (Test Web) desde Visual Studio 2008

Uno de los componentes introducidos en Visual Studio 2008 en el paquete básico, son las pruebas unitarias, de las cuales hablamos en un anterior artí­culo hace unos dí­as.
Las pruebas unitarias, entre otras cosas, nos ayudan a garantizar la calidad de los desarrollos realizados de forma cómoda y, lo que es más importante, automática. Una vez se ha definido la prueba, esta puede ser lanzada desde el panel de control pertinente infinidad de veces, garantizando así­ que los resultados que retorna la aplicación corresponden a los esperados.
Otro de los componentes asociados, aunque desgraciadamente no incluido en el paquete básico de Visual Studio 2008, son los test web. Mediante los test web podemos definir, a partir de una página “aspx” un conjunto de acciones que, tras quedar grabadas, pueden lanzarse infinidad de veces, para comprobar que el funcionamiento de los desarrollos que se han realizado, son válidos.
Por lo tanto, sumando la capacidad de las pruebas unitarias, y las pruebas web, contamos con un conjunto de herramientas que ayudan a “garantizar” la calidad en un porcentaje elevado, sobre todo para evitar los temidos “daños colaterales” producidos ante cualquier cambio realizado en el código de nuestra aplicación. Todo ello además, una vez definidas las pruebas, de forma automática. Definir y lanzar. El ahorro en tiempo y el mantenimiento de la calidad es más que significativo.
Como muestra, un botón, adjunto al post una solución que prueba mediante un Test Web una página aspx que cuenta con un botón que realiza una inserción en base de datos.
Test Web
La primera acción que hemos realizado es la de grabar el test sobre la página definida.
Grabar Test Web
Una vez grabada, tenemos la posibilidad de lanzarla n-veces.
Web Test Completo
Incluyo a continuación el link a la solución:
Proyecto Web Test
Saludos!
Miguel.

Visual Studio 2008 Web Deployment Project

Una de las caracterí­sticas de los proyectos de tipo “Sitio Web” de Visual Studio 2008 es que permite la pre-compilación de la web mediante una serie de caracterí­sticas más avanzadas de las que provee un proyecto web.
Por ejemplo, permite hacer cosas como generar una dll por cada una de las carpetas de la aplicación o incluso generar una dll independiente por cada página y control de usuario. Dependiendo un poco de las necesidades que tengáis para vuestros despliegues os puede resultar interesante utilizar una de las combinaciones que la pre-compilación ofrece. Teniendo en cuenta que además lograréis algunas caracterí­sticas avanzadas en el despliegue como son:
1) Mejor respuesta ante las peticiones web. No tiene mucho misterio, si habéis precompilado antes, cuando el IIS reciba la petición no necesitará compilar la página solicitada para mostrarla al usuario, por lo que los tiempos de respuesta serán mejores.
2) Nivel de seguridad. Precompilando estáis ocultando el contenido de vuestros archivos Code-Behind, por lo que nadie podrí­a conocer cómo está funcionando vuestra aplicación por dentro y/o modificar el funcionamiento de la misma.
3) Mayor flexibilidad en el despliegue. Con las diferentes combinaciones de publicación que permiten o generar dll por carpeta o por página y control, podéis lanzar actualizaciones de vuestros sitios web sin necesidad de desplegarlos enteros nuevamente, si no sólo las dll correspondientes a las páginas o controles que habéis modificado (esto les gusta mucho normalemente a los departamentos de sistemas encargados de realizar los despliegues).
Además, otra capacidad muy interesante se nos ofrece con la pre-compilacion, que es el no permitir que el sitio sea actualizable (allow this precompiled site to be updatable). Si marcais esta opción no se va a dejar modificar el código de presentación asociado a aspx y ascx. Es más, veréis incluso que los archivos ascx no se han generado, y que los aspx sí­ que están pero si los abrí­s íºnicamente veréis que guardan en su interior una referencia a la dll que los representa. Esta solución es fantástica si lo que queréis es evitar a toda costa cualquier modificación también en la capa de presentación.
Pero después de todo esto, algo se nos queda en el tintero, y es la posibilidad de poder asociar el resultado de la precompilación directamente a un proyecto de tipo Web Setup. Para ello disponemos de la herramienta Web Deployment Project (plugin para Visual Studio), que nos aportará las facilidades que ya hemos tratado más esta íºltima. Es tan sencillo como lanzar el build del sitio web, a continuación lanzar el build del Web Deployment Project asociado al sitio web, relacionar el output del proyecto de deployment al proyecto de web setup, compilar el setup, y óle, ya tenemos un msi con el contenido pre-compilado de nuestra web siguiendo uno de los métodos estándar que hayamos elegido.
Os dejo un pequeño manual bastante claro de uso para la versión de Web Deployment Project para Visual Studio 2005. El íºnico problema es que aquí­ no se explican nuevas capacidades de la versión 2008 como la de lanzar el deploy directamente sobre un site de IIS, pero de todas maneras dejo el link al manual porque a pesar de todo se describe muy claramente los pasos a seguir.
Link a manual Web Deployment Project para Visual Studio 2005
Descargar Web Deployment Project para Visual Studio 2008

Pruebas Unitarias con Visual Studio 2008

Os dejo un link donde se muestra un pequeño manual donde se describen las principales funcionalidades incluidas en los proyectos de pruebas unitarias incluidos en Visual Studio 2008.
En el artí­culo se describen los siguientes puntos:
* Crear un Test
* Ejecutar un Test
* Crear un Test Ordenado
* Debuggear un Test
* Soporte de test para aplicaciones ASP.NET
https://www.geekzone.co.nz/vs2008/4819
Saludos.
Miguel.

AjaxControlToolkit y WebResource.axd

AjaxControlToolkit es el conjunto de controles web ajax provistos por el propio Microsoft y totalmente compatibles con Visual Studio 2008 y Framework 3.5 de .NET.
Hoy hablaremos brevemente cómo resolver la problemática que nos podemos encontrar si combinamos el uso de dicho Toolkit con la seguridad básica de ASP.NET.
Ante claíºsulas como la descrita en la parte inferior:
<authorization>
<deny users=”*” />
</authorization>
estamos denegando el acceso a cualquiera de los recursos de la aplicación, a todos los usuarios que no cuenten con cierto tipo de autenticación. Cuando hablamos de recursos estamos hablando de recursos de cualquier tipo, entre los cuales estamos incorporando páginas aspx, javascript, imágenes, hojas de estilo, themes…
Para resolver el acceso total a recursos necesarios a nivel de aplicación como por ejemplo hojas de estilo, imágenes y javascript podemos combiar el anterior tag con el siguiente:
<location path=”images”>
<authorization>
<allow users =”*” />
</authorization>
</location>
donde podemos apreciar cómo para todos los usuarios estamos dando acceso a la carpeta donde estamos almacenando las imágenes. Si no hiciéramos esto, las páginas aspx se cargarí­an, pero no podrí­amos ver las imágenes que tuviéramos contenidas.
Algo muy similar pasa cuando utilizamos Ajax Control Toolkit, vamos a necesitar indicar la visibilidad de sus recursos a los usuarios para que puedan ejecutar los controles ajax, tanto la funcionalidad javascript que incorporan como sus imágenes y estilos relacionados. Para ello, no tenemos que dar permisos a una carpeta concreta, si no a un fichero que no es visible en tiempo de diseño, pero que sí­ podremos observar si lanzamos la aplicación. Se trata del archivo WebResource.axd.
Añadiendo el nuevo location
<location path=”WebResource.axd”>
<authorization>
<allow users =”*” />
</authorization>
</location>
conseguiremos nuestro objetivo. Nuestros controles ajax volverán a funcionar correctamente, veremos las imágenes relacionadas a los controles, así­ como sus estilos.
Saludos.
Miguel.

Solid RAD

Recientemente he tenido la oportunidad de participar en una presentación de Solid RAD, la herramienta para el desarrollo rápido de aplicaciones, ofrecida bajo el sello y garantí­a de calidad del equipo de Solid Quality Mentors
Jesíºs López y Daniel Seara (con el cual he tenido nuevamente el placer de coincidir) han sido los dos mentores de Solid que realizaron la presentación de forma conjunta.
A partir de la propia arquitectura y orientación de Solid RAD, la cual podréis conocer consultando el video provisto en el siguiente enlace mms://solidq.com/SolidRad (copiar el link y ejecutar pegando en la barra de dirección de Internet Explorer), destacar la inmensa oportunidad que supone compartir durante parte de una mañana, y de forma directa y personalizada, de los conocimientos y opiniones de los dos mentores. Lo que ha dado una pequeña “discusión” sobre el uso de las transacciones es algo que me gustarí­a exponer en un próximo artí­culo. A mi la visión me ha parecido genial.
Destacar entre otras cosas de Solid RAD, otras ideas fantásticas, como las de partir de un modelo de objetos de negocio para exponer el conocimiento a otras capas, pero sin orientar el modelo de objetos directamente a las entidades de datos, tal como harí­a un ORM, si no a las vistas definidas sobre dichas entidades de datos. Es una idea simplemente genial combiándola al mismo tiempo con el generador de código de Solid RAD, que automatiza la generación de las entidades de transporte de datos a partir de las propiedades de cada una de las vistas sobre la que es accedida.
Saludos.
Miguel.

Introduciendo InfoPath

Microsoft InfoPath (evolución de XDocs), definida por algunos como la aplicación que vení­a incluida en el paquete de Microsoft Office 2003 y que nadie instalaba, y que si alguno decidí­a a instalar, tras diez minutos trabajando con ella se desinstalaba tras no entender muy bien qué partido se le podrí­a sacar.
Dejando de lado las anécdotas, y como siempre, partiendo del concepto de reutilización, os dejo dos links para que os empecéis a hacer un poco a la idea de qué es InfoPath y para qué sirve.
Overview
Creando Formularios Inteligentes
Con InfoPath, mediante una sencilla interfaz gráfica pensada para personas de nivel de conocimientos medio permite la creación de formularios inteligentes de manera rápida.
InfoPath
Hasta aquí­ nada nuevo respecto a lo que conocí­amos, aparenta ser una herramienta para crear pantallas con cierta lógica de comportamiento que intenta poner al alcance de personas no técnicas el desarrollo de interfaces de este tipo.
La cuestión es que la cosa no acaba aquí­. La principal potencia de InfoPath es que al mismo tiempo que el usuario va definiendo de manera visual el formulario, por detrás se está generando una estructura xml que define la misma, incluyendo sus restricciones. Es decir, se está creando un schema que define la visualización y limita el tipo de dato que puede permanecer almacenado en cada uno de los campos que trabajamos.
Una vez llegados a este punto, la cosa cambia. A partir de esta estructura de plantilla pueden crearse ficheros con la información cumplimentada al rellenar el formulario y que respetarán 100% las limitaciones de lógica que este mismo provee.
Infopath pasa a ser entonces una herramienta interesantí­sima para almacenar información en formato xml. Es por ejemplo muy comíºn que se utilice InfoPath para diseñar las interfaces gráficas de aplicaciones basadas en motores de flujo. En concreto con AgilePoint, mediante la combinación de AgilePoint+Sharepoint+InfoPath pueden lograrse resultados espectaculares en eficiencia en el diseño de aplicaciones basadas en flujos de trabajo.
Saludos.
Miguel.

Introduciendo UML

Vamos a aprovechar algíºn comentario en el blog al respecto de información asociada a UML para dejar para empezar algíºn link que pueda serviros de referente para empezar a empaparos.
Os los ordeno un poco en el orden que recomiendo leerlos para que os vaya quedando todo un poco más claro.
1) Historia de UML, qué es UML. Muestra superficial de algunos diagramas
2) Pequeños ejemplos de los diagramas UML más comunes
3) A fondo UML de casos de uso
4) A fondo UML diagrama de clases
Un saludo.
Miguel.

Transact SQL, Debug con Visual Studio 2005 y Trazabilidad con SourceSafe

Para los acostumbrados a trabajar con PL-SQL y la herramienta TOAD, lo de lanzar debugs contra procedimientos almacenados es algo totalmente natural y, por supuesto, muy pero que muy íºtil.
Para los que trabajan con Transact-SQL y Visual Studio 2005 no es algo tan natural. Muchos no conocen que a través de Visual Studio 2005 podemos hacer debug sobre procedimientos almacenados, y no sólo eso, si no que también somos capaces de almacenar automáticamente los scripts que vamos generando en SourceSafe, manteniendo así­ la trazabilidad completa de los cambios realizados contra la base de datos.
Es más comíºn utilizar el Management Studio de SQL Server 2005 y así­ interactuar contra la base de datos que crear un nuevo proyecto de base de datos en Visual Studio 2005 y desarrollar desde allí­. ¿Pero qué ocurre con todos los cambios que podemos ir introduciendo en el modelo relacional? Nuevas tablas, modificaciones sobre las tablas ya existentes, nuevos procedimientos almacenados, inserción de datos base en las tablas… ¿Y cómo nos lo montamos para almacenar todos los scripts de base de datos a ejecutar cuando queramos actualizar de una versión a otra de nuestra aplicación?
Los proyectos de base de datos de Visual Studio 2005 nos ayudarán a todo esto, incluyendo además la posibilidad de realizar debug sobre los procedimientos almacenados.
Os dejo un link donde se explica perfectamente cómo llevar a cabo todo esto, os recomiendo de verdad utilizar este tipo de proyecto, ahorraréis mucho tiempo, mantendréis toda la trazabilidad en SourceSafe de forma automática y claramente aumentaréis vuestra productividad.
https://www.informit.com/articles/article.aspx?p=31764&seqNum=1
Un saludo.
Miguel.