Title: Iniciativa Microsoft Multiplataforma
1Iniciativa Microsoft Multiplataforma
Bienvenidos
- Angel Java López (VMP)
- Diego González (VMP)
2Agenda
- Introducción
- Standard CLI
- Implementaciones
- Microsoft .NET
- SSCLI (ROTOR)
- Proyecto Mono
- PNet
- OCL
- Proyectos de código abierto
- NAnt, NDoc, NUnit, SharpDevelop, Workspaces
3Introducción
4Introduccion
- 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
5Maquinas Virtuales
- Nueva capa de software base para las aplicaciones
Aplicaciones (EXE)
Aplicaciones (EXE)
Maquina Virtual
Sistema Operativo
Sistema Operativo
Hardware
Hardware
6Maquinas 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.
7Maquinas 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
8Maquinas 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
9Maquinas 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
10Maquinas 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
11Standard CLI
12Standard 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)
13Standard 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
14Implementaciones
- 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 -gt 2001.
- 1.1 -gt 2003. Everett
- Next gt 200?. Whidbey
15Implementaciones (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 -gt 2003
16Implementaciones (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 -gt Jul/2001
- 0.24 -gt 2003 (compatible con 1.1)
17Implementaciones (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 -gt 2001
- 0.5.6 -gt 2003 (compatible con 1.1)
18Implementaciones (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 -gt Ago/2001
- 0.5.0 -gt Sep/2002
19Proyectos de código abierto
20NAnt
- 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.
21NAnt
22NAnt
- http//nant.sf.net
- Herramienta similar a MAKE
- Basado en Ant
- Archivo de configuración en XML
- Ejecuta lttargetgt
- Permite tareas del usuario (User Tasks)
23NUnit
- 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)
24NUnit
25NUnit
- 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....
26NDoc
- 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.
27NDoc
28NDoc
- 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
/
29SharpDevelop
30SharpDevelop
- 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
31Sitios 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
32Otros 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/
33Preguntas?
?
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
34Muchas gracias por tu participación!
Angel Java Lopez (webmaster_at_ajlopez.com) http//
www.ajlopez.com Diego Gonzalez
(diegog_at_lagash.com) Lagash Systems SA
(http//www.lagash.com)
35Programa Desarrollador Cinco Estrellas
Hacele un upgrade a tu currículum
Si ya tenés tu estrella, pasá al salón San Telmo
36Tu potencial. Nuestra pasión.