Viejo blog de Jdc_ Día tras día...

jueves, septiembre 22, 2005

MONO

Y a todas estas ya que mencione lo de uso de tecnologías, resulta importante incluso que camino tomar a la hora de desarrollar aplicaciones y sobre que a que tecnologías apuntar, a mí particularmente me gusta el proyecto mono que implementa .NET en una plataforma completamente libre, si casi se me hincharon las bolas cuando vi ese csharp1.exe (mi primera prueba con C#) en mi ext3, pero resulta que no es un binario de win32, sino el resultado de compilar el lenguaje en una plataforma intermedia, sucede que la gente de MS reuso la extensión del archivo y también la cabecera, pero nada más, también te vas a topar con .dll pero no son los dll comunes, son simplemente librerías que rehúsan la extensión, bueno y que sentido tendría cambiar la extensión de la librería, eso haría algo difícil el proceso de portar tus aplicaciones a MS (en caso de que quieras hacerlo), pero tenerlas de ese mono facilita el portar aplicaciones a Linux (y a Mac OS pero a quien le importa).

Los costes de producción de software libre realmente NO son cero, pero con mono tienden a disminuir.

Antes de terminar quiero postear mi primer ejemplito con mono:

#vim //ajam edito el archivito y aquí ta:
// created on 18/09/2005 at 6:03 am
using System;
namespace System.Text

{
class HelloWorld
{
static void Main()
{

Console.WriteLine("Hola Gente");
}
}

}

#mcs csharp1.cs //nombre con el que lo guarde
//se compila y da como resultado csharp1.exe (Puta Madre un .exe "@#X$%@)
#mono csharp1.exe
Hola Gente
//Hummm… funciona …
#monodis csharp1.exe //y valla sorpresa:
.assembly extern mscorlib
{
.ver 1:0:5000:0
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
}
.assembly 'csharp1'
{
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module csharp1.exe // GUID = {204E2681-2A2F-466E-A4B0-E49F3D3C4944}


.namespace System.Text
{
.class private auto ansi beforefieldinit HelloWorld
extends [mscorlib]System.Object
{

// method line 1
.method public hidebysig specialname rtspecialname
instance default void .ctor () cil managed
{
// Method begins at RVA 0x20ec
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::.ctor()
IL_0006: ret
} // end of method HelloWorld::instance default void .ctor ()

// method line 2
.method private static hidebysig
default void Main () cil managed
{
// Method begins at RVA 0x20f4
.entrypoint
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldstr "Hola Gente"
IL_0005: call void class [mscorlib]System.Console::WriteLine(string)
IL_000a: ret
} // end of method HelloWorld::default void Main ()

} // end of class System.Text.HelloWorld
}


Después de todo no era un punto exe…

Si alguien quiere saber más de mono puede ver en la pagina oficial o en castellano y lo que es aún mejor descargar una video conferencia donde Miguel de Icaza presenta muchas de las características de mono incluso algo de lo relacionado con el © y las patentes ¡Usen MONO! ;-).

2 Comments:

Blogger Todo BI said...

Hola, he estado viendo tu blog y veo que conoces bien el tem Open Source.

Estoy buscando info sobre Open Source en Datawarehouse y Business Intelligence.
¿Conces algo?

Saludos,
Emilio
http://www.todobi.com

11:03 a. m.

 
Blogger JohnnyDc_ said...

Hola...
Bueno lo de las herramientas de BI en Open Source suele manejarse de un modo algo complejo, humm...
esto es largo, mejor voy a postearlo ;-) y quizá otro día charlamos.
¿Ok?

2:02 a. m.

 

Publicar un comentario

<< Home