|
Linux Platformu üzerinde Mono ile .NET |
|
Gönderiliyor lütfen bekleyin... |
|
|
Mono’ya merhaba
diyoruz!.
İşte linux’un marifetlerinden yaralanan ve tamamen
ücretsiz olan Mono projesi ile karşınızdayız.Bu yazıda mononun kurulumu, program
yazılması ve sık sık karşılaşılan hatalara değinecez. Aslında mono tam olarak
oturmuş bir yapı olmadığı için halen geliştirilmekte olan bir proje. Bu
oturmamışlık, bizlerin bazen çeşitli sorunlarla karşılaşmasına yol açabiliyor.
Nitekim açtıda. Özellikle en çok baş ağrıtan problemler kurulum aşamaları sırasında
oluşuyor. Bunları sizlerle kurulum kısmında paylaşacağım.
Nedir Bu
MONO?
Mono projesi birçok yazılım devinin düşüncesi sonucu ,
bir ekip ve gönüllüler çalışması olarak ortaya çıktı. Mono
projesini destekleyen ve sponsorluğunu üstlenen Ximian.Corp’ u
da yapan Novell şirketidir. Yani ximian outsearch tipinde
bir
şirkettir. Çoğu kişi şunu
düşünebilir; Novell bu projenin gelişiminde Microsoft’ tan destek alıyor
mu? Başlangıç için çok az olsa da sonraki safhalarda
Microsoft ve Novell mühendisleri aralarında dayanışma
gösterdiler. Proje kapsamında öncelikle Microsoft tarafindan
gelistirilmiş ve ECMA’ ya sunulmuş teknolojilerle uyumlu uygulamaların geliştirilmesi
amaçlanmaktadır. Mono projesinin kısaca Unix ve Linux
sistemlerin .NET platformu olarak söz edebiliriz.
Mono kullanışlı yazılım
geliştirme bileşenlerini barındırır:
C# ,Java,C,C++ dilleri için derleyici. Gelecekte
diğer diller için de derleyiciler eklenebilir. |
Sınıf yükleyici, Just-in-time
derleyici ve runtime olarak çöp toplayan Ortak Dil Altyapısı (Common
Language Infrastructure) |
CLR (Common Language Runtime) üzerinde
çalışabilen tüm diller ile kullanılabilecek
ortak sınıf kütüphanesi. |
Bu bileşenler ile CLR, CTS gibi sistemler kullanılarak
çeşitli diller vasıtasıyla program geliştirme
sağlanabilir. Bir başka deyişle .NET’ teki mantıkla aynı. Ortak threading
veya garbage collector yapısı gibi yapıları ortak olarak
çeşitli diller ile kullanılabilir. Böylece yazılım geliştirme
sürecide daha etkin gerçekleştirilebilir.
Mono aslında oturmamış gibi gözüksede ticari
uygulamalarda kullanılabilecek olgunluğa erişmiştir. Mono’ nun
sınıf kütüphanesi hergeçen gün artmakta ve
kullanılmaktadır. ASP.NET uygulamaları XSP ve mod-mono
üzerinde gayet
başarılı bir şekilde çalışmaktadır. Bunlardan XSP daha çok
deneme amaçlı küçük uygulamalar, mod-mono ise dünyanın en
çok kullanılan web server’ ı olan apache üzerinde
çalıştırılmak üzere geliştirilmiştir.Yani işin özü Mono, .NET
Framework SDK’ nın yapısında sunulan bileşenleri
sunmaktır. Burada kesinlikle kopyalama
mantığı yoktur. Amaç sistemlerin cross çalışabilmesidir.Yani
Linux’ ta yazdığınız programı Windows’ ta çalıştırabilmenin
tadına varacaksınız.
Mono ve GNOME projeleri amaçlarından dolayı birbirini
tamamlamaktadır. GNOME kütüphaneleri, çeşitli programlama
dilleri ile kolaylıkla kullanılabilecek biçimde tasarlanmış
ve ortak GObject sınıfından türeyen nesnelerde olusturulmuş
araçları ve kod tabanını barındırmaktadır.
Mono, Microsoft .NET ile aynı
teknik altyapıyı kullanmaktadır ve birbirleri
tarafindan derlenmiş .NET binary dosyalar, dogal
.NET uygulamaları olduğu sürece birbirlerine ait CLR
tarafindan çalıştırılabilmektedirler.
Monoda
"System.Windows.Forms" kütüphanesinden
faydalanmak için wine programı kullanılmaktadır. Mono
projesi Linux, Unix tabanlı (FreeBSD, Solaris) ve Windows (NT,
2000, XP, ME, 98) işletim sistemleri üzerinde çalışabilmektedir.
Mono’nun çok küçük bir bölümü C ile, büyük bir bölümü
ise C#’ la yazılmıştır. |
Genellikle .NET Framework üzerinde yoğunlaşmıştır. |
Linux, BSD, SOLARIS ve Windows
işletim sistemleri üzerinde çalışabilir. |
Yüksek performans için JIT içerir. |
Herhangi bir lisans ücreti yoktur. |
Monodoc; yapısı ile MSDN’ e benzemektedir ve mono hakkında
birçok bilginin olduğu bir kütüphanedir ve sürekli olarak
yenilenmektedir.
Gelelim ADO.NET konusuna;
Mono için geliştirilen Ado.Net, Microsoft ADO.NET kadar
geniş olmamakla beraber işimizi görecek düzeydedir. Mono,
Microsoft ADO.NET
System.Data
içerisindeki tüm sınıfları, ortak davranış gösteren kod
tabanı ile sağlamaktadır. Dolayısıyla Microsoft
ADO.NET ile geliştirilen uygulamalar herhangi bir değişiklik
gerektirmeksizin Mono Runtime üzerinde
çalişabileceklerdir.Bu birçok databasele’ de bağlantı
kurulabilmesine olanak sağlamaktadır.
Mono’ yu
Kurmaya Hazırlık:
Mono’nun ücretsiz olduğunu daha önce söylemiştik. Bu
ücretsiz yazılımı sisteminizdeki Linux’ a göre seçerek
www.go-mono.com (her şey
opsiyonlu olarak verilmiştir fakat en iyi yöntem tüm
paketlerin kurulmasıdır.) adresinden indirdikten sonra ikinci
olarakta
libgal2.0_6-1.99.11-0.99_2.rhfc1.at.i386 rpm dosyasını
yüklememiz gerekiyor. Benim kullandığım Linux ; Red Hat
Enterprise 3.0 sürümü. Mono’ nun her Linux dağılımına uygunluğu
vardır. Ben sizlere Red Hat’ ı öneririm. Gerçekten kullanımı daha
kolay.
Red Hat 9.0 >>>>>>mono-all.zip
Mono Kurulumu:
Monoyu kurmadan önce Linux’ umuzun uyumluluğu bizim için
çok önemli. Eğer kaynak koddan derleyipte bu kurulumu
gerçekleştirirseniz bu işlemde uyumluluk sorunu ortadan
kalkmış olacaktır. Bilgisayarımda ilk olarak Red Hat 9.0
kuruluydu ve bu sistemi kullanıyordum. Gerekli mono
updatelerini yapmadığım için Linux’ taki meşhur zincir
sorunuyla karşılaştım. Zincir sorununda kurduğunuz bir paket
diğer pakete bağlı ve o paket başka pakete derken işin içinden
çıkılmaz hale geliyor. Bu sorunla karşılaştığımda işin
içinden çıkabilmek için, zincirdeki her dosyayı bulupta
yüklemeyi denememe rağmen sorun
çözülmedi. Bu yüzden Linux’ u update ederek Enterprise’ a
geçirdim. Daha önce yüklediğimiz mono-all.zip(Red Hat
için 9.0) adlı dosyayı ark adı verilen
programla içindeki dosyaları çıkardıktan sonra
/home/caner dizinin altına "moo" diye bir dosya açıp bu
dosyanın içine mono-all.zip’ in içini kopyalarız. Daha sonra
ise "libgal2.0_6-1.99.11-0.99_2.rhfc1.at.i386 "
dosyayıda /home/caner altına kopyalarız.
Mono dosyalarımız hazır olduğuna göre şimdi Konsol
moda girelim. Konsol ekranında home’ un içine, ardından
caner’ in içine daha sonrada moo dosyamızın içine
girelim. (Not:dosyaların içine girme DOS ile aynıdır.) Sonra
dir yazarak .rpm’ leri görelim.İzleyen
root@localhost moo] rpm -Uvh *.rpm |
yazdıktan sonra karşımıza gene bir hata
çıkacaktır.
ADIM-1
Evet bu hata ne olabilirdi
diye düşünmeye başladım ve bir sigara yaktım. 1 saatlik
araştırma sonucu libpixman ve libgtkhtml rpm’ lerinin bu
gereksenimlerinin
libgal2.0_6-1.99.11-0.99_2.rhfc1.at.i386 dosyası ile
kapandığını öğrendim. Bu dosyayıda birkaç hamle sonucu
bulduktan sonra sıra kurmaya gelmişti. Bunuda aşadaki
şekildeki komutları kullanarak yaptıktan sonra
eksiklerimiz kapanmış oldu.
Artık kurulumdaki son
aşamaya geldik sayılır. Bunun için konsol’ da bütün
.rpm’ leri kur komutunu çalıştırıyoruz ve aşadaki görüntü
sonrasında sevincimizi dile getirerek "yaşasın oldu"
diyerek işimizin bitişini bir kahve ile
ödüllendiriyoruz.
Komutumuz,
ve sonuç
Evet arkadaşlar bu meşakketli kurulumdan sonra
hemen bir "slm" yazdırmamız gerekiyor, yoksa ne anlamı var mono kurmamızın
değil mi? Mono’ da program yazabilmek için geliştirilmiş en güzel arayüz MonoDevelop’
tur.MonoDevelop Visual Studio kadar olmasada Studio’ ya yakın bir arayüze sahiptir
ve tamamen ücretsizdir :). Ama ilk adımda hemen MonoDevelop’ a atlamaktansa
biraz konsol da çalışmakta yarar var. Uygulamalarımız büyüdükçe konsol’ dan
çalışmak bir hayli vaktimizi alacaktır. Bu yüzden sadece Merhaba kısmımızı konsol’
dan yaptıktan sonra diğer yazılarda MonoDevelop’ ta yazmaya devam edeceğim.
Biraz Linux komutlarına bakalım::
Arkadaşlar ben herşeyi
konsol’ dan kullanmaktan bahsettim. İlk olarak konsol’ da
bir text editor açmayı ve yazdığımız kodları bir
dosya içine kaydetmeye bakalım.
[root@localhostroot]cat
>DENEME.cs |
Konsole’da bu komutu
girdik mi o anki dizin içine DENEME.cs isimli bir dosya
açılır. Bu noktadan sonra konsol bizim yazı girmemizi bekliyor olacaktır.
Şimdi
kodlarımızı girelim.
class Deneme
{
public static void Main()
{
System.Console.WriteLine("Slm ben C#;
linuxta nasıl gorunuyorum..:");
}
} |
Evet komutlarımız bitti ve çıkmamız gerekiyor.
Bu yüzden komutlar bittikten sonraki satırda CTRL+D tuş kombinasyonuna basarak
dosyayı kapatıyoruz. Şu anda elimizde yazılmış MERHABA.cs dosyası var. Sıra
bu dosyayı derlemeye geldi. Derleme için Windows’ ta kullandığımız csc’ ye benzer
bir derleyici var. Bu derleyicinin ismi mcs(mono-c-sharp)dir. Derlemek için
ise
[root@localhostroot]mcs
MERHABA.cs, derlenen .exe dosyasını çalıştırmak için [root@localhostroot]mono
MERHABA.exe yazmamız yeterli.
Sonuç olarak;
Not : Yukarıdaki [root@localhost
root] more MERHABA.cs komut
satırını MERHABA.cs dosyasının içini okumak için kullandık.
Mono için yardımcı siteler ve mail grupları::
SİTELER:
Mail Grupları:
Monoyla Merhaba
dedik ama önemli olan ticari uygulamalardaki
performansı. Bakalım daha ne numaraları var
Mono’ nun. Herşeyin ilacı zaman derler, Mono ’nunda en
güzel ilacı biraz zaman gibi görünüyor. Şu bir gerçek ki
çok büyük ve başarılı bir proje. Mono’ da emeği
geçenlere çok teşekkür ederim. Yeni Mono yazılarında
görüşmek üzere.
Örnek
Uygulama İçin Tıklayın.
Makale:
Linux Platformu üzerinde Mono ile .NET Mono - Linux'ta .NET Caner Şahan
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|