Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

36
Iniciativa Microsoft Multiplataforma Angel “Java” López (VMP) Diego González (VMP) Bienvenidos

Transcript of Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Page 1: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Iniciativa Microsoft Multiplataforma

Angel “Java” López (VMP)Diego González (VMP)

Bienvenidos

Page 2: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Agenda

• Introducción• Standard CLI• Implementaciones

– Microsoft .NET– SSCLI (ROTOR)– Proyecto Mono– PNet– OCL

• Proyectos de código abierto– NAnt, NDoc, NUnit, SharpDevelop, Workspaces

Page 3: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Introducción

Page 4: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Introduccion

• Nuevo modelo de desarrollo y ejecución– Lenguajes orientados a objetos– Basado en “máquinas virtuales”– Amplia biblioteca de clases– Necesidad de un entorno de desarrollo

(IDE)– SDKs muy completos

• Compiladores• Documentación• Herramientas

Page 5: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Maquinas Virtuales

• Nueva capa de software base para las aplicaciones

Aplicaciones (EXE)

Hardware

Sistema Operativo

Aplicaciones (EXE)

Hardware

Sistema Operativo

Maquina Virtual

Page 6: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Maquinas Virtuales (cont.)

• Abstrae los conceptos del sistema operativo hacia las aplicaciones.

• Altos niveles de portabilidad• Idea principal

– “Compile-Once-Run-Everywere”

• Unifica los conceptos de las aplicaciones permitiendo altos niveles de interoperabilidad.

• Basado en la experiencia previa:– ’70. PCode, una máquina virtual que interpreta un lenguaje

intermedio para Pascal.– ’70. Lisp lenguaje que ejecuta interpretado en una máquina

virtual.– ’80. Smalltalk, máquina virtual con GC.– ’90. Java lenguaje y máquina virtual con JIT y GC.

Page 7: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Maquinas Virtuales (cont.)

• Cambios en el modelo de desarrollo• Tradicional

– Código fuente– Objeto

• Propio de la plataforma de hardware

– Ejecutable• Propio del sistema operativo

• Usando máquinas virtuales– Código fuente– Lenguaje intermedio

• Independiente de la plataforma de hardware• Independiente del sistema operativo

Page 8: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Maquinas Virtuales (cont.)

• Servicios– Ejecución

• Procesos, Threads, Manejo de Memoria• Carga de ejecutables• Dynamic Linking (DLL, SO)

– Interoperabilidad• Operar con la intefaz de E/S (I/O)• Acceder a los servicios propios del sistema

operativo• Integrar con los servicios de seguridad

disponibles

Page 9: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Maquinas Virtuales (cont.)

• Mas servicios– Desarrollador

• Lenguajes orientados a objetos• Manejo de errores flexible y extensible• Manejo de memoria automático• Depuración y Profiling

– Operaciones• Deployment simplificado• Monitoreo integrado al SO• Configuración basada en XML

Page 10: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Maquinas Virtuales (cont.)

• Interés– Comercial

• Simplifica todas las etapas del desarrollo• Mejora la calidad de las piezas de software• Facilita los cambios

– Académico• Paradigmas• Lenguajes• Compiladores

Page 11: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Standard CLI

Page 12: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Standard CLI

• Common Language Infrastructure– ECMA-335. Actualmente en proceso para

conformar un estándar ISO– Define

• Formato de archivo (PE/COFF)• Especificacion de lenguaje común (CLS)• Un sistema común de tipos (CTS)• Un sistema extensible para soportar matadatos (CLI

Metadata)• Un lenguaje intermedio. MSIL o IL (CIL)• Define el acceso a la plataforma de base• Una bilbioteca común de clases (BCL)

Page 13: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Standard CLI (cont.)

• Lenguaje C#– ECMA-334– Define

• Representación del lenguaje• Sintáxis y restricciones del lenguaje• Reglas semánticas del lenguaje• Límites del lenguaje

Page 14: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Implementaciones

• Microsoft– Common Language Runtime (CLR)

• Implementación “comercial” del standard CLI.

– Just-In-Time Compiler (JIT) / Garbage Collector (GC)

• Plataformas: Windows, Intel• Compiladores: C#, VB.NET, JScript, MSIL• ASP.NET, Windows Forms, Windows services• Disponibilidad: Runtime, Class Library y SDK• 1.0 -> 2001.• 1.1 -> 2003. Everett• Next –> 200?. Whidbey

Page 15: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Implementaciones (cont.)

• Microsoft– SSCLI (ROTOR)

• Implementación CLI de código compartido– JIT / GC

• Licencia: Shared Source• Plataformas: Windows, MacOS/X, FreeBSD• Compiladores: C#, JScript, MSIL• Disponibilidad: Runtime, Class Library, SDK y

código• Opcional Gyro. Implementación de Generics

de C++• 1.0 -> 2003

Page 16: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Implementaciones (cont.)

• Ximian / Comunidad open source– Proyecto Mono

• Implementación CLI de código abierto– JIT / GC / Inteprete

• Licencias: Compilador GPL, Runtime LGPL, Class Library MIT X11

