February 2008 - Artículos

Buenas

menuda noticia para cerrar un viernes

We have recently discovered an issue with SQL Server 2008 CTPs that result in SQL Server 2008 not starting or installing on Feb 29 GMT only. We recommend that you do not run, install or upgrade this CTP on Feb 29 GMT to minimize any impact in your environment. You can install starting on March 1 GMT. If you have an immediate issue that cannot wait until march 1st GMT contact csskat@microsoft.com before taking any further steps.

 

Fuente: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2926500&SiteID=1

 

Saludos @ Marron

El Bruno

 

Share this post :
Crossposting from ElBruno.com

Buenas,

después de dos días intensos, ha terminado el evento de lanzamiento de Microsoft Visual Studio 2008, Windows Server 2008 y SQL Server 2008. La verdad es que este tipo de eventos, orientados a todo tipo de profesionales informáticos, sirve para ponerse al día con tecnologías que usualmente no tenemos la oportunidad de probar, ponerle cara a gente que sólo conocemos virtualmente y ver que la capacidad de organización de Microsoft para este tipo de eventos es impresionante.

Además de encontrarse con compañeros de trabajo, con amigos, compartir una cerveza y obviamente hablar un poco de Visual Studio Team System; tuve la oportunidad de estar con Luis Fraile y con Rodrigo Corral hablando un poco de ALM {Application Lifecycle Managment}.

No puedo negar que la charla fue interesante. Además después de la sesión mucha gente se mostró interesada en mejorar un poco la forma en la que trabajan en sus organizaciones, tratamos temas como:

No puedo escribir todas las temáticas de los temas que hablamos sobre ALM, porque no me daría lugar el post. Sin embargo quiero destacar que si bien lo mejor fue poder ver de cerca a esta señorita, me decepcionó un poco Steve Ballmer en su presentación. Ojo no me malinterpretes, no quiero decir que la presentación estuviese mal, pero después del clásico Developers Developers Developers, esperaba verlo salir pateando sillas, con un bate de beisbol tumbando pingüinos de plástico y zorritos de juguete. Pero no, esta vez estuvo un poco más controlado e hizo una "presentación" al estilo de el ex-jefe tal vez el principio del fin.

Volviendo un poco al tema ALM y para aquellas personas que me han pedido las presentaciones, desde estas direcciones pueden descargar las mismas:

 

Saludos @ Home

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

mientras preparo parte de los materiales para el evento de Lanzamiento de Visual Studio 2008, y empiezo a despedazar partesd e los proyectos de Domain Specific Language Tools para montarlos en una maquina virtual, me encuentro con el siguiente error:

c:\Program Files\Visual Studio 2005 SDK\2005.10\VisualStudioIntegration\Tools\bin\ctc.exe CtcComponents\CustomCmd.ctc obj\Debug\CustomCmd.cto /I"C:\Program Files\Microsoft DSL Tools\inc" /I"c:\Program Files\Visual Studio 2005 SDK\2005.10\VisualStudioIntegration\Common\inc" /I"c:\Program Files\Visual Studio 2005 SDK\2005.10\VisualStudioIntegration\Common\inc\office10" CTC : fatal error CTC2013: Can't start preprocessor (2) CTC : fatal error CTC2013: Can't start preprocessor (2)

Me llama la atención lo de no poder iniciar el preprocesador para la compilación de archivos CTCs, asi que recurro a mis más bajos instintos y llego a la cutre conclusión de que para proyectos de Domain Specific Language Tools con C# es necesario tener instalado C++ en Visual Studio para poder compilarlos.

Una vez que lo pienso y me doy cuenta de que es una idea absurda (pero es la unica solución que encuentro) comienzo a indagar un poco en Internet y me encuentro con que efectivamente, esto es cierto.

Hi knarf,
This is a known issue with the DSL Tools.
In order for the CTC compiler to work correctly it is required that you have have the Visual C++ coponents of Visual Studio installed even though the solution only uses Visual C# projects.
This is because the current CTC compiler uses the C++ preprocessor.
Please can you check that you have Visual C++ installed as part of your Visual Studio installation.
We're hoping to remove this restriction for our V1 release.

Fuente: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=120416&wa=wsignin1.0

Lo mas interesante de este [error] es que fué reportado hace 2 años, para la versión 1.0 de las Domain Specific Language Tools y hoy 2 años después, en la versión 4.0, todavía arrastramos ese error.

Me he quedado partido al medio :S

 

Saludos @ Home

{El Bruno}

PD: es la 2da vez que escribo el post, porque en la primera seguramente ofendía a alguien.

 

Share this post :
Crossposting from ElBruno.com

Buenas,

después de todo lo que he escrito sobre las Domain Specific Language Tools, no puedo dejar de mencionar estos 2 excelentes videos:

  • How Do I: Create and Customize My Domain Specific Language?
    In this video, Dylan Miles, shows you how to create and customize your own Domain Specific Language using Visual Studio DSL Tools. He shows you the basics of creating your own domain classes, changing the visual properties of shapes as well as adding your own custom properties.
    Presented by Dylan Miles http://www.alchemysoftware.co.za on February 19, 2008
    Length: 22 minutes 10 seconds
  • How Do I: Use Advanced Customization?
    Learn how to override functionality in the generated code of your Domain Specific Language. Dylan Miles explains how using a custom constructor, custom storage for your shape and domain classes as well as hooking events to your shape classes.
    Presented by Dylan Miles http://www.alchemysoftware.co.za on February 12, 2008
    Length:26 minutes 8 seconds

Si alguien quiere comprender un poco las capacidades de las Domain Specific Language Tools, el primer video realmente es bastante simple y explica los conceptos básicos de las Domain Specific Language Tools paso a paso.

A ver cuando los chicos de España, comenzamos a organizar y crear estos tipos de Videos en español, porque realmente 25 min de video valen más que 100 posts.

 

Saludos @ Home

{El Bruno}

Share this post :
Crossposting from ElBruno.com

Buenas,

mientras siguen los preparativos para el mega evento de lanzamiento Microsoft Visual Studio 2008, me encuentro con una referencia al link del SDK de Team Foundation Server 2008 dentro de MSDN.

Esto no es una novedad, pero si tenemos en cuenta que el SDK de Team Foundation Server 2008 no se puede encontrar como un producto aislado que yo sepa, sino que es parte del SDK de Microsoft Visual Studio 2008, me llama la atención que todavía no lo separen.

Pues bien, si alguien desea echarle un vistazo, simplemente debe pasarse por el siguiente link http://msdn2.microsoft.com/en-us/library/bb130146(VS.80).aspx

 

Saludos @ Home

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

nuestros amigos de Seattle, han liberado otro set de Power Tools, pero esta vez orientado a los desarrollos con Visual Studio Tools for Office. Dentro del mismo podemos encontrar las siguientes herramientas:

Tool

Description

Type of Tool

Open XML Package Editor

A graphical treeview-based editor for examining and editing Open XML Package files (including Word, Excel and PowerPoint documents).

Add-in to Visual Studio.

Ribbon IDs ToolWindow

A custom tool window that displays all re-usable built-in Office Ribbon IDs.

Add-in to Visual Studio.

Office Custom UI Manager

A set of classes for coordinating multiple instances of Ribbon, custom task pane, and custom form region objects.

Runtime class library source code.

Office Interop API Extensions

A set of C# classes for handling parameterized properties  and optional/named parameters, as well as for LINQ-enabling Office collection objects.

Runtime class library.

SharePoint Feature Sweeper

A GUI tool that cleans up unwanted SharePoint features from the developer's environment.

Standalone Windows Forms application.

SharePoint Workflow Package Generator

A tool to package a SharePoint workflow project so that it can be deployed.

Console application.

VSTO/VSTA Pipeline Verifier

A GUI tool that reflects over custom pipeline assemblies to validate the complete VSTA pipeline.

Standalone Windows Forms application.

VSTO Developer Cleaner

A GUI tool that removes leftover build artifacts from the developer's computer.

Standalone Windows Forms application.

VSTO Troubleshooter

A diagnostic tool that examines a computer for the necessary pre-requisites for running VSTO solutions.

Standalone Windows Forms application.

Curiosa es la primera del listado que permite desde Microsoft Visual Studio 2008 abrir documentos Office Open XML y ver la estructura interna de los mismos. Analizando un poco este modelo, vemos que tira de las tripas de las Domain Specific Language Tools para la registración y activación desde el IDE y algunas cosillas más para la integración.

Por ejemplo, este es un documento Word2007 abierto con Microsoft Visual Studio 2008 utilizando Open XML Package Editor

