visual studio 2010

19
Visual Studio 2010 Novedades Ángel Rayo Ejemplo de lectura

description

algo bueno de visual studio 2010

Transcript of visual studio 2010

Visual Studio 2010Novedades

Ángel Rayo

Ejem

plo d

e lec

tura

La colección. Saber hacer de los profesionales TIC se corresponde contextos escritos por el plantel de profesores de la prestigiosa compañíatecnológica Alhambra Eidos. Esta firma, especializada en la formaciónde personal técnico en las tecnologías de la información y de lascomunicaciones, lleva formando en España desde hace veinte años amultitud de profesionales en dicho entorno. Muchas de las obrascontenidas en la serie son los textos que Alhambra Eidos emplea en sureconocido Máster Alhambra Eidos en desarrollo de software, un cursoque la mencionada compañía ha decidido impartir usando el libroelectrónico como base. Así, sus alumnos, en lugar de recibir las más de3.000 páginas en papel que hasta el curso 2008-2009 recibía, ahora seles entrega un reader en propiedad que contiene esa mismainformación pero en formato de libro electrónico.

Ejem

plo d

e lec

tura

Sipnosis

El texto que tiene usted en sus manos pretende ofrecer una visión general acercade las novedades traídas al mercado con la nueva versión de Visual Studio(2010) y la versión de .NET Framework 4.0. En el texto se tratarán lasnovedades en dicho entorno de desarrollo, su Framework .NET asociado y loscomponentes que forman la plataforma .NET como son WindowsCommunication Foundation, Windows Workflow Foundation, WindowsPresentation Foundation, ASP.NET y ADO.NET. Además se tratarán lasnovedades de despliegue de aplicaciones y los nuevos tipos de proyectosincluidos.

Ángel Rayo es formador de Alhambra-Eidos desde 2004. Ha sido el autor ycoautor de varios libros entre los que destaca el titulado "Administración y

Desarrollo con WSS 3.0 y MOSS 2007" centrado enMicrosoft SharePoint así como otros relacionados con laplataforma .NET. Además, ha escrito artículos paradotnetmanía sobre el ciclo de vida de desarrollo de softwarecon Visual Studio Team System, MSF y CMMI.

Ha participado en ponencias sobre SharePoint 2007, VisualStudio Team System y Symbian. Posee las certificacionesMCPD Enterprise en .NET 3.5, MCITP en SQL Server

2008 y MCTS en SharePoint 2007 principalmente. Está certificado comoformador oficial de Microsoft, EXIN y Nokia+Symbian, siendo en esta últimacertificación uno de los dos únicos profesionales autorizados en España. Dentrode la gestión de procesos y servicios posee las certificaciones IT ServiceManagement (based on ITIL®), ITIL® Expert, ISO/IEC 20000 Consultant yMOF v4.0 Foundation.

Ejem

plo d

e lec

tura

LuarnaVisual Studio 2010 y .NET 4. Novedades

© Ángel Rayo - Alhambra Eidos

© De esta edición: 2010, Luarna Ediciones, S.L.

www.luarna.com

Madrid, abril de 2010

ISBN: 978-84-92684-86-1

Versión 1.0 (15-04-2010)

«Cualquier forma de reproducción, distribución, comunicación pública o transformación de estaobra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por laley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesitafotocopiar, escanear o hacer copias digitales de algún fragmento de esta obra».

Ejem

plo d

e lec

tura

Visual Studio 2010 y .NET 4.0. Novedades

Ángel M. Rayo

Ejem

plo d

e lec

tura

1

Indice

1. NOVEDADES EN VISUAL STUDIO 2010 ..................................................... 5

NOVEDADES EN EL EDITOR DE VISUAL STUDIO 2010 ................................................. 6NOVEDADES EN PLANTILLAS DE TEXTO .................................................................... 9NOVEDADES EN LOS PROYECTOS .............................................................................12

Proyectos de modelado ......................................................................................15Novedades en la gestión de extensiones ..............................................................20Plantillas online ................................................................................................20

