February 2009 - Artículos

Buenas,

el amigo Miguel ya ha publicado las fotos del evento sobre robótica en el que pude participar ayer, pueden ver las mismas en http://www.facebook.com/photo.php?pid=283639&id=1426693222#/album.php?aid=69230&id=1426693222 (además si vives por la zona de Castilla-La Mancha te recomiendo que te sumes al grupo para estar al tanto de las novedades del mismo)

Yo desde Madrid agradeceré la oportunidad y el buen rato que pasamos con los chicos, ya que después del evento entre una cañita y otra pudimos compartir experiencias, un par de risas y un muy buen rato.

A continuación dejo el enlace para que se puedan descargar la presentación y el codigo fuente de las demos del evento

http://cid-bef06dffdb192125.skydrive.live.com/self.aspx/2009%2002%2027%20Robotics%20en%20Albacete

Y obviamente, agradecer a Murphy por aparecer en el momento más inoportuno para recordarnos que no podemos confiarnos de las versiones Beta.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

el escenario que voy a detallar es muy poco común, pero como bien nos ha enseñado Murphy existen situaciones donde necesitamos que nuestras compilaciones interactuen con el escritorio de Windows.

Imaginaos que una inocente prueba unitaria al momento de probar una función totalmente intrascendente desencadena un proceso al que llamaré [X]. Hasta aquí todo perfecto las pruebas en local funcionan perfectamente, pero luego el servidor de compilación se nos va de vacaciones cuando quiere ejecutar esta prueba. (nota escrita: el amigo Ibon está escribiendo bastante sobre Unit Testing, se los recomiendo)

Pero bueno, después de un par de horas y varios litros de café, vemos que dentro del proceso [X] un componente de backend utiliza una instancia de Internet Explorer para “hacer algo con la misma” y luego la destruye (nota mental: recordar llevar el hacha, averiguar la mente maligna creadora de este código y comenzar a cortar miembros a cascoporro).

Este es un escenario bastante improbable pero no imposible, asi que no entraré en detalles de diseño y opiniones adjuntas; pero sí, como siempre trato de hacer en el blog, comentaré la solución al problema.

  • Abrir una sesión en el servidor de compilación TFS utilizando la cuenta de servicio de TFS Build (usualmente es DOMAIN\TfsBuild)
  • Abrir una instancia del Command Prompt de Visual Studio
  • Ejecutar el comando TFSBuildService, esto crea una instancia “interactiva” del servidor de build en el puerto 9192 (puerto por defecto)
  • Dejar la sesión abierta
  • Ya en este punto, podemos lanzar nuestros builds utilizando un Agente de Build en el puerto 9192 y el mismo se ejecutará en la sesión del punto anterior.

Sin ser una solución elegante, funciona.

 

Saludos @ Silverlight Hell

El Bruno

PD: el siguiente link seguramente será de ayuda http://blogs.msdn.com/buckh/archive/2007/07/20/tfs-2008-build-agent-configuration-options.aspx

Crossposting from ElBruno.com

Buenas,

si has hecho alguna prueba al estilo “Hola Raimundo” en las máquinas virtuales de Visual Studio 2010, seguramente te habrás percatado que la ventana de edición de código se ha reescrito en WPF y que ahora el "flow” de la misma es mucho más natural. Hasta aquí lo que ya conocemos.

Pero y este es un pero de los gigantes la versión final del IDE estará 100% basado en WPF. Personalmente pensé que no lo veríamos, ya que el IDE de Visual Studio tiene mucho trabajo dentro del mismo, pero este post de Jason Zander nos demuestra lo contrario.

 

Les recomiendo darle un vistazo al post, pero les dejo un par de detalles interesantes

- ventanas flotantes: ideal para los que trabajamos con varios monitores

DvX_ShellFloatWide

 

- Nueva ventana para la creación de proyectos y elementos, que básicamente no aporta nada nuevo pero queda muy vistoza.

image

 

- Novedades en el editor de código donde podemos colapsar y expandir bloques de código, se resalta a la derecha el código editado en un archivo, etc.

image

 

Simplemente impresionante … aunque sigo un poco escéptico ya que los comentarios del site muestran que todavía estamos en una fase muy temprana para dar como válido este IDE.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

Buenas,

si yo fuese un personaje en My Name is Earl además de perseguir a Joey seguramente cerraría cada capítulo con una moraleja y una enseñanza más en mi haber. Pues creo que esa es la única forma en la que puedo trabajar con Silverlight; personalmente no me considero un experto en ninguna materia sin embargo creo conocer un poco de Visual Studio, pero Silverlight me sorprende cada día.

