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: