June 2008 - Artículos

Buenas,

hace unos días en el evento de MadNug, comentábamos con Luis algunas de las capacidades y mejoras que se han incluido en Microsoft Visual Studio 2008. Entre ellas, y cuando comenzamos a hablar de las reglas de análisis de código, llegamos a una de las menos conocidas: la capacidad de crear un “set de reglas” asociados a una política de CheckIn de Team Foundation Server 2008.

Cómo explicándolo con slides, me dió la sensación que no quedó muy claro, he aquí un pequeño ejemplo de como funciona esta mejora.

Paso a Paso

1. En primer lugar debemos configurar las políticas de CheckIn del Team Project. Para esto seleccionamos el Team Project en el Team Project Explorer y una vez desplegado el menú contextual, seleccionamos la opción Team Project Settings // Source Control.

 

2. Dentro del editor de control de código, en la pestaña Check-In Policy agregamos una nueva política del tipo Code Analysis. En esta nueva versión, además de forzar la ejecución del análisis de código podemos definir un grupo de reglas a aplicar. En el caso de la siguiente imagen, he seleccionado todas las reglas [Naming Rules].

 

3. Una vez del lado “del cliente”, en un proyecto relacionado con el Team Project que hemos configurado en los pasos anteriores, debemos configurar el mismo para que “importe” los cambios del server. Para esto seleccionamos la opción del menú Analyze // Code Analysus Settings for Solution // Replace with Check-in Policy.

 

4. De esta forma, al momento de realizar un Check-in veremos que se aplican las reglas definidas en la política de nuestro servidor Team Foundation Server.

 

5. He inclusive, si nuestro proyecto “no compila”, veremos que al momento de realizar el Check-in, la política de Code Analysis se da como “no satisfecha”, por lo que no podremos realizar un Check-in limpio.

 

 

Pues bien, en 5 pasos he tratado de explicar con un poco más de detalle lo que no pudimos explicar en el evento. Pero para más referencia, obviamente lo mejor es darse una vuelta por MSDN: http://msdn.microsoft.com/en-us/library/ms182076.aspx

 

Saludos @ Home

El Bruno

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Share this post :
Crossposting from ElBruno.com

Buenas,

si has editado un proyecto de compilación de Team Foundation Server (el clásico TFSBuild.proj) conocerás el infierno que significa el paso a paso para editar los mismos. En primer lugar hay que hacer un Get Latest Version de la carpeta Team Build Types y después aplicar las moficicaciones en el editor de Xml de Microsoft Visual Studio 2008. Esto que parece trivial, suele ser un proceso tedioso ya que además de ser procesos que consumen tiempo, este paso a paso es bastante incómodo.

Con la llegada de Microsoft Visual Studio 2008, ahora podemos editar de forma visual la definición del Team Build con un asistente bastante completo. Pero la edición del proyecto de compilación sigue siendo "manual”.

Si quieres editarlo de forma un poco más automática, DEBES descargar e instalar Team Foundation Sidekicks. Se que algo comenté hace unos días, pero además de poseer un cliente que permite realizar analisis interesantes de la información de un servidor TFS, también ofrece una opción para la edicion de proyectos de compilacion.

Por ejemplo, para la edición de un proyecto, seleccionamos el mismo y desplegando el menú contextual podemos ver la opción Check Out for Edit.

Esta opción descarga una copia local del proyecto y la desprotege para edición.

 

Una vez modificado el archivo, para subir los cambios al servidor TFS, seleccionamos la opción Check In y ya tenemos los cambios aplicados en nuestro proyecto.

 

Como siempre, y para demostrar que un buen producto SIEMPRE tiene que ser configurable, podemos habilitar o deshabilitar las opciones desde el formulario de configuración de Microsoft Visual Studio 2008.

 

Saludos @ Home

El Bruno

 

 

 

 

 

 

 

 

 

 

 

 

 

Share this post :
Crossposting from ElBruno.com

 

Buenas,

hace unos meses expliqué cómo desbloquear archivos tomados por otra persona en TFS utilizando sentencias de lineas de comandos. Si bien esta solución es viable, puede ser un poco tediosa cuando tienes que realizar muchas acciones de este tipo.

