Iniciativa microsoft multiplataforma
Download
1 / 36

Iniciativa Microsoft Multiplataforma - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

Bienvenidos. Iniciativa Microsoft Multiplataforma. Angel “Java” López (VMP) Diego González (VMP). Agenda. Introducción Standard CLI Implementaciones Microsoft .NET SSCLI (ROTOR) Proyecto Mono PNet OCL Proyectos de código abierto NAnt, NDoc, NUnit, SharpDevelop, Workspaces.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Iniciativa Microsoft Multiplataforma' - sherry


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Iniciativa microsoft multiplataforma

Bienvenidos

Iniciativa Microsoft Multiplataforma

Angel “Java” López (VMP)

Diego González (VMP)


Agenda
Agenda

  • Introducción

  • Standard CLI

  • Implementaciones

    • Microsoft .NET

    • SSCLI (ROTOR)

    • Proyecto Mono

    • PNet

    • OCL

  • Proyectos de código abierto

    • NAnt, NDoc, NUnit, SharpDevelop, Workspaces



Introduccion
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


Maquinas virtuales
Maquinas Virtuales

  • Nueva capa de software base para las aplicaciones

Aplicaciones (EXE)

Aplicaciones (EXE)

Maquina Virtual

Sistema Operativo

Sistema Operativo

Hardware

Hardware


Maquinas virtuales cont
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.


Maquinas virtuales cont1
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


Maquinas virtuales cont2
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


Maquinas virtuales cont3
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


Maquinas virtuales cont4
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



Standard cli1
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)


Standard cli cont
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


Implementaciones
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


Implementaciones cont
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


Implementaciones cont1
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)


Implementaciones cont2
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)


Implementaciones cont3
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



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.



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)


Nunit
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)



Nunit2
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#....


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.



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/



Sharpdevelop1
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


Sitios de interes
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


Otros proyectos
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/


Preguntas

?

¿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


Muchas gracias

por tu participación!

Angel “Java” Lopez ([email protected])

http://www.ajlopez.com

Diego Gonzalez ([email protected])

Lagash Systems SA (http://www.lagash.com)


Programa desarrollador cinco estrellas
Programa Desarrollador Cinco Estrellas

Hacele un upgrade a tu currículum

Si ya tenés tu estrella,

pasá al salón San Telmo



ad