Cabe remarcar que como el Add-In está montado sobre el SDK para Office Open XML que provee de forma gratuita Microsoft; las acciones que podremos hacer sobre el mismo son bastante pobres. Todavía no existe un SDK completo que permita crear documentos Microsoft Office 2007 completamente utilizando (salvo que alguien utilice el modelo de objetos de Word 2007 o escriba todos los archivos Xml a mano y luego los empaquete).

Las demás Tools prometen, especialmente Office Custom UI Manager.

 

Descarga: http://www.microsoft.com/downloads/details.aspx?FamilyId=46B6BF86-E35D-4870-B214-4D7B72B02BF9&displaylang=en

Fuente: http://blogs.msdn.com/andreww/archive/2008/02/21/vsto-vsta-power-tools-v1-0.aspx

 

Saludos @ Home

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

desde hace varios años utilizo una herramienta que realmente me ahorra segundos valiosos al momento de escribir código. Se trata de Smart Paster, un add-in para Visual Studio que permite una forma "inteligente" de pegar texto dentro de Visual Studio.

Por ejemplo supongamos que posees el siguiente texto en el portapapeles

<?xml version="1.0" encoding="utf-8"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings" Target="webSettings.xml" Id="rId3" /> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings" Target="settings.xml" Id="rId2" /> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml" Id="rId1" /> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml" Id="rId5" /> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable" Target="fontTable.xml" Id="rId4" /> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="/media/image.png" Id="Rf09a420a753d439e" /> </Relationships>

Desde Visual Studio, simplemente con un RightClick

 

se convertirá en un string, creado con un StringBuilder:

StringBuilder myStringBuilder = new StringBuilder(977); myStringBuilder.AppendFormat(@"<?xml version=""1.0"" encoding=""utf-8""?>{0}", Environment.NewLine); myStringBuilder.AppendFormat(@"<Relationships xmlns=""http://schemas.openxmlformats.org/package/2006/relationships"">{0}", Environment.NewLine); myStringBuilder.AppendFormat(@" <Relationship "); myStringBuilder.AppendFormat(@"Type=""http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings"" "); myStringBuilder.AppendFormat(@"Target=""webSettings.xml"" Id=""rId3"" />{0}", Environment.NewLine); myStringBuilder.AppendFormat(@" <Relationship "); myStringBuilder.AppendFormat(@"Type=""http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings"" "); myStringBuilder.AppendFormat(@"Target=""settings.xml"" Id=""rId2"" />{0}", Environment.NewLine); myStringBuilder.AppendFormat(@" <Relationship Type=""http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"" "); myStringBuilder.AppendFormat(@"Target=""styles.xml"" Id=""rId1"" />{0}", Environment.NewLine); myStringBuilder.AppendFormat(@" <Relationship Type=""http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"" "); myStringBuilder.AppendFormat(@"Target=""theme/theme1.xml"" Id=""rId5"" />{0}", Environment.NewLine); myStringBuilder.AppendFormat(@" <Relationship "); myStringBuilder.AppendFormat(@"Type=""http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable"" "); myStringBuilder.AppendFormat(@"Target=""fontTable.xml"" Id=""rId4"" />{0}", Environment.NewLine); myStringBuilder.AppendFormat(@" <Relationship Type=""http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"" "); myStringBuilder.AppendFormat(@"Target=""/media/image.png"" Id=""Rf09a420a753d439e"" />{0}", Environment.NewLine); myStringBuilder.AppendFormat(@"</Relationships>");

 

Está disponible para las siguientes versiones de Visual Studio

 

Saludos @ La Finca

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

un caso bastante común que suele darse cuando cambias a Visual Studio Team System, es que Visual Studio no esté configurado correctamente para trabajar con Team Foundation Server. Muchas personas suelen pensar que es un problema en la asignación de permisos, pero puede ser algo mucho más simple.

 

Visual Studio 2005

La siguiente imagen, muestra este escenario en Visual Studio 2005:

 

Si analizamos un poco más la imagen, veremos que no están las opciones para descargar código fuente y además no tenemos la opción de gestionar los Workspaces. La solución a este problema es cambiar la configuración de Visual Studio para que el mismo trabaje con el gestor de fuentes de Team Foundation Server. Para esto seguiremos los siguientes pasos

1. Menú Tools / Options

2. Dentro del formulario de opciones seleccionamos el nodo Source Control // Plug-In Selection

3. Seleccionamos Visual Studio Team Foundation Server

