11 June 2004

Mono

เมื่อวานได้มีโอกาสทดลอง Mono ซึ่งตอนนี้ใกล้จะคลอดเวอร์ชัน 1.0 เต็มทีแล้ว (ตอนนี้เป็น 0.95 หรือ 1.0 beta 2) Mono จะประกอบด้วยส่วนหลักๆ คือ mcs กับ mbas ซึ่งเป็นคอมไพเลอร์ของ C# กับ VB และ mono ซึ่งเป็น vm สำหรับ .NET framework. เนื่องจากผมใช้ gentoo อยู่ เวลาลงก็ไม่ยาก เพียงแค่ emerge mono แล้วรอซักพักใหญ่ ก็เรียบร้อย เสร็จแล้วก็ลองใช้งาน ด้วยการเขียนโปรแกรมภาษา C# ง่าย

using System;

class Hello {
  static void Main() {
    Console.WriteLine("Hello World!!!");
  }
}

เสร็จแล้วก็คอมไพล์ด้วยคำสั่ง

$ mcs hello.cs
จะได้ hello.exe มา เมื่อรันด้วย mono ก็จะได้ผลเป็นการพิมพ์คำว่า Hello World!!!
$ mono hello.exe
ตอนแรกที่เห็นก็งงๆ ว่าทำไมมันต้องเป็น .exe ทำอย่างกับจะให้เอาไปใช้บนวินโดว์น่ะ แต่นึีกๆ อีกที มันเป็น CLR ของ .NET นี่นา ก็น่าจะรันบนวินโดว์ได้ เอาไปรันดู ก็ทำงานได้จริงๆ ด้วย ดีแฮะ จากนั้นอ่านblog ของคุณ Miguel de Icaza แกบอกว่ามี Monodevelop ด้วย ลองเอาใช้ดู หน้าตาคล้ายๆ Anjuta สามารถสร้างโปรเจค (เขาเรียกว่าโซลูชัน) สำหรับใช้ gtk-sharp ได้ เลยได้ลอง gtk-sharp ต่ออีกหน่อย (อ่าน gtk-sharp tutorial จาก http://go-mono.com:8080)
using Gtk;
using GtkSharp;
using System;

class Hello {
  static void Main() {
    Application.Init();
    Window window = new Window("Hello World!!!");
    window.Show();
    Application.Run();
  }
}
เวลาคอมไพล์จะยุ่งขึ้นนิดหนึ่ง เพราะต้องลิงก์กับไลบรารีด้วย
$ mcs hellogtk.cs -r /usr/lib/mono/gtk-sharp/gtk-sharp.dll
พอรันด้วย mono ก็จะได้วินโดว์ออกมาอันหนึ่ง อย่างนี้ แต่คราวนี้คงเอาไปรันบนวินโดว์ไม่ได้แล้วล่ะ นอกจากจะเอา gtk-sharp ได้ลงบนวินโดว์ซะก่อน

ถ้าใช้ Monodevelop ก็จะง่ายขึ้นหน่อยเพราะเขาจะจัดการพวกไลบรารีให้ นอกจากจะเขียน gtk แบบปรกติแล้ว ยังใช้ libglade ได้ด้วย เลยทำให้เขียนโปรแกรมได้สะดวกขึ้นเยอะเลย เลยกำลังคิดว่าจะลองเขียนโปรแกรมอะไรเล่นดู แต่ยังนึกไม่ออก ไว้ค่อยลองล่ะกัน

No comments: