Yazılım dünyasına adım atmak isteyenlerin en sık karşılaştığı iki temel kavram hiç şüphesiz C# (Si-Şarp) ve .NET Framework’tür. Eğer siz de programlamaya nereden başlayacağınızı merak ediyor ve güçlü, popüler bir dil öğrenmek istiyorsanız doğru yerdesiniz. Bu rehberde, bu iki teknolojinin ne olduğunu, nasıl çalıştığını ve birbirleriyle olan bağını günlük hayattan örneklerle öğreneceksiniz.
C# Nedir ve Neden Öğrenmelisiniz?
C#, Microsoft tarafından nesne tabanlı (Object-Oriented) olarak geliştirilmiş son derece güçlü bir programlama dilidir. İlginç bir bilgi olarak; bu dilin ilk tasarlandığındaki kod adı “C like Object Oriented Language” (Nesne Yönelimli C) kelimelerinin kısaltması olan “Cool” olarak düşünülmüş, daha sonra C# ismini almıştır ve “see-sharp” şeklinde telaffuz edilmektedir.
Eski dillerden olan C ve C++’ın esnekliğini korurken, onların karmaşık yapılarını (örneğin manuel bellek ve pointer yönetimi) ortadan kaldırarak daha formal ve güvenli bir dil yapısı sunmak üzere tasarlanmıştır,.
C# Programlama Dilinin Avantajları:
- Geniş Kullanım Alanı: Mobil uygulamalar, Windows form uygulamaları, konsol projeleri, web servisleri, dinamik kütüphaneler (DLL) ve hatta oyun tasarımı yapabilirsiniz.
- Kolaylık: Yazılması ve anlaşılması kolay, modern bir kod yapısına sahiptir.
- Güvenlik: Kapsamlı hata ayıklama (Exception Handling) ve otomatik bellek yönetimi özelliklerine sahiptir,.
.NET Framework Nedir?
Birçok kişi .NET Framework’ü bir programlama dili sanır, ancak bu doğru değildir. .NET Framework; C#, Visual Basic, Python, F# gibi farklı dillerle ortak bir şekilde çalışabilme imkânı sağlayan devasa bir uygulama geliştirme platformudur (geliştirme çatısı).
.NET, geliştiricilere hazır kod kütüphaneleri (Class Libraries) sunar. Bu kütüphaneler tüm .NET dillerinde ortak olarak kullanılır ve yazılımcıyı tekerleği yeniden icat etmekten kurtararak kod yazımını çok daha hızlı ve verimli hâle getirir.
C# ve .NET Framework İlişkisi
Bu iki kavram ayrılmaz bir bütündür. C# bir programlama dilidir, .NET Framework ise bu dilin kütüphanelerinin yüklü olduğu çalışma ortamıdır. C# dilinde kullandığınız tüm hazır yapılar aslında .NET Framework kütüphanelerinden gelir.
.NET Framework Arka Planda Nasıl Çalışır?
C# ile yazdığınız kodlar doğrudan bilgisayarın anlayacağı makine diline (1 ve 0’lara) çevrilmez. Süreç şu şekilde işler:
- Yazdığınız kodlar öncelikle Ara Dil (Intermediate Language – IL) adı verilen evrensel bir koda dönüştürülür.
- Program çalıştırıldığı anda, Just-In-Time (JIT) Compiler (Çalışma Zamanı Derleyicisi) devreye girer ve bu ara dili o an çalışan bilgisayarın donanımına uygun makine diline çevirir. Bu harika sistem sayesinde yazdığınız bir program, farklı Windows donanımlarında sorunsuzca çalışabilir.
Otomatik Bellek Yönetimi (Garbage Collection)
Yazılıma yeni başlayanların en çok zorlandığı konulardan biri bellek yönetimidir. .NET platformunda, verilerin bellekte kapladığı alana göre iki farklı yapı vardır: Değer tipleri (int, double vb.) belleğin Yığın (Stack) bölgesinde tutulurken, referans tipleri (class, string vb.) belleğin Öbek (Heap) bölgesinde saklanır,.
C# dilinde Çöp Toplayıcı (Garbage Collector) adı verilen harika bir mekanizma vardır. Bu sistem, arka planda sürekli çalışarak artık programınız tarafından kullanılmayan referans nesnelerini tespit eder ve belleği otomatik olarak temizler. Böylece programcının belleği manuel olarak boşaltmasına gerek kalmaz ve bellek sızıntıları (memory leak) önlenir.
Nesne Tabanlı Programlama (OOP) Ne Demek?
C#, dünyada var olan her şeyin yazılım içinde modellenmesini amaçlayan Nesne Tabanlı Programlama (NTP) prensiplerine uyar. Dört temel dayanağı vardır:
- Soyutlama (Abstraction): Karmaşıklığın azaltılmasıdır. Tıpkı bir arabanın gaz pedalına bastığınızda hızlanmasını bilmenizin yetmesi, arka plandaki motor mekaniğini bilmenize gerek olmaması gibidir.
- Kapsülleme (Encapsulation): Özel ve hassas bilgilerin dış dünyadan gizlenmesidir.
- Kalıtım (Inheritance): Bütün kedilerin dört ayaklı olması gibi ortak özelliklerin bir üst sınıftan, alt sınıflara miras (aktarım) olarak geçmesidir.
- Çok Biçimlilik (Polymorphism): Farklı türlerin ortak davranışları sergilemesidir. Hayvanların farklı sesler çıkarması ancak hepsinin “ses çıkarma” yeteneğine sahip olması buna örnektir.
C# Temel Kodlama Kavramları
Bir dili öğrenirken karşınıza çıkacak temel yapı taşlarını örneklerle inceleyelim:
1. İsim Uzayları (Namespaces) ve Using Komutu
Program yazarken kullanılan sınıf ve metotları mantıksal olarak kategorize eden sistemlere İsim Uzayı denir. Karmaşıklığı önler. Bir isim uzayını projeye dahil etmek için using komutu kullanılır. Örneğin, using System; kodu .NET projelerinde temel fonksiyonları çağırmak için en başta yer alır. Bu komut sayesinde çok uzun kodları (System.Windows.Forms.Application.Run gibi) yazmak yerine, onları kısaltarak (Application.Run) kullanabiliriz,.
2. Değişkenler (Variables)
Değişkenler, program çalıştığı sürece verileri RAM bellekte saklayan sepetler gibidir,. C# büyük-küçük harfe duyarlı bir dildir ve değişken isimlendirirken boşluk kullanılamaz,. Önemli Veri Tipleri:
int: Tam sayılar (int sayi = 52;),.double: Ondalık sayılar.string: Metinsel ifadeler (string isim = "Ahmet";).bool: Sadecetrue(doğru) veyafalse(yanlış) değerini alan mantıksal tipler.
Bazen metin olarak girilen bir rakamı matematiksel bir işleme sokmak için veri türünü dönüştürmeniz gerekir. Bunun için dönüştürme metotları kullanılır (Örn: Convert.ToInt32(metin)).
3. Aritmetik Operatörler
Matematiksel işlemlerde + (toplama), - (çıkarma), * (çarpma), / (bölme) ve % (mod alma – kalanı bulma) operatörleri kullanılır. Ayrıca + operatörü sadece sayıları toplamaz, iki metinsel değişkeni (örneğin ad ve soyad) yan yana birleştirmek için de kullanılır.
4. Windows Forms ile Görsel Nesneler (UI Controls)
Kullanıcının etkileşime geçtiği masaüstü pencerelerini tasarladığımız form uygulamalarında popüler nesneler şunlardır:
- Button: Programda tıklandığında belirli kodları harekete geçiren komut düğmeleridir.
- TextBox: Kullanıcının uygulamaya tek veya çok satırlı veri (metin) girişi yapmasını sağlayan nesnelerdir,. Özelliklerinden
Multilineile çoklu satır yapılabilir veyaPasswordCharile girilen şifrenin gizlenmesi sağlanabilir. - Label: Form üzerinde bilgi vermek amaçlı kullanılan yazılardır.
- ComboBox: Açılır bir listeden seçenekler sunan nesnelerdir.
5. Hata Ayıklama (Try-Catch-Finally)
Kullanıcı yanlış bir veri girdiğinde (Örneğin yaş kısmına harf yazması) programın aniden çökmemesi için hataların kontrol edilmesi gerekir. Bu işlem Try-Catch-Finally blokları ile yapılır. Hata ihtimali olan kodlar try içine yazılır, hata çıkarsa program çökmeden catch bloğu çalışır ve kullanıcıya kibar bir uyarı mesajı verilir.
İlk C# Uygulamamız: Merhaba Dünya!
Şimdi tüm bu teorik bilgiyi küçük ve çalışan bir kod parçası ile taçlandıralım. Tüm C# programları, çalışmaya daima bir giriş noktası olan Main fonksiyonu (metodu) ile başlar,.
using System;
using System.Windows.Forms;
namespace IlkUygulamam
{
public class Program
{
// Programın ana giriş noktası
public static void Main()
{
// Kullanıcıya ekranda görsel bir mesaj penceresi gösterir
MessageBox.Show("C# Öğrenmeye Başlıyorum!", "Bilgi Mesajı");
}
}
}
Kodun Açıklaması:
using System.Windows.Forms;: Form nesnelerini ve mesaj pencerelerini kullanabilmemiz için gerekli olan .NET kütüphanesini dahil eder.public static void Main(): İşletim sistemi programı çalıştırdığında ilk olarak burayı bulur ve tetikler.MessageBox.Show();: Masaüstünde bir uyarı/bilgi kutucuğu açar. İçerisine yazdığımız mesajı kullanıcıya iletir,.
Sonuç
C# ve .NET Framework ikilisi, temel kavramları oturtulduğunda yazılım geliştirmeyi oldukça zevkli bir hale getiren, dünyanın en çok tercih edilen teknolojilerinden biridir. Değişken tanımlamayı, nesne tabanlı düşünmeyi ve bellek yönetiminin arka planını kavradığınızda kendi masaüstü, web veya mobil uygulamalarınızı üretmeniz çok daha hızlı olacaktır. Bol bol kod yazarak ve pratik yaparak bu süreci hızlandırabilirsiniz. İyi kodlamalar!





6 Yorum
hocam cok güzel olmuş ellerinize saglık
hocam işime çok yaradı
Çok Güzel Olmuş
hocam çok iyi anlatıyor ellerinize sağlık
Hocam çok iyi olmuş elinizesağlık
hocamm nasılsınız inşallahh