Carmen Checa
Nacho Fanjul
BCN· FOURSESSIONS
20 - Febrero
Carmen Checa
@cmcheca
Senior Developer
ccheca@pasiona.com@
Nacho Fanjul
Senior Developer
@nfanjul
nfanjul@pasiona.com@
Introducción, un poquito de historia
El nombre del lenguaje es un juego que esta inspirado en la notación musical,
donde e...
Evolución
C# 1.0 C# 2.0 C# 6.0C# 5.0C# 4.0C# 3.0
Managed
Code
Anonymous
Methods
Generics
Convariance
Contavarian
ce
Partia...
Antes de empezar, ¿Qué necesitamos?
¿Qué nos aporta?
• Código mas compacto.
• Código mas legible.
• Mejor organización de nuestro código.
• NO grandes cambios.
Nuevas funcionalidades
Filtros en las excepciones
“await” en los bloques catch y finally
Mejoras
nameOf()
Inicialización de propiedades
Importar miembros estáticos
Nullables ?.
Miembros indexados e inicialización de
elementos
Interpolación en los strings
Expresiones en el cuerpo del método
Viejo vs Nuevo
Viejo vs Nuevo
Un par de cosas mas
Ummmmmmmmmm…
Novedades Visual Studio 2015
• Renombrado inteligente de variables.
• Nuevos refactorings como Introduce Local y Inline Te...
Roslyn
• Es el nuevo compilador de C# y Visual Basic.
• Redefinido la arquitectura.
• Open Source.
github.com/dotnet/roslyn
Q&ACarmen Checa & Nacho Fanjul
@cmcheca
@nfanjul
ccheca@pasiona.com
nfanjul@pasiona.com
@
Designed by
BCN· FOURSESSIONS
| 20-Febrero
Próxima SlideShare
Cargando en…5
×

¿Qué hay de nuevo viejo? Novedades c# 6

71 visualizaciones

Publicado el

Haremos un breve repaso de las versiones previas de c# desde 2002, hasta el día de hoy. Destriparemos las principales novedades del "nuevo" c# 6, incluido en el Framework 4.6, que intentan hacernos la vida más fácil con un código más limpio y legible para el programador.

