C#’ın Doğuşu

Microsoft, C#’ı geliştirdi. 1990’ların sonlarına doğru Microsoft’ta ortaya çıktı ve Microsoft’un .Net staratejisinin bütününün bir parçası oldu. C# ilk kez 2000’in ortalarında alfa versiyonu olarak piyasaya çıktı. C#’ın baş mimarı, çeşitli büyük başarılara imza atmış bulunan, dünyanın önde gelen dil uzmanlarından Andres Hejlsberg’dir . Örneğin, Hejlsberg 1980’lerde çok başarılı ve güçlü bir dil olan Turbo Paskal’ın orjinal yazarıdır. Turbo Paskal’ın sadeleştirilmiş uygulaması, geleceğin tüm derleyicileri için standartları belirlemişti.

C#’ın dedesi C’dir. C’den C# söz dizimini, anahtar sözcüklerin bir çoğunu ve operatörlerini almıştır. C#,C++ ile tanımlanan nesne modeli üzerine kurulmuştur  ve bu nesne modelini geliştirmiştir. C veya C++’ı biliyorsanız C# ile adeta kendinizi evinizde hissedeceksiniz.

 C# ile .NET Framework Arasındaki Bağlantı

        C# kendi başına incelenebilecek bir bilgisayar dili olmasına rağmen C#’ın çalışma zamanı ortamı (runtime environment) ile, yani .NET Framework ile özel bir ilişkisi vardır. Bunun iki sebebi vardır. Birincisi, C# başlangıçta Microsoft tarafından .Net Framework için kod geliştirmek amacıyla tasarlanmıştı. İkincisi, C# tarafından kullanılan kütüphaneler, .Net Framework  tarafından tanımlanan kütüphanelerdi. Yani, C# dilini .Net ortamından ayırmak mümkün olsa dahi, her ikisi birbiriyle sıkı sıkıya bağlıdır. Bu nedenle, .Net Framework’ü genel olarak anlamak ve bunun C# için önemini kavramak gereklidir.

.NET Framework Nedir?

            .NET Framework, çok dağıtık(highly-distributed), bilişen yönelimli uygulamaların geliştirilmesini v eyürütülmesini destekleyen bir ortam tanımlar. .Net Framework, farklılık gösteren bilgisyar dillerinin birlikte çelikmasını mümkün kılar (VB.Net,C++.Net,Java#.Net, C#.Net yani bir projeyi diyelimki VB.Net ile oluşturursunuz sonra proje gelti bazı bölümlerini C#.Net ile bazı bölümleri C++.Net veya Java#.Net ile yazmanız gerekti(çünkü projeye dahil olan elemanlar bu dilleri biliyor) bir proje içersinde bu kadar bir birinden farklı programlama dilleri olmasına ragmen projeniz baştan sona tek bir dille yazılan program kadar sorunsuz çalışır.) .Net Framework C# ile ilişkisi bakımından çok önemli iki unsuru tanımlar. Bunlardan ilki Common Language Runtime (CLR – Ortak Dil Çalışma Zamanı). Bu, programınızın çalışmasını idare eden sistemdir. Diğer avantajlarının yanı sıra CLR, .Net Framework'ün programların taşınabilirliğini mümkün kılan, karışık dilde programlamayı destekleyen ve güvenliği sağlayan bir parçasıdır.

Common Language Runtime Nasıl Çalışır?

        CLR, .NET kodunun çalıştırılmasını (yürütülmesini) idare eder. CLR şu şekilde çelişir: Bir C# programını derlediğinizde, derleyiciden elde edilen çıktı çalıştırılabilir bir kod degildir. Bilakis bu Microsoft Intermediate Language(MSIL) denilen özel bir tipte sözde kod (pseudecode) içeren bir dosyadır. MSIL, spesifik bir CPU’dan bağımsız olan bir takım taşınabilir komutlar tanımlar. Aslında, MSIL taşınabilir bir Assemly dili tanımlar. Diğer bir hususta şudur:MSIL her ne kadar Java’nın bycode’una benziyor ise de her ikisi aynı değildir.

            Program çalıştığı zaman ara kodu çalıştırılabilir koda dönüştürmek CLR'ın görevidir. Böylece, MSIL elde edilecek şekilde derlenen her program CLR’ın uygulandığı her ortamda çalıştırılabilir. Bu, :Net Framework’ün taşınabilirliliği temin etme biçiminin bir yönüdür.

            Microsoft Intermediate Language, bir JIT derleyici kullanılarak çalıştırılabilir bir koda çevrilir. “JIT”,”Just-In-Time ”a karşılık gelir (yani, “Tam Zamanında” demektir). Süreç şöyle gelişir:  Bir .Net programı çalıştığı zaman CLR, JIT derleyiciyi etkin kılar. JIT derleyici programınızın parçalarının her birine duyulan ihtiyacı temel alarak MSIL’i yerel dile dönüştürür. Böylece, C# programınız başlangıçta MSIL üretecek şekilde derlenmiş olsa bile, aslında yerel kod gibi çalışacaktır. Bunun anlamı şudur: Programınız başlangıçta yerel kod üretecek şekilde derlenmiş olsaydı, elde etmiş olacağı çalışma hızına yakın bir hızda çalışacak, üstelik MSIL’in taşınabilirlilik avantajlarına da kavuşacaktır.   

            Bir C# programını derlediğinizde, MSIL’ e ek olarak elde edilen bir değer şey de metadata alarak adlandırılan çıktıdır. Metadata, programınızın kullandığı verileri tarif eder ve kodunuzun diğer kodlarla etkileşimini mümkün kılar. Metadatai MSIL ile aynı dosya içinde yer alır.

       

  Sponsor link