Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Visual Studio 2010 NET 4 0 y ALM Bruno Capuano
Visual Studio 2010 NET 4 0 y ALM Bruno Capuano
0 y ALM
Actualzate desde la versin 2008
Bruno Capuano
VISUAL STUDIO 2010 .NET 4.0 Y ALM - ACTUALZATE DESDE LA VERSIN 2008
No est permitida la reproduccin total o parcial de este libro, ni su tratamiento informtico, ni la transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permiso previo y por escrito de los titulares del Copyright. Dirjase a CEDRO (Centro Espaol de Derechos Reprogrficos, www.cedro.org) si necesita fotocopiar o escanear algn fragmento de esta obra. DERECHOS RESERVADOS 2010, respecto a la primera edicin en espaol, por Krasis Consulting, S. L. www.Krasis.com ISBN: 978-84-936696-4-5 Depsito Legal: M-13975-2010 Impreso en Espaa-Printed in Spain
Prlogo
Todo mi agradecimiento y gratitud a Bruno. Es para m un privilegio tenerlo como amigo y consejero de un producto que desde hace ms de tres aos es parte importante de mi vida. Seguro que vas a disfrutar descubriendo todas las novedades de Visual Studio 2010 que son muchas y variadas. Es un placer contar con colegas que pongan tanta pasin para que los dems tengan un comienzo menos duro con cada versin. Por todo esto, ms su blog, su correr pa n, su pasin por el cdigo, etc... GRACIAS. Antonio Gmez Product Manager Visual Studio - Expression Divisin de Desarrolladores y Plataforma (DPE - Developer & Platform Evangelism) en Microsoft Sin duda es difcil apasionarse con una herramienta de desarrollo. Pero cuando sta es Visual Studio, y quien transmite esa pasin es Bruno, la cosa cambia. Sobre el libro, qu puedo decir: nadie mejor que un apasionado con conocimientos extraordinarios para conseguir que todos aprendamos a exprimir la herramienta con la que pasamos gran parte del da. Es un placer compartir eventos tcnicos con Bruno, es un placer leer su libro. Te puedo garantizar que uno no deja de sorprenderse con las posibilidades de Visual Studio. Rodrigo Corral Gonzlez Software Architect - MVP Team System Son ya muchas las charlas sobre Visual Studio, primero Team System, y ahora ALM, compartidas con Bruno y con Rodrigo, Ahora, con Visual Studio 2010, mi amigo Bruno lanza este libro que a buen seguro se convertir pronto en una gran referencia de la herramienta. Ser lectura recomendada en todas nuestras charlas." Luis Fraile INETA Speaker - MVP Team System
Agradecimientos
No puedo dejar de agradecer a todas las personas que me han apoyado para que escriba este libro. Las voy a ordenar por un criterio personal que es el que se me ha ocurrido en este momento para que sepan que les doy las gracias: A mi chica, a Valentino y a Martina; que entre los 3 forman mi familia y han aguantado noches y noches de un padre distante con la guitarra en la mano y con un Team Foundation Server 2010 delante del monitor en el tico. A mi padre y a mi madre, que desde pequeo me compraron todos los libros que siempre ped, y de esta forma hicieron que leer fuera una de mis pasiones (adems esto sirve para confirmar que leer mucho no significa que puedas escribir bien) A todos aquellos que me ayudaron con revisiones, material, etc.; que no es trabajo fcil llegar a un screenshot de Visual Basic 1. As que gracias Juan Carlos Gonzlez, Roberto Loreto, Gerardo Korndorffer, Jose Miguel Torres, Eduardo del Pozo, Sergio Vzquez y a todos los otros que me ayudaron tcitamente y que no los tengo en ningn correo. A Avanade Spain que me permiti ser ms flexible con mis horarios y poder jugar con Visual Studio 2010 entre proyecto y proyecto. A Jose Manuel por darme la oportunidad de escribir un libro, y de compartir su experiencia conmigo durante el camino. A todos aquellos que alguna vez me dieron un consejo, que me respondieron un mail, con los que compart un caf o una cerveza y que me ayudaron en los momentos medio raros en los que no saba por dnde seguir.
Finalmente, adems del sudor y lgrimas, creo que es interesante compartir las mtricas del trabajo realizado para cerrar este libro. Cerca de 16 litros de cerveza; principalmente botellines de Heineken de 330cl tomados por la noche. Esto me sirve de excusa para los posibles errores que posea el libro. Ms de 20 litros de mate, solo y compartido en familia. He visto como se cambiaba la fecha de lanzamiento de Visual Studio 2010 al 12 de Abril, para que coincida con mi cumpleaos el 14 de Abril. He corrido ms de 149 kilmetros y quemado ms de 13000 caloras. Me han renovado como MVP de Team System por tercera vez.
He visto cerca de 20 partidos de NBA de madrugada, mientras revisaba todo el material. Me he dado un golpazo que me ha costado 8 puntos de sutura en la frente, mientras escuchaba un podcast de CMMI (reservados los comentarios). He escrito partes del libro en 6 aeropuertos diferentes. He sufrido el cambio de nombre de Visual Studio a Visual Studio Ultimate, gracias amigos de Seattle, tuve que revisar todo el libro. Ha nacido mi nia Martina el 13 de diciembre del 2009; que se ha sumado a Valentino con sus 2 aitos, para que mis das sean lo menos productivo posibles sper happy happy.
vi
Contenido
INTRODUCCIN Y UN POCO DE HISTORIA ................................................ xii NOVEDADES EN EL IDE .............................................................................................. 1 1.- Novedades en el IDE .................................................................................................................. 1 1.1.- Rincn del Friki: Por qu la Splash Screen no est desarrollada sobre WPF? 3 1.1.1.- Proceso para el control de las animaciones en la Splash Screen ................ 4 1.1.2.- Alpha Blending ......................................................................................................... 5 1.1.3.- Informacin en el Splash Screen .......................................................................... 6 1.2.- Rincn del Friki: Cmo lanzar Visual Studio sin mostrar la Splash Screen? .... 6 2.- IDE Basado en Windows Presentation Foundation ............................................................ 6 2.1.- Tutorial: Agregando video online a nuestro editor de cdigo fuente................ 8 2.2.- Tutorial: Trabajando con los nuevos tipos de seleccin en el IDE ................... 11 3.- La nueva Start Page ................................................................................................................... 14 3.1.- Tutorial: Personalizando la Start Page ...................................................................... 16 4.- Soporte MultiMonitor .............................................................................................................. 19 5.- Soporte para Multi Targeting .................................................................................................. 20 5.1.- Mejoras en la ventana de Agregar Referencias ...................................................... 22 6.- Bsqueda Inteligente ................................................................................................................. 23 7.- Resaltar Referencias .................................................................................................................. 24 8.- Consumir luego declarar ......................................................................................................... 25 8.1.- Tutorial: Utilizacin de Generate From Usage ...................................................... 26 9.- Jerarqua de Llamadas ............................................................................................................... 29 10.- Anlisis de Cdigo .................................................................................................................. 31 11.- IntelliTrace (Depurador Histrico) ................................................................................... 34 11.1.Configuracin de IntelliTrace ............................................................................. 37 11.2.Cmo funciona IntelliTrace ................................................................................. 40 11.3.Abriendo archivos de depuracin de IntelliTrace ......................................... 42 12.- Depuracin en Visual Studio 2010 ..................................................................................... 45 12.1.Tutorial: Anclar ventanas de Watch en el IDE ............................................... 47 12.2.Tutorial: Importar y Exportar BreakPoints ..................................................... 48 13.- Otras MEjoras en el IDE ....................................................................................................... 50 13.1.Intellisense en el editor SQL en Visual Studio ................................................ 50 13.2.Paneles para la depuracin de mltiples hilos y tareas................................. 52 13.3.Nuevo Intellisense y soporte para nuevos editores .................................... 54 13.4.Desarrollando para Sharepoint .......................................................................... 55 NOVEDADES EN LOS LENGUAJES .............................................................................. 59 1.- Evolucin de .Net Framework ............................................................................................... 59 1.1.- Soporte para lenguajes dinmicos ............................................................................. 59
viii Visual Studio 2010 .NET 4.0 y ALM Actualzate desde la versin 2008
2.-
3.-
4.-
5.-
1.1.1.- Tutorial: Ejemplo de las ventajas en la utilizacin de dynamic. ................. 62 1.2.- Programacin en Paralelo ............................................................................................ 64 1.2.1.- Tutorial: Ejemplo de programacin con Parallel ........................................... 65 1.3.- Monitorizacin de Aplicaciones ................................................................................. 69 1.3.1.- Tutorial: Monitorizacin de aplicaciones a nivel de dominio de aplicacin . 70 1.4.- Inicializacin tarda de objetos (Lazy Initialization) ............................................... 72 1.4.1.- Tutorial: Creacin de objetos con Lazy<T> .................................................. 72 1.5.- Ejecucin In-Process Side-By-Side ............................................................................. 74 1.6.- Garbage Collector: Background GC ........................................................................ 75 1.7.- Code Contracts ............................................................................................................. 75 1.8.- Interoperabilidad ............................................................................................................ 77 1.8.1.- Tutorial: Trabajando con Excel en Visual Studio 2010 ................................ 78 1.9.- Covarianza y Contravarianza ...................................................................................... 80 1.10.Colecciones y nuevas estructuras de datos .................................................... 82 1.10.1.- Tutorial: Trabajando con SortedSet<T> ......................................................... 84 1.11.Gestin de Excepciones ....................................................................................... 86 1.12.Gestin de Archivos ............................................................................................. 87 1.13.Mejoras en Isolated Storage ................................................................................ 89 1.14.Mejoras en el trabajo con hilos (Threads)....................................................... 89 1.15.Managed Extensibility Framework ..................................................................... 90 1.16.Otras mejoras en .Net Framework .................................................................. 91 Novedades en C# 4.0 ............................................................................................................... 93 2.1.- Conceptos preliminares ............................................................................................... 93 2.2.- Introduccin .................................................................................................................... 94 2.3.- Soporte para programacin dinmica ....................................................................... 94 2.4.- Parmetros opcionales ................................................................................................. 96 2.5.- Mejoras en el trabajo con componentes COM ..................................................... 99 Novedades en Visual Basic 2010 ......................................................................................... 100 3.1.- Un poco de historia .................................................................................................... 100 3.2.- Propiedades Auto-Implementadas ........................................................................... 101 3.3.- Inicializadores de Colecciones .................................................................................. 103 3.4.- Continuacin de lneas implcita............................................................................... 105 3.5.- Soporte para expresiones Lambda multi lnea ..................................................... 107 3.6.- Soporte para programacin dinmica ..................................................................... 109 3.6.1.- Tutorial: Utilizando objetos dinmicos desde Visual Basic 2010 ............ 110 Novedades en Visual C++ ..................................................................................................... 112 4.1.- Introduccin .................................................................................................................. 112 4.2.- Soporte para MSBuild en proyectos de Visual C++ ........................................... 112 4.2.1.- Tutorial: Convirtiendo proyectos de Visual Studio 2008 a Visual Studio 2010 112 4.3.- Mejoras en el IDE, especialmente en Intellisense ................................................ 113 4.3.1.- Rincn del Friki: Funcionamiento del Intellisense en Visual C++ 2010 114 4.4.- Soporte para Restart Manager ................................................................................. 116 4.5.- Ms velocidad en Link Time Code Generation.................................................... 116 4.6.- Msvelocidad en Profile Guided Optimization ..................................................... 117 4.7.- Otras mejoras en Visual C++ ................................................................................... 117 Nuevo lenguaje: F#.................................................................................................................. 117 5.1.- Introduccin a los lenguajes funcionales ................................................................ 117
viii
Contenido ix
5.2.- Bienvenido F# ............................................................................................................... 120 5.3.- Trabajando con F#....................................................................................................... 121 5.3.1.- Tutorial: Primera aplicacin en F# .................................................................. 129 5.3.2.- Tutorial: Utilizar tipos del CLR en F# ........................................................... 130 5.3.3.- Creando bibliotecas .Net en F# ...................................................................... 131 HERRAMIENTAS DE MODELADO ............................................................................. 137 1.- Herramientas de Modelado .................................................................................................. 137 1.1.- Introduccin .................................................................................................................. 137 1.2.- Diseo basado en Modelos ....................................................................................... 140 1.3.- Herramientas de modelado: Domain-Specific Languages .................................. 141 1.4.- Herramientas para Arquitectos en Visual Studio 2010 ...................................... 145 1.5.- Resumen ......................................................................................................................... 146 2.- Layer Diagram .......................................................................................................................... 147 2.1.- Diseo en capas con Layer Diagram....................................................................... 148 2.1.1.- Tutorial: Crear un diagrama Layer Diagram ................................................ 154 2.2.- Asociaciones mltiples en Layer Diagram ............................................................. 160 2.2.1.- Tutorial: Realizar asociaciones mltiples en Layer Diagram .................... 161 2.3.- Asociaciones con WorkItems en Layer Diagram ................................................ 162 2.3.1.- Tutorial: Realizar asociaciones con WorkItems en Layer Diagram ....... 163 2.4.- Validacin del diseo con Layer Diagram .............................................................. 165 2.4.1.- Tutorial: Validar una solucin con un Layer Diagram ............................... 168 2.4.2.- Tutorial: Cmo verificar la validacin de capas en un Build en TFS2010 ... 170 2.4.3.- Tutorial: Cmo activar la validacin de capas en un Build en TFS2010 ..... 171 2.4.4.- Tutorial: Cmo agregar elementos personalizados en la Toolbox del Layer Diagram. 173 3.- Directed Graph Markup Language (DGML) ..................................................................... 176 3.1.- Introduccin a DGML ................................................................................................. 176 3.1.1.- Tutorial: Mi primer diagrama DGML ............................................................. 179 3.1.2.- Tutorial: Utilizando la ventana de leyenda y seleccin en DGML .......... 181 3.1.3.- Tutorial: Agrupando nodos en DGML .......................................................... 183 3.1.4.- Tutorial: Realizando validaciones en DGML ................................................ 184 3.1.5.- Tutorial: Creando diagramas DGML desde un proyecto ......................... 186 4.- ArchiTecture Explorer ........................................................................................................... 188 4.1.- Introduccin .................................................................................................................. 188 4.2.- Utilizando Architecture Explorer ............................................................................ 189 4.2.1.- Tutorial: Analizar una solucin en vista de Clases ..................................... 193 4.2.2.- Tutorial: Analizar una solucin en vista de Solucin.................................. 194 4.2.3.- Tutorial: Aplicar filtros y disparar acciones entre columnas. .................. 194 4.2.4.- Tutorial: Generar grficos DGML con la informacin de Architecture Explorer 195 4.3.- Consultas en Architecture Explorer: DGQL ....................................................... 197 4.3.1.- Tutorial: Guardar una consulta DGQL ......................................................... 198 5.- Anlisis de Dependencias grficos ....................................................................................... 199 5.1.- Generacin de relaciones entre ensamblados ..................................................... 199 5.2.- Generacin de relaciones entre Namespaces ...................................................... 199 5.3.- Generacin de relaciones entre Clases ................................................................. 200 6.- Diseadores UML .................................................................................................................... 201 6.1.- Introduccin a UML .................................................................................................... 201 6.2.- Diagramas de Casos de Uso ..................................................................................... 204
x Visual Studio 2010 .NET 4.0 y ALM Actualzate desde la versin 2008
6.2.1.- Tutorial: Creando mi primer diagrama de Casos de Uso ........................ 206 6.3.- Diagrama de Actividades ............................................................................................ 208 6.3.1.- Tutorial: Crear un diagrama de actividad y relacionarlo con un caso de uso. . 209 6.4.- Diagrama de Componentes ...................................................................................... 211 6.5.- Diagrama de Clases (UML)........................................................................................ 211 6.5.1.- Tutorial: Generar cdigo a partir de un diagrama de clases UML ......... 213 6.6.- Diagrama de Secuencia ............................................................................................... 216 6.6.1.- Tutorial: Crear un diagrama de secuencia UML a partir de los elementos de un diagrama de clases UML....................................................................................... 217 6.6.2.- Tutorial: Crear un diagrama de secuencia UML a partir de cdigo. ...... 218 6.7.- UML Model Explorer .................................................................................................. 220 6.7.1.- Tutorial: Utilizando el panel UML Model Explorer .................................... 221 TEAM FOUNDATION SERVER 2010 Y LA GESTIN DE PROYECTOS.......................... 223 1.- Novedades en TFS 2010 ........................................................................................................ 223 1.1.- Introduccin .................................................................................................................. 223 1.2.- Team Project Collections .......................................................................................... 224 1.2.1.- Tutorial: Cmo detener un Team Project Collection y mostrar un mensaje personalizado a los usuarios que acceden al mismo. ............................... 226 1.3.- WorkItems Jerrquicos .............................................................................................. 228 1.3.1.- Rincn del Friki: Pequeas grandes mejoras cuando trabajamos con WorkItem Queries ........................................................................................................... 231 1.3.2.- Tutorial: Trabajando con WorkItems jerrquicos en Visual Studio ...... 233 1.3.3.- Tutorial: Trabajando con WorkItems jerrquicos en Microsoft Project 235 1.4.- Mejoras en la definicin y presentacin de WorkItems .................................... 236 1.5.- Novedades en Source Control ................................................................................ 238 1.5.1.- Rincn del Friki: Cambio en el corazn del Source Control Item Mode vs Slot Mode... 242 1.6.- Integracin con Microsoft Office ............................................................................. 243 1.6.1.- Tutorial: Trabajando con WorkItems jerrquicos en Excel ................... 246 2.- Instalacion y despliegue de TFS 2010 ................................................................................. 247 2.1.- Instalacin de Team Foundation Server 2010 ...................................................... 247 2.2.- Administracin de Team Foundation Server 2010 ............................................. 249 2.3.- Team Foundation Server Basic ................................................................................. 250 2.4.- Topologas de instalacin de TFS 2010 .................................................................. 251 3.- TFS Build 2010.......................................................................................................................... 253 3.1.- Introduccin .................................................................................................................. 253 3.2.- Build Controllers y Build Agents ............................................................................. 254 3.2.1.- Rincn del Friki: TFS Build Service con soporte a procesos interactivos ...... 256 3.3.- Procesos de compilacin basados en WF 4.0 ...................................................... 257 3.4.- Propiedades de las definiciones de compilacin .................................................. 260 3.4.1.- Tutorial: Personalizando el formato del nombre de un Build ................. 263 3.5.- Analizando y trabajando con los resultados de las compilaciones .................. 264 3.6.- Test Impact Results ..................................................................................................... 267 3.6.1.- Tutorial: Utilizando Test Impact View ........................................................... 268 3.7.- Gated Check-in ............................................................................................................ 270
x
Contenido xi
3.7.1.- Rincn del Friki: Cmo realizar un CheckIn que no dispare un proceso de Integracin Continua? ............................................................................................................ 272 4.- Gestionando proyectos con TFS 2010............................................................................... 273 4.1.- Introduccin .................................................................................................................. 273 4.2.- Mejoras en MSF for Agile........................................................................................... 275 4.3.- Mejoras en MSF for CMMI ........................................................................................ 278 4.4.- Conclusin ..................................................................................................................... 282 NOVEDADES EN TESTING EN VISUAL STUDIO 2010 ............................................... 283 1.- Introduccin .............................................................................................................................. 283 2.- Eliminar los escenarios No-Repro .................................................................................. 283 3.- Microsoft Test Manager ......................................................................................................... 285 4.- Coded UI TEsts ........................................................................................................................ 291 4.1.1.- Tutorial: Creacin y lanzamiento de una prueba del tipo Coded UI Test ....... 294 5.- entornos de Pruebas Virtuales: Lab Management ........................................................... 295 6.- Conclusin ................................................................................................................................. 298 EL NUEVO MODELO DE LICENCIAS EN VISUAL STUDIO 2010 .................................. 301 1.- Introduccin .............................................................................................................................. 301 2.- Productos por versin ........................................................................................................... 303 NDICE ANALTICO .......................................................................................... 307
xii Visual Studio 2010 .NET 4.0 y ALM Actualzate desde la versin 2008
herramientas que eran compartidas por varios perfiles, pero se introdujo algo que realmente revolucion la forma de trabajar: Team Foundation Server (TFS). Team Foundation Server es el servidor de trabajo a travs del cual las personas que integran un equipo de trabajo pueden colaborar entre s. Y colaborar es algo ms que compartir informacin; TFS se encarga del versionado de los archivos de cdigo fuente, de la gestin de la configuracin, se integra con Sharepoint para poder gestionar la documentacin siempre tan necesaria en un proyecto, e inclusive incorpora un motor de compilacin para poder automatizar las tareas de compilacin. En realidad TFS puede llegar a realizar muchas otras tareas, gracias a un modelo de trabajo extensible, que permite que lo adaptemos a las necesidades puntuales de cada proyecto. Pero la mejor virtud que posee TFS es que toda la informacin que se recoge en las diferentes tareas, se almacena en una base de datos de DataWarehouse que luego puede ser explotada para analizar y cruzar esta informacin, por ejemplo para ver datos clsicos como la evolucin de la cantidad de errores por Release, u otros ms raros como la cantidad de errores por horas trabajadas y los problemas que podemos tener por no tener una buena planificacin de iteraciones. Visual Studio Team System 2008 es una evolucin de Visual Studio Team System 2005, porque si bien incorpora nuevas funcionalidades como la capacidad de poder trabajar con integracin continua; los conceptos sobre los que trabaja la herramienta siguen siendo las mismos. Aunque ojo!, que durante todo este tiempo tambin ha madurado el .Net Framework, y despus de 3.5 versiones, ha dejado de ser un Runtime de ejecucin de aplicaciones, para ser una coleccin de herramientas para el desarrollo de aplicaciones: ADO.Net, Entity Framework, Silverlight, Windows Communication Foundation, ASP.Net MVC, etc.; uff no termino ms.
Studio a mano, poder probarlo en pocos pasos. Tambin he agregado muchas referencias a material externo en cada seccin, que va desde un artculo de gestin de excepciones en C++ del ao 2002 (fundamental!), hasta la documentacin en lnea de MSDN que todava est por cerrarse para .Net 4.0 y Visual Studio 2010. Finalmente, en algunas secciones especiales he creado un [Rincn del Friki] que apunta bsicamente a escenarios de bajo nivel, a temas que no se tratan habitualmente o a pequeos consejos que siempre es til conocer.
CAPTULO
Novedades en el IDE
En este captulo daremos un repaso a las novedades que se han incorporado al entorno de desarrollo de Visual Studio 2010. Desde las novedades estticas relacionadas con Windows Presentation Foundation y el nuevo modelo de extensibilidad, hasta algunas de las nuevas herramientas para desarrolladores que se han incorporado en esta versin.
2 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
La siguiente imagen muestra el IDE de Visual Studio Team Suite 2008 (10 aos despus), en la misma se ha cargado la solucin completa con el cdigo fuente de Enterprise Library versin 4.1 (http://bit.ly/7BbAcB). Esta solucin posee 42 proyectos y en la imagen se est editando el cdigo fuente del gestor de recursos de tipo String. Si bien es posible notar diferencias, relacionadas con las ventanas de Windows, la base del IDE sigue siendo la misma.
Novedades en el IDE 3
Cuando desde el men de programas de Windows, accedemos por primera vez al acceso de Visual Studio 2010 lo primero que llama la atencin es el nuevo logo de Visual Studio donde se presenta el clsico smbolo de infinito (http://bit.ly/5tuGyt) de Visual Studio. En esta versin el logo de infinito ha perdido las formas rectas conectadas entre s y ha pasado a ser una cinta continua con su base en colores azules. Luego se lanza la ventana de inicio (Splash Screen) y aqu ya vemos que los cambios son visibles desde el primer momento.
A continuacin nos encontramos con un entorno de trabajo integrado completamente diferente al que se nos presentaba desde Visual InterDev hasta Visual Studio 2008. En realidad los elementos del IDE son los mismos: barras de herramientas, mens y paneles; pero en la versin 2010 el IDE ha sido completamente rediseado basado en WPF con lo que las capacidades de extensin y presentacin aprovechan ahora toda la potencia de Windows Presentation Foundation.
1.1.- Rincn del Friki: Por qu la Splash Screen no est desarrollada sobre WPF?
Si bien todo Visual Studio 2010 est basado en Windows Presentation Foundation, la Splash Screen est creada utilizando otras tecnologas. Este cambio ha sido obligado principalmente por cuestiones de rendimiento, basado en las siguientes premisas:
4 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
La pantalla de inicio debe ser lo ms rpida posible entre el momento que se lanza la aplicacin y la Splash Screen aparece. No se busca perder recursos dedicados a la aplicacin en la Splash Screen, la misma solo debe dar la bienvenida al usuario.
Si se hubiese utilizado Windows Presentation Foundation en la implementacin de la Splash Screen, hubiese sido necesario que se esperase para que se inicializase el CLR y el gestor de WPF para poder comenzar a pintar la Splash Screen. Este funcionamiento no se puede comparar con el rendimiento de aplicaciones directamente escritas en cdigo nativo C++. Este es el motivo principal por el que se decidi crear la Splash Screen en C++. Esta seccin est basada en un WebCast de Paul Currington sobre extensibilidad de Visual Studio, ms informacin en http://bit.ly/5LMrpl.
Si se ejecuta Visual Studio 2010 en un equipo con un solo ncleo el subproceso que controla la animacin del Splash Screen no se crea, es el proceso principal de Visual Studio 2010 el que se encarga de todo el trabajo. En este caso, no hay animaciones de fundido ni de desvanecimiento, en cambio el Splash Screen aparece en la pantalla simplemente como una imagen. La animacin tambin est desactivada en una sesin de escritorio remoto para ahorrar ancho de banda de la red.
Nota:
Novedades en el IDE 5
6 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
Durante la instalacin de Visual Studio, se genera la imagen de la Splash Screen final creando la imagen de base con texto localizado, utilizando GDI +. La imagen se guarda como un archivo PNG almacenado como datos de programa en el equipo del usuario
Nota:
1.2.- Rincn del Friki: Cmo lanzar Visual Studio sin mostrar la Splash Screen?
En Visual Studio 2010 se ha respetado un parmetro que se aplica al ejecutable de Visual Studio que se viene utilizando desde hace bastantes versiones [/nosplash]. Este parmetro indica a Visual Studio que se lance sin mostrar la Splash Screen.
EN
WINDOWS
PRESENTATION
Ms all de una cuestin esttica, la decisin de montar el IDE de Visual Studio sobre Windows Presentation Foundation viene dada por una cuestin de fondo: mejorar la experiencia del usuario; en este caso de los diferentes perfiles que intervienen en el proceso de desarrollo. Una buena experiencia de usuario implica una mayor productividad, ms efectividad y aumento de beneficios. Por ejemplo, en los editores de cdigo, el texto que se visualiza en los editores presenta una fuente y un tamao determinado. Habitualmente cuando queremos cambiar el tamao del texto en Visual es necesario acceder al men [Tools // Options // Environment // Fonts and Colors] y desde all cambiar el tamao del texto. La siguiente imagen muestra un ejemplo con el tamao del texto en 8 pixeles y 72 pixeles en Visual Studio 2008.
Novedades en el IDE 7
En Visual Studio 2010 ya tenemos la capacidad de poder configurar el Zoom dinmicamente con lo que para cambiar el tamao del texto que vemos en un editor, solo debemos presionar CTRL+ y con el botn central del mouse (la ruedita) podremos cambiar la visualizacin completa de nuestro editor. Pero esto tiene otras ventajas, al ser un dibujado vectorial el que presenta Windows Presentation Foundation, si aumentamos el nivel de Zoom a un 400% la calidad del texto que visualizamos no se degradar. Obviamente que hacer un zoom tan grande sobre texto no tiene sentido, pero en captulos posteriores veremos cmo las nuevas capacidades grficas han permitido que existan nuevos diseadores grficos y que el nivel de detalle que se visualice en los editores puede estar de acuerdo con el nivel de zoom con el que se est trabajando.
Adems podemos seleccionar texto no solo en modo text, es decir lnea a lnea, sino tambin en modo seleccin abierta (Box Mode). Esto permite que dentro del editor de cdigo sea posible seleccionar una seccin irregular y trabajar con la misma: por
8 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
ejemplo copiar el contenido al portapapeles o insertar texto en el mismo. En el nuevo IDE se han agregado nuevas caractersticas sobre estas funcionalidades: La capacidad de seleccionar una lnea de longitud cero. La capacidad de editar mltiples lneas al mismo tiempo.
Novedades en el IDE 9
5. En el proyecto de extensibilidad podremos ver que el proyecto posee 2 clases principales: GreenMargin.cs y MarginFactory.cs.
6. Renombrar la clase GreenMargin por C9VideoMargin. 7. Modificar el cdigo como en el siguiente ejemplo.
/// <summary> /// A class detailing the margin's visual definition /// including both size and content. /// </summary> class C9VideoMargin : Canvas, IWpfTextViewMargin { // The name of the margin public const string MarginName = "C9VideoMargin"; // The IWpfTextView that our margin will be attached to. private IWpfTextView _textView; // A flag stating whether this margin has been disposed private bool _isDisposed = false; /// <summary> /// Creates a <see cref="C9VideoMargin"/> for a given /// <see cref="IWpfTextView"/>. /// </summary> /// <param name="textView">The <see cref="IWpfTextView"/> /// to attach the margin to.</param> public C9VideoMargin(IWpfTextViewtextView) { // Set the IWpfTextView _textView = textView; // Establish the background of the margin. this.Height = 240; this.ClipToBounds = true; this.Background = new SolidColorBrush(Colors.Orange);
10 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
// add media element MediaElement videoChannel9 = new MediaElement() { Source = new Uri ("http://mschnlnine.vo.llnwd.net/d1/ch9/1/8/3/0/5/4/VSTS08_ch9.wmv") }; this.Children.Add(videoChannel9); } }
CheckPoint:El constructor de la clase es el encargado de decorar a la ventana de edicin de cdigo con un nuevo visor de videos (basado en un MediaElement) y luego asociar al mismo la ruta de un video de Channel 9. En este caso un video de casi 20 minutos donde hago un recorrido por VSTS: Un paseo por Visual Studio Team System 2008. 8. Una vez agregado el decorador que en el margen del editor de cdigo agregar el visor de video, es necesario modificar la clase MarginFactory para que agregue el decorador en la seccin superior. El siguiente cdigo muestra un ejemplo de la versin original modificada. En la lnea 10 es posible ver como se define que el contenedor estar en la zona superior y tambin el color de fondo en naranja.
#region VS2010BookEditorMargin Factory /// <summary> /// Export a <see cref="IWpfTextViewMarginProvider"/>, which /// returns an instance of the margin for the editor /// to use. /// </summary> [Export(typeof(IWpfTextViewMarginProvider))] [Name("C9VideoViewerBar")] //Ensure that the margin occurs below the horizontal scrollbar [Order(After = PredefinedMarginNames.HorizontalScrollBar)] //Set the container to the bottom of the editor window [MarginContainer(PredefinedMarginNames.Top)] //Do this for all content types [ContentType("text")] [TextViewRole(PredefinedTextViewRoles.Interactive)] internal sealed class MarginFactory : IWpfTextViewMarginProvider { public IWpfTextViewMargin CreateMargin(IWpfTextViewHosttextViewHost, IWpfTextViewMargincontainerMargin) { return new C9VideoMargin(textViewHost.TextView); } } #endregion
9. Compilamos el proyecto para validar que no existan errores. 10. Una vez compilado el ejemplo, si se ejecuta el proyecto es posible ver cmo se levanta una nueva instancia de Visual Studio llamada entorno
Novedades en el IDE 11
experimental (Visual Studio Experimental Hive). Esta nueva instancia permite probar las extensiones y complementos que se crean para Visual Studio en un entorno diferente, y de esta forma no modificar el comportamiento de la instancia con la que estamos trabajando. 11. Utilizando la instancia experimental de pruebas de Visual Studio, crear un nuevo proyecto del tipo Class Library u otro que permita acceder a un editor de cdigo. 12. Abrir el editor de cdigo y ser posible ver en el editor de cdigo fuente, en la seccin superior comienza a pasar automticamente el video de Channel 9 con el fondo naranja que definimos en la clase C9VideoMargin, en la lnea 31.
12 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
1. Abrir Visual Studio 2010. 2. Crear un nuevo proyecto de tipo Class Library en C#. 3. Renombrar la clase [Class1.cs] por [BoxSelectionAndMultiEdit.cs] 4. Modificar el cdigo de la clase [BoxSelectionAndMultiEdit] como demuestra el siguiente ejemplo:
class BoxSelectionAndMultiEdit { public readonly string Nombre; public readonly string Apellido; public readonly string EMail; }
CheckPoint: Supongamos que se desea modificar todos los campos para que no sean de solo lectura, es decir eliminar las sentencias readonly. 5. Posicionando el cursor del mouse sobre el primer readonly y presionando la tecla ALT, es posible seleccionar en modo Box todas las palabras readonly, como muestra la siguiente imagen.
6. Presionar la tecla [Delete] y esta accin eliminar el contenido de nuestra seleccin. 7. El cdigo fuente quedara como en la siguiente imagen:
CheckPoint:Si por ejemplo, a todos los campos definidos se les desea agregar el prefijo [cliente], es posible realizar esta accin con los siguientes pasos.
Novedades en el IDE 13
8. Posicionar el cursor del mouse al comienzo de la letra N de Nombre y seleccionar en forma descendente todas las lneas. 9. La seleccin es lo que se conoce como Zero Selection y debe queda como en la siguiente imagen.
10. A continuacin teclear la palabra cliente y la misma se agregar automticamente como prefijo de los campos de la clase.
CheckPoint: Finalmente si necesitamos agregar un comentario comn para los 3 campos, tambin podemos aprovechar las capacidades de BoxSelection y MultiEdit para realizar esta tarea. 11. Utilizando la capacidad de seleccin con la tecla ALT, seleccionar una columna 4 espacios despus de la definicin de los campos.
14 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
12. Con esta seleccin activa, teclear el comentario comn para todos los campos. Esta accin habilita la opcin de MultiEdit y crea el cdigo comn para todas las secciones como muestra la siguiente figura
Novedades en el IDE 15
En Visual Studio 2010 la nueva Start Page incorpora una serie de funcionalidades que realmente hacen que la misma sea prctica y til para ser utilizada. Lo primero que debemos agradecer es que si abrimos un proyecto desde la Start Page, una vez cargado un proyecto, la Start Page se cierra. Esto que parece algo trivial, es una accin que he visto automatizada en muchos desarrolladores en los ltimos aos: abrir un proyecto desde la Start Page y a continuacin cerrar la Start Page para comenzar a trabajar.
Como casi todo dentro de Visual Studio 2010, existe la posibilidad de configurar el comportamiento de acuerdo al gusto del desarrollador, en este caso, esta opcin se puede modificar directamente desde las opciones que posee la propia Start Page, junto con la opcin de mostrar la Start Page al iniciar Visual Studio. La siguiente imagen muestra las opciones de configuracin que se pueden modificar en la Start Page.
16 Visual Studio 2010 .NET 4.0 y ALM - Actualzate desde la versin 2008
Otro detalle interesante, es que se ha organizado la misma para que en la seccin superior izquierda tengamos a mano las opciones ms corrientes como crear o abrir un proyecto, e inclusive se ha incorporado la opcin para conectarse a un servidor Team Foundation Server. Asimismo en el listado de proyectos recientes, es posible eliminar elementos del listado, o dejar anclados elementos que utilicemos frecuentemente para que aparezcan dentro de la misma. La siguiente imagen muestra como aparece en la Start Page, la posibilidad de anclar el proyecto, eliminarlo de la lista, abrir el proyecto o abrir el directorio donde se encuentra el proyecto.
Finalmente la seccin central de la Start Page, posee una serie de pestaas que presentan una evolucin al lector RSS de la Start Page de Visual Studio 2008, donde es posible encontrar accesos directos a tutoriales, novedades, etc.; organizados por categoras. Y todo esto es posible ya que la Start Page es una pgina WPF; con lo que las posibilidades de adaptacin y mejora son muy amplias. En otras palabras es posible modificar al gusto del desarrollador, el proyecto o una organizacin, el comportamiento y funcionalidades que se desean incluir en la misma en Visual Studio 2010.