Skip to content

1. Giriş

Bu belgenin PDF dosyası, |BURADA| adresinde mevcuttur.

Bu belgedeki örnekler |BURADA| adresinde mevcuttur.

C#, nispeten yeni bir dildir. 2000 yılından itibaren art arda beta sürümleri piyasaya sürüldükten sonra, Şubat 2002’de, bağlantılı olduğu Microsoft’un .NET 1.0 platformuyla birlikte resmi olarak kullanıma sunulmuştur. C# yalnızca bu yürütme ortamında çalışabilir. Bu ortam, kendi içinde çalışan programlara çok geniş bir sınıf kümesi sunar. İlk bakışta, .NET platformunun Java sanal makinesine benzer bir yürütme ortamı olduğu söylenebilir. Ancak iki fark göze çarpmaktadır:

  • Java, başlangıcından beri farklı işletim sistemlerinde (Windows, Unix, Macintosh) çalışmaktadır. 2002 yılında ise .NET platformu yalnızca Windows makinelerde çalışıyordu. Son birkaç yıldır Mono [http://www.mono-project.com] projesi, .NET platformunun Unix ve Linux gibi işletim sistemlerinde kullanılmasını mümkün kılmaktadır. Mono’nun güncel sürümü (Şubat 2008), .NET 1.1’i ve .NET 2.0’ın bazı özelliklerini desteklemektedir.
  • .NET platformu, farklı dillerde yazılmış programların çalıştırılmasına olanak tanır. Bunun için, programların derleyicisinin IL (Ara Dil) kodu üretebilmesi yeterlidir; bu kod, .NET sanal makinesi tarafından yürütülür. .NET'in tüm sınıfları, .NET ile uyumlu dillerde kullanılabilir; bu da, programların bu sınıfları yaygın olarak kullandığı ölçüde diller arasındaki farkları ortadan kaldırmaya yöneliktir. Bir .NET dilinin seçimi, performanstan çok kişisel tercihe bağlı hale gelir.

2002 yılında C#, .NET 1.0 platformunu kullanıyordu. O dönemde C#, büyük ölçüde Java’nın bir “kopyası”ydı ve .NET, Java geliştirme platformunkine çok benzeyen bir sınıf kütüphanesiydi. Dil öğrenimi sürecinde, C# ortamından Java ortamına geçmek, pek de yabancı hissetmeden mümkün oluyordu. Hatta bir dilden diğerine kaynak kodu dönüştürme araçları bile mevcuttu. O zamandan beri işler değişti. Artık her dilin ve her geliştirme platformunun kendine özgü özellikleri var. Becerileri bir alandan diğerine aktarmak artık eskisi kadar kolay değil.

C# 3.0 ve .NET 3.5 çerçevesi birçok yenilik getiriyor. Bunların en önemlisi muhtemelen LINQ (Language INtegrated Query) dilidir; bu dil, SQL diline benzer bir şekilde, diziler ve listeler gibi bellek yapıları, veritabanları (şu an için yalnızca SQL Sunucusu - Şubat 2008) veya XML dosyalarından gelen nesne dizileri üzerinde sorgu yapmayı sağlar.

Bu belge kapsamlı bir ders değildir. Örneğin, LINQ burada ele alınmamaktadır. Bu belge, programlama konusunda zaten bilgi sahibi olan ve C#'ın temellerini öğrenmek isteyen kişilere yöneliktir. Bu belge, 2002 yılında yayınlanan orijinal belgenin gözden geçirilmiş halidir.

Bu dersi yazarken birçok kitaptan yararlandım:

2002 sürümü için:

  • Professional C# programming, Wrox Yayınları
  • C# ve .NET, Gérard Leblanc, Eyrolles Yayınları

O dönemde bu iki eseri mükemmel bulmuştum. O zamandan beri Gérard Leblanc, aşağıdakiler de dahil olmak üzere güncellenmiş sürümler yayınladı:

  • C# ve .NET 2005, Gérard Leblanc, Eyrolles Yayınları

2008'deki gözden geçirme için şu kaynakları kullandım:

  • 2002 tarihli ilk belge. Java dersimden kopyala-yapıştır yoluyla oluşturulan bu belgede hem yazım hataları hem de daha ciddi hatalar vardı; örneğin, System.Int32 gibi ilkel türlerin sınıflar olduğu söyleniyordu oysa bunlar yapılar. Hatamı kabul ediyorum...
  • Visual Studio Express 2008’in MSDN belgeleri
  • Joseph ve Ben Albahari'nin O'Reilly yayınevinden çıkan C# 3.0 in a Nutshell kitabı; okuduğum en iyi programlama kitaplarından biri.

Bu belgedeki örneklerin kaynak kodları [BURADA] sitesinde mevcuttur.

Serge Tahé, Mayıs 2008

Mayıs 2008'den bu yana C# elbette gelişmiştir. Ancak bu belge, bu dili öğrenmek için hâlâ güncelliğini korumaktadır. Bu dersin tamamlayıcısı olarak, "Örneklerle Entity Framework 5 Code First'e Giriş (2012)" başlıklı makalede ORM (Nesne-İlişkisel Eşleştirici) Entity Framework'e ilişkin bir sunum, "ORM Entity Framework 5 Code First'e Giriş" başlıklı makalede bulunabilir.

Serge Tahé, Ekim 2013