viXard | Hi, good afternoon, as fernand0 said, Alvaro and I will explain to you what is Mono |
viXard | and what is this platform about |
viXard | this is the Free (Libre) version of .NET |
viXard | we will talk about the technology and its consecuences |
viXard | and the change it will cause on the free software world |
viXard | Next, i´m gonna tell you what is .NET and what is Mono, after that Alvaro will talk about some little examples made in mono |
viXard | to get familiarized with the environment |
viXard | Go Ahead! |
viXard | Well, .NET is a platform of development-multilanguage initiated by MS |
viXard | it tryes to solve all thouse carencies brought by other technologies |
josanabr | acs: una de las ventajas de java es que viene muchas clases estandarizadas por Sun |
josanabr | acs: Microsoft, propietario de la tecnologia .NET que garantías da de dar sus clases para usarlas en mono? |
acs | yes, but .NET has a lot of classes also, and they are standarized |
arashi | viXard is giving the translation, be patient, he's on a big line now it seems ;) |
josanabr | this classes are free? |
josanabr | or i have to buy it? |
dani | please questions in #qc |
josanabr | ok, sorry... |
acs | ok guys! |
acs | i am going to try to translate to english |
arashi | ... der, i had missed that. thanks, zanshin, acs :) |
acs | the distributes model in .NET and Mono is called Remoting |
acs | it is similar to the CORBA model. To access the remote objects you use proxys. You don't need to know where the object is |
acs | about the GUI libraries |
acs | .NET has the Window.Forms library |
acs | it is a nice library but currently Mono doesn't have 100% support for it |
acs | in Mono we are using the Wine project so we can have a implementation as soon as possible |
acs | about the virtual machine |
acs | the concept is the same we have in Java |
acs | but Java focus in one language, the Java language |
acs | .NET plans to support also other languages like C, C++, Visual Basic, C#, Logo ... |
dani | i'll try to translate skiping a lot things.. |
dani | the first thing we must do is to instal the compiler and the runtime |
dani | if you use debian or redhat it's easy.. you have easily installable packets |
dani | there are not lots of dependencies. |
dani | in debian its enought with: apt-get install mono; apt-get install mcs |
dani | once we have installed we can start playing with first program.. a simple "Hello world" |
dani | the code will looks like that: |
dani | [22:32:01] <acs> public static void Main (string[] args) |
dani | [22:32:01] <acs> { |
dani | [22:32:01] <acs> System.Console.WriteLine ("Hola chicos de Umeet"); |
dani | [22:32:01] <acs> } |
dani | here there is the main sample class method which we are working on, we are working with C# objects, like java, to make a simple function that writes a message |
dani | we need to build a class with that function (method) |
dani | we just want to use that method, so we declare it static |
dani | [22:33:54] <acs> class Hola { |
dani | [22:33:54] <acs> public static void Main (string[] args) |
dani | [22:33:54] <acs> { |
dani | [22:33:54] <acs> System.Console.WriteLine ("Hola chicos de Umeet"); |
dani | [22:33:54] <acs> } |
dani | [22:33:55] <acs> } |
dani | we have a sample that we can compile |
dani | now its time to compile it |
dani | acs@linex:/tmp$ mcs Hola.cs |
dani | Compilation succeeded |
dani | as it has a little amount of code, we don't neet to care about dependencies onothre libraries |
dani | just use the default basic libraries like System class |
dani | that's why its easi to compile |
dani | [22:35:46] <acs> acs@linex:/tmp$ ls -l Hola.* |
dani | [22:35:46] <acs> -rw-r--r-- 1 acs acs 116 dic 9 22:32 Hola.cs |
dani | [22:35:46] <acs> -rw-r--r-- 1 acs acs 2048 dic 9 22:32 Hola.exe |
dani | once we've compiled the result es a MSIL bytecode file |
dani | Microsft Intermediate Language |
dani | this generated language consists on Mono virtual machine instructions that indecates what to do to reach the targets of the program |
-> *one2* op #redes arador |
dani | the execution is also simple. we just need to call the virtual machine and tell it to execute the MSIL we have generated.. |
dani | we reachi it with: mono Hola.exe |
dani | acs@linex:/tmp$ mono Hola.exe |
dani | Hola chicos de Umeet |
dani | the vm loading spead is very hight |
dani | this contrasts with java vm that slows down a lot with simple programs |
dani | <acs> acs@linex:/tmp$ date;mono Hola.exe;date |
dani | [22:38:36] <acs> lun dic 9 22:36:32 CET 2002 |
dani | [22:38:36] <acs> Hola chicos de Umeet |
dani | [22:38:36] <acs> lun dic 9 22:36:32 CET 2002 |
dani | that spends less than a seccond to load the vm and execute the code |
dani | there exists many optimizations for executing a MSIL |
dani | <acs> acs@linex:/tmp$ time mono Hola.exe |
dani | [22:39:53] <acs> Hola chicos de Umeet |
dani | [22:39:53] <acs> real 0m0.155s |
dani | [22:39:53] <acs> user 0m0.080s |
dani | [22:39:53] <acs> sys 0m0.010s |
Arador | ok, i'll continue the translation |
Arador | thaks to the advices from of sorrodp and pancacke here we've here a more exact estimation |
Arador | we can see the MSIL that has been generated |
Arador | with monodis, that it's a MSIL disassembler |
Arador | <acs> acs@linex:/tmp$ monodis Hola.exe |
Arador | <acs> .assembly extern mscorlib |
Arador | <acs> { |
Arador | <acs> .ver 0:0:0:0 |
Arador | <acs> } |
Arador | <acs> .assembly 'Hola' |
Arador | <acs> { |
Arador | <acs> .hash algorithm 0x00008004 |
Arador | <acs> .ver 0:0:0:0 |
Arador | <acs> } |
Arador | <acs> .class private auto ansi beforefieldinit Hola |
Arador | <acs> extends [mscorlib]System.Object |
Arador | <acs> { |
Arador | <acs> ... |
Arador | by the moment, we're not going to enter in details of this code |
Arador | now it's reached the time of giving the witness to raciel |
Arador | so he can continue talking about Mono's technologies |
Arador | <raciel> |
Arador | now we can continue explaining a bit about graphic interfaces that we've available in Mono |
Arador | <fernand0> <Kefar> raciel: it was absolutely neccesary use NET to develop MONO? |
Arador | <raciel> at the start when the compiler at mono started to being developed it was dependant of NET (mcs) so it had to wait to being capable of compiling itself so we can say that isn't dependant of NET |
Arador | the runtime ,the clasess library and the compiler in the same way you use Mono in windows, without any problem |
Arador | good, i continue: in graphics interfaces we've System.Windows.Forms that' the clasess' library that windows uses to show graphic interfaces |
Arador | in GNU/linux, when it started a port of GTK to GTK# was made by a Ximian developer, Mike Kestner with the support of Richard Hestilow, who ported gtk to gtk# |
petitxai | nas |
Arador | the thechnical used to port was P/Invoke tha's the call to platform so we can do calss to dynamic libraries in other languages such as C |
Arador | and example would be: |
dani | [DllImport (libc.so, Entrypoint=gets)] |
dani | this way we can use gets funcion in our program written in C# |
dani | adapting types to the C# types |
dani | after that we call it with something like int extern gets() ... |
dani | if you want more information there is a tutorial in spanish at mono.es.gnome.org |
dani | there are also documentation at msdn.microsoft.com |
dani | Xlib and QT are portet to C# too.. this way you can use the easy API of C# |
dani | this way we can do it easier to make an aplication in time costs. an aplication build with C, could be build in less time and easily |
dani | an other isue that mono gives us is what is called as Reflexion |
dani | that alows us to query about object properties and assemblies on runtime. this way we can know wicht methods belongs to a class and more information.. |
dani | just comment that there is a project called OpenJIT that is a Jutter in native language that uses reflexion and invoques to the plataform to translate interchange code to native code. |
dani | other tecnologies supported are standards like Web Services |
-> *one2* op #redes vizard |
dani | <nerdwell> C# source can be compiled on .NET and MONO? and keep compatibility? |
dani | yes, you can compile on .net and afterwards execute on MONO with absolute comatibility and viceversa |
-> *one2* op #redes vixard |
-> *one2* op #redes arador |
viXard | sorry guys |
viXard | i got late so i can't translate it all |
viXard | the complete translation will be on log files |
Arador | ok, we're having some problems with the translation, i'll continue the translation when i have the full logs |
Arador | i start from 22:49 in #linux |
Arador | <ldipenti> a question, i've not ver clear hoe's the thing with the MS patents a bout .NET, isn't dangerous to work in a technology that is controlled by a enterprise that's not good as we know? what will happen when MS chage the conditions of their platform? |
Arador | <DrBig_Bec> how it's implemented thee garbage collector in mono? it's like the Sun's Java? |
Arador | <raciel>ldipenti: the thing is that the patents thing is a very fragile problem |
Arador | <ldipendi> of course. and because it's very fragile, wouldn't better to assure yourself before starting that proyect? |
Arador | <raciel> but if you have a standard wich is ECMA and you do a free implementation, you're not going to break any patent |
Arador | <viXard>tra: DrBig_Sec: how's mono implementing the garbage recollector? it's how Sun Java? |
Arador | <ldipenti> what will happen when, thnks to Mono, .NET has a huge number of users, and then MS closes all? |
Arador | <raciel>ldipenti: the runtime thing it's a standar, after that, if .NET does things above that, then yes, it's dangerous |
Arador | <ldipenti> Then, one can't be sure? |
Arador | <jmgv> raciel sasc... what types of agreements do you have with MS? it's transfered information or it's even more? |
Arador | <raciel> but by the moment there's not any problem, but i'm no layer... |
Arador | <raciel> jmvg: any, only i'm talking of mono as a framework, there isn't anything evil behind... |
Arador | ldipenti: thanks raciel |
Arador | jmvg raciel, that's not the thing, i only tried to show MS intentions, not yours, which are good |
Arador | raciel: DrBig_Bec: that's the IBM implementation, it only uses generations, when your objects brings X generations it's deallocated from memory |
Arador | jmvg but i don't trust in m$, the broke agreements i.e: with sun |
Arador | <raciel> but there is some documentation about that in www.go-mono.com in papers section. |
Arador | raciel: but'sjmvg: about that i can only tell you that the ECMA is who makes that the standards aren't broken and each change in the runtime's base has to be consulted and added to the specification |
Arador | Kefar: raciel: What advances .NET in the colaborative implementation ? i think that it's a bit unilateral |
Arador | raciel: Keafr: people are annoyed with MS wth that, because mono is a proyect that with only 100 developers has gorown quickly, now yourself can use the framework, except some small things as System.Windows.Forms |
Arador | raciel: For example, in the thing of accessing databases is frankly passed, in the same way that ASP.NET now ther's a implementation made by Gonzalo Panigua |
Arador | raciel: now, in my opinion mono is walking quickly, and with the colaboration from everyone wil be completed faster than before |
Arador | Kefar: in my opinion, i'm sorry.....you're being used as testers |
Arador | raciel: so if you're interester in Mono Hispano, it's a comunity that's trying to cover proyects, documenting.....about mono, so it's a good way to enter in contact |
Arador | raciel: in mono.es.gnome.org you've references to documentation, mailing lists where you can ask |
Arador | Kefar: i don't see it in the same way, only you're implementing a free alternative to .NET |
Arador | jmgv: mono is part of gnome, yes? |
Arador | raciel: jmvg: no :) |
Arador | viZard: mono it's from Ximian :) |
Arador | raciel: but they gave us the proyect's hosting and the dns is that |
Arador | viXard: I think XD |
Arador | jmvg: raciel... |
Arador | jmvg: don't misunderstood me |
* MaSaRo is away: Estoy ocupado |
* MaSaRo is back (gone 00:00:06) |
* MaSaRo is away: ZzzzZzZZzZZZzZZZ |
Arador | well, i think the conferency has finished, sorry aboud the huge delays in the translation, i don't have a dvorak keyboard as riel |
Arador | anyway, we've done our bests |
Arador | *sigh* |
riel_ | well done Arador |
sarnold | hehehehe :) thanks for translating at all... :) you're much better at it than I :) |
Arador | sarnold: indeed |
Arador | i always look at the keyboard when typing, it's good when you have to look at the screen at the same time you write, manias from years ago... |
Arador | and of course blame the xchat developers, i can't cut & paste in xchat itself, i've to retype *everything* |
sarnold | really? and people still use xchat? :) |
Arador | the middle button of the mouse doesn't work, i reinstalled the box yesterday......i've only crap :) |
sarnold | Arador: does paste work in xterm? :) |
Arador | in gnome-terminal it works, that's what i used for copying code, but it was faster to type some things than c&p from less |
Arador | well xchat c&p used to work, but they must have too many users, so they decided to annoy people |
Session Close: Mon Dec 09 23:43:53 2002 |