PDF de programación - Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje

Imágen de pdf Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje

Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguajegráfica de visualizaciones

Publicado el 13 de Noviembre del 2019
101 visualizaciones desde el 13 de Noviembre del 2019
762,9 KB
18 paginas
Creado hace 11a (18/07/2008)
Desarrollo de Software con Mono, una

Implementación Libre de .NET, Multiplataforma

e Independiente del Lenguaje

Luis I. Larrateguy, Milton D. Pividori y César M. Sandrigo

UTN Facultad Regional Santa Fe, Lavaise 610 - S3004EWB Santa Fe,

Página Web: http://www.frsf.utn.edu.ar/

Resumen Se presenta un desarrollo como prueba de concepto en la in-
tegración de tecnologías, utilizando Software Libre y multiplataforma. Se
utilizó la plataforma de desarrollo Mono, implementación libre de .NET.
Se probaron tecnologías como Remoting, Web Services, independencia
del lenguaje de programación y toolkits gráficos libres. Además se utilizó
el entorno de desarrollo integrado libre MonoDevelop. Se abordó la solu-
ción con técnicas orientadas a objetos y se aplicaron patrones de diseño.
El marco de este trabajo fue la cátedra de Administración de Recursos
de cuarto año de Ingeniería en Sistemas de Información, en donde la con-
signa del mismo era investigar sobre tecnologías actuales y nuevas que
permitieran la integración de tecnologías. Uno de los objetivos propues-
tos por los autores, fue aprender a utilizar tecnologías libres y modernas
utilizando Software Libre. En el caso de estudio se probó portabilidad
entre Ubuntu GNU/Linux y Microsoft Windows.

1.

Introducción

Durante el cursado de la cátedra Administración de Recursos, dictada en
el 4to año de la carrera de Ingeniería en Sistemas de Información, se realizó
un trabajo práctico de investigación y desarrollo, con el objetivo de aprender a
utilizar nuevas tecnologías para desarrollar software.

El Software Libre (SL) brinda varias ventajas para los clientes, usuarios y
desarrolladores. Para los clientes la principal de ellas es la independencia que
proporciona sobre las empresas proveedoras de software, habilitándolos a con-
tratar a los profesionales que prefiera para realizar mantenimiento de su sistema,
expansión, diseño de nuevas funcionalidades, entre otras. Para los usuarios, la
seguridad de estar trabajando con estándares abiertos, ya que el SL hace un uso
extensivo de estos, y la posibilidad de elegir entre varias alternativas. Los desa-
rrolladores se benefician de los aportes que puedan realizar sus pares, de contar
con una gran comunidad para el soporte, incluso de realizar trabajo diferencial
sobre una pieza de software existente.

Una característica del Framework .NET de Microsoft interesante y que lo
diferencia de otras plataformas, es su enfoque en la independencia del lenguaje de
programación. El objetivo del trabajo es investigar esta característica, utilizando

varios lenguajes en el desarrollo, como C#, Java y Boo, y comunicándolos entre
ellos a nivel de clase. Esto permite formar equipos de desarrollo donde el lenguaje
común entre los individuos sea la Orientación a Objetos, y no un lenguaje de
programación. De esta forma cada programador puede trabajar en el lenguaje
que desee, sin preocuparse por la interoperabilidad con el código de los demás,
habilitándolo a, por ejemplo, crear una nueva clase en Java que especialice una
hecha en C#, y a su vez ésta especializar otra codificada en Boo o VB.NET.

Se investigó además características de integración con otros sistemas utili-
zando estándares abiertos con protocolos cerrados. Para esto se utilizó Remo-
ting dentro de la plataforma .NET y Web Services para comunicarse con otras
plataformas.

Mediante el planteo de un problema a resolver y la construcción de una

prueba de concepto, se busca cumplir los objetivos propuestos.

2.

Investigación

Al ser Mono una implementación del Framework .NET, es necesario investi-
gar inicialmente sobre esta plataforma, ya que se trata básicamente de los mismos
conceptos. Sin embargo se requiere conocer aquellas características propias del
proyecto Mono, como la capacidad de correr en varias plataformas (de hardware
y software) y las alternativas que propone para realizar algunas tareas.

En .NET las bibliotecas que se utilizan para crear una Interfaz Gráfica de
Usuario (GUI, por sus siglas en inglés) se llaman Windows.Forms. Gtk# es otro
conjunto de bibliotecas alternativa que presenta una serie de ventajas, como el
hecho de ser multiplataforma.

También se investigó sobre tecnologías como Remoting y Web Services, que
se han utilizado para escribir los componentes de comunicaciones, cada una con
características apropiadas para interconectar sistemas homogéneos o heterogé-
neos.

2.1.

.NET

No es objetivo del trabajo entrar en detalles sobre la plataforma .NET, sino
mencionar los conceptos principales, necesarios para comprender las secciones
siguientes, especialmente la de Mono.

Unas de las características del Framework .NET, es la compilación JIT (Just
In Time), gestión de memoria (Garbage collector), multithreading, interopera-
bilidad, bibliotecas de clase base (BCL) disponible para todos los lenguajes,
características de seguridad e independencia del lenguaje.