De esta forma, podremos comenzar a trabajar con Team Foundation Server.

 

Visual Studio 2008

En Microsoft Visual Studio 2008 ya no pensaremos que es un problema de permisos.

El IDE muestra claramente cual es el error

Detalle pequeño, pero interesante ¿no?

 

Saludos @ La Finca

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

hace un par de días recibí una news donde comentaban que se había actualizado el sitio oficial de Visual Studio Team System 2008 Team Suite. Cómo VSTS es lo que me da de comer y algunas indigestiones tambíen me propuse entrar y ver que tenía de nuevo. En aproximadamente 10 minutos, encontré cosillas repetidas, links a herramientas de 2005, etc.; y cómo soy un tocapelotas de campeonato una persona comprometida, reporté algunos de estos errores.

Hoy veo en el blog de Charlie, que los mismos han sido reportados por varias personas y que están en proceso de ser fixeados solucionados !!!

Vamos que si alguien quiere reportar un error, o proponer algo para mejorar el site, es momento de pasar por http://blogs.msdn.com/charles_sterling/archive/2008/02/19/team-system-website-on-msdn-i-am-working-on-it.aspx y dejar algún comentario macabro

 

Saludos @ La Finca

{El Bruno}

Share this post :
Crossposting from ElBruno.com

Buenas,

he de confesar que todavía no he tenido el placer de jugar al Guitar Hero. Tal vez sea porque tengo una Gibson Les Paul y claro, si tengo que elegir entre una guitarra de juguete con un par de botones y un Marshall a todo volumen donde suene algun riff de Slash, me quedo con la segunda opción.

Sin embargo, mientras sigo disfrutando de una sobredosis de espectáculo viendo el All-Star weekend; leo una noticia donde comentan que en la versión Guitar Hero™ III: Legends of Rock, durante un período limitado de tiempo, la gente podrá adquirir Dream On de Aerosmith desde Xbox LIVE® Marketplace (desde el 16 de Febrero hasta el 18 de Febrero aproximadamante).

He tratado de explicarle a Valentino, la importancia de conocer a Manu Ginobilli, a Lebron James o porque Kobe es Kobe; pero parece que todavía no entiende mucho de deporte, pero si reacciona frente a un buen punteo de guitarra. Es por esto que me parece que tendré que evaluar la compra del kit completo para el Guitar Hero y esperar que Valentino crezca un poco para poder hacer un dúo de aquellos y explicarle porque tenemos que darle las gracias a Joe Perry y a Steven Tyler (a este último también por Liv Tyler)

Pero esto no es todo, para tentarme un poco más hay en marcha una versión especial de Guitar Hero para AeroSmith, llamada Guitar Hero: Aerosmith.

 

 

Saludos @ Home

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

hace unos días, algunos compañeros del trabajo me preguntaban sobre la posibilidad de restringir ciertas capacidades en el cliente de Team Foundation Server 2008. El modelo de personalización que presenta Team Foundation Server 2008 es muy potente y permite muchas adaptaciones a los escenarios más comunes (aunque obviamente no a todos).

Mientras estaba dándole vueltas a éste tema, me encontré con algunas características del Team System Web Access que también pueden servir para éste propósito. Por ejemplo, si queremos que un usuario o un grupo de usuarios, cuando accedan a la interfaz web de Team Foundation Server, no tengan acceso a todas las pestañas existentes, podemos realizar esta configuración con 4 simples pasos:

1. Ingresar en Team System Web Access

2. Seleccionar el proyecto sobre el que queremos trabajar (el usuario con el que accedemos debe ser administrador del proyecto).

3. Seleccionar el menú Settings // Team Project // Access Restrictions.

 

4. Definir las políticas de acceso para el usuario o los grupos de usuarios.

 

Las opciones que tenemos para configurar permiten restringir el acceso a:

  • La pestaña de Informes
  • La pestaña de Documentos
  • La pestaña de control de código fuente
  • La pestaña de Compilación

Si pensamos en un entorno de utilización 100% web, este tipo de control realmente es muy útil; y demuestra una vez más lo bien pensado y orientado a usuarios que está Team System Web Access.

 

Saludos @ Home

{El Bruno}

Share this post :
Crossposting from ElBruno.com

Buenas,