En este caso, luego de tirar líneas durante varios de días, de cerrar varias pruebas de concepto; llegó el momento de refactorizar los proyectos para comenzar a trabajar más organizado. En este momento en base a la experiencia de las pruebas de concepto, comienzo a organizar mis directorios, es decir, renombrar, subir, bajar, etc.

Una vez finalizado, con todo el código dentro del gestor de codigo fuente (TFS obviamente), al momento de abrir un proyecto de Silverlight me encuentro con el siguiente mensaje de error:

 

---------------------------
Microsoft Visual Studio
---------------------------
Unable to read the project file 'Avanade.Silverlight.DirectiveDashboard.csproj'. 
C:\PW SL\Source\Silverlight\Avanade.ProductivityWorkspace\Avanade.Silverlight.DirectiveDashboard\
Avanade.Silverlight.DirectiveDashboard.csproj(190,11): The imported project 
"C:\PW SL\Source\Silverlight\Avanade.ProductivityWorkspace\
Avanade.Silverlight.DirectiveDashboard\SubsetFontSilverlight.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
---------------------------
OK   
---------------------------

Y es en este momento donde me pregunto, ¿de donde ha salido ese archivo SubsetFontSilverlight.targets?

Tratando de entender un poco más, edito el archivo de proyecto y me encuentro con el import correspondiente

   1: <Project ToolsVersion="3.5" DefaultTargets="Build" 
   2:   xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   3:   ...
   4:   <ProjectExtensions>
   5:     <VisualStudio>
   6:       <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">
   7:         <SilverlightProjectProperties />
   8:       </FlavorProperties>
   9:     </VisualStudio>
  10:   </ProjectExtensions>
  11:   <Import Project="SubsetFontSilverlight.targets" />
  12: </Project>

 

Como soy una persona organizada, reviso el backup anterior y encuentro el archivo SubsetFontSilverlight.targets, pero como el mismo se ha agregado desde fuera del Source Control, no está relacionado con el proyecto. Lo agrego al directorio de proyecto y ya todo comienza a funcionar correctamente, pero sigo con la duda de donde salió este archivo.

Asi que me pongo a leer un rato y me encuentro con que a este archivo lo genera Microsoft Expression Blend cuando realizamos algunas acciones particulares en nuestros diseños (por ejemplo embeber Fonts). Pero lo más interesante es que en la cabecera del mismo se incluye una referencia a una tarea de MSBuild contenida dentro del ensamblado SubsetFontTask.dll. (ver las líneas 2 y 3 del codigo del archivo)

Asi que resulta que también debo copiar el ensamblado SubsetFontTask.dll al directorio de proyecto para que el mismo funcione correctamente, y no olvidarme de agregar estos archivos al control de código fuente.

   1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   2:     <UsingTask AssemblyFile="SubsetFontTask.dll" TaskName="SubsetFontTask.SubsetFontsSilverlight" />
   3:     <UsingTask AssemblyFile="SubsetFontTask.dll" TaskName="SubsetFontTask.CleanSubsetFonts" />
   4:     
   5:     <ItemGroup Condition="'$(BuildingInsideVisualStudio)'=='true'">
   6:         <AvailableItemName Include="BlendEmbeddedFont"/>
   7:     </ItemGroup>
   8:     
   9:     <Target Name='SubsetFontsSilverlight' DependsOnTargets="$(SubsetFontsDependsOn)" Condition="'@(BlendEmbeddedFont)' != ''">
  10:         <SubsetFontsSilverlight 
  11:             Fonts="@(BlendEmbeddedFont)" Xamls="@(Page)" Resources="@(Resources)" 
  12:             IntermediateFilesDirectory="$(IntermediateOutputPath)"
  13:             >
  14:             <Output TaskParameter="SubsettedFonts" ItemName="Resource"/>
  15:         </SubsetFontsSilverlight>
  16:     </Target>
  17:  
  18:     <Target Name='CleanSubsetFonts' DependsOnTargets="$(CleanSubsetFontsDependsOn)" Condition="'@(BlendEmbeddedFont)' != ''">
  19:         <CleanSubsetFonts 
  20:             Fonts="@(BlendEmbeddedFont)"
  21:             IntermediateFilesDirectory="$(IntermediateOutputPath)"
  22:             />
  23:     </Target>
  24:     
  25:     <PropertyGroup>
  26:         <PrepareResourcesDependsOn>
  27:             SubsetFontsSilverlight;
  28:             $(PrepareResourcesDependsOn);
  29:         </PrepareResourcesDependsOn>
  30:     </PropertyGroup>
  31:     
  32:     <PropertyGroup>
  33:         <CleanDependsOn>
  34:             $(CleanDependsOn);
  35:             CleanSubsetFonts;
  36:         </CleanDependsOn>
  37:     </PropertyGroup>
  38:     
  39: </Project>

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

