Codecamp 2009 Qué Hay De Nuevo Viejo
Transcript of Codecamp 2009 Qué Hay De Nuevo Viejo
www.codecamp.es
¿Quiénes hablarán?
• MVP de Visual Basic y habituales de comunidades técnicas de tecnologías Microsoft:
– Lluis Franco
– Pep Lluis Bano
– Jorge Serrano
¿Qué hay de nuevo viejo?
www.codecamp.es
Agenda
• Introducción y evolución de VB
• VB hacia .NET
• A destacar de VB 2008
• Novedades de VB 2010
www.codecamp.es
Introducción y evolución de VB (I)
• Tenemos VB desde 1991• Alan Cooper fue el líder de VB 1.0 y ha intervenido también en
“cosas” como Ruby• Versiones previas:
– (1991) - VB 1.0 (versión Windows y DOS)– (1992) - VB 2.0– (1993) - VB 3.0 (BBDD)– (1995) - VB 4.0 (16 [VBX] y 32 bits [OCX])– (1997) - VB 5.0 y VB 5.0 CCE (ActiveX y compilación en código nativo)– (1998) - VB 6.0
• Runtimes para ejecutar aplicaciones: – VBRUNxxx.DLL– MSVBVBxx.DLL
www.codecamp.es
Introducción y evolución de VB (III)
• Existen subconjuntos de VB (propietarios):– VBS– VBA
• Uso de APIs (código no manejado)• Infierno de las DLL• ASP como lenguaje de programación web
(lenguaje interpretado), utiliza VBS• VB como lenguaje evoluciona hacia la POO, que
en VB 5 y VB 6 incorpora tímidamente algunas de sus características,… pero NO es suficiente
www.codecamp.es
VB hacia .NET (I)
• Los programadores necesitamos MÁS• ¿Qué necesitamos?
– POO y uso de estándares como objetivos principales– Gestión de errores más “profesionales”… adios al On
Error Resume Next– Posibilidad de programar para diferentes
plataformas… Linux, Windows, etc.– Código manejado vs código no manejado– Capaz de utilizar y adaptarse a las tecnologías
emergentes– etc
www.codecamp.es
VB hacia .NET (II)
• Microsoft apuesta por un cambio radical• Anders Heljsberg, (ficha por Microsoft en 1996)
– Padre de Turbo Pascal, – Arquitecto de Delphi 1.0, – Y Amigo de Pep (es el gran culpable de .NET, J# y C#)
• Todo bajo el paraguas de la POO• Con énfasis en el uso de estándares• Ofreciendo características demandadas por los programadores• Posibilitando una plataforma que compita en la red y contra Java (Sun
Microsystems)• Capaz de usar un repositorio común donde el lenguaje sea el invitado de esa
plataforma denominada Microsoft .NET Framework• VB formará parte de Microsoft .NET Framework (.NET como nombre por su
orientación a la red, aunque el calificativo de marketing de .NET se ha perdido actualmente)
www.codecamp.es
VB hacia .NET (III)
• Partes de .NET e incluso el lenguaje C# que forma parte de él, han sido estandarizadas y “abiertas”
• VB como lenguaje es “reprogramado” por entero respetando muchas de las normas y reglas del lenguaje, pero adaptándolo a .NET
• VB es el “patito feo” por su pasado, fama ganada a pulso pero injusta en la actualidad
www.codecamp.es
VB hacia .NET (IV)
• Evolución de .NET lleva incluida una evolución del lenguaje VB (I)– VB .NET 2002 – VB 7.0 - Microsoft .NET 1.0
• Compatibilidad con VB 6.0 (¿migración real?)
– VB .NET 2003 – VB 7.1 - Microsoft .NET 1.1• Mejoras en el asistente de actualización (VB 6.0 to VB .NET)
– VB 2005 – VB 8.0 - Microsoft .NET 2.0• Mejoras en el asistente de actualización (VB 6.0 to VB para .NET)• Editar y continuar (usadas en VB 6.0 y anteriores pero no en .NET)• Uso de My para acceder a clases comúnmente usadas (productividad)• Uso de la palabra Using• Data Source binding• Genéricos• Clases parciales• Tipos Nullable• Comentarios XML• Modelo de factorías para aplicaciones multi-DB (Database Factories)
– VB 2005 – VB 8.0 - Microsoft .NET 3.0 (CLR 2.0)• Operador IsNot• Continue Do y Continue While• Documentación XML• Soporte de paginación en ADO.NET• WCF, WF, WPF y CardSpace
www.codecamp.es
VB hacia .NET (V)
• Evolución de .NET lleva incluida una evolución del lenguaje VB (II)– VB 2008 – VB 9.0 - Microsoft .NET 3.5 (CLR 2.0)
• Métodos de extensión• Inferencia de tipos• Tipos anónimos• Árboles de expresiones y expresiones Lambda• LINQ
– LINQ to Objects– LINQ to XML– LINQ to DataSet– LINQ to Sql
• Microsoft Entity Framework 1.0 (basado en LINQ)
– VB 2010 – VB 10.0 - Microsoft .NET 4.0• Tecnología:
– Parallel Extensions– Soporte para IronPython, IronRuby y F#– Code Contracts
• Lenguaje:– Propiedades autoimplementadas– Inicialización de colecciones– Opción para indicar la versión específica del lenguaje a compilar– Continuación implícita de línea– Parámetros nombrados– Parámetros opcionales– DLR o Dynamic Language Runtime (IronPython, IronRuby)– Covarianza y contravarianza– Entity Framework 2.0 (aka 4.0)
www.codecamp.es
En Resumen, no hay patito feo
Característica Existe en Existe en
Propiedades Auto-implementadas VB10 C#3
Inicialización de Colecciones VB10 C#3
Lambdas VB10 C#3
Línea Implícita VB10 --
Parámetros Opcionales VB9 C#4
Soporte ‘LateBinding’ (Dinámicos) VB9 C#4
Omisión de referencias en llamadas COM VB9 C#4
Interop con lenguajes dinámicos VB10 C#4
Co/Contra varianza VB10 C#4
PIA (Sin necesidad de despliegue) VB10 C#4
Iteradores --- C#3
Literales XML VB9 ---
www.codecamp.es
A destacar de VB 2008 (I)
• LINQ – Language INtegrated Query– El embrión de LINQ lo encontramos en Microsoft
Research– Añade capacidades de búsqueda de datos de forma
nativa– Permite localizar datos provenientes de diferentes
orígenes (documentos XML, DataSet, objetos, bases de datos relacionales, matrices, clases enumerables, etc)
– Se pueden crear proveedores de LINQ o podemos utilizar los que ofrece Microsoft
– Usar LINQ aporta mayor productividad
www.codecamp.es
A destacar de VB 2008 (II)
• Proveedores de Microsoft:– LINQ to Objects
• Se utiliza con colecciones de datos en memoria
– LINQ to XML• Convierte documentos XML a colecciones de objetos XElement• Con VB manipular XML con LINQ to XML es simple
– LINQ to DataSet• Permite acceder a los objetos de los DataSet
– LINQ to Sql• Está pensado para usarlo solo con SQL Server y SQL Server Compact
– Entity Framework• Es un ORM (Object Relational Mapping) que convierte datos entre las
fuentes de datos y los tipos de datos incompatibles
• Otros proveedores…
www.codecamp.es
Novedades de VB 2010 (I)
• Continuación implícita de línea
– ¡Por fin!
– Pero… ¡cuidado!
DEMO
www.codecamp.es
Novedades de VB 2010 (II)
• Parámetros nombrados y parámetros opcionales nullables
DEMO
www.codecamp.es
Novedades de VB 2010 (III)
• Inicialización de matrices y colecciones
DEMO
www.codecamp.es
Novedades de VB 2010 (IV)
• Propiedades autoimplementadas
DEMO
www.codecamp.es
Novedades de VB 2010 (V)
• Mejoras en el soporte de funciones lambda
DEMO
www.codecamp.es
Novedades de VB 2010 (VI)
• Lenguajes dinámicos en VB 2010
DEMO
www.codecamp.es
Novedades de VB 2010 (VII)
• Covarianza y contravarianza genérica
DEMO
www.codecamp.es
Blogs
Visiten nuestro bar
Lluis Francohttp://msmvps.com/blogs/lfranco/
Pep Lluis Banohttp://msmvps.com/blogs/peplluis/
Jorge Serranohttp://geeks.ms/blogs/jorge/
¡ Muchas Gracias!
Recuerda que en www.codecamp.es podrás encontrar todo el material de las sesiones del CodeCamp