interesante conjunto de mejoras para la version para Profesionales de Bases de Datos en Microsoft Visual Studio 2008. Se trata de las Power Tools que además de las características que ya agregaban al perfil en Visual Studio 2005, nos ofrecen las siguientes features:

  • Ejecución de análisis de código estático a través de MSBuild en la línea de comandos. Imperdible, una de las características más requeridas y más prácticas !!!
  • Asistente para la generación de datos (Data Generation Plan). Este asistente permite crear un nuevo plan para la generación de datos plan tomando como origen una base de datos existente. El plan se configurará automáticamente para extraer todos los datos de la base de datos.
  • Generador de datos basado en archivos planos; esto permite insertar el contenido de archivos de texto en la base de datos (archivos con formatos de cadena y binario, XML todavía no)
  • Generador de datos para XML basados en un esquema XSD
  • Capacidades de refactoring desde la línea de comandos. Utilizando esta features es posible que una tarea de MSBuild automatice los cambios en un proyecto de DB, para escenarios de pruebas o de despliegues.

Este nuevo set de herramientas se puede descargar desde

 

Saludos @ La Finca

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

Buenas,

cansado de los diferentes releases del Service Pack 1 de Vista, veo un interesante truquillo para instalar el mismo en mi laptop.

Estaba a punto de modificar mi registro, cuando veo en el Rss de las suscripciones de TechNet y MSDN que el SP1 ya está disponible para bajar desde:

Todavía no los veo disponibles en las descargas, pero seguro que será sólo cuestión de tiempo.

Y vamos que después del pedazo de regalo que me hizo mi chica por San Valentín y las sonrisas de Valentino; es el mejor regalo para terminar un día que ha comenzado pésimamente :D

 

Saludos @ La Finca

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com
Publicado 14/2/2008 19:20 por El Bruno | con no comments
Archivado en:

Buenas,

interesante cuestión que me planteó el amigo Ernesto, hoy durante el almuerzo. En estos días donde las empresas de informática se arrancan los ojos por un "recurso" (como les gusta llamarlos, yo en cambio prefiero llamarlos "amigos"), también se comienzan a plantear un escenario donde las personas que sienten pasión por la tecnología no se sientan cómodas.

Por lo general, este ambiente se crea con personas que no alcanzan a comprender la dinámica necesaria para que un proyecto se complete exitosamente. Éstas personas tampoco entienden que "sus recursos" no pueden ser tratados como simples piezas de un Lego; teniendo un poco de sentido común es imposible pensar que una persona puede salir de un proyecto y cuando entra su reemplazo, automáticamente se adapta al nuevo equipo, rinde al mismo nivel que su antecesor, etc. Sobre este tema y sus connotaciones no quiero entrar en detalle ya que Rodrigo, ha demostrado en más de una ocasión la invalidez de estos argumentos (gracias Rodrigo por escribir estos posts).

Pero quiero volver a mi pregunta inicial: ¿es necesario contar dentro de un equipo de desarrollo con un tech-friki? Mi respuesta es SI y asumiendo que todos entendemos y conocemos a un tech-friki enumeraré 4 motivos por los que este tipo de personas es necesario:

  • No conozco ningún proyecto, donde no exista un problema técnico que resolver; por lo general los tech-frikies son las personas que más rápido llegan a una solución; ya que constantemente están en contacto con las novedades y con los canales más fluidos de la tecnología.
  • Los tech-frikies usualmente se mueven por pasión a la tecnología. Cuando realmente están motivados frente a un desafío tecnológico, suelen ser las personas que más se involucran en un proyecto y las que más disfrutan solucionando el mismo.
  • Son buena gente. Muchas personas piensan en esta gente como unos ermitaños, que sólo viven pensando en unos y ceros, pero por lo general, suelen ser excelentes personas con muchas más actividades fuera de la informática que el resto de las personas.
  • No carecen de sentido común (que en por lo veo en mi día a día con la gestión de proyectos, suele ser el menos común de los sentidos)

Obviamente existen más motivos, pero no tengo ganas de escribir tanto. Y cómo siempre, dentro de un buen equipo este perfil de personas, es uno de los muchos que nos podemos encontrar; y si estos son divertidos, los demás son mejores aún !!!

 

Saludos @ La Finca

{El Bruno}

 

Share this post :
Crossposting from ElBruno.com

seguro te quemas, o Windows Vista hace derecho de la capacidad de autodeterminación para el reinicio voluntario.

 

Vamos que a las 22:45 encontrarse con esto, no es muy agradable.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com
Publicado 12/2/2008 22:59 por El Bruno | 1 comment(s)
Archivado en:

