Felix | Buenas Tardes a todos |
---|---|
alejandro | si. |
Felix | Qué tal Alejandro... saludos a todos los presentes... |
Felix | Nuestro conferenciante del día de hoy se llama |
Felix | Alejandro Sanchez Acosta, es español y estará presentando |
Felix | "Mono: Una implementación libre de .NET" |
Felix | Colabora actualmente en varios proyectos GNU y GNOME |
Felix | y es la segunda vez que se encuentra con nosotros en umeet. |
Felix | [english translation in #redes , preguntas y comentarios en #qc] |
Felix | Muchas gracias por estar con nosotros Alejandro, |
Felix | y te cedo la palabra para que comiences tu conferencia. |
Felix | Alejandro... |
alejandro | Buenos días/tardes. |
alejandro | Gracias por volverme a invitar para colaborar en esta edición de umeet. |
alejandro | La conferencia tratará sobre Mono, la implementación libre que se está llevando sobre el framework .NET. |
alejandro | Este proyecto fue iniciado en el 2001, posteriormente de ya haber salido en el 2000, lo que se consideraron los estandares ECMA en los que se definia el marco de desarrollo de la plataforma .NET definida por Microsoft. |
alejandro | En un primer comienzo fue un interés de una única persona, Miguel de Icaza, que interesado en el proyecto en el 2000 comenzó a interesarse en hacer una implementación libre para Unix de este framework. |
alejandro | No fue ya hasta el 2001 cuando se llegaron a consolidar los estandares de ECMA, en los que se pudo ya empezar a trabajar en la parte correspondiente al runtime, al compilador y la libreria de clases. |
alejandro | Entonces fue cuando ya consiguiendose un compilador (mcs) que compilaba código C# a lenguaje intermedio (IL) a partir del trabajo hecho por miguel presentandose ya sus primeros trabajos en la GUADEC. |
alejandro | Ya colaborando un grupo de desarrolladores, como fue Miguel, Paolo Molaro, Ravi y Rhys, se empezó a desarrollar parte del runtime. |
alejandro | Este consistía en un interprete que lo que hacía era traducir de código intermedio (IL) a código máquina independiente de la plataforma, bien fuera una arquitectura sparc, pcc, IA32 o IA64. |
alejandro | Posteriormente ya se empezó parte del trabajo en un compilador Just In Time que mejoraba en eficiencia lo que hacía el intérprete, generando código de forma mucho más ràpida y optima. |
alejandro | Ya partiendo de un compilador que compilaba código en el lenguaje usado por .NET (C#) y teniendo un runtime, se podia compilar y ejecutar código de la plataforma .NET en plataformas Unix. |
alejandro | Es decir, .NET, un estándar en ECMA, que posteriormente ha tenido una implementación con Mono, iria a constar de un framework de trabajo capaz de desarrollar aplicaciones de forma muy sencilla. |
alejandro | Por ello, aparte de ser multilenguaje y multiplataforma, será necesario consolidar una base para tener soporte a multiples tipos de tecnologías, como pueden ser creación de páginas dinámicas, programación de interfaces gráficas, tratamiento de documentos XML y así un largo etcétera. |
alejandro | Por lo que definiremos .NET como aquella plataforma capaz de permitirnos tener todas las tecnologías existentes de forma compacta para un sencillo desarrollo. |
alejandro | En un principio se pensó tener sólo un lenguaje genérico para programar en esta plataforma, que fue C#, pero al tratarse de un framework multilenguaje, nos permitirá el uso de diversos lenguajes. |
alejandro | Estos lenguajes serán C#, VB.NET, Opteron, C++, Guile, Perl y así un largo etcétera. |
alejandro | Más adelante veremos también como se consigue esto y que nuevos lenguajes nos proporcionará. |
alejandro | En cuanto al desarrollo de Mono, actualmente se está siguiendo la 0.29, que pretende tener una versión 1.0 para comienzos del 2004. |
alejandro | Esta versión de Mono contará con una serie de características que intentarán equipararse con la versión del framework .NET 1.0. |
alejandro | Las metas que se han establecido son las siguientes para la versión 1.0: |
alejandro | * Libreria corlib: mscorlib, System, System.Security y System.XML. |
alejandro | Estas librerías vendrán formando unidades que son las que llamaremos assemblies. |
alejandro | * ADO.NET |
alejandro | Nos proporcionará de forma sencilla el acceso a base de datos, incluyendo los assemblies System.Data para el acceso genérico a base de datos, |
alejandro | y un amplio repertorio de providers de bases de datos como son mysql, postgresql, sybase o informix. |
alejandro | * ASP.NET |
alejandro | Si queremos conseguir crear páginas de forma dinámica teniendo tecnología SSI (Server Side Includes) o versiones ya más mejoradas necesitaremos el uso de ASP.NET dentro de Mono. |
alejandro | Lenguajes similares a este serían ya PHP o ASP. |
alejandro | También aparte se ha conseguido el soporte de la inclusión de asp.net dentro de apache por medio de mod_mono. |
alejandro | En esta sección incluiremos todos los controles web y html necesarios para generar páginas de forma dinámica. |
alejandro | La mejora es que podremos incrustar código en el lenguaje que queramos, bien sea VB.NET o sea C#. |
alejandro | En el caso de Mono tendremos que esperar a que mbas, el compilador de VB.NET esté terminado. |
alejandro | * Compiladores: |
alejandro | Aquí incluiremos compiladores como mcs, mbas (VB.NET) y jscript.net. |
alejandro | * Librerias específicas de Unix, software libre o GNOME. |
alejandro | Aquí encontraremos muchos de los wrappers de librerias ya conocidas como gtk#, vorbis#, glib#, gstreamer#, así entre otras. |
alejandro | Otros componentes que se está trabajando es en el toolkit de ventanas usada en windows conocido como SWF (System Windows Forms), que lo que nos permite es crear aplicaciones gráficas con el entorno de Mono. |
alejandro | Para ello lo que se está usando es la libreria libwine, que lo que nos permitirá es correr aplicaciones tanto en plataformas Unix como Win32. |
alejandro | Luego parte como son Enterprise Services, Directory Services y JScript se intentará cubrir dentro de lo que se conoce como Mono 1.2. |
alejandro | En cuanto a partes relacionadas con el rendering y el dibujado en pantalla con System.Drawing se ha optado buena parte usar la libreria de renderizado cairo del proyecto freedesktop. |
alejandro | Referido a nuevas tecnologías que vendrán dentro de Mono, buena parte ha sido discutido en la PDC (Developers Conference) desarrollada en el 2003, en la que ha discutido parte de los avances que se irán incorporando a este framework. |
alejandro | Algunas de estas son: Avalon (creación de interfaces graficas), WinFX (librerias para longhorn), WinFS (almacenamiento). |
alejandro | Aún así en Mono 1.0 se notará que algunas carencias seran incluidas como: |
alejandro | GAC: El global assembly caché, una caché común donde depositaremos nuestros assemblies en el sistema. |
alejandro | El port a PPC que ya se ha conseguido gran avance en él que ya es capaz de compilar pequeños fragmentos de código. |
alejandro | Perfiles de ECMA. |
alejandro | Firmados de assemblies en las que se han elaborado una serie de herramientas para Mono que nos permitirá firmar de forma segura nuestros ensamblados por medio de System.Crytography.* |
alejandro | Cacheado en ASP.NET y autenticación por medio de digest y ntlm (autenticación en windows) |
alejandro | Depurado en muchas de las librerias de clases que nos proporcionan soporte tanto para tratamiento de documentos XML, creación de esquemas, validación, ejecución de aplicaciones, gestión de base de datos, etc. |
alejandro | Y una mayor estabilidad. |
alejandro | Así que estas serán las metas impuestas para Mono 1.0 que se prevee una release para el 2004. |
alejandro | Algunas de estas carencias ya están resueltas. |
alejandro | Aún así habrá partes experimentales como son JSCript.net (compilador de javascript), VB.NET, WBE, Windows Forms y el soporte de templates con generics. |
alejandro | En cuanto a lo que he comentado de estabilidad, me refiero a que estas características al no estar algunas implementadas se conseguirá en 1.0 que se le ofrezca nuevo soporte al igual que una mayor depuración del código correspondiente a Mono. |
alejandro | Ya habiendo conocido parte de Mono y de lo que es .NET entraré un poco en lo que serán los nuevos componentes que en un futuro llegarán a formar parte con la llegada de Whidbey y Longhorn, las nuevas versiones del framework .NET y las características que nos proporcionará Longhorn que se adaptarán dentro de Mono. |
alejandro | Bien, el SDK Whidbey o .NET 1.2 se separará por partes dentro de Mono, para hacer posible la compilación tanto si queremos usar .NET 1.0 como 1.1 como las nuevas características de Whidbey. |
alejandro | Este como principal característica nos permite el uso de templates, ya conocidos por ejemplo en C++ con el nombre de STL. |
alejandro | Aquí dentro de .NET se conocerán como generics. |
alejandro | Además se añadirá ASP.NET 1.2 con nuevos controles para el desarrollo de aplicaciones web, mayor personalización y uso de temas. |
alejandro | s/ASP.NET 1.2/ASP.NET 2 |
alejandro | En la parte de Remoting que es la parte de comunicación distribuida de Mono, se conseguirá la comunicación entre cliente-servidor por medio de canales seguros. |
alejandro | Aparte de los ya conocidos por medio de HTTP o TCP. |
alejandro | En la parte de XML, se tendrá que dar soporte tanto a XPath y XQuery. |
alejandro | Luego también se añade soporte para la entrada/salida por medio de System.Console a através del puerto serie. |
alejandro | Se añadirán nuevos widgets dentro de Windows.Forms y el soporte de Object Spaces, una API mucha más sencilla para el acceso a base de datos. |
alejandro | En cuanto a Mono 1.2 si se añadirá generics, si tendremos ASP.NET 2.0, si habrá las nuevas mejoras de remoting, se añadira XQuery y se introducirán ya las versiones finales de VB.NET y jscript.net. |
alejandro | Esto será sobre finales del 2004. |
alejandro | Aparte se seguirá intentando mejorar los proyectos de documentación aparecidos dentro de Mono como son Monkeyguide (un completo tutorial sobre Mono) |
alejandro | y el soporte de la aplicacion MonoDOC para tener bien organizado toda la API de Mono. |
alejandro | En cuanto a un largo plazo, ya hablando del 2006, se intentará integrar WinFX. |
alejandro | Esta será toda la serie de características que usará el nuevo Longhorn. |
alejandro | Que proporcionará características como Avalon, WinFS y Indigo. |
alejandro | Avalon: Creación de interfaces gráficas por medio de XAML. |
alejandro | XAML no es más que una definición XML en la que se encontrará como declarar interfaces. |
alejandro | Esto ya lo conocereis por ejemplo de glade que es simplemente lo mismo. |
alejandro | WinFS: Para almacenamiento y Indigo vendrá a ser el nuevo desarrollo de Remoting dentro de Longhorn. |
alejandro | Si os fijais, si conseguimos estos propositos será muy sencilla la compatibilidad entre distintos sistemas operativos. |
alejandro | Por lo que podremos correr nuestras aplicaciones en ambos sistemas, pero de forma que sea totalmente libre. |
alejandro | En cuanto a estas nuevas tecnologías parte de la implementación, como es la de Avalon recairá en implementaciones basadas en Gdiplus/Cairo para el tema de renderizado. |
alejandro | En cuanto al nuevo lenguaje de marcas XAML se presentarán nuevas clases. |
alejandro | Además de introducir un nuevo pequeño compilador que se encargue de traducir de las fuentes XAML a C#. |
alejandro | Al ya haber sido hecho en Glade, no será muy complicado de implementar. |
alejandro | La parte complicada vendrá de la parte de todos los nuevos widgets, por lo que necesitaremos tener un toolkit bajo unix que esté completo. |
alejandro | Por lo que en un principio se adoptará la idea de hacer un Mini-Avalon. |
alejandro | En cuanto a Indigo, se puede leer un pequeño FAQ de lo que será en: http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx?pull=/library/en-us/dnlong/html/indigofaq1.asp |
alejandro | Aún así esta características no son previstas hasta el 2006. |
alejandro | Ya habiendo visto lo que es Mono, que es .NET, como se está implementando, que nuevas características trairá y que planes hay para un futuro, me gustaría dar la charla por concluida. |
alejandro | Así que si hay alguna pregunta este es el momento. |
Felix | Clap! Clap! Clap! Clap! Clap! Clap! Clap! |
Felix | Clap! Clap! Clap! Clap! Clap! Clap! Clap! |
Felix | Clap! Clap! Clap! Clap! Clap! Clap! Clap! |
Felix | Clap! Clap! Clap! Clap! Clap! Clap! Clap! |
Felix | Clap! Clap! Clap! Clap! Clap! Clap! Clap! |
Felix | Muchísimas gracias Alejandro por tus palabras. |
alejandro | A ustedes por vuestra asistencia. |
Felix | Me gustaría invitar al público para hacerle preguntas a Alejandro... |
Felix | yo tengo una pregunta para Alejandro :-) |
Voins | clap clap clap clap clap |
krocz | CLAP CLAP CLAP CLAP |
Felix | Clap! Clap! Clap! Clap! Clap! Clap! Clap! |
EMPEROR | plas plas plas plas plas plas plas |
EMPEROR | plas plas plas plas plas plas plas |
EMPEROR | plas plas plas plas plas plas plas |
alejandro | Aparte, os invito a colaborar con el proyecto. |
alejandro | Mono: http://www.go-mono.org |
alejandro | Para los hispanohablantes, está MonoHispano en: |
alejandro | http://www.monohispano.org |
oviedo | Pregunta!. |
Felix | Adelante oviedo. |
alejandro | Luego monkeyguide: |
alejandro | http://www.go-mono.org/tutorial/ |
oviedo | alejandro, crees que mono se posicione bien en el mercado antes de que el nuevo windows salga al mercado me parece que en el 2006 ??. |
oviedo | osea tenemos tiempo como para tener programadores convencidos con mono. |
oviedo | y asi poder migrar poco a poco a plataformas libres??. |
alejandro | El tema de Mono, es un tema delicado. |
alejandro | Va conforme al desarrollo de .NET y las especificaciones ECMA que vayan sacando. |
alejandro | Por lo que características como Avalon, Indigo, WinFS y WinFX no estarán disponibles hasta seguramente entonces. |
alejandro | Pero si que creo de forma positiva en el desarrollo de Mono y la creación de aplicaciones con este framework de trabajo, de forma equiparable a lo que tendremos con .NET 1.0 y 1.2. |
Felix | Me gustaría que hicieran sus preguntas, por favor, ya que no nos queda mucho tiempo. |
alejandro | oviedo: ¿Queda respondida tu pregunta? |
oviedo | si., muchas gracias. |
Felix | Alguna otra pregunta? |
alejandro | Algo que seguramente no tengamos en Linux, es un IDE como el VS, por lo que se está intentando ahora mismo portar SharpDevelop al mundo Unix. |
alejandro | Al principio se comenzó portando SWT#. |
oviedo | ha! y otra mas, entonces dices que mono va acorde a .NET, y que la mayoria de cosas se toman de .NET, crees que .NET se fije en algunas implementaciones creadas en mono que no esten en .NET para asi que ellos tomen lo de mono para su plataforma?, o lo ves muy dificil |
alejandro | Pero ahora se está intentando tener un IDE para linux con sharpdevelop mediante el uso de las librerias gtk#. |
alejandro | Es cierto, que en Mono si que se han creado nuevas características, sobre todo nuevas librerias de clases que quizás se acaben adoptando. |
alejandro | Es por eso que existe ECMA donde se reunirá la gente de Mono, MS y otras empresas para discutir si se incluye o no. |
alejandro | Así que si es posible que se incluyan nuevas mejoras a .NET por parte de Mono. |
oviedo | haa.! ya entendi., me queda perfectamente claro! muchas gracias. |
Felix | Alejandro: tu hablaste de bases de datos pero no nombraste ni Oracle ni DB2. ¿éstos motores están soportados por Mono? |
alejandro | Felix: Si, también hay soporte para el acceso de base de datos a Oracle y DB2. |
alejandro | Aparte tienes libgda# para el acceso a base de datos, pero muchas de ellas si que están soportadas. |
alejandro | Felix: Mira si te interesa: http://www.go-mono.com/ado-net.html |
clsk | Hay posibilidad de que gcc sea integrado en mono? |
alejandro | * MySQL |
alejandro | * ODBC |
alejandro | * Oracle |
alejandro | * OLE DB |
alejandro | * PostgreSQL |
Felix | Alejandro: ¿Existe diferencia de performance entre .NET sobre Windows y Mono sobre Linux? |
alejandro | * Microsoft SQL Server |
alejandro | * SQL Lite |
alejandro | * Sybase |
alejandro | * TDS Generic |
alejandro | Felix: Así entre otros. |
MJesus | NET es free software ? |
alejandro | Felix: Si te digo la verdad no lo sé, no he hecho benckmarking entre aplicaciones compiladas y ejecutadas por el runtime de ambos. |
alejandro | Pero si que se ha conseguido gran mejora en gran parte. |
clsk | Hay posibilidad de que gcc sea integrado en mono? |
alejandro | Por ejemplo, Ben Maurer, se implementó System.Xsl y era mucho más rapido que la propia libreria hecha en C de libxml. |
alejandro | Aparte el runtime, cuando se añadio Mini (ahora mono) se consiguieron grandes mejoras en tiempo de ejecución. |
alejandro | clsk: No creo, se habló de integrar soporte para compilar código en C#. |
alejandro | MJesus: No, no es software libre. |
alejandro | MJesus: Aún así Microsof tiene rotor que no es software libre, es una shared licence de esas. |
alejandro | Así que igual que todo el software que crea MS, propietario. :-( |
clsk | Para cuando se puede esperar un compilador de C++ si es que hay pensado incluir uno? |
Felix | Alejandro: ¿Cómo maneja mono la posibilidad de escribir código malicioso? |
alejandro | Felix: Es todo código gestionado, el tratamiento de punteros es todo de forma unsafe, aunque puede ser añadida. |
clsk | y/o de C |
alejandro | Hay managed C++. |
alejandro | Pero no creo que se llegue a incluir un compilador de C++ aún en Mono, al menos a un corto plazo. |
clsk | entonces que es managed C++? |
alejandro | Una versión de C++ modificada que te permite el uso de las librerias de clases de .NET. |
clsk | ohh |
clsk | ok |
alejandro | Vendría a generar IL como el resto de lenguajes gestionados. |
alejandro | MJesus: Tú puedes usar ensamblados, que es como la forma de empaquetar tus librerias o ejecutables (PE). |
alejandro | Por lo que luego puedes usar esos assemblies en Mono y viceversa. |
alejandro | Estos tendrán luego referencias a determinadas clases y se utilizarán las propias dlls que te proporciona Mono. |
alejandro | A diferencia de que es software libre. |
Felix | Alejandro: No conozco cómo son las licencias de .NET, pero ¿existe la posibilidad de que MS cambie el tipo de licencias sobre .NET, su byteCode o maquina virtual y perjudique de alguna forma a Mono? |
alejandro | En temas jurídicos no estoy metido, pero eso es algo que Miguel lo tiene muy revisado. |
Felix | Ok. |
Felix | Más preguntas? |
MJesus | que finalidad tiene mono, es decir, para que queremos mono, teniendo java, que es libre ? |
alejandro | Según tengo entendido si está estandarizado dentro de ECMA no hay problema. |
clsk | pero microsoft tiene el patente de .NET registrado? |
alejandro | El problema viene si acaso por parte de lo que no se haya integrado en ECMA, que hay parte en .NET que no, pero que yo sepa ahora no hay ningún problema. |
alejandro | clsk: No, no hay patentes bajo lo que es .NET sino si acaso en algunas de las tecnologías que ellos han creado para .NET. |
alejandro | MJesus: Java no es libre. |
alejandro | MJesus: Aparte de tener una alternativa libre a la de .NET, la ejecución de multiples lenguajes. |
Felix | Alejandro: ¿Cuán confiable será Mono a principios de 2004? [por ejemplo para hacer aplicaciones críticas, comercio electrónico, etc.] |
alejandro | Pero realmente .NET lo que ha hecho es eso, coger Java, incluir todo lo que le faltaba y la gente quería para posteriormente estandarizarlo. |
alejandro | Felix: Con la llegada de Mono 1.0 se conseguirá la realización de aplicaciones críticas. |
MJesus | alejandro, veamos, si java no es libre, net tampoco lo es. Ergo... si net no es libre, que hace eso en linux? poner en riesgo todo linux ? |
alejandro | Aún así en la página de Mono podrás ver gran parte de aplicaciones escritas en Mono. |
alejandro | s/en/para. |
alejandro | ¿Alguna pregunta más? |
Felix | Alejandro: ¿el manejo de transacciones sobre MS se hará sobre MTS o se ha creado algo nuevo para .NET, y... en consecuencia qué se utilizará para el manejo de transacciones en Mono? |
alejandro | En Linux facilitará la creación de aplicaciones, por eso mono, un framework de desarrollo para cualquier sistema. |
alejandro | Mono puede usarse en windows, linux, solaris, hp-ux, macosx.. |
jbilbo | alejandro: un compañero mio hizo una conferencia en mi universidad sobre mono y le llovieron las preguntas del tipo: ¿No crees que estamos favoreciendo en la lucha a Microsf en la lucha con SUN y su java. No crees que tendriamos que haber creado un lenguaje ajeno al de microsof para nuestras necesidades (Gnome,etc) y quedar fuera/neutrales en esa lucha de mercado? ¿Que piensas tú sobre eso? |
alejandro | Nadie aquí ha hablado de la posibilidad de usar .NET dentro de Linux, por el momento para MS, multiplataforma es (win98, win2000, win2003...) |
alejandro | Aparte de la implementación de Rotor para FreeBSD que es sharedlicence, que si quieres poder mirar el código fuente. |
MJesys | Puede ya considerarse que Icaza trabaja para M$? |
alejandro | jBilbo: Yo creo que no todo lo que hace MS tiene que ser malo, que a veces tiene buenas ideas y es bueno que nos aprovechemos de ellas. |
alejandro | Quizás si Java hubiera sido más libre pues se hubiera conseguido parte. |
MJesus | es net mas libre que java ? |
alejandro | Pero ahora con Mono, yo creo que es posible. |
alejandro | Ahora de forma sencilla tu puedes crear una aplicación en pocas líneas de código. |
alejandro | MJesus: Me parece que no entiendo bien la pregunta. |
alejandro | MJesus: Creo que Miguel siempre ha favorecido al software libre y con Mono va a conseguir que el desarrollo de aplicaciones, principalmente en el escritorio para un usuario final, se consigan de forma eficiente. |
alejandro | mira por ejemplo el desarrollo de evolution. |
alejandro | MJesus: Estoy hablando de Mono, que es totalmente libre. |
alejandro | MJesus: No estoy discutiendo el hecho de que sea más libre o menos libre NET que Java. |
Felix | Muchísimas gracias a Alejandro por su excelente charla. |
MJesus | si, eso decir.. pero metiendo codigo de M$ en linux no ? |
Felix | Muchas gracias a todos por haber estado aqui. |
Felix | Y recuerden que el Lunes estaremos nuevamente con la siguiente conferencia. |
Felix | Dec, 22, 16:00 UTC. "Multihoming". Horacio Peña (Lab de Redes Compendium, Agentina) |
jBilbo | plas plas plas plas plas plas plas plas plas plas plas plas :) |
MJesus | clap clap clap clap clap clap clap clap clap clap |
jBilbo | plas plas plas plas plas plas plas plas plas plas plas plas :) |