GeoAvila (Geovanny G. Avila) Desarrollo.. de software.

17Oct/080

Mono 2.0 ha sido liberado


Mono 2.0 ha sido liberado según veo en la página de mono.net así que veamos que nuevas actualización tiene la gente de mono para nostros que estamos ingresando a este ambito de desarrollo nuevo. aquí el link, entre las nuevas mejoras encontramos:

  • ADO.NET 2.0 API for accessing databases.
  • ASP.NET 2.0 API for developing Web-based applications.
  • Windows.Forms 2.0 API to create desktop applications.
  • System.XML 2.0: An API to manipulate XML documents.
  • System.Core: Provides support for the Language Integrated Query (LINQ).
  • System.Xml.Linq: Provides a LINQ provider for XML.
  • System.Drawing 2.0 API: A portable graphics rendering API.

que lo disfruten.

nos vemos.

17Sep/081

¿Qué es Mono .Net?

Mono .Net es la implementación libre del CLI (Common Language Infraestructure) y C# el fué creado y desarrollado por Microsoft, de acuerdo a las especificaciones enviadas del gigante de la informática a la ECMA para su estandarización. Esta implementación es de codigo fuente abierto (Open source), de las cosas que Microsoft para el beneficio me muchos, en este caso para nosotros los desarrolladores.

El Mono incluye el CLI, el cual contiene la máquina virtual que se encarga de cargar las clases, el compilador jit (Just-in-time) y el garbage collector(Recolector de Basura); todo esto escrito desde cero de acuerdo a las especificaciones Ecma-334.

Mono también incluye un compilador de C# así como el de Vb, J#, python y otros más, el cual paradojicamente esta escrito en C# y al igual que el CLI, este compilador sigue las especificaciones Ecma-335.

Adicionalmente Mono cuenta con un catalogo de librerías compatibles con las librerías del .Net Framework, pero además cuenta con una serie de librerías no existentes en el .Net Framework de Microsoft; como el GTK# que permite crear interfaces gráficas nativas del toolkit GTK+, Mono.LDAP, Mono.Posix, etc.

Origen de Mono

El proyecto Mono fue creado por Ximian; actualmente Novell es quien patrocina el proyecto Mono, ya que este adquirió a Ximian.

La motivación de crear Mono se debe a la búsqueda de herramientas que ayudaran a la creación rápida de aplicaciones en el entorno Linux.

Plataformas soportadas por Mono

Mono soporta las siguiente plataformas Actualmente x86, PPC, SPARC y S390 en 32 bits; y x86-64 y SPARC en 64 bits; y se puede crear y ejecutar aplicaciones en los sistemas operativos: Linux, Windows, OSX, BSD y Solaris.

¿Es mono compatible con el .Net Framework?

Uno de los objetivos de Mono es alcanzar un alto grado de compatibilidad con el API 1.1 – aunque ya hay bastante trabajo de compatibilidad con el API 2.0 del .Net Framework -.
Con esto se busca que un binario compilado en Windows con el .Net Framework pueda ejecutarse en alguna de las plataformas de Mono sin tener que recompilar el binario, y que a su vez pueda hacer uso de las librerías compatibles de Mono -Ej: System.Data, System.Xml, etc -.

Las librerías proporcionadas por Mono son 100% – la mayoría son 100% compatibles – compatibles con su contra parte del .Net Framework, en este momento.

  • El CLI

  • El compilador de C#

  • ADO.NET

  • ASP.NET

  • WebServices

  • System

  • WindowsForms

Siendo esta ultima – WindowsForms – la que requiere de mayor trabajo para ser completada en su totalidad. Aunque cabe destacar que el proyecto no contempla la creación de librerías compatibles para Enterprise Services.

¿Que tipo de aplicaciones puedo crear actualmente con Mono?

Bueno es posible crear aplicaciones de tipo Web y Webservices con el uso de modulo mod_mono que permite al servidor de Web Apache servir paginas de ASP.NET (aspx) y Servicios Web (asmx).

Es también posible crear aplicaciones que acceden a base de datos como Microsoft SQL, Oracle, Postgresql, etc.

Por el lado de aplicaciones de interfase gráfica, la sugerencia es utilizar GTK#, ya que el toolkit en el que este esta basado (GTK+), permite ejecutar aplicaciones gráficas en ambientes Linux, Windows y OSX sin cambios; esta sugerencia toma importancia, debido a que la implementación compatible con Windows Forms en Mono aun no esta completa.

¿Hay algún requerimiento para que mi aplicación sea compatible con Mono y el .Net Framework, es decir portable?

Realmente no hay ninguno en especifico, siempre y cuando sea una aplicación basada en el CLI; aunque si hay algunos puntos que se deben de tener en consideración:

  1. Linux distingue entre mayúsculas y minúsculas en los nombres de archivos y directorios; así es que necesario tener una consistencia con los nombres que utilicemos.

  2. El separador de rutas es diferente en Windows (\) que en Linux (/), por lo tanto se recomienda usar el API Path.DirectoryPathSeparator, para obtener en separador correcto al ejecutar la aplicación.

  3. Si se utilizan librerías no CLI (Ej: librería en C, C++ etc.), mediante p/Invoke, asegurarse que la librería existe en los diferentes ambientes donde se va a ejecutar la aplicación.

  4. No hacer uso de tecnologías que solo existan en un ambiente en particular (Ej: Registry en Windows o GConf en Linux -Gnome-); o bien proveer alguna solución que permita a la aplicación operar de forma correcta en el ambiente donde se ejecuta.

  5. Aplicaciones basadas en Windows Forms y que sean muy complejas pueden no funcionar de momento, debido a que Windows Forms en Mono no esta completo.