NOVEDADES EN EL DESPLIEGUE DE APLICACIONES ...................................................21Instalador ClickOnce personalizado ..................................................................22InstallShield 2010 LE ........................................................................................26

2. NOVEDADES EN LOS LENGUAJES ...........................................................27

NOVEDADES EN VISUAL BASIC 2010 .......................................................................27Propiedades autoimplementadas ........................................................................27Inicializadores de colecciones ............................................................................28Continuación de línea implícita .........................................................................28Expresiones y subrutinas lambda multilínea .......................................................29Nueva opción de línea de comandos para especificar versiones del lenguaje ......30Soporte de equivalencia de tipos ........................................................................30Soporte dinámico ...............................................................................................31

NOVEDADES EN VISUAL C# 2010 ............................................................................31API de Office .....................................................................................................31

NOVEDADES EN VISUAL F# 2010 ............................................................................33

3. NOVEDADES EN .NET FRAMEWORK 4.0 .................................................35

MEJORAS DE SEGURIDAD ........................................................................................36COMPATIBILIDAD Y DESPLIEGUE .............................................................................39CARACTERÍSTICAS Y MEJORAS DEL NÚCLEO ............................................................40

Gestión del rendimiento y el diagnóstico ............................................................41Garbage Collector .............................................................................................42DLR ..................................................................................................................43

LoopExpression ........................................................................................................ 43TryExpression ........................................................................................................... 44

Tuplas ...............................................................................................................44BigInteger y números complejos ........................................................................45Mejoras en enumeración del sistema de archivos ...............................................45Mapeo de ficheros en memoria ..........................................................................46

Ejem

plo d

e lec

tura

2

Sistemas Operativos de 64 bits y procesos ..........................................................48Otras novedades ................................................................................................49

COMPUTACIÓN PARALELA ......................................................................................51Clase Task .........................................................................................................51PLINQ...............................................................................................................52

NETWORKING.........................................................................................................54

4. NOVEDADES EN ASP.NET ...........................................................................56

Núcleo de ASP.NET ...........................................................................................56Cacheado de salida (output caching) .......................................................................... 56Precarga de aplicaciones Web .................................................................................... 59Redirección permanente de página ............................................................................. 60Compresión del estado de la sesión ............................................................................ 61

ASP.NET Web Forms.........................................................................................62Etiquetas meta ........................................................................................................... 62ViewState a nivel de control ...................................................................................... 62Soporte a navegadores y capacidades ......................................................................... 63Enrutado ................................................................................................................... 65Client ID ................................................................................................................... 68Selección de fila persistente en controles de datos....................................................... 69FormView y ListView ............................................................................................... 70Filtrar datos con el control QueryExtender ................................................................. 71

SearchExpression.................................................................................................. 73RangeExpression .................................................................................................. 73PropertyExpression ............................................................................................... 74OrderByExpression ............................................................................................... 74CustomExpression ................................................................................................ 74

Mejoras en accesibilidad y estilos CSS ....................................................................... 75ASP.NET MVC ..................................................................................................75

Ventajas de ASP.NET Web Forms ........................................................................ 76Ventajas de ASP.NET MVC ................................................................................. 77

ASP.NET Chart Control.....................................................................................87Funcionalidad de Microsoft AJAX .....................................................................90Mejoras de Visual Web Developer .....................................................................91Despliegue de aplicaciones con VS 2010 ............................................................92Mejoras en ASP.NET multiversión .....................................................................94

5. NOVEDADES EN ADO.NET .........................................................................95

CLAVES AJENAS EN EL MODELO CONCEPTUAL ........................................................95NUEVOS MÉTODOS PARA EL DESARROLLO DE APLICACIONES N-CAPAS .....................97SOPORTE ENTITYDATASOURCE PARA EL CONTROL QUERYEXTENDER ......................97EJECUCIÓN DIRECTA DE COMANDOS ALMACENADOS ................................................98Ejem