Buenas,

como ya nos comentó el amigo Valeriano: Silverlight da para todos los gustos, a algunos les gusta y a otros les hace tener sudores fríos por la espalda. En mi caso me toca trabajar; parece que soy el primero en tener algunos problemas que personalmente pensaba que eran de principiante. Por ejemplo, la necesidad de tener un control (gratis) para la selección de la fecha y la hora.

Hoy como están las cosas no queda otra opción más que hacerlo a mano, y si algún especialista en interfaz de usuario me suelta el rollo de que Silverlight es una tecnología que debe revolucionar la forma en la que las personas interactuan con un ordenador, etc etc etc; yo simplemente le digo “tio, yo solo quiero seleccionar una fecha y hora

Pero bueno, la idea fundamental de esta vida es dar soluciones y no problemas, asi que en pocos minutos creé una solución a este problema. En primer lugar me aproveché de la biblioteca System.Windows.Controls y del Silverlight Toolkit para crear un proyecto donde implementé mi propia versión de un TimePicker y con el mismo ya pude crear el tan deseado un DateTimePicker.

 

Una vez en ejecución si estás de pie sentate porque esto es para caerse de orto podemos ver el típico y tan esperado conjunto de selección de fecha y hora

 

y el modo de selección de la misma es simplemente impresionante

 

Bueno después de este descargue de ironía, simplemente me queda compartir el códígo: http://code.msdn.microsoft.com/ebsldatetimepicker/Wiki/View.aspx?title=Home y espero ahorrarle un par de minutos a alguien, que siempre vienen bien para ver que pasó realmente con el vuelo Oceanic 815.

 

Saludos @ Godzilla’s House

El Bruno

Crossposting from ElBruno.com

Buenas,

mientras llegan las pizzas a domicilio y después de conquistar toda una ciudad de LEGO con Godzilla (ver foto aquí ->), este sábado toca descansar y actualizar un par de cuestiones pendientes, entre ellas el runtime de Silverlight.

Ahora gracias a otro GDR (ven como se pone de moda esta palabrota), ya vamos por la versión 2.0.40115.0 y lo podemos descargar desde http://www.microsoft.com/silverlight/resources/install.aspx.

Como yo soy un campeón un tanto ignorante, confié en los buenos instaladores y me encontré con que después de la hermosa pantalla de inicio del setup

 

me aparecia que no podía instalar el GDR ya que mis componentes estaban “out of date”

 

Me fui derechito a la página de los componentes de desarrollo para VS2008 SP1 de Silverlight y casi me caigo de culo me sorprendió ver que no se habían actualizado los mismos ya que la fecha de publicación es 30-Oct-2008.

 

Con el de las pizzas llegando y la 2da cerveza en la mano, agarré a uno al azar del messenger y le pregunté que era esto. Él me respondió: vos dale tranquilo. Asi que descargué los componentes de desarrollo, los instalé, me abrí otra cervecita y después de ver la repetición de los 6 goles del Madrid pude ver también el tan esperado

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

al igual que Trev, en mi ordenador de desarrollo tengo configurados varios servidores TFS con los que trabajo a diario; y poder configurar al Team Explorer para que no se conecte al último que hemos utilizado, es decir que no haga un “auto connect” es algo que realmente echaba en falta a nivel configuración del cliente de TFS.

Por suerte, la solución es muy simple:

- Agregar una entrada DWORD llamada “AutoLoadServer” en HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation con el valor Zero

image 

 

Listo !!!

 

Fuente: http://blogs.msdn.com/dstfs/archive/2009/02/19/my-favorite-tfs-tweak.aspx

Saludos @ Home

El Bruno

PD: también funciona para TFS 2005, utilizando la entrada HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\TeamFoundation

Crossposting from ElBruno.com

Buenas,

después de conquistar Barcelona, Getafe, Huelva y Madrid (y una pequeña parte de mi tierra natal, Córdoba Argentina), mi amigo el Lego Mindstorms NXT hará una nueva parada en Albacete gracias a los amigos de CLMNET (Grupo de usuarios de .Net de Albacete y Castilla-La Mancha)

El evento es el próximo viernes 27 de febrero de 16:00 a 20:00 horas; y si bien no podré llevar a Valentino ni a los gatitos para que sean perseguidos por el Bot, en el evento tendremos 5 Lego NXT para una pequeña competición donde uno de los premios para los perdedores será una foto con quien redacta (o eso creo)

Mas información:

Ahh y me olvidaba, aunque ya se lo pueden imaginar, la descripción del evento:

CLMNET organiza una charla práctica de introducción a cómo programar el sistema robótico LEGO Mindstorms con Microsoft Robotics Studio y Visual Studio 2008. La última versión de Microsoft Robotics Developer Studio por fin nos acerca un poco más al ansiado objetivo de la conquista global del mundo utilizando robots. En esta charla veremos cómo podemos aprovechar esta tecnología y comenzar a programar nuestros primeros robots. Además de programación concurrente, orientación a servicios, "hardware as services" y veremos una implantación real de esta tecnología en un escenario concreto; como perseguir a tu mascota utilizando LEGO Mindstorms & Microsoft Robotics Studio y controlar un lanzamisiles USB.

Si tienes suerte, podrás salir del evento no solo sabiendo como programar el LEGO Mindstorms sino con una sorpresa bastante interesante…

 

Saludos @ La Finca

El Bruno

PD: he realizado una pequeña búsqueda y no he encontrado ningún robot de Don Quijote, veo que nadie se ha planteado conquistar al mundo comenzando por los molinos de viento.

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

hace un par de días comentaba como podemos utilizar las herramientas que se incluyen dentro del perfil Microsoft® Visual Studio Team System 2008 Database Edition GDR para comparar los esquemas de 2 bases de datos. Este perfil también incluye otra herramienta interesante que nos permite comparar los datos entre 2 tablas con la misma estructura.

El siguiente tutorial demuestra como realizar una comparación de datos entre 2 tablas.

Tutorial

1. Creamos una nueva sesión de comparación desde el menú Data // Data Compare // New Data Comparison …

 

2. En el asistente de comparación seleccionamos las 2 bases de datos con las que queremos trabajar. Además seleccionamos las opciones para analizar los registros sólo en el origen, sólo en el destino, los diferentes o todos.

 

3. A continuación seleccionamos una o más tablas o vistas para realizar la comparación. Dentro de cada una podemos seleccionar los campos sobre los que queremos trabajar.

Una vez determinadas las opciones presionamos el boton [Finish] y el proceso de comparación comienza.

 

04. Cuando se ha terminado el proceso de comparación, podemos ver dentro de Visual Studio un nuevo formulario con el resumen de información:

  • Registros diferentes
  • Registros solo el base de datos de origen
  • Registros solo el base de datos de destino
  • Registros iguales

Por ejemplo, para los registros diferentes, podemos ver los campos que poseen valores diferentes en cada caso.

 

05. Las pestañas con los registros que sólo existen en el origen o en el destino, nos muestran los mismos.

 

06. Finalmente, podemos seleccionar los registros que deseemos y generar un Sql Script para actualizar nuestra base de datos de destino con la información correspondiente.

 

Una vez más, una herramienta simple pero poderosa.

 

Saludos @ Oceanic 815

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

hoy me preguntaban porque en determinadas ocasiones cuando trabajamos en Visual Studio 2008 con el Source Control Explorer, la opción para crear nuevos directorios aparece deshabilitada como muestra la siguiente imagen.

Pues bien, lo más habitual sería que este impedimento esté dado por cuestiones de permisos; pero por lo general es algo mucho más simple:

el workspace de trabajo no está bien configurado.

En este caso, el workspace en el que estoy trabajando se llama TFSRTM08_1, como se muestra en la imagen no tengo mapeado el directorio de trabajo del Source Control con un directorio local.

Para mapear un directorio de trabajo, simplemente hago click en el el link Not Mapped y sigo el asistente (a estos pasos ya los expliqué en este post HowTo: Mapear un Workspace en 2 Clicks)

De esta forma, la opción para crear directorios se habilitará siempre que tengamos los permisos adecuados y podremos dedicarnos a subir toneladas de codigo.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

 

 