¿Que herramientas de desarrollo existen en Mono?

Bueno es posible desde Windows desarrollar una aplicación utilizando el Visual Studio. En el lado de Linux existe el MonoDevelop, el cual es un IDE basado en el SharpDevelop.

MonoDevelop aun se encuentra bajo intenso desarrollo, pero aun así permite el manejo de proyectos, el colorear la sintaxis, auto completar código, compilar y ejecutar la aplicación desde la misma IDE.
Mediante agregados (add-ins) se le ha ido extendiendo la funcionalidad para por ejemplo:

  • Conectarse a bases de datos desde el IDE

  • La inclusión de un debugger que permita al igual que el Visual Studio, ejecutar código linea por linea, y revisar valores de variables.

Hay trabajo actualmente para integrar un diseñador de formas, aunque este diseñador esta enfocado a crear formas para GTK# y no Windows Forms.

Aplicaciones hechas para Mono.

Hay una buena cantidad de aplicaciones desarrolladas para Linux en Mono, para darse una idea, aquí hay 2 listados con estas aplicaciones:

De estas aplicaciones de las destacadas son :

  • MonoDevelop: Es una IDE para programar en Linux programas para Mono. La IDE esta hecha en C#.

  • F-Spot: Programa para catalogar fotografías, además de poder hacer algunas modificaciones digitales a las fotos.

  • Beagle: Herramienta que indexa y busca información entre una serie diferentes tipos de documentos en Linux.

  • Tomboy: Programa para almacenar notas que se ligan mediante palabras claves.

  • Muine: Es un reproductor de audio basado en GStreamer.

  • PyMusique: Programa que provee de una interfase gráfica para acceder a comprar música con el servicio iTunes de Apple.

  • MonoUML: Es un editor para realizar diagramas con el estandar UML.

Les dejo el link para que vean otras aplicaciones más acá.

Mono y las licencias

Como se menciono al principio Mono es la implementación de código fuente abierto del .Net Framework de Microsoft, basado en los estándares liberados a la ECMA; por ser una implementación basada en un producto de Microsoft, ha causado controversia el uso de Mono en Linux -entre los usuarios y desarrolladores de Linux -, el argumento es que Mono pueda infringir patentes de Microsoft, lo cual puede convertirse una demanda en contra de Mono.

De acuerdo con la pagina del proyecto Mono, mientras el CLI y el compilador de C# se apegue a los estándares aceptados por la ECMA, estas 2 piezas están seguras, con relación a las librerías especificas de Mono, estas no corren ningún riesgo; pero la implementación de las librerías relacionadas con ASP.NET, ADO.NET y Windows Forms son sensibles a infringir a alguna patente de Microsoft – aunque de momento no se tiene conocimiento de que así sea -; por tal motivo el proyecto Mono sugiere 3 opciones para este ultimo caso:

  • Reimplementar la funcionalidad – para evitar la patente -, tratando de mantener el API compatible.

  • Eliminar cosas que no puedan ser reimplementadas.

  • Buscar elementos que puedan nulificar la patente.

¿Como instalo Mono?

La manera mas fácil es descargar el paquete adecuado desde la pagina del proyecto; en el caso de Linux también es posible hacer uso de los diferentes mecanismos de instalación de programas que provee cada distribución de Linux (yum, apt, red carpet). En el caso de Windows definitivamente la opción, es descargar el instalador desde la pagina del proyecto.

Mas información

Para obtener mayor información del proyecto Mono, esta disponible el sitio web en ingles, además de los monologue que es un agregador de los blogs de los desarrolladores de Mono; o bien es español el sitio Mono Hispano, además de los blogs de la gente que mantiene este sitio.

este artículo fue redactado Mario Alberto Chávez Cárdenas, originalmente el cual lo veo como muy bueno y que en realidad no tube que hacerle mayores cambios salvo un par de actualizaciones.

17Sep/080

Manual de Mono .NET

Después de haber hecho varias pruebas resulta que los vídeos del Vídeo Manual no logran verse adecuadamente en todos los ambientes, y tampoco para todos los usuarios, así que de momento mientas no tengamos el suficiente espacio para hospedar nuestros vídeos, haremos nuestro manual de Mono .Net como hicimos el de Vb.net, vamos a comenzar en el próximo post a ver los inicio de Mono .NET GTK#, para las personas que no lograron ver una de las pruebas dejo ajunto el link de la ultima prueba http://geoavila.com/?p=97 .

Nos vemos..

Sigueme en Twitter

Recent Posts

Amigos de Twitter

prsarahevans
evesosa
xabivargas
thomas_weller
albertomontt
J05uE
softcarlos
Blackstare
fayerwayer
guise
xisaac
orlandomgj
jazzandblue
daniellacayo
LibrosyMasgt
yoasumo
ChapinGeek
guilleybruno
TuFrac
Luckysilva
guatecham
Elultimodepaz
f0vela
tuxtor
andreimorales
xarquis
giopack
barcampgt
gjprensalibre
robertogt
Miguel_gt
emisorasunidas
jhony88
omarvelz
prensa_libre
tuiterasgt
Friends: Followers:

Categories

Sitios amigos

Algunos Derechos Reservados

Blog bajo licencia Creative Commons Attribution-ShareAlike 3.0 License
Creative Commons License