plo d

e lec

tura

3

ExecuteStoreCommand ......................................................................................98ExecuteStoreQuery ............................................................................................99Translate ......................................................................................................... 100

OBJETOS QUE IGNORAN LA PERSISTENCIA .............................................................. 101CARGA PEREZOSA (LAZY) DE OBJETOS RELACIONADOS .......................................... 103FUNCIONES EN LAS CONSULTAS LINQ A ENTIDADES ............................................. 103

EntityFunctions ............................................................................................... 103Funciones personalizadas de base de datos ............................................................... 104Funciones personalizadas del modelo ....................................................................... 105

SqlFunctions ................................................................................................... 106MEJORAS EN ORDERBY EN LINQ A ENTIDADES .................................................... 107GENERACIÓN DE CÓDIGO PERSONALIZADO DE LA CAPA DE OBJETOS ....................... 108SOPORTE MODEL-FIRST ........................................................................................ 108SOPORTE DE TIPOS COMPLEJOS .............................................................................. 110

6. NOVEDADES EN WCF 4.0 .......................................................................... 113

ACTIVACIÓN A PARTIR DE CONFIGURACIÓN ........................................................... 113INTEGRACIÓN CON SYSTEM.WEB.ROUTING ........................................................... 113SOPORTE DE ENLACE CON MÚLTIPLES SITIOS IIS .................................................... 114SERVICIO DE ENRUTADO ....................................................................................... 115SOPORTE PARA WS-DISCOVERY ........................................................................... 117ENDPOINTS ESTÁNDARES ...................................................................................... 119ATRIBUTO DE FRAMEWORK ASOCIADO .................................................................. 120WCF REST ......................................................................................................... 120

7. NOVEDADES EN WWF 4.0 ......................................................................... 122

MODELO DE ACTIVIDADES DE FLUJOS DE TRABAJO ................................................ 122PROYECTOS Y ELEMENTOS .................................................................................... 122

Tipos de proyectos ........................................................................................... 123Tipos de elementos .......................................................................................... 124

MODELO DE DATOS DE ACTIVIDAD EXPLÍCITO ...................................................... 124Variables ......................................................................................................... 125Argumentos ..................................................................................................... 126Expresiones ..................................................................................................... 128

BIBLIOTECA DE ACTIVIDADES ............................................................................... 130Actividades de tipo colección ........................................................................... 131Actividades de tipo control de flujo .................................................................. 133Actividades de tipo transacción ........................................................................ 136Actividades de tipo ejecución y primitivas ........................................................ 138Actividades de tipo manejo de errores .............................................................. 139Ejem

plo d

e lec

tura

4

Actividades de tipo migración .......................................................................... 140Actividades de tipo gráfico de flujos ................................................................. 140Actividades de tipo mensajería ......................................................................... 141

ALOJAMIENTO Y EJECUCIÓN.................................................................................. 143WorkflowServiceHost ...................................................................................... 144WorkflowApplication ....................................................................................... 144WorkflowInvoker ............................................................................................. 146

SEGUIMIENTO DE LOS FLUJOS DE TRABAJO............................................................. 147

8. NOVEDADES EN WPF 4.0 .......................................................................... 150

NUEVOS CONTROLES ............................................................................................ 150DataGrid ......................................................................................................... 150Calendar y DatePicker .................................................................................... 151

VISUAL STATE MANAGER ..................................................................................... 152OPERACIONES TÁCTILES ....................................................................................... 154OPERACIONES DE ENTRADA DE DATOS................................................................... 155

API de entrada de datos ................................................................................... 155Clases Keyboard y Mouse ....................................................................................... 155Clase Stylus ............................................................................................................ 156Eventos de manipulación ......................................................................................... 157

GRÁFICOS Y ANIMACIONES ................................................................................... 158TEXTO ................................................................................................................. 159ENLACE DE DATOS................................................................................................ 160APLICACIONES DE NAVEGADOR XAML................................................................. 160WPF Y WINDOWS ................................................................................................ 161