Buenas,

el próximo día 19 de febrero de 19:00 a 21:00 en Microsoft en Madrid, nuestros amigos David Herráiz y Jorge Serrano nos ayudarán a entender un poco más a Sharepoint. La idea de este evento comentar un poco las experiencias "desde las trincheras" y como son 2 grandes expertos en Sharepoint, será una gran oportunidad para poder sacarnos todas las dudas, temores y pesadillas que tenemos con Sharepoint.

¿Te animas?

Registro: http://madriddotnet.spaces.live.com/blog/cns!6453107D41F04C68!202.entry

Saludos @ Silverlight home

El Bruno

Crossposting from ElBruno.com

Publicado 17/2/2009 21:15 por El Bruno | 5 comment(s)
Archivado en:

El Bruno Visual Studio Team System

Buenas,

a menudo sucede que cuando hablamos de la gestión del ciclo de vida del software, no tenemos en cuenta a la base de datos como un elemento que es parte de este ciclo de vida. En muchas ocasiones he visto como la gestión de la misma consiste en sacar un script con el esquema y almacenar el mismo en nuestro gestor de versiones de código fuente. Esta no es la mejor práctica que podría recomendar, pero si tenemos acceso al perfil de Base de Datos de Visual Studio, podremos hacer nuestro trabajo un poco mejor.

No quiero recorrer en un único post todas las capacidades de esta herramienta, pero si comentar que desde el 20 de Enero está liberada una nueva versión final que se puede descargar desde aquí y que desde el 1ro de Octubre de 2008 se incluye junto con la licencia MSDN de Visual Studio Team System Developer.

Pues bien, para comenzar a probar este set de herramientas, una de mis sugerencias es que comiencen a comparar sus bases de datos con VSTSDE. Para esto el siguiente tutorial muestra como realizar en pocos pasos una comparación y detallo también algunas de las opciones más interesantes que se pueden modificar.

Tutorial

1. Seleccionar el manu Data // Schema Compare // New Schema Comparison …

 

2. Un nuevo formulario se abrirá dentro del IDE, y en este momento deberemos seleccionar las bases de datos de origen y destino para realizar la comparación

Para este ejemplo útilizaré la base de datos AdventureWorks con una copia local modificada AdventureWorksNew.

 

03. Adicionalmente podemos especificar variables adicionales para el proceso de comparación utilizando el botón [SQLCMD Variables …] y además especificar las opciones para el proceso de comparación utilizando el botón [Options …]. Por ejemplo que collation se utilizará

 

Opciones generales de comparación

 

Tipos de objetos a comparar

etc.

 

04. Una vez definida las opciones, podemos comenzar el proceso de comparación. Este proceso puede tardar varios minutos dependiendo de la cantidad de objetos que existan en nuestra base de datos.

 

05. Cuando el proceso ha finalizado podemos ver el siguiente formulario, donde vemos los elementos de cada base de datos en 2 columnas y entre las mismas, el resultado de la comparación de ese objeto: drop, update, skip, etc. En la sección inferior podemos ver los SQL Scripts que definir a cada objeto y resaltados en el mismo, las diferencias que se han encontrado.

 

06. Dentro de las herramientas de comparación también podemos filtrar el resultado por resultado de comparación.

 

07. Y además es posible ver el script completo de actualización que incluye a todos los objetos que hayamos seleccionado en el formulario de comparación.

 

Como podeís ver, es muy simple de utilizar y seguramente nos ahorrará algún que otro dolor de cabeza. :D

 

Saludos @ Home

El Bruno

PD: el nombre completo del producto es Microsoft® Visual Studio Team System 2008 Database Edition GDR, y si como yo durante semanas no pudiste dormir intentando saber que mierda significa GDR, he aqui la respuesta: General Distribution Release.

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

es muy probable que en mi vida anterior haya sido un gatito molón de esos que salen en los almanaques o una maestra de jardín de infantes; porque un pequeño golpe de suerte siempre viene bien y yo reconozco que tengo muy poco deméritos para ganarlo.

Pues bien, hace muy poco alguien me comentó que tenía un problema con su Team System Web Access, ya que después de aplicar el Service Pack 1, cuando visualizaba un elemento de TFS y el mismo poseía archivos adjuntos, no podía descargar los mismos.

