Dotnet programlamaya giriş

Dotnet programlamaya giriş

Evet bu kaçıncı giriş daha girmedik mi dediğinizi duyar gibiyim..

Şuan sadece bilgi ediniyorsunuz ve bu bilgiler güzel bilgiler emin olun, hiç biri boş değil ve bu bilgiler ışığında sadece program yazıyor olmayacak aynı zamanda nasıl çalışıyor onu da bileceksiniz.

Hemen başlayalım, C# Projelerinin TAMAMI program.cs içerisindeki main fonksiyonunda başlar e ama program.cs içerisinde main diye bişey yok dediğiniz duyar gibiyim evett…. İşte aradığım parlak zihinler bunlar, ha bu soruyu sormadıysanız da önemli değil eğer bu soruyu kendiniz soramadıysanız soru sormayı da öğrenmeniz gerektiğini öğrendiniz.

.net 5’ten sonra gelen yenilikle birlikte Program.cs içerisindeki main fonksiyonu kalktı.

Ben göstermek için .net 5 ile bir proje oluşturacağım sizin bunu yapmanıza gerek yok olur da yapıp görmek isterseniz .net5 sdk’ını aşağıdaki linkten indirebilirsiniz.

https://dotnet.microsoft.com/en-us/download/dotnet/5.0

İndirip kurduktan sonra kurulumu doğrulamak adına herhangi bir terminal içerisinde dotnet –list-sdks yazarsanız 5 versiyonunu görmeniz gerekmekte.

Dotnet programlamaya giriş

bende ekstradan 6.0 versiyonu da kurulu onu göz ardı edebilirsiniz.

Dotnet programlamaya giriş

Dotnet cli ile framework’ler arasından bir seçim yapmak isterseniz normalde çalıştırdığınız komutun yanına -f net5.0 yazabilirsiniz buradaki net5.0 .net5’i temsil eder.

Tam kod şu şekilde dotnet new console -n Net5Projem -f net5.0

Şimdi gelelim o kadar çabamızın sonucuna hemen oluşmuş olan projeyi vscode ile açalım.

Dotnet programlamaya giriş

Tadaa bir de ne görelim daha önce hiç görmediğimiz şeyler usingler namespaceler falanlar filanlar.

Korkmayın efendim, bunların hepsini bir bir öğreneceğiz öncelikle namespace’den başlayalım sonra using’e geçelim.

Bunları bu aşamada detaylandırmayacağım fakat üstün körü anlatayım siz de kabul edin lütfen.

Namespace nedir?

Namespace aslında alan belirlemek için kullandığımız bir belirteç yani sizin yazmış olduğunuz dosyanın tam konumunu belli ediyor. Temel olarak namespace yazmış olduğunuz kodlara erişirken kullanacağız.

Using nedir?

Namespace oluşturduğunuz takdirde başka bir namespace altındaki yazmış olduğunuz koda direkt olarak ulaşamazsınız ulaşmak için o namespace ile çalışabileceğinizi o anki dosyaya bildirmeniz gerekmekte örnek verecek olursak Microsoft bizim yerimize using System; adlı satırı bizim için eklemiş. Bu satırın temel anlamı System namespace’i altındaki kodlara erişeceğimizi belirtiyoruz.

Peki System altında ne var?

Eğer Console.WriteLine(“Hello, World!); komutundaki Console’a sağ tıklayıp Go To Definition (Türkçesi tanımlamaya git gibi bir şey olması lazım) derseniz az önceki anlattıklarımı daha net görebiliriz.

Dotnet programlamaya giriş
Console’a sağ tıkladığımızda açıla pencere
Dotnet programlamaya giriş

Yukarıda attığım 2. görselde namespace System tanımını görmekteyiz, yani bizim Konsola veri yazdırmak için kullandığımız Console.WriteLine() methodu System namespace’i altında.

Peki biz Program.cs altındaki using System; adlı satırı silersek ne olur?

Dotnet programlamaya giriş

Silinmiş halini yukarıya bıraktım artık bana Console diye bişey olmadığını söylüyor, ne kadar aptal değil mi daha az önce bunun ne olduğunu biliyordun.

Her neyse using keyword’ünü kullanmadan Console’u kullanamaz mıyız? tabi ki de kullanabiliriz kullanabilmemiz için Console sınıfı hangi namespace altında bir şekilde belirtmemiz gerekiyor. Ve bunuuu

Dotnet programlamaya giriş

Ok ile belirttiğim şekilde System.Console.WriteLine(“”); methodunu kullanarak Console.WriteLine() methodunun tam olarak nerede bulunduğunu belirtiyoruz.
Şimdi gelelim özetlemek istediğim yere, tüm c# projelerinin başlangıç noktası Main fonksiyonudur bunu unutmayalım lütfen.

Peki net5.0’dan sonra main fonksiyonu yoksa nereden başlıyor bu program diye soracak olursanız. Bu yeni gelen bir özellik ve biz net5.0 sonrasında Program.cs dosyası içerisine yazdığımız kodlar direkt olarak  Main fonksiyonunun içine yazmış gibi oluyoruz.

Dotnet programlamaya giriş

Yukarıda attığım görselde sol taraftaki net5.0 sağ taraftaki ise net7.0 projesi.

Sağ taraftaki tüm kodlar aslında void main fonksiyonu içerisinde. Peki bunu nasıl bu kadar emin olarak söyleyebiliyorum.

Dotnet dosyalarını build ettiğinizde bin/debug/version klasörleri altında dll dosyaları mevcuttu biz bunları açıp bakıyoruz konumuz bu olmadığı için her iki versiyonun da açılmış hallerini paylaşacağım.

Dotnet programlamaya giriş
Net5 dll dosyası içeriği
Dotnet programlamaya giriş
Net7 dll dosyası içeriği

Şimdilik değişiklikleri gözardı edelim. Gördüğünüz gibi iki dosyanın içeriğinde de void Main fonksiyonu mevcut üstelik bizim yazmış olduğumuz iki satır kodu da gelip main fonksiyonu içerisine yerleştirmiş.

Her şey çok güzel, artık dotnet’in temel çalışma mantığını biliyoruz ve program yazmaya başlayabiliriz!

erdincyasan Yazar:

0 0 votes
Değerlendirme
guest
0 Yorum
Inline Feedbacks
View all comments