JumpList.......................................................................................................... 161TaskbarItemInfo .............................................................................................. 162

DISEÑADOR WPF Y SILVERLIGHT ......................................................................... 164

Ejem

plo d

e lec

tura

5

1. NOVEDADES EN VISUAL STUDIO 2010

Microsoft ofrece su versión 10 de su entorno de desarrollo de aplicaciones(IDE) en este año 2010. El cambio que ha sufrido este producto desde suprimera liberación para Visual Basic 5.0 en 1997 hasta la actual es abismal.

Visual Studio 2010 ha dejado de ser simplemente un entorno de desarrollo deaplicaciones y se ha convertido en la herramienta perfecta para integrar todo elciclo de vida de desarrollo de aplicaciones desde la fase de toma de requisitoshasta la de despliegue y mantenimiento pasando por las intermedias de análisis,diseño, implementación y pruebas.

En el presente capítulo pretendo mostrar al lector las novedades que esteproducto presenta a los usuarios en comparación con lo que ofrecía supredecesor Visual Studio 2008.

Dichas novedades y mejoras estarán estructuradas en cinco grupos principales:

· Novedades en el editor de Visual Studio 2010

· Novedades en la generación de código y las plantillas de texto

· Novedades en los proyectos

· Novedades en el despliegue de aplicaciones

· Novedades en la gestión de extensiones

Una vez organizado el capítulo, comencemos a adentrarnos en el mundo deVisual Studio 2010. Bienvenidos.

Ejem

plo d

e lec

tura

6

Novedades en el editor de Visual Studio 2010

Los desarrolladores que hemos utilizado las versiones anteriores de VisualStudio hemos podido comprobar que las diferentes ventanas de Visual Studio(Explorador de Soluciones, de Servidores, Tareas, Resultados, Vista de Clases,etc…) estaban obligadas a visualizarse dentro del propio espacio devisualización de Visual Studio, con el problema que esto supone si por ejemplotrabajamos con varios monitores. En Visual Studio 2010 esto ya no sucede,ahora podemos seguir ubicando las ventanas en el espacio de visualización delIDE o bien optar por desplazarlas a otra parte del escritorio o a otro monitoradaptando la presentación a nuestros gustos. Aunque las ventanas tengan laposibilidad de flotar entre escritorios siguen presentando datos actualizados delestado del entorno, por lo que si cambiamos alguna propiedad de un controlnotaremos dicho cambio inmediatamente en cualquier ventana relacionada condicho control. En la siguiente figura podéis ver como quedaría la situación:

Figura 1 – Posicionamiento de ventanas

Otra de las novedades que ofrece Visual Studio 2010 a los desarrolladores es laposibilidad de hacer Zoom en aquellas ventanas que contengan sólo texto comopuede ser la ventana de resultados. Para hacer Zoom en una ventana sólodeberemos pulsar la tecla CTRL mientras movemos la rueda central del ratón.

Otra de las novedades que trae Visual Studio 2010 en esta categoría denovedades del editor es la funcionalidad conocida como “Jerarquía deLlamadas” (Call Hierarchy). Se encuentra disponible para Visual C# y paraEjem

plo d

e lec

tura

7

Visual C++ y nos permite localizar desde que zonas de código se hacenllamadas a un método, propiedad o constructor específicos; qué métodos,propiedades o constructores son llamados desde una zona de código concreta;qué implementaciones existen de una interfaz o qué sobrecargas de un miembrovirtual o abstracto existen.

Figura 2 – View Call Hierarchy

Figura 3 – Resultados Call Hierarchy

La localización de objetos en una solución o proyecto es una de lasfuncionalidades que todo desarrollador necesita tener en su entorno dedesarrollo. En versiones anteriores de Visual Studio ya existía la posibilidad delocalizar elementos en la solución a partir del nombre completo o de parte deéste. En Visual Studio 2010 se ha ampliado el número de posibilidadesexistentes para localizar objetos. Dichas posibilidades son las siguientes:

· Explorador de Objetos.

Podremos buscar un objeto en las diferentes ubicaciones mostradas enla siguiente figura. Entre dichas ubicaciones podemos contar con loscomponentes de .NET Framework, la solución actual y Silverlight 3.0.

Ejem

plo d

e lec

tura

8

Figura 4 – Object Browser

· Navegar a

Desde el menú de Edición de Visual Studio 2010 podemos acceder a laopción “Navegar a”. Si tenemos algún texto seleccionado en el editornos buscará dicho texto en los objetos de Visual Studio y de nuestrasolución y si no podremos especificar nosotros el texto a buscar. En lostérminos de búsqueda se pueden utilizar operadores lógicos (& |),comodines o expresiones regulares.

Figura 5 – Navigate to

· Buscar Símbolo

Ejem

plo d

e lec

tura

9

La opción de Buscar Símbolo ha sido mejorada en Visual Studio 2010ya que dicha funcionalidad ya estaba presente en Visual Studio 2008.

· Ir a Definición

La opción “Ir a Definición” nos permite posicionarnos directamente enla definición de un miembro de clase (propiedad, método o evento) demanera rápida. Aunque ya existía en Visual Studio 2008 en la nuevaversión ha mejorado en rendimiento.

Figura 6 – Ir a Definición

Novedades en plantillas de texto

Dentro de los nuevos componentes incluidos en los proyectos de Visual Studio2010 encontramos las plantillas de texto preprocesado. Este componente estáformado por un fichero con código fuente C# y un fichero .tt con el texto quegenerará para integrarlo con nuestras aplicaciones. Básicamente sirve paragenerar fragmentos de texto que podemos incluir en nuestros informes,resultados o ficheros de salida de manera transparente. En versiones anteriores

Ejem

plo d

e lec

tura

10

de Visual Studio estaba incluido en los llamados “lenguajes específicos deldominio o DSL.

Para agregar una plantilla de texto preprocesado, también conocida como T4 delinglés Text Template Transformation Toolkit deberemos ir a Agregar nuevoelemento en cualquier proyecto y elegiremos el elemento que se muestra en lasiguiente figura.

Figura 7 – Plantilla de texto preprocesada

Dicho elemento incluirá en nuestro proyecto dos nuevos ficheros, uno conextensión “tt” y otro con la extensión del lenguaje de programación con el queestemos trabajando.

Dicha plantilla “TT” puede contener texto preestablecido o incluir directivas decódigo que permitan generar el texto resultado. En el siguiente ejemplopodemos ver cómo construir una plantilla de texto preprocesado que nosdevolverá un mensaje XML con la información de una lista de cadenas decaracteres que forma parte de la propia clase.

El fichero de código tendrá el siguiente contenido:

