Está en la página 1de 19

tur

Visual Studio 2010


Novedades

Eje

mp

lo

de

lec

ngel Rayo

tur
a
lec
de

Eje

mp

lo

La coleccin. Saber hacer de los profesionales TIC se corresponde con


textos escritos por el plantel de profesores de la prestigiosa compaa
tecnolgica Alhambra Eidos. Esta firma, especializada en la formacin
de personal tcnico en las tecnologas de la informacin y de las
comunicaciones, lleva formando en Espaa desde hace veinte aos a
multitud de profesionales en dicho entorno. Muchas de las obras
contenidas en la serie son los textos que Alhambra Eidos emplea en su
reconocido Mster Alhambra Eidos en desarrollo de software, un curso
que la mencionada compaa ha decidido impartir usando el libro
electrnico como base. As, sus alumnos, en lugar de recibir las ms de
3.000 pginas en papel que hasta el curso 2008-2009 reciba, ahora se
les entrega un reader en propiedad que contiene esa misma
informacin pero en formato de libro electrnico.

tur
a

Sipnosis

lec

El texto que tiene usted en sus manos pretende ofrecer una visin general acerca
de las novedades tradas al mercado con la nueva versin de Visual Studio
(2010) y la versin de .NET Framework 4.0. En el texto se tratarn las
novedades en dicho entorno de desarrollo, su Framework .NET asociado y los
componentes que forman la plataforma .NET como son Windows
Communication Foundation, Windows Workflow Foundation, Windows
Presentation Foundation, ASP.NET y ADO.NET. Adems se tratarn las
novedades de despliegue de aplicaciones y los nuevos tipos de proyectos
incluidos.

de

ngel Rayo es formador de Alhambra-Eidos desde 2004. Ha sido el autor y


coautor de varios libros entre los que destaca el titulado "Administracin y
Desarrollo con WSS 3.0 y MOSS 2007" centrado en
Microsoft SharePoint as como otros relacionados con la
plataforma .NET. Adems, ha escrito artculos para
dotnetmana sobre el ciclo de vida de desarrollo de software
con Visual Studio Team System, MSF y CMMI.

Eje

mp

lo

Ha participado en ponencias sobre SharePoint 2007, Visual


Studio Team System y Symbian. Posee las certificaciones
MCPD Enterprise en .NET 3.5, MCITP en SQL Server
2008 y MCTS en SharePoint 2007 principalmente. Est certificado como
formador oficial de Microsoft, EXIN y Nokia+Symbian, siendo en esta ltima
certificacin uno de los dos nicos profesionales autorizados en Espaa. Dentro
de la gestin de procesos y servicios posee las certificaciones IT Service
Management (based on ITIL), ITIL Expert, ISO/IEC 20000 Consultant y
MOF v4.0 Foundation.

Visual Studio 2010 y .NET 4. Novedades


ngel Rayo - Alhambra Eidos

lec

De esta edicin: 2010, Luarna Ediciones, S.L.

de

www.luarna.com

Madrid, abril de 2010

tur
a

Luarna

ISBN: 978-84-92684-86-1

mp

lo

Versin 1.0 (15-04-2010)

Cualquier forma de reproduccin, distribucin, comunicacin pblica o transformacin de esta

Eje

obra solo puede ser realizada con la autorizacin de sus titulares, salvo excepcin prevista por la
ley. Dirjase a CEDRO (Centro Espaol de Derechos Reprogrficos, www.cedro.org) si necesita
fotocopiar, escanear o hacer copias digitales de algn fragmento de esta obra.

tur
a
lec

Visual Studio 2010 y .NET 4.0. Novedades

Eje

mp

lo

de

ngel M. Rayo

tur
a

Indice
1.

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

2.

lec

NOVEDADES EN EL EDITOR DE VISUAL STUDIO 2010................................................. 6


NOVEDADES EN PLANTILLAS DE TEXTO .................................................................... 9
NOVEDADES EN LOS PROYECTOS .............................................................................12
Proyectos de modelado ......................................................................................15
Novedades en la gestin de extensiones..............................................................20
Plantillas online ................................................................................................20
NOVEDADES EN EL DESPLIEGUE DE APLICACIONES ...................................................21
Instalador ClickOnce personalizado ..................................................................22
InstallShield 2010 LE ........................................................................................26
NOVEDADES EN LOS LENGUAJES ...........................................................27

3.

lo

de

NOVEDADES EN VISUAL BASIC 2010 .......................................................................27


