jueves, 31 de diciembre de 2009

Visual Studio 2010 y C# 4.0

C# 4.0

De nuevo desde el Convention Center de Los Ángeles, y después de la conmoción que ha despertado el lanzamiento de Microsoft Windows Azure, ahora le toca el turno a la nueva versión de C # (ya vamos por la 4.0) y a la conferencia que sobre esta nueva versión ha dado un genial Anders Hejlsberg (Technical fellow en Microsoft, uno de los padres de la criatura y arquitecto principal). Tras una pequeña introducción sobre la evolución de C #, y antes de dejar encandilada a la audiencia, Anders ha realizado un pequeño repaso de las tendencias actuales en cuanto a lenguajes de programación:

  • Programación más declarativa.
  • Programación dinámica.
  • Programación concurrente (multicore), ya que como todos sabéis, la tendencia actual (una vez que la ley de Moore podemos decir que se ha parado) es añadir más y más procesadores...¿Cómo construimos aplicaciones para este nuevo escenario en el que la concurrencia es necesaria? En plataforma .NET la respuesta la tenemos en las Parallel Extensions para .NET, que formarán parte de la nueva versión de Visual Studio (VS 2010) y de .NET Framework (4.0).

068

Después de esta introducción, Anders pasó a detallarnos las principales novedades de C # 4.0. Estas son las que os resumo y detallo a continuación.

Programación Dinámica

Para ello, C# tendrá una serie de características dinámicas que permitan esta programación dinámica:

  • Objetos tipados de manera dinámica. La clave estará en una nueva palabra clave que aparece en escena: dynamic.
  • Mejorada la interoperabilidad COM.
  • Optinal and named parameters.
  • Co-and Contra-Variance.

Tendremos un nuevo runtime para C# 4.0 que nos habilitará esta programación dinámica sobre la base de innovaciones ya existentes como los árboles de expresión y las expresiones lambda de C# 3.0, pero añadiendo nuevas innovaciones:

  • Dynamic trees.
  • Dynamic Dispatch invocer.
  • Call Site Caching.

Sobre este nuevo runtime, tendremos los lenguajes de programación tradicionales de .NET, C# y VB.NET, pero también lenguajes dinámicos como IronRuby y IronPhyton, y por supuesto cualquier otro lenguaje que cumpla la correspondiente CLS (Common Language Specification). Pero además, podremos hacer desde cualquier lenguaje comentado un binding con otro de los lenguajes, es decir, podremos llamar de manera sencilla código Phyton desde C# y utilizarlo. Tendremos bindings para .NET (Object), para JavaScript (Silverlight), para Phyton, Para Ruby y otros.

Las novedades al detalle

Como os comentaba, a través de la palabra clave dynamic y otras innovaciones, C# 4.0 adquiere una dimensión dinámica que nos permite hacer conversiones dinámicas de tipos y hacer llamadas dinámicas a métodos:

069

Todas las características dinámicas de C# 4.0 vendrán en un nuevo ensamblado: System.Dynamic.

La segunda de las novedades con las que la audiencia se mostró gratamente sorprendido es la de los parámetros opcionales y nombrados. Lo mejor para entender esta novedad es ver un ejemplo (seguro que a más de uno le suena familiar).

public StreamBuilder OpenTextFile( string path, Encoding encoding=null, Bool DetectEncoding =true, Int BufferSize=1024)

Creo que las ventajas de usar este tipo de parámetros está claro. Finalmente, la tercera y última novedad que voy a comentar es la relativa a las mejoras en la interoperabilidad COM...y en este caso una imagen vale más que mil palabras para ver en que consiste esta novedad:

073

...y un gran final al más puro estilo Anders Hejlsberg

Como no podía ser de otra forma, para cerrar su intervención Anders nos dejó un gran regalo en sintonía con este día lleno de novedades en el PDC: se trata del Compiler as Service...es decir, Microsoft está trabajando en una nueva versión de su compilador para C#, pero con vistas a eliminar la caja negra modelada e implementada en C++ por otra mucha más abierta y que permita evaluar código de manera dinámica:

076

La idea de este nuevo compilador es abrir todo lo que tiene el compilador para poder embeber código C# en otros entornos dinámicos. Se trata de compilar directamente en código manejado. Y como prueba y cierre de la sesión, Anders nos hizo una demo espectacular de un prototipo de evaluador de C# capaz de entender e implementar de manera dinámica código C#.

078

Visual Studio 2010

No ponga freno a sus ideas

Cree todo lo que pueda imaginar, construya sobre los puntos fuertes de su equipo y descubra nuevas posibilidades.

  • Nuevas herramientas de prototipado, modelado y diseño visual que le permiten crear innovadoras aplicaciones para Windows y la Web.
  • Cree una visión compartida como base para la creatividad con SketchFlow, en Microsoft Expression® Studio y con Team Foundation Server.
  • Aproveche las nuevas oportunidades y prestaciones que ofrecen la programación multinúcleo y las herramientas de desarrollo para cloud computing.

La simplicidad a través de la integracióno Estándares integrados, desarrollo simplificado

Un único entorno de desarrollo integrado que desarrolla sus habilidades más allá y se ajusta a su forma de trabajar

  • Complete todo el trabajo de programación, modelizado, pruebas, depuración y despliegue sin salir del entorno de Visual Studio 2010.
  • Utilice los estándares y las capacidades existentes para dirigirse a un número cada vez mayor de tipos de aplicaciones, incluidos Microsoft SharePoint® y Windows® Azure™.
  • Ábrase camino a través de la compatibilidad multimonitor, de las ampliaciones asociadas y de un nuevo editor.

Herramientas de calidad ayudan a garantizar resultados de calidad

Herramientas de prueba eficaces con funcionalidades proactivas para la administración de proyectos que ayudan a construir las aplicaciones de la forma correcta.

  • Utilice el nuevo depurador IntelliTrace para identificar el punto en el que se ubica el error dentro del historial registrado de la aplicación
  • Aproveche las nuevas herramientas proactivas de administración de proyectos entre las que se incluyen nuevos informes, paneles y hojas de trabajo para planificación.
  • Asegúrese de que ha construido su aplicación de la forma correcta, con las herramientas manuales y automáticas de prueba.

No hay comentarios:

Publicar un comentario