[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")] public partial class plantillaMensaje : plantillaMensajeBase { public class ToStringInstanceHelper { private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; public virtual string TransformText() {Ejem

plo d

e lec

tura

11

this.GenerationEnvironment = null; this.Write("<elementos>\r\n"); foreach (String st in _lista)

{ #line default #line hidden this.Write(" <elemento long=\""); this.Write (this.ToStringHelper.ToStringWithCulture(st.Length));

#line default #line hidden this.Write("\">\r\n ");

this.Write(this.ToStringHelper.ToStringWithCulture(st));

#line default #line hidden this.Write("\r\n </elemento>\r\n"); } #line default #line hidden this.Write("</elementos>\r\n"); return this.GenerationEnvironment.ToString(); } }

Código 1 – Código de la plantilla de texto

El código anterior ha sido generado a partir de la plantilla TT siguiente:

<#@ template language="C#" #><elementos><# foreach (String st in _lista){ #> <elemento long="<#= st.Length #>"> <#= st #> </elemento><# }#></elementos>

Código 2 – Plantilla TT

Como podemos observar en la plantilla se generan los resultados a partir de unalista (_lista) para cuyos elementos muestro la longitud de cada cadena de lamisma como atributo (<#= st.Length #>) y la propia cadena como texto (<#= st#>). Como el fichero de código está sincronizado con la plantilla he optado pordefinir dicha lista en otro fichero de código fuente al tratarse de una claseparcial. El código sería el siguiente:

Ejem

plo d

e lec

tura

12

partial class plantillaMensaje { List<String> _lista;

public List<String> Lista { get { return _lista; } set { _lista = value; } } }

Código 3 – Resto del código

Como podemos ver, las plantillas de texto preprocesado permiten combinar lageneración de cadenas de texto en una clase con la definición mediante unaplantilla.

Las directivas que tendremos que utilizar en las plantillas para incluirreferencias a código fuente son las siguientes:

<# #>: Código fuente

<#= #>: Expresión que formará parte del texto

<#@ assembly name=”System.Xml.dll” #>: Importa un ensamblado

<#@ import namespace=”System.Xml” #>: Importa un espacio de nombres

<#@ include file=”c:\texto.txt” #>: Incluye el contenido del fichero

Novedades en los proyectos

En Visual Studio 2010 como en todas las ediciones anteriores contamos connuevos tipos de proyectos alineados con las nuevas versiones de loscomponentes asociados a .NET. En esta edición, la principal novedad es laampliación de los llamados proyectos basados en plantillas online.

La principal novedad en la creación de proyectos o soluciones hace referenciano a un tipo de proyecto concreto sino a un nuevo lenguaje de programaciónincluido como parte de Visual Studio. Este lenguaje no es otro que F#, una

Ejem

plo d

e lec

tura

13

implementación del lenguaje ML para .NET con sus cimientos construidos apartir de OCaml. F# se trata de un lenguaje de programación que cubre tanto elparadigma funcional como el orientado a objetos. Se trata de uno de loslenguajes surgidos de Microsoft Research.

De momento, en la versión RC de Visual Studio 2010 sólo se encuentradisponible la posibilidad de crear estos 4 tipos de proyectos:

· Aplicación de consola F#

· Biblioteca F#

· Tutorial F#: Visión general del lenguaje

· Biblioteca Silverlight F#

Dentro de los proyectos sólo podremos añadir ficheros de script, ficheros defirma y ficheros de código fuente F#. Todo hace esperar a que en la versiónfinal de Visual Studio 2010 se incluirán mayor número de proyectos para estelenguaje.

En cuanto a las novedades a nivel de proyecto en los lenguajes ya tradicionalesde Visual Studio (C# y VB) se incluyen los siguientes tipos:

· Aplicaciones Web ASP.NET MVC 2

· Aplicaciones dinámicas de datos ASP.NET de entidades

· Aplicaciones dinámicas de datos ASP.NET de LINQ to SQL

· Complementos y plantillas para Office 2010 en los mismos productosque para 2007 (Excel, InfoPath, Outlook, PowerPoint, Project, Visio yWord)

· Servicio de Windows Azure

Ejem

plo d

e lec

tura

14

· Proyectos para SharePoint 2010 incluyendo:

o Proyecto vacío

o Web Part visual

o Flujos de trabajo secuenciales

o Flujos de trabajo de máquinas de estado

o Modelo BDC

o Receptor de eventos

o Definición de lista o de sitio

o Tipo de contenido

o Módulo

o Importar flujo de trabajo reutilizable

o Importar paquete de solución SharePoint (WSP)

· Aplicación, biblioteca y aplicación de navegación Silverlight 3.0

· En WCF se incluyen los proyectos de tipo biblioteca de servicio desindicación.

He dejado para el final la mayor novedad en proyectos en Visual Studio 2010.Se trata de los proyectos de modelado. Con dichos proyectos podremosconstruir todos los componentes y diagramas necesarios para integrar UML ennuestros procesos de análisis y diseño de aplicaciones.

Ejem

plo d

e lec

tura