Por suerte nuestros amigos de Attrice, proveen de forma gratuita uno de los mejores complementos para Team Foundation Server: Team Foundation Sidekicks, y utilizando esta herramienta podemos realizar esta tarea de una manera mucho más fácil.

Por ejemplo, podemos seleccionar un Team Project y dentro del mismo, ver el estado de los archivos que tiene tomados cada integrante del equipo en un determinado rango de fechas:

 

Con este filtro aplicado podemos verificar el estado de los archivos dentro del Team Project y de sus directorios:

 

Finalmente, utilizando la Toolbar de la herramienta, podemos realizar un “Undo” de los archivos tomados, para liberar los mismos

 

Simple y fácil, como usualmente me gusta cuando puedo elegir.

 

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com

Buenas,

existen varias formas de averiguar el tamaño de una base de datos. Lo podemos hacer sumando datos con algún query contra los datos de sistema, visualizando las propiedades de la misma o sino de la siguiente manera; que para cerrar un viernes siempre bien por 2 motivos:

  • se necesitan 2 clicks
  • el resultado es gráfico y muy detallado

Simplemente debes seleccionar la base de datos, desplegar el menú contextual sobre la misma y seleccionar la opción Reports // Standard Reports // Disk Usage. Y si una imagen vale más que mil palabras, aquí dejo el equivalente a más de 2000:

 

 

Si quieres conocer un poco más de información al respecto de los informes a los que puedes acceder desde SSMS; puedes echarle un vistazo a http://blogs.msdn.com/buckwoody/archive/tags/Standard+Reports/default.aspx

 

Saludos @ Home

El Bruno

Share this post :
Crossposting from ElBruno.com
Publicado 20/6/2008 21:32 por El Bruno | 1 comment(s)
Archivado en:

 

Buenas,

casi siempre me olvido que soy una persona con una suerte particular, dicho de otra manera, en algunos momentos cuando creo que no puedo estar peor; la realidad me demuestra lo contrario.

El pasado martes, antes de comenzar el webcast de Software Factories, el metro de Madrid me jugó una mala pasada, luego cuando estaba subiendo mi presentación a Live Meeting, vi que la misma tardó mucho más de lo pensado (Technical Tip: comprendí que antes de subir exporta la presentación de formato pptx a ppt, lo que influye en el tamaño del archivo) Luego en el webcast mi portatil comenzó a hacer cosas extrañas; desconectando el sonido aleatoriamente. Por suerte, pude terminar el evento y pensé que todo había acadabo; me cito textualmente del post donde comparto los materiales del evento:

(algo muy malo debe estar por suceder, porque si en una demo funciona todo, mañana cae un Tsumani en Madrid)

El día siguiente no cayó un Tsunami en Madrid, pero paso lo siguiente:

participaba en un evento donde hablaba un poco de las virtudes de Visual Studio Team System, principalmente enfocado a la gestión del ciclo de vida de las aplicaciones. 5 minutos antes de comenzar mi presentación puse mi portátil Dell en modo Hibernar y hasta hace unos minutos no lo he podido resucitar, murió de una manera extraña. Por suerte la garantía que contrata Avanade es completa, con lo que 36 hrs después un técnico de Dell, solucionó el problema de la forma más simple “cambio procesador y placa base” y por lo que vi que traía, creo que sólo me dejaba el disco si se lo pedía.

Pero bueno, volviendo al tema de la presentación tuve que improvisar y pedir otro portátil prestado para ejecutar las demos. A mis máquinas virtuales las tengo en 2 discos USB externos, pero por cuestiones de RAM, tuve que trabajar con una maquina virtual con todo el paquete de Visual Studio Team System con solo 1 GB de RAM. Esto ocasionó que la demo sea un poco más lenta, pero tambíén hizo que al final de la misma, surgiera un tema que más que interesante (y por fin he llegado al título de este post !!!)

¿Es posible gestionar equipos de desarrollo Java con Team Foundation Server 2008?

La respuesta es SI. Pero vamos a matizarla un poco, por lo general los equipos de desarrollo no quieren utilizar técnologías desconocias y muchos menos del enemigo; con lo que uno de los principales problemas es la resistencia al cambio.