Propiedades autoimplementadas........................................................................27
Inicializadores de colecciones............................................................................28
Continuacin de lnea implcita .........................................................................28
Expresiones y subrutinas lambda multilnea.......................................................29
Nueva opcin de lnea de comandos para especificar versiones del lenguaje ......30
Soporte de equivalencia de tipos ........................................................................30
Soporte dinmico...............................................................................................31
NOVEDADES EN VISUAL C# 2010 ............................................................................31
API de Office .....................................................................................................31
NOVEDADES EN VISUAL F# 2010 ............................................................................33
NOVEDADES EN .NET FRAMEWORK 4.0 .................................................35

mp

MEJORAS DE SEGURIDAD ........................................................................................36


COMPATIBILIDAD Y DESPLIEGUE .............................................................................39
CARACTERSTICAS Y MEJORAS DEL NCLEO ............................................................40
Gestin del rendimiento y el diagnstico ............................................................41
Garbage Collector.............................................................................................42
DLR ..................................................................................................................43
LoopExpression ........................................................................................................ 43
TryExpression ........................................................................................................... 44

Eje

Tuplas ...............................................................................................................44
BigInteger y nmeros complejos ........................................................................45
Mejoras en enumeracin del sistema de archivos ...............................................45
Mapeo de ficheros en memoria ..........................................................................46

tur
a

Sistemas Operativos de 64 bits y procesos..........................................................48


Otras novedades ................................................................................................49
COMPUTACIN PARALELA ......................................................................................51
Clase Task .........................................................................................................51
PLINQ...............................................................................................................52
NETWORKING.........................................................................................................54
4.

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

Ncleo de ASP.NET ...........................................................................................56

lec

Cacheado de salida (output caching) .......................................................................... 56


Precarga de aplicaciones Web .................................................................................... 59
Redireccin permanente de pgina ............................................................................. 60
Compresin del estado de la sesin ............................................................................ 61

ASP.NET Web Forms.........................................................................................62

lo

de

Etiquetas meta........................................................................................................... 62
ViewState a nivel de control ...................................................................................... 62
Soporte a navegadores y capacidades ......................................................................... 63
Enrutado ................................................................................................................... 65
Client ID ................................................................................................................... 68
Seleccin de fila persistente en controles de datos....................................................... 69
FormView y ListView ............................................................................................... 70
Filtrar datos con el control QueryExtender ................................................................. 71
SearchExpression.................................................................................................. 73
RangeExpression .................................................................................................. 73
PropertyExpression ............................................................................................... 74
OrderByExpression............................................................................................... 74
CustomExpression ................................................................................................ 74
Mejoras en accesibilidad y estilos CSS....................................................................... 75

ASP.NET MVC ..................................................................................................75

mp

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


Ventajas de ASP.NET MVC ................................................................................. 77

ASP.NET Chart Control.....................................................................................87


Funcionalidad de Microsoft AJAX .....................................................................90
Mejoras de Visual Web Developer .....................................................................91
Despliegue de aplicaciones con VS 2010............................................................92
Mejoras en ASP.NET multiversin .....................................................................94
NOVEDADES EN ADO.NET .........................................................................95

Eje

5.

CLAVES AJENAS EN EL MODELO CONCEPTUAL ........................................................95


NUEVOS MTODOS PARA EL DESARROLLO DE APLICACIONES N-CAPAS .....................97
SOPORTE ENTITYDATASOURCE PARA EL CONTROL QUERYE XTENDER ......................97
EJECUCIN DIRECTA DE COMANDOS ALMACENADOS ................................................98

tur
a

ExecuteStoreCommand ......................................................................................98
ExecuteStoreQuery ............................................................................................99
Translate ......................................................................................................... 100
OBJETOS QUE IGNORAN LA PERSISTENCIA .............................................................. 101
CARGA PEREZOSA (LAZY) DE OBJETOS RELACIONADOS .......................................... 103
FUNCIONES EN LAS CONSULTAS LINQ A ENTIDADES ............................................. 103
EntityFunctions ............................................................................................... 103
Funciones personalizadas de base de datos ............................................................... 104
Funciones personalizadas del modelo ....................................................................... 105

6.

lec

SqlFunctions ................................................................................................... 106


MEJORAS EN ORDER BY EN LINQ A ENTIDADES .................................................... 107
GENERACIN DE CDIGO PERSONALIZADO DE LA CAPA DE OBJETOS ....................... 108
SOPORTE MODEL-FIRST ........................................................................................ 108
SOPORTE DE TIPOS COMPLEJOS .............................................................................. 110
NOVEDADES EN WCF 4.0 .......................................................................... 113

de

