C# (si şarp diye okunur) Microsoft tarafından geliştirilmiş olan bir programlama dilidir. C++ ve Java dillerine oldukça benzer, ancak C#'ın bu dillere benzerliği yanında farkları da vardır. Örneğin C#, C++'dan farklı olarak % 100 nesne yönelim tekniğine sahiptir. Java'dan farklı olarak ise C#'ta gösterici (pointer) kullanılabilir. Böylelikle eski yazılım bileşenleriyle uyumlu bir şekilde çalışılabilir.
.NET Framework
C# kodları, C++ veya Visual Basic'ten farklı olarak direkt makine koduna derlenmez. Önce IL dediğimiz bir ara koda derlenir. Bu derlenen ilk kodun dosyasına assembly denir ve uzantısı exe'dir. Bu dosya çalıştırılmak istendiğinde ise .Net Framework devreye girer ve IL kodu makine koduna dönüştürür, (alttaki şekle bakınız) böylelikle artık kodu bilgisayar anlayabilir. İşte bu yüzden de yazdığımız programın bir bilgisayarda çalışması için o bilgisayarda .Net Framework programının kurulu olması gerekir, çünkü .Net Framework IL kodu bilgisayarın anlayabileceği koda çevirir. .Net Framework, oluşturduğu makine kodlarını geçici bir süreliğine belleğe koyar, eğer aynı kodlar tekrar çalıştırılmak istenirse tekrar IL koddan makine koduna dönüşüm yapmak yerine bu belleğe kaydettiği makine kodlarını kullanır. Bu yüzden oluşturduğumuz programımızı ilk çalıştırdığımız zaman programımız biraz yavaş çalışabilir, ancak daha sonraki çalışmalarda oldukça hızlanacaktır.
C#'ta kodun direkt makine kodu yerine, önce IL koda çevrilmesinin bazı avantajları vardır. Bunlardan en önemlisi programımızın farklı işletim sistemlerinde çalışmasının eskiye oranla çok daha kolay olmasıdır. Çünkü makine kodu taşınabilir değildir, programları direkt makine koduna derlediğimiz zaman ilgili programın belirli bir işletim sistemine göre derlenmesi gerekir. Halbuki IL kod taşınabilirdir, ortak bir koddur, işletim sistemlerindeki çeşitli programlar vasıtasıyla makine koduna dönüştürülebilir. Örneğin Windows'ta bu işi .Net Framework yaparken, Linux'ta Mono yapabilir. Bu kitap C#'ı Windows üzerinden anlatacaktır. Ancak kitabın Linux'ta C# kullanımı kısmında ayrıca Linux'ta C# ile program geliştirme de anlatılacaktır.
C# kodlarını derleme
Son bir-iki bölüm dışındaki bütün kodları Not Defteri'nde (notepad) yazacağız. Aslında Visual Studio adında son derece gelişmiş ve işimizi son derece kolaylaştıran bir editör yazılımı var. Ancak bizim buradaki amacımız gelişmiş kurumsal yazılımlar geliştirmek yerine C#'ı tam anlamıyla öğrenmek olduğu için bu gelişmiş yazılımı kullanmayacağız. Not Deferi'nde yazdığımız kod dosyasına "cs" uzantısı verip .Net Framework programıyla birlikte gelen csc.exe derleyicisi ile derleyeceğiz. Bu derleyici komut satırında çalışıyor ve dolayısıyla da kodumuzun derlenmesi için komut satırında kod yazacağız. Yani .Net Framework programı hem kodumuzu derlemek için, hem de programımızın çalışması için gerekli. .Net Framework'u herhangi bir download sitesinden ya da Microsoft'un resmî sitesinden ücretsiz olarak indirip bilgisayarınıza kurabilirsiniz. Vista kullanıyorsanız çok büyük ihtimalle, XP kullanıyorsanız da bir ihtimalle .Net Framework siz de zaten kuruludur. Ancak işinizi garantiye almak isterseniz veya son sürümünü edinmek isterseniz tekrar kurabilirsiniz.
.Net Framework'u kurduktan sonra bilgisayarımıza bir ayar yapmamız gerekecek. Bu ayara "path ayarlama" diyoruz. Bu ayarı yapmamızın sebebi komut satırında hangi klasörde olursak olalım csc.exe'ye erişebilmemiz. Bunun için şunları yapın:
- Bilgisayarım'a sağ tıklayın.
- "Özellikler"i seçin.
- "Gelişmiş" sekmesine gelin.
- "Ortam Değişkenleri" butonuna tıklayın.
- "Sistem değişkenleri" kısmındaki "Path"a çift tıklayın.
- Bu pencere burada kalsın, şimdi C:\WINDOWS\Microsoft.NET\Framework klasörüne gidin. Oradaki klasörlerin herbirinin içine tek tek bakın. Hangisinin içinde csc.exe varsa o klasörün adres çubuğundaki yolu kopyalayın.
- Şimdi önceki açtığımız "Sistem Değişkenini Düzenle" penceresinin "Değişken Değeri" kısmının sonuna ; işaretini koyup yolu yapıştırın.
- Bütün pencerelerden "tamam" diyerek çıkın.
Artık Not Defteri'nde yazdığımız kodu csc.exe derleyicisi ile derleyebiliriz. Örneğin "cs" uzantısı verdiğimiz kaynak kodumuzun adı "deneme.cs" olsun. Komut satırını açıp, kaynak kod dosyamızın olduğu klasörü aktif hâle getirip, csc deneme.cs yazıp entera basarak kodumuzu derleriz. Oluşan exe dosyamız kaynak kodumuzla aynı klasörde ve deneme.exe adıyla oluşur. Eğer aktif klasörde zaten deneme.exe diye bir dosya varsa eski dosya silinip yeni dosyamız kaydedilir. Programımızın kaynak kodun adından farklı bir adla oluşmasını istiyorsak
csc /out:YeniAd.exe deneme.cs
komutunu veririz. Bu örnekte programımız YeniAd.exe adıyla oluşacaktır.
C#'la yapabileceklerimiz
C#'la şunları yapabilirsiniz:
- Konsol uygulaması geliştirme
- Windows uygulaması geliştirme
- ASP.NET uygulaması geliştirme
- Web servisleri yazma
- Mobil uygulama geliştirme (PDA, cep telefonları vb. için)
- DLL yazma
Biz kitap boyunca konsol uygulamaları, son bölümlerde de form tabanlı uygulamalar geliştireceğiz. Ancak kullandığınız dilin ne kadar güçlü bir dil olduğunu öğrenmeniz açısından bunları bilmenizde fayda var.