Otro punto a tener en cuenta es que Team Foundation Server 2008 está pensado y optimizado para entornos de trabajo Microsoft, algunas tareas que son muy simples para entornos Microsoft, pueden ser más complejas para un entorno Java (por ejemplo, compilaciones automáticas, ejecución de pruebas unitarias, etc.)

Pero también debemos pensar que este “trabajo extra” necesario para implementar TFS + JAVA, tiene sus frutos ya que es muy similar al trabajo realizado actualmente y con todas las ventajas de Team System (informacion unificada, explotación de la misma, etc.)

La siguiente pregunta que surge después de comentar estos puntos es

¿existen referencias que demuestren que esto es posible?

La respuesta, una vez más es SI. Por un lado podemos leer este Case Study de Thomson Reuters, donde integran las siguientes herramientas: Eclipse, Team Foundation Server 2005 y Rapid Application Development para gestionar el ciclo de vida de sus aplicaciones.

Thomson Reuters is a leading source of intelligent information for businesses and professionals. Its Online Services group develops and maintains proprietary software that is critical to the business. The group’s 150 developers and testers worked on a variety of development frameworks, operating systems, and configuration management tools, which resulted in an “information black hole.” Looking for a way to improve transparency and collaboration, Online Services standardized on Microsoft® Visual Studio® 2005 Team Foundation Server and the Teamprise Client Suite. Regardless of the development framework or operating system, everyone shares a single, integrated source control system and collaboration server. Now, the team can better control code and processes and more accurately communicate with team members and customers.

http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000002078

Otro ejemplo puede ser Infragistics, empresa desarrolladora de componentes COM, .NET, Java, etc.; que después de conocer las virtudes de Visual Studio Team System han decidido incorporar Team Foundation Server 2008 como el componente central para la gestión de todos sus desarrollos, incluidos los de Java.

“We completely use Microsoft® Team Foundation Server (w/ TeamPrise) for the development of all of our products now.  This was especially challenging with bringing in our Java (JSF) development group into the same development process of our .NET product lines.  By leveraging the TeamPrise Eclipse plug-in and the ANT Team Build tasks, we were able to ensure they were using the exact same systems as the other departments in Engineering.  So the JSF team now has access to the same build, version control, work item tracking, and other internal automated software solutions that the rest of our company uses.  Visual Studio® Team System has really enabled us to solidify our internal ALM process, metrics gathering, and reduce overhead from supporting different systems across product teams.”

Ed Blankenship
Infragistics, Inc.
http://blogs.msdn.com/charles_sterling/archive/2008/05/15/infragistics-and-their-java-developers-loves-teamprise-and-tfs.aspx

Ahora simplemente me queda convencer a mi chica que trabaja con tecnologías oscuras que proponga la gestión de sus equipos de desarrollo con Visual Studio Team System.

 

Saludos

El Bruno

 

Share this post :
Crossposting from ElBruno.com

Buenas,

ha terminado el evento Software Factories: verdadero o falso. Fue mi primera experiencia <virtual> es lo que tiene esta edad y la verdad es que me lo pasé muy bien. Además salvo desconexiones esporádicas de mi audio cada 20 minutos, después de 2 horas todo lo demás salió bien: las demos correctas, la compilación e improvisación online tambien, etc. (algo muy malo debe estar por suceder, porque si en una demo funciona todo, mañana cae un Tsumani en Madrid)

Entre los detalles interesantes del evento, quiero destacar que después de hablarlo y sobre la marcha, decidimos sortear un par de premios en vivo, aprovechando las ventajas de las Domain Specific Language Tools; o dicho de otra manera: Bruno, currate algo con las DSLs para entregar un par de premios.

Como pueden ver en la imagen del post, la idea se cerró <online> con la creación de un dominio, que pretendía mostrar una colección de Presentadores y de Asistentes, y entre los asistentes algunos tenían premio.

Pues bien, una vez finalizado el evento, comparto con ustedes los materiales del mismo:

Nota: Gracias a Jorge, unos tips sobre las descargas: Son dos archivos zip, que una vez descomprimidos, generan dos ficheros sin extensión.Para extraer el contenido final, hay que renombrar esos ficheros a extensión .zip y volver a descomprimir.

 

Nos vemos en la próxima

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com

Buenas,

