Entorno de Visual Studio
Editor basado en WPF
Soporte para múltiples monitores mejorado
MEF & CaaS
Navegación
Quick Search
Highlight References
Sistema de proyectosCompatible 100% con el código fuente
Múltiples plataformas objetivo
Usar primero, declarar después
Generación de código a partir del uso
Code insight
Call hierarchy
Inline call tree
CapasCódigo con formato rico
Capas de información contextual
Mapa del documento en el margen
Desarrollo web mejorado
Herramientas de JavaScript mejoradas
Snippets HTML
Nuevas herramientas MVC and Dynamic Data
Desarrollo web integrado
Desarrollo de C++ nativo
Experiencia del IDE mejorada
Soporte para computación paralela
Apariencia de MFC actualizada
Mejoras en ClickOnce para Office
Desarrollo en SharePoint mejorado
Más soporte a la plataforma
Depuración en 64-bits en modo mixto
Soporte a la depuración de minidumps en modo mixto y manejado
Visualizador de WPF
Mejoras en los breakpoints
Grupos y etiquetas
Importar/exportar
Depuración histórica
Grabar y reproducir la ejecución de una aplicación
Proyectos y procesos
Gestión de proyectoServidor de proyecto
Integración con el cliente
Herramientas de planificación de proyectos livianas
Trazabilidad de los requerimientos
Informes
Tableros de control individualizados
Proceso configurableMás amplia variedad de ejemplos de Microsoft y de la comunidad
Calidad y testeo
Estructura visual y comportamiento en modelos UML y DSL
Eliminación del problema “a mi no me pasa”
Herramientas de calidad T-SQL
Mejoras en el testeoPriorización de tests
Test manual
Test funcional
Gestión de casos de prueba
Camano
C# 4.0 VB X
Named/Optional Parameters Named/Optional Parameters
Dynamic Scoping Dynamic Scoping
Statement Lambdas Statement Lambdas
Multiline Lambdas Multiline Lambdas
Auto-Implemented Properties Auto-Implemented Properties
Collection Initializers Collection Initializers
Generic Variance Generic Variance
Extension Properties Extension Properties
Es a C# 4.0 lo que LINQ fue a C# 3.0 o Generics fue a C# 2.0
Tipos dinámicos
Estructura y comportamiento desconocidos en tiempo de compilación
Búsqueda dinámica
Resuelta en tiempo de ejecución
Falla en tiempo de ejecución
Parámetros con nombre y opcionales
¿Recuerdan la transparencia anterior? Algo bueno nos trajimos
Nuevo tipo de datos dynamicdynamic d = GetDynamicObject(…);
Llamado dinámico a métodosd.MethodCall(…);
Propiedades y propiedades indexadas dinámicasd.Property = d.AnotherProperty;
d[“one”] = d[“two”];
Operadores dinámicosint i = d + 3;
Invocación como delegadosstring s = d(5,7); // Ivk as delegate
Conversión de y hacia objectdynamic d = 7; // implicit conversion
int i = d; // assignment conversion
Objetos COM
A través de IDispatch
Objetos dinámicos
A través de IDynamicObject
Otros objetos
Usando Reflection
Cómo funcionadynamic d1 = new Foo();dynamic d2 = new Bar();string s;d1.MethodCall(s, d2, 3, null);
Invocación dinámica en objetos dinámicosdynamic d1 = new Foo();dynamic d2 = new Bar();string s;d1.MethodCall(s, d2, 3, null);
Invocación dinámica en objetos comunesFoo f = new Foo();dynamic d = new Bar();var result = foo.OverloadedMethod(d);
¡Al fin!
Parámetros opcionales tienen un valor predeterminado
public void M(int x, int y = 5, int z = 7);
M(1, 2, 3); // el de siempre
M(1, 2); // omitiendo z ídem M(1, 2, 7)
M(1); // omitiendo y and z ídem M(1, 5, 7)
Parámetros pasados por nombreM(1, z: 3); // Pasando z por nombre
M(x: 1, z: 3); // Pasando x y z por nombre
M(z: 3, x: 1); // Cambiando el orden
string[] sa = new string[10];
object[] oa = sa;
oa[0] = "Hello world!“;
oa[1] = 5;
string[] sa = new string[10];
object[] oa = sa;
oa[0] = "Hello world!“;
oa[1] = 5;
IEnumerable<string> sl =new List<string>();
IEnumerable<object> = ol;
ol = sl;
IEnumerable<string> sl =new List<string>();
IEnumerable<object> = ol;
ol = sl;
IEnumerable<T>{
IEnumerator<T> GetEnumerator();}
IEnumerator<T>{
bool MoveNext();T Current { get; }
}
IEnumerable<out T>{
IEnumerator<T> GetEnumerator();}
IEnumerator<out T>{
bool MoveNext();T Current { get; }
}
IComparer<T>{
int Compare(T x, T, y);}
IComparer<in T>{
int Compare(T x, T, y);}
Descargar las máquinas virtuales de VS 2010
Incluyen Team System
Explorar las nuevas características del IDE
Es una beta
Explorar las nuevas características del lenguaje