SlideShare una empresa de Scribd logo
1 de 24
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 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.
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?
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 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.
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

Más contenido relacionado

Más de [T]echdencias

¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta!¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta![T]echdencias
 
Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega [T]echdencias
 
Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?[T]echdencias
 
#4Sessions - Azure Alerts - ¿Has probado a reiniciar?
#4Sessions - Azure Alerts - ¿Has probado a reiniciar?#4Sessions - Azure Alerts - ¿Has probado a reiniciar?
#4Sessions - Azure Alerts - ¿Has probado a reiniciar?[T]echdencias
 
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado DíazSeamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz[T]echdencias
 
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia[T]echdencias
 
Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365 Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365 [T]echdencias
 
Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite [T]echdencias
 
Testear videojuegos con Unity3D
Testear videojuegos con Unity3D Testear videojuegos con Unity3D
Testear videojuegos con Unity3D [T]echdencias
 
The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17[T]echdencias
 
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17[T]echdencias
 
Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17[T]echdencias
 
Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17[T]echdencias
 
2D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 20162D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 2016[T]echdencias
 
Application Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BIApplication Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BI[T]echdencias
 
Botón derecho --> publicar
Botón derecho --> publicarBotón derecho --> publicar
Botón derecho --> publicar[T]echdencias
 
Asuuure ya estoy en casa
Asuuure ya estoy en casaAsuuure ya estoy en casa
Asuuure ya estoy en casa[T]echdencias
 
Azure insight + Streaming Analytics + Power BI
Azure insight + Streaming Analytics + Power BIAzure insight + Streaming Analytics + Power BI
Azure insight + Streaming Analytics + Power BI[T]echdencias
 
Machine Learning & Bots
Machine Learning & BotsMachine Learning & Bots
Machine Learning & Bots[T]echdencias
 

Más de [T]echdencias (20)

¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta!¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta!
 
Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega
 
Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?
 
#4Sessions - Azure Alerts - ¿Has probado a reiniciar?
#4Sessions - Azure Alerts - ¿Has probado a reiniciar?#4Sessions - Azure Alerts - ¿Has probado a reiniciar?
#4Sessions - Azure Alerts - ¿Has probado a reiniciar?
 
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado DíazSeamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
 
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
 
Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365 Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365
 
Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite
 
Testear videojuegos con Unity3D
Testear videojuegos con Unity3D Testear videojuegos con Unity3D
Testear videojuegos con Unity3D
 
The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17
 
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17
 
Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17
 
Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17
 
2D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 20162D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 2016
 
Application Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BIApplication Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BI
 
Botón derecho --> publicar
Botón derecho --> publicarBotón derecho --> publicar
Botón derecho --> publicar
 
Azure Search
Azure SearchAzure Search
Azure Search
 
Asuuure ya estoy en casa
Asuuure ya estoy en casaAsuuure ya estoy en casa
Asuuure ya estoy en casa
 
Azure insight + Streaming Analytics + Power BI
Azure insight + Streaming Analytics + Power BIAzure insight + Streaming Analytics + Power BI
Azure insight + Streaming Analytics + Power BI
 
Machine Learning & Bots
Machine Learning & BotsMachine Learning & Bots
Machine Learning & Bots
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

C# Que hay de nuevo viejo

Notas del editor

  1. 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.
  2. 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.
  3. 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
  4. Por raro que parezca, esta funcionalidad ya estaba en las versiones anteriores de vb .net pero no en c#
  5. 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.
  6. 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
  7. 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.
  8. 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.
  9. ¿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.
  10. 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>.
  11. Ahora solo hay que añadir el $ delante de la cadena y poner entre llaves el nombre de la propiedad que queremos que aparezca.
  12. 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.
  13. -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.