de la mano de la lista de VSTS, me entero de un interesante concurso. Mike Azocar, MVP de Team System MVP en Houston ha creado un concurso donde se evalua la creación del Gadget más cool para Visual Studio Team System. Parte del premio es una suscripcion a MSDN Team Suite para el ganador, aunque parece que regalarán algo mas, :D

Para participar es necesario postear un screen cast (de hasta 3 minutos de duración); tened cuidado, estos videos serán públicos y te harán famoso como un participante de Gran Hermano XXX.

El concurso cierra el 31 de Agosto del corriente año. El ganador será anunciado el 15 de Septiembre.

Más información http://www.michaelazocar.com/blog/?p=485

 

Saludos @ Marron

El Bruno

 

Share this post :
Crossposting from ElBruno.com

Buenas,

mientras trato de organizarme para comenzar la semana, veo que el gran Brian Peek ha liberado una versión actualizada, sin bugs o eso espero del clásico y popular WiiMoteLib.

La versión es la 1.5.2 e incluye entre otras cosas, soporte para la Wii Balanace Board; con lo que mi proyecto de coche controlado por sobrepeso estará online en unos días.

Para los interesados, el proyecto está actualizado en CodePlex en http://www.codeplex.com/WiimoteLib; y como dato de trivia, simplemente recordar que los binarios de WiiMoteLib fueron la descarga más popular del 2007.

 

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Publicado 16/6/2008 0:41 por El Bruno | con no comments

Buenas,

el siguiente post describe como realizar una acción muy simple, pero que brinda un valor agregado visual muy importante a nuestros modelos visuales. Se trata de agregar una descripcion en los links o conectores entre los diferentes elementos de un diagrama.

Si partimos de un proyecto de Domain Specific Language Tools con el template Minimal Language, los siguientes pasos permiten agregar una descripción:

 

1. Seleccionar la Domain RelationshipExampleElementReferencesTargets”, y agregar una nueva propiedad a la misma llamada Description del tipo String.

2. En la sección de elementos visuales, seleccionar el conector “ExampleConnector” y agregar un nuevo Text Decorator llamado Description.

