Introducion a Mono

2,816 views 25 slides Dec 08, 2008
Slide 1
Slide 1 of 25
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25

About This Presentation

Introduccion a Mono


Slide Content

Introducción a Mono
Adrián De León
[email protected]
http://www.adl.org.mx

Objetivo de esta platica
Ver que es Mono.
Hacer un par de Demos.
Contestar Preguntas.

Que es Mono?
Una implementación libre de los estándares de
ECMA 334 y 335 / ISO 23270 y 23271.

No, en serio. Que es Mono?
Mono es una plataforma de desarrollo para
Linux.
Máquina Virtual (Common Language Runtime)
Biblioteca de clases/APIs (biblioteca clases de
ECMA, clases propias y clases de
compatibilidad con Microsoft/.NET)
Compilador de C# (MCS)

Objetivo del Proyecto
Mono:
Efecto secundario: Ayudar a la
migración de Windows a Linux
Crear una plataforma de desarrollo de
aplicaciones para Linux.
Incrementar la productividad del programador
de Linux.

Porque Mono?
Las plataformas de desarrollo de Linux son
inmaduras.
La plataforma esta fragmentada.
Las herramientas de desarrollo son para 'Hackers'.
La necesidad de una velocidad mayor de TTM
(Time To Market) requiere herramientas mas
sofisticadas.

Porque Mono?
En Linux, todos construyen su propia plataforma:
© Novell
Inc,

Plataforma de Mono:
© Novell
Inc,

Que tiene que ver Mono
con .NET?
Los dos son implementaciones del mismo
estándar
Mono contiene APIs de compatibilidad para
.NET
Se puede reutilizar la experiencia,
conocimiento y código de .NET en Mono.
Mono NO es un “clon” de .NET.

Mono: Dos APIs
© Novell
Inc,

Una solución para desarrollo
de aplicaciones en Linux.
Mono es una excelente plataforma para desarrollar
aplicaciones en Linux:
Manejo automático de memoria.
Biblioteca de clases muy completa.
Multilenguaje:
C#
VB.NET
Nermele
IronPython
Una gran masa de desarrolladores
Programadores con experiencia en .NET pueden aplicar sus
conocimientos y desarrollar aplicaciones en Linux.

Una solución para desarrollo
de aplicaciones en Linux...
No es un lenguaje o framework nuevo. .NET y C# son
aceptados por la industria.
Los departamentos de sistemas y desarrollo conocen .
NET/C#, no conocen Python, Perl o Ruby.
Documentación, entrenamiento y certificación para .
NET/C# se encuentran disponibles y se pueden reutilizar
con Mono.
Mono esta disponible en varias plataformas:
Linux x86, Linux PPC, s390, Linux AMD64, MacOS, etc.
y .NET y Mono están disponibles en Windows.
Mono provee desarrollo /deployment multiplataforma.

Varios lenguajes, Varias
arquitecturas
© Novell
Inc,

Ventajas
Ventajas de Mono:
Java
.NET
C y C++
Python
Perl
Ruby

Desventajas de Mono
Desventajas de Mono sobre Java:
Mas maduro.
mas implementaciones.
Aceptado por la industria.
Mejores herramientas de desarrollo (Eclipse)
Excelente soporte en Linux.

Desventajas de Mono
Desventajas de Mono sobre .NET
.NET es mas visible.
Aceptado por la industria
.NET es la plataforma a seguir (El problema de
reimplementación)
Mejor documentación.
Mejores herramientas de desarrollo (VS.NET
2005)
.NET es el futuro de Windows. Mono es una de
muchas plataformas de desarrollo en Linux

Ejemplo de código C#

Hola mundo en Mono con
C#
using System;
public class Hola
{
public static void Main()
{
Console.WriteLine(“Hola Mundo!”);
}
}
Igual que en .NET

Demo: Corriendo el mismo
assembly en Mono y .NET

Demo: Comparar el CIL de
dos assemblies en diferentes
lenguajes
Dos archivos: DemoCS.cs y DemoVBS.vbs.
Compilamos los dos archivos y generan
assemblies: DemoCS.exe y DemoVBS.exe
Ver el CIL (Common Intermidiate
Language).
Compararlos.

Demo: Web Services
Crear un servidor de Web Services en Mono.
Crear un cliente para este Web Service.
Correr el cliente (compilado en Linux con
Mono) en Windows con .NET y llamar el
Web Service corriendo en Linux.

Demo: Crear un Navegador
de Web
Como programar un navegador de web en
menos de 35 lineas de código
Uso de las herramientas de desarrollo de
Mono en Linux:
Monodevelop
GTK#
Glade
Gecko-sharp

Demo: Aplicaciones
creadas con Mono.
Monodevelop
Banshee
F-spot
Tomboy
Beagle
iFolder

¿Preguntas?

Gracias