Publicado en: Software
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
71
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
3
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.
  • C# es lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA y la ISO. Es uno de los lenguajes diseñados para la CLI (infraestructura de lenguaje común).
    Su sintaxis básica viene de C/C++ y utiliza el modelo de objetos de .NET, parecido al de Java, pero con mejoras derivadas de otros lenguajes.
    Aunque forma parte de .Net, ésta es una API y C# es un lenguaje independiente diseñado para desarrollar aplicaciones bajo esta plataforma aunque ya existe un compilador en Mono para generar aplicaciones en otras plataformas.
  • C#1: Microsoft publicó la primera versión de C# con Visual Studio 2002. En esta versión se introdujo el uso de código administrado.
    C#2: Visual Studio 2005.
    C#3: Visual Studio 2008 llegó con la versión 3.0 de C#, y tenía un montón de características nuevas.
    C#4: fue lanzado con Visual Studio 2010 y Framework 4.


  • Explicar que hay cosas que funcionan con un framework inferior. Si trabajas con VS 2015
    http://stackoverflow.com/questions/28921701/does-c-sharp-6-0-work-for-net-4-0
  • Por raro que parezca, esta funcionalidad ya estaba en las versiones anteriores de vb .net pero no en c#
  • Antes, por cuestiones especificas del compilador, no era posible.
    Se han realizado cambios en el compilador para que sea posible realizar este tipo de acciones sin tener que picar un código complejo.


    Finally: enviar un email.
  • En versiones previas para obtener el nombre de una propiedad teníamos que hacerlo mediante reflection. Ahora es tan simple como hacerlo con esta función que nos expone .
    Saca el nombre de la variable y lo devuelve como un string
  • En nuestras clases tenemos propiedades y muchas veces hay que inicializarlas.
    Hasta ahora lo hacíamos en el constructor, pero con C#6, se puede hacer en la misma declaración asignándole un valor.
    Podemos hacer exactamente lo mismo aunque nuestra propiedad sea solo de lectura, es decir, solo con get y sin set.
    Por debajo, esto se declara implícitamente como readonly y se puede inicializar en el constructor.
    Además se pueden inicializar propiedades con una expresión.
  • Antes para acceder a un miembro de una clase estática teníamos que poner el nombre de la clase punto y el miembro al que queríamos acceder.
    Ahora esto ya no es necesario podemos acceder directamente al método que queramos. Para conseguir esto es tan simple como declarar el using con la única particularidad de que hay que utilizar el static. Es válido tanto para clases que ¿internas? como para clases propias.
  • ¿Cuantas veces hemos visto un NullReferenceException por no controlar correctamente un posible valor nulo? En esta nueva versión tenemos una forma simple y limpia de hacer esta validación.
    Si no comprobásemos si la entidad es nulo, al intentar acceder a la propiedad nos petaria.
    La nueva manera de comprobar los nulos hace que sea más simple y ágil hacer este tipo de validaciones. Hay que tener en cuenta que el operador interrogación va a devolver siempre un tipo nullable, es decir, que si el tipo de devolución es por ejemplo un entero deberemos expresar el tipo cómo nulable para que pueda aceptar el valor después de la validación con el operador o bien un null.
  • Esta característica nos permite inicializar con valores por defecto nuestros diccionarios con mucho menos código que antes.
    C# 6 tiene esta nueva sintaxis para inicializar objetos que permite establecer los valores de las claves a través de un indexador que tiene el nuevo objeto.
    Estos iniciadores no son sólo para los diccionarios, se pueden utilizar para cualquier objeto que soporta un controlador paso a paso, por ejemplo, List<T>.
  • Ahora solo hay que añadir el $ delante de la cadena y poner entre llaves el nombre de la propiedad que queremos que aparezca.
  • Avisos: Aunque tengamos un código que compila, roslyn es capaz de avisarnos de errores en tiempo de ejecución.

    Nota: Si nos sobrara mucho tiempo, enseñar ejemplo en VS.
  • -Redefinir: escrito los compiladores en sus propios lenguajes manejados. Permitiendo crear una API para cada una de las partes.
    -Open source: Transparencia, eremos una estructura de código mas moderna, con test unitarios, patrones, inyección de dependencias. Y muchos trucos de rendimiento para que el compilador el IDE vaya mas fluido.
  • ¿Qué hay de nuevo viejo? Novedades c# 6

    1. 1. Carmen Checa Nacho Fanjul BCN· FOURSESSIONS 20 - Febrero
    2. 2. Carmen Checa @cmcheca Senior Developer ccheca@pasiona.com@ Nacho Fanjul Senior Developer @nfanjul nfanjul@pasiona.com@
    3. 3. Introducción, un poquito de historia El nombre del lenguaje es un juego que esta inspirado en la notación musical, donde el “#” (en términos musicales es sostenido) indica que la nota (C en ingles se corresponde con do) es un semitono más alta, dando a entender esto que C# es superior tanto a C como a C++. Además, el signo “#” se compone de cuatro signos “+” pegados.
    4. 4. Evolución C# 1.0 C# 2.0 C# 6.0C# 5.0C# 4.0C# 3.0 Managed Code Anonymous Methods Generics Convariance Contavarian ce Partial Class Nullable Type Extension Method Lambda Expressions Linq Anonymous Types Expression Tree Implicit Type (var) Named Arguments Late Binding More COM Support Opcional Parameters Caller Information Async ¿Qué hay de nuevo, viejo?
    5. 5. Antes de empezar, ¿Qué necesitamos?
    6. 6. ¿Qué nos aporta? • Código mas compacto. • Código mas legible. • Mejor organización de nuestro código. • NO grandes cambios.
    7. 7. Nuevas funcionalidades
    8. 8. Filtros en las excepciones
    9. 9. “await” en los bloques catch y finally
    10. 10. Mejoras
    11. 11. nameOf()
    12. 12. Inicialización de propiedades
    13. 13. Importar miembros estáticos
    14. 14. Nullables ?.
    15. 15. Miembros indexados e inicialización de elementos
    16. 16. Interpolación en los strings
    17. 17. Expresiones en el cuerpo del método
    18. 18. Viejo vs Nuevo
    19. 19. Viejo vs Nuevo
    20. 20. Un par de cosas mas Ummmmmmmmmm…
    21. 21. Novedades Visual Studio 2015 • Renombrado inteligente de variables. • Nuevos refactorings como Introduce Local y Inline Temporary Variable. • Avisos para saber dónde podemos mejorar nuestro código. • Coloreado de sintaxis en vista rápida. • Gestión más inteligente de nombres de variables en el Intellisense.
    22. 22. Roslyn • Es el nuevo compilador de C# y Visual Basic. • Redefinido la arquitectura. • Open Source. github.com/dotnet/roslyn
    23. 23. Q&ACarmen Checa & Nacho Fanjul @cmcheca @nfanjul ccheca@pasiona.com nfanjul@pasiona.com @ Designed by
    24. 24. BCN· FOURSESSIONS | 20-Febrero

    ×