C#nedir?com
 
YAZAR HAKKINDA
Caner Şahan
Caner Şahan
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
24 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: ado.net diller dosyayi gelistirme konsol konsol’ linux’ merhaba microsoft monodevelop’ novell program projesi sonucu yazilim Mono ve .NET Caner Şahan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : Mono ve .NET
Yayınlanma Tarihi : 6.8.2004
Okunma Sayısı : 24292
Yorum Sayısı : 5     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 22.10.2017
Turhal Temizer 'in Blogu
C# – IRR Function 22.10.2017
Burak Selim Şenyurt
Asp.Net Core'da Bir WebSocket Macerası 22.10.2017
Burak Selim Şenyurt
.NET Core 2.0 ile Basit Bir Web API Geliştirmek 22.10.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Linux Platformu üzerinde Mono ile .NET
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
  • Yazılan Yorumlar
  • Yorum Yaz
ARA
22
2004
microsoft un penguenimizi rahatsiz etmemesinden yanayim. :)
AĞU
11
2004
Artık birçok kişinin .NET e karşı önyargısını ortadan kaldıracağına inandığım bu makale için teşekkür ederim Caner...
AĞU
8
2004
çok teşekkürler. elimden geldiğince monoyu sizlerle paylaşacam ve .NET in platform bağımsız çalıştığını göstercem.hepimize kolay gelsin......
AĞU
8
2004
Bu güzel yazı dizisi ile artık platform sınırını nasıl aşacağımızı, değerli editörlerden Caner in kaleminden kolayca öğrenebiliriz. Tebirkler...Tebrikler...Tebrikler Caner.
AĞU
7
2004
işte bu... .NET te artık platform bağımsızlığı Mono ile ispatladı. Caner e çoook teşekkürler.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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