ACTIVACIN A PARTIR DE CONFIGURACIN ........................................................... 113


INTEGRACIN CON SYSTEM.WEB.ROUTING ........................................................... 113
SOPORTE DE ENLACE CON MLTIPLES SITIOS IIS .................................................... 114
SERVICIO DE ENRUTADO ....................................................................................... 115
SOPORTE PARA WS-DISCOVERY ........................................................................... 117
ENDPOINTS ESTNDARES ...................................................................................... 119
ATRIBUTO DE FRAMEWORK ASOCIADO .................................................................. 120
WCF REST ......................................................................................................... 120
NOVEDADES EN WWF 4.0 ......................................................................... 122

lo

7.

Eje

mp

MODELO DE ACTIVIDADES DE FLUJOS DE TRABAJO ................................................ 122


PROYECTOS Y ELEMENTOS .................................................................................... 122
Tipos de proyectos ........................................................................................... 123
Tipos de elementos .......................................................................................... 124
MODELO DE DATOS DE ACTIVIDAD EXPLCITO ...................................................... 124
Variables......................................................................................................... 125
Argumentos ..................................................................................................... 126
Expresiones ..................................................................................................... 128
BIBLIOTECA DE ACTIVIDADES ............................................................................... 130
Actividades de tipo coleccin ........................................................................... 131
Actividades de tipo control de flujo .................................................................. 133
Actividades de tipo transaccin........................................................................ 136
Actividades de tipo ejecucin y primitivas ........................................................ 138
Actividades de tipo manejo de errores.............................................................. 139

tur
a

Actividades de tipo migracin .......................................................................... 140


Actividades de tipo grfico de flujos................................................................. 140
Actividades de tipo mensajera......................................................................... 141
ALOJAMIENTO Y EJECUCIN.................................................................................. 143
WorkflowServiceHost ...................................................................................... 144
WorkflowApplication ....................................................................................... 144
WorkflowInvoker ............................................................................................. 146
SEGUIMIENTO DE LOS FLUJOS DE TRABAJO ............................................................. 147
NOVEDADES EN WPF 4.0 .......................................................................... 150

lec

8.

NUEVOS CONTROLES ............................................................................................ 150


DataGrid......................................................................................................... 150
Calendar y DatePicker .................................................................................... 151
VISUAL STATE MANAGER ..................................................................................... 152
OPERACIONES TCTILES ....................................................................................... 154
OPERACIONES DE ENTRADA DE DATOS................................................................... 155
API de entrada de datos................................................................................... 155

de

Clases Keyboard y Mouse ....................................................................................... 155


Clase Stylus ............................................................................................................ 156
Eventos de manipulacin ......................................................................................... 157

Eje

mp

lo

GRFICOS Y ANIMACIONES ................................................................................... 158


TEXTO ................................................................................................................. 159
ENLACE DE DATOS................................................................................................ 160
APLICACIONES DE NAVEGADOR XAML................................................................. 160
WPF Y WINDOWS ................................................................................................ 161
JumpList.......................................................................................................... 161
TaskbarItemInfo .............................................................................................. 162
DISEADOR WPF Y SILVERLIGHT ......................................................................... 164

tur
a

1. NOVEDADES EN VISUAL STUDIO 2010

lec

Microsoft ofrece su versin 10 de su entorno de desarrollo de aplicaciones


(IDE) en este ao 2010. El cambio que ha sufrido este producto desde su
primera liberacin para Visual Basic 5.0 en 1997 hasta la actual es abismal.

Visual Studio 2010 ha dejado de ser simplemente un entorno de desarrollo de


aplicaciones y se ha convertido en la herramienta perfecta para integrar todo el
ciclo de vida de desarrollo de aplicaciones desde la fase de toma de requisitos
hasta la de despliegue y mantenimiento pasando por las intermedias de anlisis,
diseo, implementacin y pruebas.

de

En el presente captulo pretendo mostrar al lector las novedades que este


producto presenta a los usuarios en comparacin con lo que ofreca su
predecesor Visual Studio 2008.
Dichas novedades y mejoras estarn estructuradas en cinco grupos principales:
Novedades en el editor de Visual Studio 2010

Novedades en la generacin de cdigo y las plantillas de texto

Novedades en los proyectos

Novedades en el despliegue de aplicaciones

Novedades en la gestin de extensiones

mp

lo

Eje

Una vez organizado el captulo, comencemos a adentrarnos en el mundo de


Visual Studio 2010. Bienvenidos.
5

tur
a

Novedades en el editor de Visual Studio 2010

mp

lo

de

lec