Hoy gracias a un post de Hakan, me parece que me ahorrado el trabajo de revisar este problema ya que la solución consiste en editar la página asp.net que gestiona las descargas [..\Wiwa\UI\Pages\WorkItems\DownloadAttachment.aspx] y dentro de la misma modificar el atributo @HasPermissions con el valor true.

 

   1: <%@ Page Language="C#" 
   2:         AutoEventWireup="true" 
   3:         MasterPageFile="~/UI/Masters/Window.master" 
   4:         Inherits="Microsoft.TeamFoundation.WebAccess.UI.Pages.WorkItems.DownloadAttachment" 
   5:         Codebehind="DownloadAttachment.aspx.cs" 
   6:         HasPermission="true" %>

 

Fuente: http://blogs.msdn.com/hakane/archive/2009/02/13/fix-wiwa-cannot-download-attachments.aspx

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

 

Buenas,

como ya muchos saben, me encanta explotar la información que posee Team Foundation Server en sus bases de datos. Un par de veces ya he mostrado como crear informes con Microsoft Excel, y es por ello que no puedo dejar de recomendarle a aquellas personas que utilicen MSF for Agile como su metodología de trabajo que le den un vistazo a este documento Excel.

image

La configuración del mismo es muy fácil, simplemente hay que llenar una de las hojas Excel a partir de una lista de bugs de TFS y presionar el botón [Autoconfigure]. Esta acción completará la información de varias pivot tables y en la hoja principal podremos ver hasta 20 gráficos representativos:

  • Bugs by State
  • Average Daily Bug Rates
  • Bug Backlok
  • Bugs Opened per Month
  • Active Bugs
  • Bugs Resolved per Month
  • Resolved Bugs
  • Bugs Closed per Month
  • Bugs by Severity
  • Bugs by Priority
  • Bugs by Resolution
  • Average Bugs Lifetime in each State
  • Bugs Openers
  • Bugs Resolvers
  • Bus Resolution for Top Bug Openers
  • Bugs Closers
  • Daily Fix Rate (Resolved as Fixed)
  • Daily Close Rate

Realmente es impresionante, y después de completar un poco de información en mi flamante máquina virtual de pruebas de TFS, les dejo un par de screenshots para que los evaluen.

 

 

 

 

 

 

 

 

Fuente: http://blogs.msdn.com/teams_wit_tools/archive/2009/02/12/building-lightweight-dashboards-using-excel.aspx

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

Buenas,

mientras espero que juegue la selección contra Francia, aprovecho para hacer un ejercicio de autodeterminación y me prometo a mi mismo no confiarme jamás en que un despliegue de una aplicación web será exitoso en el primer intento. Si bien es cierto que muchos los son, los proyectos web son muy particulares; existen muchas variables y muchos pasos para “pasar” exitosamente una aplicación desde un server DEV a un server PRO. (como este post es mío me doy el lujo de pasar de DEV a PRO sin tener entornos intermedios y si me dejan un poco tiempo, pico la aplicación directamente en PRO)

Por lo general, un despliegue suele incluir tareas como la creación e inicialización de una base de datos (sql scripts), copiado de los archivos del site, creación de directorios virtuales o de websites, aplicación de configuraciones específicas para nuestra aplicación, etc. Vamos que si encima trabajas en una empresa a la que le guste la burocracia medianamente organizada, será necesario que todos estos pasos se documenten para cada audencia correspondiente.

Visual Studio Team System 2010 incorpora una nueva herramienta que nos ayudará a que este proceso de despliegue sea más llevadero: IIS Web Deployment Tool. Esta herramienta está actualmente en Beta 2 y además está disponible para su descarga gratuita desde:

x86 version: http://go.microsoft.com/fwlink/?LinkId=109365
x64 version: http://go.microsoft.com/fwlink/?LinkId=109366

Utilizando IIS Web Deployment Tool podremos crear web packages que contendrán la siguiente información en un archivo .zip:

  • Configuración para IIS (application pools, etc)
  • Contenido del Sitio
  • Bases de datos SQL
  • Extras como certificados de seguridad, componentes para ser desplegados en la GAC, etc.

Y luego podremos importar los mismos desde la consola del IIS, o inclusive utilizando comandos por la consola.

Si alguien desea aprender un poco más, los siguientes links pueden ser útiles

  1. Create a Package (creating a package including content, databases and more)
  2. Install a Package (deploying the package to a local or remote machine)
  3. Configure the Web Deployment Handler (enable deployment to an IIS 7.0 server)

Saludos @ Home

El Bruno