Buenas,

es muy probable que trabajando con las Domain Specific Language Tools en el momento de crear extensiones personalizadas para Visual Studio nos encontremos con un error como el siguiente, donde vemos que no podemos cargar el package asociado a nuestro diagrama en tiempo de depuración.

 

Este error puede traernos bastantes dolores de cabeza, pero por lo general el mismo suele estar dado por alguna incoherencia entre los datos que posee el archivo Commands.ctc y los datos que posee el CommandSet.partial.cs

Por ejemplo, si hemos definido los siguientes Ids para nuestros menues contextuales, dentro del archivo Commands.ctc:

#define Menu01 0x801 #define Menu02 0x802 #define Menu03 0x803

Debemos asegurarnos que en el CommandSet.partial.cs la definición coincide con el anterior:

// Must be unique within this DSL. // Must equal the values defined in Commands.ctc private const int Menu01 = 0x801; private const int Menu02 = 0x802; private const int Menu03 = 0x803;

Este es uno de los ejemplos, pero también se puede disparar este error si registramos 2 veces el mismo ID, asociamos 2 menues al mismo comando, etc.

 

Saludos @ La Finca

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Publicado 12/2/2008 14:35 por El Bruno | con no comments

Buenas

interesante pregunta la que me hicieron hace unos días: ¿cómo distingo un archivo de solución de Visual Studio 2005 de un archivo de solución de Microsoft Visual Studio 2008?

Ya sabemos que una de las grandes ventajas de Microsoft Visual Studio 2008 es la capacidad de poder trabajar con proyectos de Visual Studio 2005 (.Net 2.0 y 3.0) y que luego este tipo de trabajo no afecte a dichos proyectos.

Sin embargo con las soluciones la cosa cambia un poco, ya que siguen siendo específicas de cada versión de Visual Studio.

Pues bien, si tienes buena vista, en la siguiente imagen podrás ver que los íconos correspondientes a cada versión de Visual Studio muestran la version del mismo. Creo que es la forma más rápida de averiguar a qué versión pertenece cada solución.

 

Saludos @ Home

El Bruno

Aclaración: simplemente dejar en claro que cada versión de Visual Studio asigna un ícono propio para las soluciones y es por eso que cada uno muestra la versión correspondiente.

 

Share this post :
Crossposting from ElBruno.com

Buenas

un nuevo Hotfix para Microsoft Visual Studio 2008 ha sido liberado, y que apunta especialmente a mejorar la performance para los diseñadores Web. Lamentablemente, no he tenido la suerte de probar estos errores de Visual Studio, pero es reconfortante saber que solo un par de meses después del lanzamiento oficial, ya comenzamos a estabilizar el producto.

He aquí un paso a paso detallado con todo lo relacionado al HotFix http://blogs.msdn.com/webdevtools/archive/2008/02/09/downloadable-hotfix-performance-and-editor-fixes-for-microsoft-visual-studio-2008-and-visual-web-developer-express-2008.aspx

 

Saludos @ Home

El Bruno

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

Buenas,

una vez más, me aprovecharé de las virtudes de Microsoft Excel, para mostrar un poco de información cruzada de Team Foundation Server DataWarehouse, o lo que popularmente conocemos como la base de datos de BI de Team Foundation Server.

En este caso, quiero averiguar el estado de los WorkItems en un par de Team Project determinados. El siguiente paso a paso demuestra como hacerlo.

1. Desde Microsoft Excel realizo una conexión a la base de datos Team Foundation Server DataWarehouse (cómo lo expliqué aquí).

 

2. Desde el panel de Pivot Table de Excel, seleccionamos el campo Current WorkItem.

 

3. Luego agrego los siguientes campos

Legend Fields

- Date.Year Month Date

- System_State

Axis Fields

- Team Project

Values

- Current Work Item Count

 

4. Finalmente podremos ver una tabla con los Team Projects y sus correspondientes totales por estado de WorkItem. En la siguiente imagen, he filtrado (y censurado) 2 Team Projects y he dejado solo los WorkItems actuales

 

Además, podemos organizar los WorkItems por área, o por iteración simplemente arrastrando el campo correspondiente a uno de los filtros que deseemos. He aquí un ejemplo del chart con el área incluido.

 

Saludos @ Home

El Bruno

English Subject: Find WorkItem States in 5 minutes.

 