Los desarrolladores que hemos utilizado las versiones anteriores de Visual


Studio 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 de
visualizacin de Visual Studio, con el problema que esto supone si por ejemplo
trabajamos con varios monitores. En Visual Studio 2010 esto ya no sucede,
ahora podemos seguir ubicando las ventanas en el espacio de visualizacin del
IDE o bien optar por desplazarlas a otra parte del escritorio o a otro monitor
adaptando la presentacin a nuestros gustos. Aunque las ventanas tengan la
posibilidad de flotar entre escritorios siguen presentando datos actualizados del
estado del entorno, por lo que si cambiamos alguna propiedad de un control
notaremos dicho cambio inmediatamente en cualquier ventana relacionada con
dicho control. En la siguiente figura podis ver como quedara la situacin:

Figura 1 Posicionamiento de ventanas

Eje

Otra de las novedades que ofrece Visual Studio 2010 a los desarrolladores es la
posibilidad de hacer Zoom en aquellas ventanas que contengan slo texto como
puede ser la ventana de resultados. Para hacer Zoom en una ventana slo
deberemos pulsar la tecla CTRL mientras movemos la rueda central del ratn.
Otra de las novedades que trae Visual Studio 2010 en esta categora de
novedades del editor es la funcionalidad conocida como Jerarqua de
Llamadas (Call Hierarchy). Se encuentra disponible para Visual C# y para
6

tur
a

lec

Visual C++ y nos permite localizar desde que zonas de cdigo se hacen
llamadas a un mtodo, propiedad o constructor especficos; qu mtodos,
propiedades o constructores son llamados desde una zona de cdigo concreta;
qu implementaciones existen de una interfaz o qu sobrecargas de un miembro
virtual o abstracto existen.

de

Figura 2 View Call Hierarchy

Figura 3 Resultados Call Hierarchy

mp

lo

La localizacin de objetos en una solucin o proyecto es una de las


funcionalidades que todo desarrollador necesita tener en su entorno de
desarrollo. En versiones anteriores de Visual Studio ya exista la posibilidad de
localizar elementos en la solucin a partir del nombre completo o de parte de
ste. En Visual Studio 2010 se ha ampliado el nmero de posibilidades
existentes para localizar objetos. Dichas posibilidades son las siguientes:

Explorador de Objetos.

Eje

Podremos buscar un objeto en las diferentes ubicaciones mostradas en


la siguiente figura. Entre dichas ubicaciones podemos contar con los
componentes de .NET Framework, la solucin actual y Silverlight 3.0.

tur
a
lec

Figura 4 Object Browser

Navegar a

mp

lo

de

Desde el men de Edicin de Visual Studio 2010 podemos acceder a la


opcin Navegar a. Si tenemos algn texto seleccionado en el editor
nos buscar dicho texto en los objetos de Visual Studio y de nuestra
solucin y si no podremos especificar nosotros el texto a buscar. En los
trminos de bsqueda se pueden utilizar operadores lgicos (& |),
comodines o expresiones regulares.

Eje

Figura 5 Navigate to

Buscar Smbolo

tur
a

lec

La opcin de Buscar Smbolo ha sido mejorada en Visual Studio 2010


ya que dicha funcionalidad ya estaba presente en Visual Studio 2008.

Ir a Definicin

lo

de

La opcin Ir a Definicin nos permite posicionarnos directamente en


la definicin de un miembro de clase (propiedad, mtodo o evento) de
manera rpida. Aunque ya exista en Visual Studio 2008 en la nueva
versin ha mejorado en rendimiento.

mp

Figura 6 Ir a Definicin

Novedades en plantillas de texto

Eje

Dentro de los nuevos componentes incluidos en los proyectos de Visual Studio


2010 encontramos las plantillas de texto preprocesado. Este componente est
formado por un fichero con cdigo fuente C# y un fichero .tt con el texto que
generar para integrarlo con nuestras aplicaciones. Bsicamente sirve para
generar fragmentos de texto que podemos incluir en nuestros informes,
resultados o ficheros de salida de manera transparente. En versiones anteriores
9

tur
a

de Visual Studio estaba incluido en los llamados lenguajes especficos del


dominio o DSL.

de

lec

Para agregar una plantilla de texto preprocesado, tambin conocida como T4 del
ingls Text Template Transformation Toolkit deberemos ir a Agregar nuevo
elemento en cualquier proyecto y elegiremos el elemento que se muestra en la
siguiente figura.

Figura 7 Plantilla de texto preprocesada

lo

Dicho elemento incluir en nuestro proyecto dos nuevos ficheros, uno con
extensin tt y otro con la extensin del lenguaje de programacin con el que
estemos trabajando.

