Tema 6 : Mono

Anuncio
Programació amb C# .NET
Tema 6 : Mono
Jordi Linares i Pellicer
Introducción

Nace en 2001 gracias a la estandarización por
parte de Microsoft de las piezas claves de la
tecnología .NET

El proyecto mono (http://mono-project.com) es
una iniciativa de Novell.

Objetivos:

Mejorar el desarrollo de aplicaciones Linux y
facilitar la migración desde Windows

Soportar las APIs de Microsoft

Proporcionar una completa herramienta de
desarrollo multiplataforma
Mono
Lenguajes y arquitecturas
Más acerca de Mono

Con Moonlight (http://www.go-mono.com/moonlight/)
se consigue Silverlight 1.0 sobre plataformas Unix.

Mono se está convirtiendo en algunos aspectos una
herramienta más rápida que la propia implementación
de Microsoft (scripting en juegos: Unity3D)

Soporte de 3 GUI: Gtk#, WinForms y Cocoa#

Soporte de diferentes plataformas:
32 bits (x86, SPARC, S390, ARM, PowerPC), 64 bits
(x86-64), s390x, Itanium), Alpha, MIPS
 Linux, Solaris, MacOS X, Windows, Nokia/Maemo


Software libre (compiladores GPL, librerías Mono MIT
X11, Runtime LGPL)
Estrategias para desarrollo multiplataforma

Imprescindible actualizarse siempre a la última versión
(página download y ‘unsupported downloads’)
1. Desarrollar en VS sobre Windows, con WinForms,
eligiendo Framework 2.0, sin librerías de terceros que
accedan a API’s Windows de forma directa. Ejecutar
directamente sobre Mac, Linux, Solaris etc.
2. Desarrollar sobre MonoDevelop usando Gtk# (y usar
Gtk para Windows, Mac etc.)
3. Desarrollar el ‘core’ de la aplicación independiente
totalmente del GUI. Realizar un interface totalmente
específico para cada plataforma: WPF (Windows), Gtk#
(linux) y Cocoa# (Mac)
MonoDevelop
Aplicaciones consola con MonoDevelop
Aplicaciones Gtk# con MonoDevelop
Aplicaciones Gtk# con MonoDevelop




Modo Source Code / Designer gracias a stetic
Controles como Entry (TextBox), Label, Button etc.
Se precisa arrastrar un panel inicial, p.e., FixedPanel
Caracterización mediante propiedades (properties) y eventos (signals)
Desarrollando con VS y WinForms

Desarrollamos con WinForms, con Framework 2.0, en VS y en
Windows. Compilamos versión Release. Generamos un .exe
totalmente portable a Linux, Mac OSX etc. gracias a Mono
Desarrollando con VS y WinForms

Ejecutamos directamente el .exe generado en Linux, p.e., mediante la
invocación del CLR de mono:
Desarrollando con VS y WinForms

La misma aplicación en Mac OSX:
Descargar