• Plataformas: Windows, Linux/x86, Linux/PPC, S390, StrongARM y SPARC

• Compiladores: C#, JScript, Visual Basic, MSIL• Objetivo: 100% compatible con CLR• Disponibilidad: Runtime, Class Library, SDK y

código• 0.01 -> Jul/2001• 0.24 -> 2003 (compatible con 1.1)

Page 17: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Implementaciones (cont.)

• GNU / Comunidad Open Source– DotGNU / PortableNet

• Implementación CLI de código abierto - GPL– JIT / GC / Inteprete

• Sub-proyecto de DotGNU.• Plataformas: GNU/Linux, Windows, Solaris, NetBSD,

FreeBSD, and MacOS X. Arquitecturas: x86, PowerPC, ARM, Sparc, PARISC, s309, Alpha, IA-64.

• Compiladores: C#, Java, MSIL• Disponibilidad: Runtime, Class Library, SDK y

código• 0.01 -> 2001• 0.5.6 -> 2003 (compatible con 1.1)

Page 18: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Implementaciones (cont.)

• Intel– Open CLI Library (OCL)

• Implementación Class Library de código abierto

• Plataformas: 100% .NET• Disponibilidad: Class library y código• 0.1.0 -> Ago/2001• 0.5.0 -> Sep/2002

Page 19: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Proyectos de código abierto

Page 20: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NAnt

• Problemática– Es común en proyectos grandes la realización

de tareas frecuentes:• Compilación total o parcial• Generación de la documentación• Deployment para prueba

– Si bien se pueden realizar archivos .BAT, .CMD, .VBS o .JS, hay una herramienta llamada MAKE

• Los scripts de MAKE tienen una semántica especial para las tareas relacionadas con la compilación y manejo de código fuente.

Page 21: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NAnt

Page 22: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NAnt

• http://nant.sf.net• Herramienta similar a MAKE• Basado en Ant• Archivo de configuración en XML• Ejecuta <target…>• Permite tareas del usuario (User Tasks)

Page 23: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NUnit

• Técnicas modernas de manejo de proyectos plantean– Desarrollo de los scripts de prueba en paralelo

con el desarrollo– Creación de los principales Tests por parte del

mismo equipo de desarrollo.– Con cada cambio en el software

• Preparación de los nuevos scripts de pruebas• Ejecución satisfactoria de todos los Tests anteriores

(Test de regresión)

Page 24: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NUnit

Page 25: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NUnit

• http://www.nunit.org/• Basado en JUnit• Un framework de Unit Test, para soportar

integración continua• Versión 2: rediseñado para .NET• Test para todos los lenguajes .NET: VB.Net,

C#, J#....

Page 26: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NDoc

• Problemática– Donald Knuth: “La mejor documentación es el código

fuente”– El código fuente debe contener la mayor cantidad de

documentación posible.• Restricciones, alcance, precondiciones

– XML Documents• Con el compilador de C# se incluyó soporte para extraer la

documentación del código fuente• Esta documentación se agrupa en un archivo XML que

contiene toda la documentación de una unidad de compilación (assembly)

– Con Visual Studio.NET se puede crear un conjunto de archivos HTML con la documentación lista para ser navegada.

Page 27: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NDoc

Page 28: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

NDoc

• http://ndoc.sf.net• Genera documentación de proyectos C#• Hay distintos Documenters• Documenter MSDN• Para Visual Basic .NET existe http://vb-

net.sf.net/

Page 29: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

SharpDevelop

Page 30: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

SharpDevelop

• http://www.icsharpcode.net• Entorno de desarrollo, libre, con código fuente• Escrito en C#• Proyectos en C# y en VB.Net• Incluye un NAnt, NDoc, SharpUnit

Page 31: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Sitios de Interes

• Microsoft .NET– www.microsoft.com/net

• SSCLI– http://www.microsoft.com/sharedsource– Gyro

• http://research.microsoft.com/research/downloads/

• Proyecto Mono– www.go-mono.org

• DotGNU– www.dotgnu.org

• Intel OCL– sourceforge.net/projects/ocl

Page 32: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Otros Proyectos

• Report.NET – http://report.sf.net

• Gtk#– http://gtk-sharp.sf.net

• Canal Remoting-CORBA– http://remoting-corba.sourceforge.net/

• Magic Library– http://www.dotnetmagic.com/

• VB.Doc– http://vb-doc.sf.net/

Page 33: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

¿Preguntas?

Por favor, completar elformulario de evaluación

Te llevás un CD con un curso interactivo de ASP.NET y Visual C#

En 10 días, esta ppt en línea

www.microsoft.com/argentina/msdn ?

Page 34: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Angel “Java” Lopez ([email protected])http://www.ajlopez.com

Diego Gonzalez ([email protected])Lagash Systems SA (http://www.lagash.com)

Muchas graciaspor tu participación!

Page 35: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Programa Desarrollador Cinco Estrellas

Si ya tenés tu estrella, pasá al salón San Telmo

Hacele un upgrade a tu currículum

Page 36: Iniciativa Microsoft Multiplataforma Angel Java López (VMP) Diego González (VMP) Bienvenidos.

Tu potencial. Nuestra pasión.®