codecamp 2009 qué hay de nuevo viejo

24
¿Qué hay de nuevo viejo? Desde VB 1.0 hasta VB 2010, evolución y novedades.

Upload: fimarge

Post on 02-Jul-2015

563 views

Category:

Documents


3 download

TRANSCRIPT

¿Qué hay de nuevo viejo?

Desde VB 1.0 hasta VB 2010,

evolución y novedades.

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

A destacar de VB 2008 (III)

DEMOS

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

Q&A

Preguntas y respuestas

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