|  | 
        
            | 
                    
                        | 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:
 
 
		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.
			| 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. |  
 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.
 
 
 
		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.
			| 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. |  
 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
 
 
 
		yazdıktan sonra karşımıza gene bir hata 
	çıkacaktır.
			| root@localhost moo] rpm -Uvh *.rpm |  
 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.
 
 
 
		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.
			| [root@localhostroot]cat 
						>DENEME.cs |  
 
	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;
		| class Deneme {
 public static void Main()
 {
 System.Console.WriteLine("Slm ben C#; 
      linuxta nasıl gorunuyorum..:");
 }
 }
 |  
 
  
 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
                         | 
        
            |  |