mp

Dicha plantilla TT puede contener texto preestablecido o incluir directivas de


cdigo que permitan generar el texto resultado. En el siguiente ejemplo
podemos ver cmo construir una plantilla de texto preprocesado que nos
devolver un mensaje XML con la informacin de una lista de cadenas de
caracteres que forma parte de la propia clase.
El fichero de cdigo tendr el siguiente contenido:

Eje

[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()
{

10

tur
a

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

");

lec

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();
}

de

Cdigo 1 Cdigo de la plantilla de texto

El cdigo anterior ha sido generado a partir de la plantilla TT siguiente:

lo

<#@ template language="C#" #>


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

mp

Cdigo 2 Plantilla TT

Eje

Como podemos observar en la plantilla se generan los resultados a partir de una


lista (_lista) para cuyos elementos muestro la longitud de cada cadena de la
misma como atributo (<#= st.Length #>) y la propia cadena como texto (<#= st
#>). Como el fichero de cdigo est sincronizado con la plantilla he optado por
definir dicha lista en otro fichero de cdigo fuente al tratarse de una clase
parcial. El cdigo sera el siguiente:

11

tur
a

partial class plantillaMensaje


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

Cdigo 3 Resto del cdigo

lec

Como podemos ver, las plantillas de texto preprocesado permiten combinar la


generacin de cadenas de texto en una clase con la definicin mediante una
plantilla.
Las directivas que tendremos que utilizar en las plantillas para incluir
referencias a cdigo fuente son las siguientes:

de

<# #>: Cdigo fuente


<#= #>: Expresin que formar parte del texto

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

lo

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


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

mp

Novedades en los proyectos

En Visual Studio 2010 como en todas las ediciones anteriores contamos con
nuevos tipos de proyectos alineados con las nuevas versiones de los
componentes asociados a .NET. En esta edicin, la principal novedad es la
ampliacin de los llamados proyectos basados en plantillas online.

Eje

La principal novedad en la creacin de proyectos o soluciones hace referencia


no a un tipo de proyecto concreto sino a un nuevo lenguaje de programacin
incluido como parte de Visual Studio. Este lenguaje no es otro que F#, una
12

tur
a

implementacin del lenguaje ML para .NET con sus cimientos construidos a


partir de OCaml. F# se trata de un lenguaje de programacin que cubre tanto el
paradigma funcional como el orientado a objetos. Se trata de uno de los
lenguajes surgidos de Microsoft Research.

De momento, en la versin RC de Visual Studio 2010 slo se encuentra


disponible la posibilidad de crear estos 4 tipos de proyectos:
Aplicacin de consola F#

Biblioteca F#

Tutorial F#: Visin general del lenguaje

Biblioteca Silverlight F#

de

lec

Dentro de los proyectos slo podremos aadir ficheros de script, ficheros de


firma y ficheros de cdigo fuente F#. Todo hace esperar a que en la versin
final de Visual Studio 2010 se incluirn mayor nmero de proyectos para este
lenguaje.

lo

En cuanto a las novedades a nivel de proyecto en los lenguajes ya tradicionales


de Visual Studio (C# y VB) se incluyen los siguientes tipos:
Aplicaciones Web ASP.NET MVC 2

Aplicaciones dinmicas de datos ASP.NET de entidades

Aplicaciones dinmicas de datos ASP.NET de LINQ to SQL

Complementos y plantillas para Office 2010 en los mismos productos


que para 2007 (Excel, InfoPath, Outlook, PowerPoint, Project, Visio y
Word)

Eje

mp

13

Servicio de Windows Azure

tur
a

Proyectos para SharePoint 2010 incluyendo:


o Proyecto vaco
o Web Part visual
o Flujos de trabajo secuenciales

o Modelo BDC
o Receptor de eventos

lec

o Flujos de trabajo de mquinas de estado

o Definicin de lista o de sitio

o Mdulo

de

o Tipo de contenido

o Importar flujo de trabajo reutilizable

lo

o Importar paquete de solucin SharePoint (WSP)


Aplicacin, biblioteca y aplicacin de navegacin Silverlight 3.0

En WCF se incluyen los proyectos de tipo biblioteca de servicio de


sindicacin.

mp

Eje

He dejado para el final la mayor novedad en proyectos en Visual Studio 2010.


Se trata de los proyectos de modelado. Con dichos proyectos podremos
construir todos los componentes y diagramas necesarios para integrar UML en
nuestros procesos de anlisis y diseo de aplicaciones.

14