Csharp programlama diline ait ders notları ektedir.
Dökümanın ilk sayfasından,
C# Windows uygulamaları geliştirmek için C++ ve Visual Basic programlama dillerine
alternatif olarak Visual Studio .NET ile birlikte gündeme gelen bir uygulama geliştime
dilidir.
C#, bize Visual Studio’da yalnızca C++ ile erişebildiğimiz yerlere ulaşabilmemizin
yanısıra Visual Basic kadar kolay bir kullanım sağlar. Özellikle .NET için geliştirildiğinden
.NET kod yapısına en uygun dil olarak bakabiliriz C# ’a. Bu nedenle C#, .NET
framework’ünü daha kolay ve daha etkin kullanır. Orta seviye bir programla dili olması
ise Visual Basic ve C++’ın en iyi özelliklerini içermesini ve tam bir OOP (Object Oriented
Programming) ortamı sunmasını sağlar.
C#’ı .NET framework’ünden ayrı olarak incelemek yerine bütünün bir parçası
olarak ele almak gerekir. Çünkü .NET ile geliştirilen CLR (Common Language Runtime –
JVM[Java Virtual Machine]’e benzeyen ve birbirinden farklı dillerin IL(Intermediate
Language)’e compile edilerek oratak çalışmasını sağlayan yapı olarak tanımlayabiliriz),
.NET kodlarının ortak çalışmasına izin vermektedir. Bu şu anlama gelir ister C#, ister
C++, ister Visual Basic, uygulamamızı hangi platformda yazarsak yazalım çatımız hep
aynıdır.
.NET, genel amaçlı yazılmış windows platformu programlarında bir devrimdir.
.NET’in sağladığı birçok avantaj vardır; kullanımı kolay nesne modellemesi, Garbage
Collection’ı sayesinde yaratılan kaynakların otomatik olarak temizlenmesi, SQL ve ADO
spesifik Data Access, ASP .NET sayfalarının oluşturulmasına yarayan geliştirilmiş
library’ler ve bunlar gibi birçok yapı. Ancak; her ortam için o ortamın özelliklerine
ulaşmak elbette belirli mekanizmalar gerektirir. Örnek verecek olursak Windows, C ve
C++’da yazılmış bir dil olduğundan yönetim yine C,C++ kodundan ulaşabildiğimiz
Windows API ile sağlanır (Bu, Visual Basic’in Windows API’nin bütün özelliklerine kolay
erişim sağlayamamasının nedenidir). C#’ın gerçek faydası burada ön plana çıkmaktadır,
C# .NET framework’ü için sıfırdan başlanarak tasarlanmış ve bu dilin yazım ve dil
özellikleri .NET’in sunduğu kolaylıklardan basit bir şekilde yararlanabilmesi için
geliştirilmiştir.
Bir örnek verecek olursak;
System.String .NET class library’sinde bir class’tır ve case convertion’ları,
substring’lerin ayıklanması ve string ifadelerin trim’lenmesi gibi bir çok method’a sahiptir.
C# compiler’ı bu class’ı otomatik olarak tanıyan kendi string keyword’üne sahiptir.
string MyStr1=”Visual”;
string MyStr2=”Studio”;
string MyStr3=”.net”;
string MyStr4=MyStr1+” “+MyStr2+” “+MyStr3;
MyStr4.ToUpper();
//Sonuç olarak MyStr4’e VISUAL STUDIO .NET değeri atanır.
.NET framework’ü, kullanılan kaynakları boşaltmakta çok başarılıdır. Bu başarının sırrı ise
managed code içerisindeki değişkenlerin stack yerine managed heap’de tutulmasıdır. C#
bu gibi işlemleri bizim yerimize otomatik olarak yapmaktadır. Tabiiki .NET platformunda
Managed C++ ve VB.NET de aynı özelliklerden C# gibi faydalanabilmektedir. Bu yapının
sağlanabilmesi ise Visual Basic ve C++’ın yapısında gerçekleştirilen bir takım
değişikliklerle mümkün olmuştur. Bu da Visual Basic ve C++ açısından bakıldığında bir
upgrade anlamına gelmektedir. Yapıları ne kadar upgrade edildiyse de yeni bir platform
için VB ve C’ye geçmişten gelen yazılım geliştirme dilleri olarak bakmak yerinde olacaktır.
Bu iki dil bu anlamda .NET platformunda yazılım geliştirirken geçmişten gelen alışkanlık
ve syntax yapıları yüzünden tam anlamıyla .NET için dizayn edilmemişlerdir; bu da
yazılım geliştirirken C#’a göre bu yazılım geliştirme dillerini dezavantajlı hale getirir.
Hatta bu yüzden VB.NET syntax’ının hala tam anlamıyla Object Oriented Programming’e
göre dizayn edilmediği tartışmasını ortaya çıkarmıştır.