Merhaba, bu yazımda Ubuntu Linux sistemde C# program geliştirmeyi çalışacağım. Daha önceleri Windows uygulamaları geliştirmek için C# programlama dilini birçok kez kullandım. Ama şimdi yeni bir ihtiyaç doğdu, RaspberyPi benzeri bir sisteme ekran bağlayıp oluşturulan terminallerle veri toplamak.
Amacımı gerçekleştirmek için daha önce duyduğum fakat hiç denemediğim Linux Mono kurulumu yaparak C# programlarımı Ubuntu sistem üzerinde çalıştırmayı deneyeceğim. Amacıma ulaşırken aynı programları hem Ubuntu hem de Windows üzerinde çalıştırarak her iki sistemde de çalıştığını görmek istiyorum.
Kurulumlarla başlayalım.
Ubuntu'da Mono Kurulumu
Denemelerimi yapmak için Windows üzerinde kurulan WSL Ubuntu sistemini kullanacağım. C# programları derlemek ve Ubuntu üzerinde çalıştırmak için Mono yazılımını kullanacağım. Sitede anlatıldığı gibi Mono yazılımını kurmak için Ubuntu terminalinde,
komutu girerek kurulumu yaparız. Kurulumu denemek için kısa bir program yazıp deneyelim. Yeni bir klasör oluşturup içine girelim
Ben editör olarak VSCode kullanmayı tercih ediyorum hem Windows hem de Ubuntu üzerinde çalışan versiyonları var. Klasörümüzde VSCode çalıştırmak için terminalde
Komutunu çalıştıralım. Ubuntu'da VSCode uygulaması kurulu değilse de hemen gerçekleştirecek ve uygulamayı açacaktır. Editörümüzde yeni bir C# kod dosyası oluşturalım adı merhaba_konsol.cs olsun. İçine şu kodu yazalım (lütfen kopyalamayın, yazın).
Koddan anlaşıldığı üzere bu bir .NET konsol uygulaması, bakalım çalışacak mı?
Programımızı derlemek için teminalde
komutunu girelim, bazı sistemler de bu komut csc olarak çalışıyormuş, bilginiz olsun. Bu komutu girince programımız derlenir ve aynı klasör içinde merhaba_konsol.exe adında derlenmiş bir program oluşturulur. Şimdi çalıştırmak için terminalde şunu girelim.
sonuçta terminalde şu çıktıyı verir
Eğer buraya ulaştıysak Mono uygulamasını Ubuntu sisteme başarıyla kurmuşuz demektir. Burada derlenen program Windows sisteminde de çalışır, test etmek için klasörü Windows gezgini ile bulup orada bir terminal açarak
şeklinde deneyebilirsiniz. Gördüğümüz gibi program her iki platformda da aynı şekilde çalışıyor.
Şimdi aynı işlemleri Windows'ta da yapabilmek için terminalden C# programlarını derlemesini öğrenelim.
Windows'ta C# Programları Terminalde Derlemek
Windows'ta csc.exe dosyasının nerede olduğunu bulmanız gerekiyor. Sisteminizde .NET framework kuruluysa bu uygulama C:\Windows\Microsoft.NET\Framework ya da C:\Windows\Microsoft.NET\Framework64 klasörü altındaki kurulu her .NET versiyonu klasöründe o versiyona ait olmak üzere mevcuttur.
Bendeki birçok versiyondan birini seçtim ve onu kullanmaya karar verdim.
Öncelikle Ubuntu sistemle aynı kodları Windows sistemde de yazmak için bir klasör oluşturalım ve Windows gezgininde klasör içinde sağ tıklayıp Code ile Aç seçeneğini tıklayalım. VSCode editörü klasörümüzü açacaktır. Klasörde merhaba_konsol.cs adında kod dosyamızı oluşturalım ve içine kodumuzu yazalım.
Şimdi csc.exe'lerimizden birisiyle derlemeyi deneyebiliriz. Ben csc.exe uygulamasını sistemimde
klasöründe buldum. Bunu kullanarak derleme yapmak için VSCode uygulamasındaki terminal penceresini de kullanabiliriz ya da klasörde bir terminal açabiliriz. Derlemek için terminalde şunu girelim:
csc.exe'nin yerini tabi ki Windows gezgininin adres barından kopyaladım, tek tek yazmaya uğraşmadım. İsterseniz PATH sistem değişkenine bu klasörü ekleyip direk
komutu da çalıştırabilirsiniz. Ancak bundan sonra sadece bu versiyon .NET derlemesini kullanacaksınız demektir. Hemen uygulamayı test edelim, terminalde şu komutu girelim.
Evet Windows'ta da aynı teknikle programımızı derledik. İsterseniz bu programın da çalışmasını Ubuntu sistemde deneyebilirsiniz. Bunun için ya .exe dosyayı Ubuntu terminalin olduğu klasöre kopyalayın ya da terminalde Windows klasörünüze geçiş yapın. Mesela ben klasöre geçip orada denedim.
Evet aynen çalışıyor her iki sistemde derledik ve her iki sistemde de çalıştırdık.
Şimdi konsol değil bir WPF GUI uygulaması yazalım bakalım ne olacak?
Ubuntu'da C# Windows Forms Uygulaması Geliştirmek
Editörümüzde merhaba_gui.cs adında yeni bir dosya üretelim ve içine şu kodu yazalım.
Bu kodu Ubuntu'da derlemek için terminalde şu kodu gireriz:
System harici kullanacağımız .NET kütüphanelerini belirtmemiz gerekiyor. Şimdi derlenmiş uygulamayı test için terminalde şu komutu girelim:
Sonuçta ilk GUI uygulama penceremiz açılacaktır.
Yaşasın.. Şimdi aynı merhaba_gui.exe dosyasını Windows'ta da oluşturup deneyelim.
Windows'ta derlerken kütüphaneleri belirtmeye gerek yok direk
komutu girerek programımızı derleyip .exe dosyamızı çalıştırabiliriz. Aynı sonucu verecektir.
Aynı bilgisayarda çalıştığım için her iki sistemin ürettiği pencereyi bir arada görebiliyorum. Soldaki Ubuntu ve sağdaki Windows tarafından derlenen uygulama pencereleri.
Bundan sonra biraz denemeler yapacağım. Devam eden satırlarda sadece Ubuntu kullanacağım ama isterseniz aynı şeyleri Windows ile de deneyebilirsiniz.
Ubuntu'da C# WinForms Gui Örnekleri
Önce boş bir pencere ile başlayalım. boş.cs adında bir kod dosyasına minimum uygulama amaçlı şu kodu girelim.
Kodumuzu derler ve çalıştırırsak
sonuç
Koda kısaca bakarsak , sadece System ve System.Windows.Forms kütüphanelerini kullanıyoruz. Öncelikle System.Windows.Forms kütüphanesinin Form elemanından türetilmiş bir Pencere sınıfı tanımlıyoruz. Pencere sınıfının Main metodu içinde ise Application.Run() metodu ile uygulamamızı çalıştırıyoruz.
Pencere etiketinde bir yazı göstermek istiyoruz. Öncelikle dosyamızı etiketli.cs adıyla kaydedip, içine şu ilaveyi yapalım.
çalıştırmak için
sonuç
public Pencere(){ } bloğu içine penceremizdeki elemanları ve özelliklerini yazarız. Burada yaptığımız ilavede this.Text özelliğine verdiğimiz değer penceremizin etiketinde görünecek yazıyı belirler.
Şimdi pencere boyutlarıyla oynayalım. Dosyamızı boyutlu.cs olarak kaydedip şu ilaveleri yapalım.
Öncelikle formun ekranın ortasında açılmasını sağlıyoruz. Sonra formun içindeki kullanım alanımızı 400x200 piksel olarak ayarlıyoruz. Sonra bu boyutun olabilecek en küçük boyut olacağını bildiriyoruz. this.Bounds özelliği bize kullandığımız işletim siteminin yazı fontları vs'ye göre oluşturduğu sonuç pencere boyutunu verir. MinimumSize özelliği toplam boyutun sınırlarını belirttiği için bu şekilde bir hesap kullandık. En son da Maximize butonunu pasif hale getirdik. Bunların sonucu penceremizin son halini görmek için derleyip çalıştıralım.
Şimdi sayfaya bir Label kontrolü ekleyip özelliklerini ayarlayalım. Öncelikle dosyamızı labelli.cs adıyla kaydedip şu ilaveleri yapalım.
label1 adını verdiğimiz bir Label kontrolü üretip bir sürü özelliğini giriyoruz. Sonra da this.Controls.Add(label1); satırı ile bu kotrolü penceremize ekliyoruz. Derleyip çalıştırırsak:
Şimdi forma tıklanınca bir mesaj penceresi açalım. Dosyamızı tıklanan.cs olarak kaydedelim.
ve çalıştırıp forma içinde biryere tıklayalım.
Mesaj penceresi etiketinde bir şey yazsın istersek tıklandı metodunu şöyle yazarız.
Burada mesaj penceresi kapatıldıktan sonra Form renginin değişmesini de sağladık.
Şimdi forma başka kontroller de ekleyelim.
çalıştırırsak,
vesaire vesaire. Artık buradan yürürüz inşallah.
Hiç yorum yok:
Yorum Gönder