PD: 2 a 0 a Francia !!! vamos vamos Argentina !!!

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

cada 2 por 3 alguien me pregunta porqué no puede renombrar elementos en el Source Control Explorer cuando trabaja con Team Foundation Server. Para esta pregunta existen varias respuestas, pero según mi escasa experiencia los 3 escenarios más comunes son los siguientes:

 

Escenarios de bloqueo

1. Existen archivos o directorios con cambios pendientes por debajo del elemento que queremos renombrar, para descartar este escenario se puede utilizar el panel Pending Changes, que se puede activar desde View // Pending Changes.

 

2. Otra opción es que algún otro integrante del equipo tenga cambios pendientes. La mejor forma de revisar estos cambios, es a través de las Team Foundation Sidekicks, desde el menú Tools // Team Foundation Sidekicks // Status Sidekicks

Dentro del formulario de búsqueda podremos filtrar por Team Project, por fecha e inclusive por usuario para conocer el estado de los archivos tomados. Una vez visto el estado de los mismos, podremos consultar a la persona que tiene esos cambios o si es realmente necesatio deshacer los cambios.

 

3. Esta es nueva, si has instalado la última versión de las Power Tools para Team Foundation Server, las mismas incluyen la integración de gestión de versiones desde Windows Explorer. Y si ya has dado mil vueltas en Visual Studio pero todavía no puedes renombrar, verifica que no tengas una instancia de Windows Explorer “molestando” por allí

 

Pues bien, si ya has revisado los pasos anteriores es muy probable que te encuentres con la opción Rename habilitada; si todavía no lo puedes hacer, ¿me cuentas que era asi lo agrego al post?

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

 

Buenas,

hace unos días nuestros amigos de Microsoft publicaron un paquete de informes que nos permiten analizar la actividad de nuestros servidores Team Foundation Server, tanto para la versión 2005 como para la versión 2008. El amigo Luis Fraile hizo un excelente resumen en su blog, donde nos explica como “instalar” los informes y como interpretar los mismos.

Como yo odio la interfaz web de Reporting Services soy un poco más vago, para subir los informes a mis servidores TFS decidí que la mejor opción era crear un proyecto de Reporting Services y desplegarlos utilizando Visual Studio 2008. El siguiente tutorial muestra los pasos para crear un proyecto de este tipo, trabajando con la máquina virtual de demo que distribuye Microsoft (más información aquí).

Tutorial

1. Una vez descargados los informes desde aquí, procederemos a crear un nuevo proyecto del tipo [Report Server Project]

 

2. Dentro del mismo, en el panel Solution Explorer desde el proyecto agregamos un nuevo Shared Data Source, y completamos la información de acceso al SQL Server donde está ubicada la base de datos TfsActivityLogging.

 

3. Una vez más desde el Proyecto en el Solution Explorer, seleccionamos el nodo Reports y agregamos los archivos .rdl que representan los informes que queremos desplegar. Nuestra solución debería quedar similar a la siguiente

 