Share this post :
Crossposting from ElBruno.com

Buenas

hace unos días preguntaban en los foros de extensibilidad de MSDN, como interceptar y trabajar "a mano" cuando se cambien los valores de una propiedad en un elemento en un diagrama creado con las Domain Specific Language Tools. Rápidamente postee la respuesta y además me sirvió de base para escribir un pequeño post al respecto [DSL] Interceptando los cambios en una propiedad.

Esta solución es válida, pero existen varias formas de realizar esta tarea. Otra forma es utilizar CustomRules en los diagramas; estas reglas son clases especiales que heredan de una familia de reglas "base" y que una vez registradas, permiten interceptar las acciones que se realizan sobre nuestro diagrama. Desde un punto de vista práctico, funcionan muy parecido a un entorno orientado a aspectos ya que las mismas no "influyen" sobre el código original de los objetos que se han creado en el diagrama.

Pues bien, para seguir madurando el ejemplo de usuario y proyectos con el que hago las pruebas, en este caso simularé una regla donde no se me permita agregar un nombre que contenga la cadena "xxx".

 

Para esto agregaremos una nueva clase parcial para el modelo general llamada Dsl15DomainModel y dentro de la misma agregaremos una nueva clase llamada UserElementChangeRule que hereda de ChangeRule.

Lo interesante de este enfoque al momento de controlar los cambios en una clase es que, esta regla se disparará en cada ocasión que un cambio se detecte dentro de una instancia de una clase del tipo UserElement y además, podremos especificar si queremos interceptarla en el Commit de los cambios o en tiempo real.

1 /// <summary> 2 /// Validates the change of a property in the UserElement class 3 /// </summary> 4 [RuleOn(typeof(UserElement), FireTime = TimeToFire.TopLevelCommit)] 5 public class UserElementChangeRule : ChangeRule 6 { 7 /// <summary> 8 /// Alerts listeners that a property for an element has changed. 9 /// </summary> 10 /// <param name="e">Provides data for the ElementPropertyChanged event.</param> 11 public override void ElementPropertyChanged(ElementPropertyChangedEventArgs e) 12 { 13 bool applyChanges = true; 14 15 // check for FileName property 16 if (e.DomainProperty.Id == UserElement.NameDomainPropertyId) 17 { 18 if (e.NewValue.ToString().Contains("xxx")) 19 { 20 // do not apply cahnges and undo the current change property transaction 21 applyChanges = false; 22 Transaction t = e.ModelElement.Store.TransactionManager.CurrentTransaction; 23 if (t != null) 24 t.Rollback(); 25 Trace.WriteLine("An invalid name was typed: " + e.NewValue.ToString()); 26 } 27 } 28 29 // apply changes with base operation 30 if (applyChanges) 31 base.ElementPropertyChanged(e); 32 } 33 } 34

 

Dentro de la funcion, UserElementPropertyChanged en este caso verificamos si la propiedad que está cambiando es la propiedad nombre y luego dentro de la misma, aplicamos el filtro de la "xxx". Es interesante remarcar, que la acción que debemos realizar para cancelar el cambio es obtener la transacción actual y realizar un Rollback() sobre la misma.

Finalmente es necesario registrar esta CustomRule dentro de la generación de tipos; para esto sobreescribimos la funcion GetCustomDomainModelTypes() de la clase principal de nuestro diagrama y dentro de la misma, retornamos el tipo de nuestra CustomRule como muestro en el siguiente ejemplo.

1 public partial class Dsl15DomainModel 2 { 3 /// <summary> 4 /// Gets the non-generated domain model types. 5 /// </summary> 6 /// <returns>An array of types.</returns> 7 protected override Type[] GetCustomDomainModelTypes() 8 { 9 return new System.Type[] { typeof(UserElementChangeRule) }; 10 } 11 } 12

De esta manera, cada vez que se introduzca un nombre que contenga la cadena "xxx" este cambio no se aplicará a la propiedad y se registrará el error en el OutputViewer de Visual Studio.

Download Sample Project: http://geeks.ms/files/folders/elbruno/entry69859.aspx


Video: DSL Tools - Custom Rules

 

 

Saludos @ La Finca

El Bruno

English subject: [DSL] Handling element's property changes using custom rules

Share this post :
Crossposting from ElBruno.com
Publicado 7/2/2008 19:26 por El Bruno | con no comments
Más artículos Página siguiente >