3. Seleccionar el conector entre la Domain Relationship y el Conector; y visualizar el panel DSL Details. (View // Other Windows // DSL Details)

4. Dentro del mismo seleccionar la pesaña Decorator Maps y conectar la Domain Relationship y el Conector.

5. Transformar todos los templates y ejecutar la aplicacion de Debug.

6. Abrir el elemento Sample.dsl03 y seleccionar la conexion entre los elementos.

7. En la ventana de propiedades, modificar el valor de la propiedad Description; y visualizar la misma en el diagrama,

 

Pueden bajar un proyecto de ejemplo desde http://geeks.ms/files/folders/elbruno/entry88795.aspx

 

Saludos @ Here

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Publicado 13/6/2008 12:51 por El Bruno | con no comments
Archivado en: ,

Buenas,

podría comenzar el post ganándome enemigos, ya que argumentos Developers vs ITPros, tengo muchos; pero en este caso nuestros amigos de TechNet se merecen todo mi respeto (en realidad no todo, gran parte se lo lleva el creador de esto).

Volviendo a TechNet, hace unos días se ha publicado el siguiente whitepaper

Using Visual Studio 2008 to Improve Software Development
http://technet.microsoft.com/en-us/library/cc646309(TechNet.10).aspx

y lo que lo hace tan especial, según mi punto de vista es que:

  • se mencionan los números reales que maneja Microsoft con VSTS
  • se trata la evolucion de entornos basados en VSS a VSTS
  • se mencionan especificaciones técnicas de los servidores reales de TFS
  • etc.

Si te interesa Visual Studio Team System te recomiendo bajarse el documento (23 páginas) y tomarse 15 minutos para leerlo a fondo.

 

Saludos recién llegado de Barcelona

El Bruno

Share this post :
Crossposting from ElBruno.com

Buenas,

la semana entrante estaré virtualmente hablando de Software Factories, Domain Specific Language Tools, GAT, GAX, el triunfo de España sobre Rusia, etc. en un evento virtual: Software Factories; ¿true or false?.

Como el tema es bastante denso, los amigos de Second Nug me han propuesto sortear y regalar algunas cosas interesantes durante el evento (suscripciones MSDN, autógrafos míos en servilletas de papel, etc.) con lo que para la gente que se apunte y se quede hasta el final, tal vez exista una sorpresa.

Nuevamente dejo los detalles del evento:

Descripción: El próximo 17 de Junio "el Bruno" MVP remata en Second Nug el mes dedicado a Visual Studio 2008 con un evento de alto nivel.

Mucho se ha escrito sobre Software Factories, sobre conceptos para la industrialización del proceso de desarrollo y sobre otros temas que sirven para marear a la gente. Es por eso que el siguiente paso, que es llevar esta teoría a un escenario real, es mucho más complejo de lo que parece.

Visual Studio Team System, es una herramienta que gracias a un modelo muy flexible permite solucionar numerosos problemas que plantea la teoría; sin embargo hasta la llegada de "Rosario" todavía queda mucho por explorar.

En esta sesión veremos parte de las capacidades de extensión VSTS, y algunos ejemplos sobre como traer a la realidad los conceptos básicos para la creación de activos para las Software Factories.

Nivel: 300 ó + (vamos a darle caña a Visual Studio)

El evento será entra las 19:30 y las  21:30 (GMT+2), y como en anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting.

Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace

Podéis registraros en el evento en el siguiente enlace

 

Saludos @ Marron

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Publicado 11/6/2008 14:39 por El Bruno | 5 comment(s)
Archivado en:

Buenas,

desde que mi amigo Edu me volvió a presentar a ReSharper, un par de años después, se ha convertido en una herramienta IMPRESCINDIBLE en mi día a día como developer. Luego además, gracias al amigo Luis, supe que podía conseguir una licencia por ser MVP y desde allí no lo abandoné más. Desde hace un tiempo se está preparando una nueva versión adaptada a Microsoft Visual Studio 2008 y a .Net Framework 3.5; y por suerte, hoy ha sido liberada oficialmente.

Una vez más, les aconsejo a quienes no lo han utilizado que se descarguen el trial y lo prueben, verán que la agilidad que brinda para un desarrollador es increible; aunque tened cuidado, consume memoria de una forma interesante.

Y si alguien quiere ver las novedades de esta nueva versión puede darse una vuelta por http://www.jetbrains.com/resharper/features/newfeatures.html?40nl

 

Saludos @ Home

El Bruno

Share this post :
Crossposting from ElBruno.com
Publicado 10/6/2008 23:16 por El Bruno | 2 comment(s)
Archivado en:

Buenas,

entre los detalles interesantes que nos podemos encontrar al momento de migrar un servidor de Team Foundation, siempre está el interesante caso de no poder procesar los cubos del mismo. Hoy me encontré con este problema, y me puse a investigar un poco al respecto.

Después de un par de pruebas, cuando llegué a Analysis Services y traté de procesar los datos del cubo a mano, me encontré con el siguiente error y supe que el problema no era de los “lindos”:

 

The member '[6/1/2008]' was not found in the cube when the string, [Date].[Week].[Week].[6/1/2008], was parsed.

Como muestra la imagen anterior todos los mensajes de error, se producían al momento de tratar de procesar la Measure <Work Item History> del cubo Team System.

Después de investigar un poco el porqué de este error, me encontré con que en varios de los diferentes usuarios que se utilizan para instalar y configurar Team Foundation Server 2008, existían diferentes configuraciones regionales … (en otras palabras, en algunos de estos usuarios las fechas se procesaban MM/DD/YYYY y en otros con DD/MM/YYYY)

Tras varios intentos fallidos por unificar la información en todas las bases de datos de TFS, en cada uno de los perfiles de usuarios, y en los servidores en general (aquí un ejemplo); y cuando estaba a punto de abandonar todo para irme a tomar unas cervezas pedir ayuda en las comunidades; recordé que como buen informático siempre tengo la opción de borrar la definición completa del cubo Team System y recrearla manualmente.

Para esto realicé una pequeña búsqueda y llegué a la excelente herramienta de comandos: SetupWareHouse. A continuación dejo el enlace a la documentación para las versiones 2005 y 2008:

Pues bien la solución al error consistió en eliminar la base de datos TFSWarehouse de Analysis Services y ejecutar la siguiente linea de comandos. De esta forma el cubo se creó nuevamente y los datos del mismo se procesaron correctamente:

setupwarehouse -rebuild -mturl http://TFSServer:8080 -s TFSServer -d TFSWarehouse -c wareHouseSchema.xml -a TFSService -ra TFSReports -edt TfsBuild

En la sentencia hay que tener especial atención con los parámetros:

  • TFSServer: representa el nombre del servidor TFS
  • TFSWarehouse: representa el nombre de la base de datos de Datawarehouse de TFS
  • TFSService: el nombre de la cuenta de servicio, por lo general TFSService
  • TFSReports: el nombre de la cuenta utilizada para los informes, por lo general TFSReports

 

Saludos @ Marron

El Bruno

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Share this post :
Crossposting from ElBruno.com

Buenas,

aunque parezca un detalle de poca importancia, siempre trato de mantener el nick de mi dirección de Messenger actualizado con la ubicación o tarea que estoy realizando. De esta forma

  • El Bruno @ Barcelona, significa que estoy de viaje en la ciudad condal
  • El Bruno @ La Finca, significa que estoy en las oficinas de Avanade Madrid
  • El Bruno @ Marron, significa que estoy con un marron entre manos
  • El Bruno @ …

Hace unos días cuando comencé a actualizar un servidor a Team Foundation Server 2008 cambié mi nick a El Bruno @ upgrading to TFS 2008, y como ahora en Avanade Global hemos implantado OCS, la lista global de los 6000 empleados podía estar al tanto de mi situación.

Una de las preguntas que me hicieron desde la oficina de Australia, estaba relacionada con el paso en la actualización a Team Foundation Server 2008 que muestro en la imagen a la derecha.

Durante el proceso de actualización, no solo se actualizan los componentes de Team Foundation, sino que se aplican diferentes cambios a las bases de datos de TFS y se actualiza la estructura de la misma.

Mis amigos australianos, me comentaban que en su caso, este proceso tardaba más de 15 minutos y que como no progresaba, cancelaban la actualización.

Me pareció extraño que en la tierra de Cocodrilo Dundee y los Koalas nadie les comentase que este tiempo depende del tamaño de la base de datos de TFS y de la capacidad de procesamiento del servidor (además del espacio en disco, truncado de los logs, etc.)

Por ejemplo, en mi caso el viernes pasado la migración de una base de datos de poco más de 1GB en un servidor con 2 GB de RAM y bastante espacio en disco, tardó aproximadamente 20 minutos. Si además tenemos en cuenta que otro paso importante de la migración esta en el trabajo con las bases de datos de DataWarehouse de TFS, este tiempo puede ser superior y mucho !!!.

Es por esto estimado lector que si te encuentras en el proceso de migración y el trabajo con la base de datos se toma su tiempo, tómate tu también un poco de tiempo y juega una partida al Mario Kart o destruye ciudades con Halo 3, hasta que Team Foundation Server 2008 quede instalado correctamente (todos queremos ver esta imagen !!!)

 

Saludos @ Home

El Bruno

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PD1: no penseís mal de nuestros amigos del sur, su histórico era una DB con un tamaño superior a 4GB en un servidor bastante “flojito”

PD2: algunos le pensareís que esta gente piensa así por estar en hemisferio sur donde el agua del vater gira en sentido contrario, pues bien, yo que vengo de esa zona les comento que eso es una mentira.

 

 

 

 

 

Share this post :
Crossposting from ElBruno.com

Buenas,

obviamente que si quieres actualizar tu servidor Team Foundation Server 2005 a una versión superior Team Foundation Server 2008, lo mejor que se puede hacer es descargar y revisar el documento de instalación oficial de Team Foundation Server:

Sin embargo, después de muchas instalaciones y actualizaciones un par de anotaciones en la pizarra, en una forma un poco <no formal> siempre ayudan y dan el mismo resultado.

Es por eso que a partir de ahora, y siempre que no comprometa información confidencial trataré de compartir algunos apuntes, diagramas, esbozos, etc. que se plasman en las pizarras como contenido de los posts.

 

Saludos @ Home

El Bruno

PD1: no hace falta que repita que recomiendo la guía oficial de TFS

PD2: ¿en tu equipo en las reuniones/debates utilizan una pizarra? deberían !!!

 

Share this post :
Crossposting from ElBruno.com

Buenas

muchos conocen mi opinión con respecto al “título” de arquitecto, y lo sobrevalorado que está en estos días (es muy fácil cambiar la autofirma de los mails y autoproclamarse <Arquitecto de Soluciones de Software>, aunque claro la mayoria de estos arquitectos sólo saben diseñar rascacielos horizontales).

Sin embargo, este rol o disciplina dentro del ciclo de vida del desarrollo de sofware juega un papel muy importante y si alguna vez alguien decide o le toca orientarse a esta rama, los siguientes webcasts seguro que le serán de utilidad:

 

 

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Publicado 5/6/2008 21:58 por El Bruno | 3 comment(s)
Archivado en:

Buenas

después de jugar un poco con el IDE de Visual Studio, y de hacer un par de cosillas que no creo que estén 100% soportadas con el SDK de Microsoft Visual Studio 2008; me encontré con el siguiente error:

En pocas palabras, los componentes COM que se utilizan para mostrar las propiedades de objetos .Net (en este caso un Proyecto) habían fallado.

Asumiendo que en el fabuloso mundo de COM, simplemente con reiniciar la instancia de Microsoft Visual Studio 2008 el problema se solucionaría, me encontré con que el error sigue estando allí para todos los proyectos.

Asi que primero opté por la solución de libro que consiste en desde la línea de comando lanzar un “clean up” del IDE de Visual Studio

devenv /resetsettings

devenv /resetuserdata

Pero lamentablemente, esta opción no funcionó. Asi que pasamos al 2do plan que consiste en reinstalar Microsoft Visual Studio 2008. Como casi siempre, después de unos 5 minutos largos y de un repair, el problema se soluciona.

La conclusión es que si esto me pasa un jueves antes de un despliegue, no quiero pensar lo que puede suceder el viernes :D

 

Saludos @ Marron

El Bruno

Share this post :
Crossposting from ElBruno.com

Buenas,

una opción interesante durante el desarrollo de aplicaciones con las Domain Specific Language Tools es la capacidad de definir propiedades a las entidades que representan objetos del .Net Framework o sus derivados. Por defecto la lista de opciones que traen predefinidas las Domain Specific Language Tools son las básicas de .Net, pero si quieres agregar una propiedad personalizada puedes seguir los siguientes pasos.

En el siguiente ejemplo demostraré como es posible agregar una propiedad de tipo imagen en un diagrama DSL:

  1. En el panel DSL Explorer agregamos un nuevo elemento del tipo External Type


  2. Completamos las propiedades del nuevo Type con los siguientes valores
    1. Name: Image
    2. Namespace: System.Drawing


  3. En el editor DSL agregamos una propiedad a un elemento, en este caso llamada CustomImage


  4. Con la nueva propiedad seleccionada, en las propiedades de la misma, seleccionamos Image como valor para Type


  5. Generamos el codigo con la opción Transform All Template y ejecutamos el proyecto para probar el DSL en modo Debug
  6. En el proyecto Debugging, cuando agregamos un nuevo elemento podremos ver en las propiedades del mismo que la propiedad CustomImage permite la selección y tratamiendo de una imagen

 

El código fuente del proyecto se puede descargar desde http://geeks.ms/files/folders/elbruno/entry87878.aspx

 

Saludos @ Marron

El Bruno

 

Share this post :
Crossposting from ElBruno.com

Buenas,

se que hablar de controles WinForms, es ser un poco prehistórico; pero lamentablemente todavía existen entornos que deben ser tratados con WinForms. Es en estos casos cuando hecho de menos el poder trabajar con alguna suite de controles que RESUELVA los problemas comunes que tienen los controles .Net. En este caso le ha tocado al control ProgressBar de Toolstrip (que implementa internamente una ProgressBar).

Si trabajas con aplicaciones windows complejas (no estoy hablando del clásico problema de la cruz roja, sino simplemente aplicaciones multihilo); es necesario implementar SIEMPRE las siguientes líneas de código para que la ProgressBar funcione correctamente. Es cierto que el código es bastante simple (80 líneas), pero por eso mismo me hubiese gustado ahorrarmelas (ojo que tal vez se me escapa algo y no lo se ...)

Datos interesantes a remarcar:

  • Línea 11: utilizo un Timer para hacer un bucle continuo de progreso al estilo cylon
  • Líneas 28 y 41: creo 2 métodos públicos Start() y Stop() para controlar el estado de la PB
  • Línea 65: dentro del tick del timer, verifico si es necesario un Invoke()

1 using System.Timers; 2 3 namespace ElBruno.Controls 4 { 5 /// <summary> 6 /// Implements a special progress bar with start and stop messages inside, 7 /// to perform a continuous loop for the progressbar 8 /// </summary> 9 public class ToolStripProgressBar : System.Windows.Forms.ToolStripProgressBar 10 { 11 internal Timer timProgres = new Timer(500); 12 delegate void delegateIncrementProgressBar(); 13 14 /// <summary> 15 /// Initializes a new instance of the <see cref="ToolStripProgressBar"/> class. 16 /// </summary> 17 public ToolStripProgressBar() 18 : base() 19 { 20 Visible = false; 21 timProgres.Elapsed += timProgres_Elapsed; 22 } 23 24 25 /// <summary> 26 /// Starts the progress bar. 27 /// </summary> 28 internal void StartProgressBar() 29 { 30 // change status of refresh button and enable progress bar 31 Visible = true; 32 33 // start refresh timer 34 timProgres.Enabled = true; 35 timProgres.Start(); 36 } 37 38 /// <summary> 39 /// Stops the progress bar. 40 /// </summary> 41 internal void StopProgressBar() 42 { 43 // stop and clear timer 44 timProgres.Enabled = false; 45 timProgres.Stop(); 46 47 // hides the progress bar 48 Visible = false; 49 } 50 51 /// <summary> 52 /// Handles the Elapsed event of the timProgres control. 53 /// </summary> 54 /// <param name="sender">The source of the event.</param> 55 /// <param name="e">The <see cref="System.Timers.ElapsedEventArgs"/> instance containing the event data.</param> 56 void timProgres_Elapsed(object sender, ElapsedEventArgs e) 57 { 58 // validate 59 if (ProgressBar == null) 60 { 61 timProgres.Enabled = false; 62 return; 63 } 64 65 if (ProgressBar.InvokeRequired) 66 { 67 ProgressBar.Invoke(new delegateIncrementProgressBar(IncrementProgressBar)); 68 } 69 else 70 IncrementProgressBar(); 71 } 72 73 /// <summary> 74 /// Increments the progress bar. 75 /// </summary> 76 private void IncrementProgressBar() 77 { 78 if (ProgressBar.Value >= ProgressBar.Maximum) 79 ProgressBar.Value = ProgressBar.Minimum; 80 ProgressBar.PerformStep(); 81 } 82 } 83 }

Saludos @ Barcelona

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Publicado 4/6/2008 0:06 por El Bruno | 6 comment(s)
Archivado en:

Buenas,

después de una pequeña encuesta online donde comentaba que me gustaría participar en algún evento organizado con Live Meeting, para mi sorpresa mucha gente quiso conocer mi pequeña, limitada, escasa, nula experiencia sobre las Software Factories. Después de ver como podía organizar la charla aparecieron los los amigos de Second Nug y me ayudaron a organizarla para el 17 de Junio. A continuación los detalles del evento:

Descripción: El próximo 17 de Junio "el Bruno" MVP remata en Second Nug el mes dedicado a Visual Studio 2008 con un evento de alto nivel.

Mucho se ha escrito sobre Software Factories, sobre conceptos para la industrialización del proceso de desarrollo y sobre otros temas que sirven para marear a la gente. Es por eso que el siguiente paso, que es llevar esta teoría a un escenario real, es mucho más complejo de lo que parece.

Visual Studio Team System, es una herramienta que gracias a un modelo muy flexible permite solucionar numerosos problemas que plantea la teoría; sin embargo hasta la llegada de "Rosario" todavía queda mucho por explorar.

En esta sesión veremos parte de las capacidades de extensión VSTS, y algunos ejemplos sobre como traer a la realidad los conceptos básicos para la creación de activos para las Software Factories.

Nivel: 300 ó + (vamos a darle caña a Visual Studio)

El evento será entra las 19:30 y las  21:30 (GMT+2), y como en anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting.

Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace

Podéis registraros en el evento en el siguiente enlace

 

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Más artículos Página siguiente >