4. Seleccionamos el proyecto y editamos las propiedades del mismo. En este formulario definiremos la url del servidor donde desplegaremos nuestros informes. Para este ejemplo, he utilizado [http://TFSRTM08/reportserver] como servidor y el nombre del folder donde desplegaré los informes es [TfsPerformanceReports]

 

5. Seleccionamos el proyecto y desplegando el menú contextual, seleccionamos la opción [Deploy] y si no hemos comentido ningún error, nuestros informes se deben desplegar correctamente al servidor (asumo que el usuario con el que estamos trabajando tiene los permisos suficientes en Reporting Services para realizar esta acción)

 

6. Luego si navegamos al site de Reporting Services podremos ver un nuevo directorio con los informes desplegados dentro del mismo.

 

Pues bien, 6 pasos para poder controlar nuestro servidor y si alguien se quiere ahorrar el trabajo de crear el proyecto, lo puede descargar desde aquí.

 

 

Saludos @ La Finca

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

he de reconocerlo: soy un tanto especial; es por eso que después de un pequeño gran éxito me gusta celebrar en familia, y cuando esto no es posible, lo hago solo con la XBox360, la tele de 50’’ y el home cinema a todo volumen. ¿Porqué es esto? pues porque hace unos minutos me compré el El Increible Hulk de 2da mano, y con el Subwoofer y mucha potencia de sonido, vale la pena destruir un par de ciudades, solo por placer.

Pero bueno a lo que iba que para ser domingo la lectura debería ser un poco más amena: a continuación detallos los pasos que he realizado para migrar la base de datos de un servidor Team Foundation Server 2008 de SQL Server 2005 a SQL Server 2008. En este caso y a modo de demo, he realizado la migración en la máquina vrtual de demo que se puede descargar gratis de Microsoft (más información aquí)

Tutorial

1. Lo primero que me encontré fue que el instalador de SQL Server 2008, instala un HotFix especial para nuestro Windows Server 2003 (es necesario reniciar)

 

2. Instalar el Upgrade Advisor, que es una pequeña pero útil herramienta que posee SQL 2008 que nos permite verificar los posibles problemas y warnings antes de una migración.

  

 

3. Una vez instalada la herramienta, lanzo la misma para verificar el estado de mi server. 

      

    

El asistente es muy simple, y después de seleccionar casi siempre las opciones por defecto (menos Notification Service que por suerte lo han eliminado en SQL 2008), puedo ver los siguientes resultados.

Interesante ver que nos alerta como un error grave que el modelo de almacenamiento de FTS (Full Text Search) ha cambiado en SQL 2008 y que los campos xs:date, y xs:time también han cambiado.

Pero si vemos el detalle de los objetos a los que afecta este error, es solo para la base de datos de AdventureWorks, por lo que …

Database: AdventureWorks
Xml Schema Collection Schema: HumanResources
Xml Schema Collection: HRResumeSchemaCollection
Table Schema: HumanResources
Table Name: JobCandidate
Column Name: Resume

 

4. Como no hay grandes problemas o eso espero lanzo el instalador para realizar el upgrade a SQL 2008. Como la máquina virtual posee instalada 2 instancias de SQL (una es un SQLExpress) el instalador me pregunta que instancia es la que quiero actualizar.

 

5. Luego selecciono TODAS las opciones a actualizar

 

6. Configuro un par de opciones más, siempre con las opciones por defecto:

 

 

7. Pero al momento de la configuración de Full Text Search, cambio a la opción de reconstruir los mismos ya que me parece que es la mejor opción. Ojo, si alguien con una base de datos grande de TFS selecciona esta opción, se puede encontrar con un server que se pase un par de horas largas reconstruyendo los almacenes para FTS.

 

8. Más opciones por defecto

 

 

9. Y comienza el upgrade

10. Finalmente, luego de 68 minutos, el servidor se ha actualizado a SQL Server 2008. Solo queda un restart y ya tenemos nuestro servidor TFS 2008 actualizado a un SQL Server 2008.

 

 

Saludos @ Home

El Bruno

Referencias: http://elbruno.com/blogs/elbruno/archive/2009/02/04/tfs2008-posts-y-howtos-sobre-team-foundation-server-2008-y-2005-02.aspx

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

todo el mundo sabe que una de las bases de un modelo de programación ágil es que las builds sean rápidas. Esto nos permite poder integrar y probar nuestras soluciones de una manera frecuente.

Lamentablemente, cuando los proyectos se tornan complejos y las variables que intervienen en una compilación son muchas, las builds tienden a ser cada vez más lentas.

Pero y este es un pero del que nos gustan para algunos escenarios existen un workaround publicado por Microsoft que nos permite acelerar el tiempo de nuestras compilaciones.

En pocas palabras el problema es este: en el Service Pack 1 de TFS 2008 se trató de reducir la dependencia entre proyectos incluyendo una nueva propiedad TargetsNotLoaded para definir que pasos de la compilación no serían agregados al proceso de Build. Lamentablemente esto nunca funcionó y es por eso que la solución nos llega un poco después.

En los siguientes links es posible encontrar más información:

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

El Bruno Visual Studio Team System

Buenas,

nuestros compañeros de Team System están estrenando site http://msdn.microsoft.com/en-us/teamsystem/default.aspx, además de un nuevo look and feel (no esperaba menos), me encuentro con la grata satisfacción de contenidos organizados, retratos un tanto espeluznantes, una limpieza general frente al site anterior y muchas novedades más.

Gran parte de este trabajo es gracias a Sharon, por lo que un “muchas gracias” desde Madrid.

si alguien se pregunta el porqué de esta “limpieza de cara” pensad que durante este año se lanza Visual Studio Team system 2010, y que mejor que tener un buen site para poder dar soporte y promoción al mismo.

 

Saludos @ Cancerbero’s house

El Bruno

Crossposting from ElBruno.com

Más artículos Página siguiente >