Pasión por la tecnología…

Noviembre 9, 2008

C# 4.0: Algunos Recursos!

Archivado en: .NET Framework 4.0, C# 4.0, Visual Studio 2010 — Juan Carlos González Martín @ 11:20 pm

Como sabéis, en el pasado PDC 2008 se presentaron algunas de las novedades que traerá la nueva versión del lenguaje C# (versión 4.0). Pues bien, el equipo de diseño de C# ha realizado un gran trabajo para dar a conocer las nuevas características de C# 4.0 a través de este whitepaper. Además de este excelente resumen, podéis acceder a una serie de ejemplos sobre C# 4.0 en este otro enlace.

image

Finalmente, os dejo una recopilación de enlaces relevantes en torno a C# 4.0:

Octubre 27, 2008

C# 4.0…el futuro ya está aquí!

Archivado en: C# 4.0, Novedades, PDC 2008 — Juan Carlos González Martín @ 10:56 pm

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 Andres 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

Más información sobre C# 4.0 en la sección C# future de MSDN Code Gallery.

Blog de WordPress.com.