La independencia del lenguaje que ofrece la plataforma .NET es lograda
compilando todo a un código intermedio, llamado CIL (Common Intermediate
Language), como se puede apreciar en la Figura 1. Cada compilador transforma
el código fuente de un determinado lenguaje a CIL. Luego el runtime (entorno de
ejecución) se encarga de ejecutar el CIL, compilándolo a código máquina. Más
información sobre el framework en [7].

Figura 1. Independencia del lenguaje en .NET

2.2. Mono

Antes de explicar el resultado de la investigación acerca de características
particulares y paquetes de Mono, se explicará brevemente de qué se trata el
Proyecto Mono.

¿Qué es Mono?. En el sitio oficial del proyecto se lee: “Mono es una plata-
forma de software diseñada para permitir a los desarrolladores crear fácilmente
aplicaciones multiplataforma. Es una implementación open source del Frame-
work .NET de Microsoft basado en estándares ECMA para C# y el Common
Language Runtime”[1]. Puede leerse más sobre los estándares ECMA en [2].

Según palabras de uno de los fundadores del proyecto, Miguel de Icaza,
el objetivo de Mono originalmente era mejorar la plataforma de desarrollo en
GNU/Linux. A medida que la comunidad crecía, se comenzó a soportar las APIs
de Microsoft. Finalmente, cuando Mono se volvía cada vez más maduro, el ob-
jetivo era proveer de un runtime multiplataforma completo, y de permitir a los
desarrolladores de Windows portar sus aplicaciones a GNU/Linux.

Activamente Desarrollado. El proyecto Mono es impulsado por Novell, y según
datos del 2006, cuenta con 20 desarrolladores full-time, y más de 300 colabora-
dores.

Es Libre[3]. El compilador de C# y demás herramientas, están bajo la GNU
General Public License (GPL). Las librerías de tiempo de ejecución bajo la GNU
Library GPL 2.0 (LGPL), y las librerías de clase bajo la licencia MIT X11.

Es Realmente Multiplataforma[4]. A diferencia de la implementación cerrada de
Microsoft, Mono es altamente portable: está disponible para casi toda la familia
Unix, como GNU/Linux, Mac OS X, Solaris y BSDs, además de funcionar en
Windows, a partir de la versión 2000. También está disponible en la plataforma
de desarrollo libre para dispositivos móviles Maemo. Además corre en distintas
arquitecturas de CPU: x86, PowerPC, AMD64, Sparc, s390, IA64, ARM.

En la Figura 2 se puede ver un gráfico que permite visualizar la independencia

del lenguaje, y la capacidad de correr en varias plataformas.

Figura 2. Mono: independiente del lenguaje y multiplataforma

¿Quién usa Mono?. Algunos usuarios de esta plataforma de desarrollo libre
son[5]:

Novell (http://www.novell.com/), tanto para aplicaciones cliente como ser-
vidor. Algunas de ellas son: iFolder, Beagle, F-Spot, Banshee, etc.
Second Life (http://secondlife.com/): en el futuro, se utilizará Mono como
motor de scripting, por la performance que ofrece en la ejecución de scripts[8].
Wikipedia (http://wikipedia.org) usa Mono para sus recursos de búsqueda.
El indexado y la búsqueda es realizada por aplicaciones basadas en Mono.
Cogmation (http://www.cogmation.com/) usa Mono en su software de ro-
bótica para manejar el scripting en su plataforma[6].

Otee (http://www.otee.dk/) desarrolla Unity, herramienta para el modelado
3D de juegos, que utiliza Mono en algunos componentes.
Interopix (http://www.interopix.com/): Corren Mono en un servidor FreeBSD
con alta carga.
Coversant (http://www.coversant.net/): Desarrolladores de SoapBox, un
servidor Jabber.
Zing (http://www.zing.net): su reproductor MP3/Wifi usa Mono para ma-
nejar su stack de aplicaciones.
VistaDB (http://www.vistadb.com) tiene en el mercado su base de datos
embebida VistaDB en Mono.

2.3. Gtk#

Como se mencionó anteriormente, éste es el toolkit gráfico que se ha utilizado
para el software desarrollado. Representa una alternativa para el desarrollo de
GUIs, con una serie de ventajas que se verán a continuación. Se pretende en esta
sección dar una breve introducción al respecto.

¿Qué es Gtk+?. “Gtk+ es un toolkit altamente utilizable y completo para
crear interfaces gráficas de usuario, y se jacta de su capacidad multiplataforma
y de una API fácil de usar.”[9].

Si bien Gtk+ está escrito en C, existen bindings para otros lenguajes como
C++, Python y Java. Además está bajo la licencia GNU LGPL 2.1, lo que
permite utilizarla para desarrollos libres o propietarios, sin cargos o que implique
el pago de regalías.

¿Quién lo Utiliza?. Algunos grandes usuarios de este toolkit gráfico son el pro-
yecto GNOME y la plataforma Maemo. Gtk+ es soportado por una amplia
comunidad de desarrolladores, y algunos de los principales son de compañías
como Red Hat, Novell, Imendio y Opened Hand[11].

Multiplataforma. Gtk+ corre en GNU/Linux, Unix, Windows y Mac OS X.

¿Qué es Gtk#?. Gtk# es el nombre de los bindings correspondientes de Gtk+
para la plataforma Mono/.NET. Es posible utilizar este toolkit gráfico desde
cualquier lenguaje soportado por la plataforma, no s´
  • Links de descarga
http://lwp-l.com/pdf16901

Comentarios de: Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad