C#, C/C++ ve Java
dillerinden türeyen, güçlü, basit, esnek, tip güvenli, modern ve Microsoft .NET
platformu için sıfırdan geliştirilmiş tek programlama dilidir.Aynı zamanda C#, C++ dilinin güçlülüğünü ve Visual Basic' in ise kolaylığını sağlar.Büyük olasılıkla C# dilinin çıkması Java dilinin çıkmasından bu yana programcılık adına yapılan en büyük gelişmedir. C#, C++ 'ın gücünden , Visual Basic 'in kolaylığından ve Java 'nın da özelliklerinden faydalanarak tasarlanmış bir dildir. Fakat şunu da söylemeliyiz ki, Delphi ve C++ Builder 'daki bazı özellikler şimdi C# 'da var. Ama Delphi ya da C++ Builder hiçbir zaman Visual C++ ya da Visual Basic 'in popülaritesini yakalayamamıştır.
C ve C++ programcıları için en büyük sorun, sanırım hızlı geliştirememedir. Çünkü C ve C++ programcıları çok alt seviye ile ilgilenirler.Üst seviyeye çıkmak istediklerinde ise zorlanırlar.Ama C# ile artık böyle bir dert kalmadı.Aynı ortamda ister alt seviyede isterseniz de yüksek seviyede program geliştirebilirsiniz.C# dili Microsoft tarafından geliştirilen .NET paltformunun en temel ve resmi dili olarak lanse edilmiştir.C# dili Turbo Pascal derleyicisini ve Delphi 'yi oluşturan takımın lideri olan Anders Heljsberg ve Microsoft'da Visual J++ takımında çalışan Scott Wiltamuth tarafından geliştirilmiştir.
.NET framework'ünde bulunan CLR (Common Language Runtime), JVM (Java Virtual Machine)' ye, garbage collection, güvenilirlik ve JIT (Just in Time Compilation) bakımından çok benzer.
CLR, .NET Framework yapısının servis sağlama ve çalışma zamanının kod organizasyonu yapan ortamıdır. CLR, ECMA standartlarını destekler.
Kısacası C# kullanmak için CLR ve .NET Framework sınıf kütüphanesine ihtiyacmız vardır. Bu da demek oluyor ki C#, JAVA, VB ya da C++ değildir. C,C++ ve JAVA 'nın güzel özelliklerini barındıran yeni bir programlama dilidir. Sonuç olarak C# ile kod yazmak hem daha avantajlı hem daha kolay hem de etkileyicidir.
Bildiğimiz gibi
bilgisayarları kullanabilmek için önce onları programlamamız gerekir.
Bilgisayarlar ilk çıktıkları günden bu yana değişik düzeyde birçok programlama
dili kullanılarak programlanıp insanlara faydalı araçlar haline getirilmiştir.
Bilgisayar dilleri düzeylerine göre şu şekilde sınıflandırılabilir:
Script dilleri: Javascript, Perl Script, VBscript…
Yüksek düzeyli diller: VBasic ve Delphi
Orta düzeyli diller: C# ve Java
Düşük düzeyli diller: C/C++
Assembly: Assembly
Yüksek düzeyli diller: VBasic ve Delphi
Orta düzeyli diller: C# ve Java
Düşük düzeyli diller: C/C++
Assembly: Assembly
C# orta düzeyli
diller grubuna girer. Özellikle hem alt düzey hem de üst düzey programlar
yazılabilir. C# ile programlar geliştirmek için güvensiz kod bloklarında
işaretçiler kullanılır. Diğer taraftan büyük çaplı kurumsal projeler
geliştirirken kullandığımız dilin çok zor olmaması ve verimli olması her zaman
tercih sebebidir. Bu durumda C++ kullanmak gerçekten etkili olmayabilir.
Eğer C/C++ veya Java
biliyorsanız C# dili size tanıdık gelecektir. C#’ın söz dizimi bu dillerden
gelmektedir. Önceleri sadece C vardı. Uzun seneler yazılım geliştirme alanında
en popüler dil olarak kullanıldı. Sonra bu dilin Smalltalk gibi nesne yönelimli
diller karşısında zayıfladığı fark edilince C++ doğdu. C++; güçlü C diline
nesne yönelimli özelliklerin katıldığı 80’li yıllardan bu yana profesyonel
programcıların tercihi olan programlama aracı olagelmiştir.
Ama Sun MicroSystems,
Java’yı çıkartınca ortalık bir anda karıştı. Çünkü Java dağıtık uygulama
modeline C++’dan çok daha fazla destek sunuyordu. Artık Java ile yazılan
programlar hem Web üzerinden Applet olarak, hem de Java Runtime kurulu herhangi
bir bilgisayarda çalışabiliyordu.
Microsoft Java’ya
cevap olarak, .NET’le tamamen uyumlu ve .NET’in en gözde dili olan C#’ı
geliştirdi ve programcıların hizmetine sundu.
Neden C# ?
Bu sorunun sekiz
farklı cevabı olabilir. Bu cevapların her birinin C#’ın önemli özelliklerini
içerdiğini unutmayın!
C# dili öğrenilmesi
kolay bir dildir: C# dili diğer dillere
nazaran daha kolay öğrenilebilecek bir dildir. Az sayıda anahtar kelime
(keyword) ve basit kontrol yapıları ile çalışacaksınız.
Nesne Yönelimli
Programlamaya tam destek: Maalesef C++,
kimilerinin iddia ettiği gibi tam olarak nesne yönelimli değilken, C# gerçek
manada nesne yönelimli (object oriented) bir dildir. Bu sayede büyük ölçekli
projeleri hızlı bir şekilde geliştirebilirsiniz. Ayrıca, program hatalarının
giderilmesi veya yeni modüller ekleme safhalarında tam donanımlı nesne
yönelimli bir dille çalışmak büyük faydalar sağlar. Burada şunu da unutmayın:
her ne kadar VB.NET de artık nesne yönelimli olarak adlandırılıyorsa da VB.NET
ciddi manada programlama yapmak için uygun değildir. Atası programlamayı kolay
bir şekilde öğrenme amacıyla geliştirilmiş BASIC’tir.
Yüksek verim: Ne C++ programı yazarken programdaki hatalarla boğuşmak
ne de elimizdeki projeyi geç teslim etme ihtimalinden dolayı uykularımızın
kaçmasını istemeyiz. Şu bir gerçek ki C/C++ ile yazılan programlar diğer
dillere göre daha uzun zamanda ortaya çıkarlar. Sebebi ise bu dillerin zor
olması ve hata yapmaya çok açık olmasıdır. Fakat Microsoft, C#’ı tasarlarken
çok sık yapılan hataları önlemek için önlemler almıştır. Bu önlemlerin en
basiti if() deyiminde parantezin içindeki değerin bool türünden olması gerekliliğidir, yani
C#’taki if() içindeki ifadenin değeri int veya
türevi bir değer olursa program derlenmez. Bu sayede bir çok hatanın önüne
geçilmiş olur.
Güç ve Kolaylık
arasındaki denge: Bizler programcı
olarak çoğu zaman bir proje için birden fazla farklı dille çalışma şansına
sahibiz. Ama çalıştığımız dilin hem güçlü hem de kolay kullanılır olmasını
isteriz. Mesela VB kolay kullanılır bir dil olmasına rağmen C++’a göre hem
yavaştır hem de yetenekleri azdır. Öte yandan, yukarıda da belirttiğim gibi,
C++ güçlü fakat birçok işi programcıya bıraktığı için zor bir dil. O zaman
ikisinin arasında, C++’ın gücü ve VB’nin kolay kolaylığına sahip bir dil olsa
mükemmel olurdu şeklinde hayal eden çok olmuştur. İşte programcıların
hayallerindeki programlama dili C#’dır. Bu dil VB kadar hızlı, C++’taki kadar
güçlü programlar geliştirmenin en uygun yoludur.
XML desteği: Günümüzde yazılan programların sadece bir makinede
çalışması yetersiz hale gelmiştir. Artık yazılımların intranet ve internete
açılan yönlerinin olması ve başka sistemler ile kolayca etkileşime geçebilme
yeteneği olmalıdır. Bu durumda farklı platformların birbiri arasında veri
alışverişlerinde ortak bir dil ile konuşmaları gerekir. Bu dilin XML olduğu ve
giderek yaygınlaştığını gören Microsoft, .NET ve C#’ın içine XML desteğini
eklemiştir. Bu sayede XML verileriyle çalışmada C# dili bize büyük kolaylıklar
sağlar. Özellikle dağıtık uygulama geliştirme projelerinde bunun büyük faydalarını
göreceğiz.
Yönetilmeyen Kod
(Unmanaged Code): C# ile yazılım
geliştirirken pek ihtiyacımız olmasa da yine de işaretçileri kullanırız. Bu tür
program kodlarına unmanaged
code (yönetilmeyen kod) denir.
Bu şekilde gerçekleştirilen kodları genelde C# projemizin eski COM ve DLL ile
ilişkiye geçtikleri yerlerde kullanırız. Bu sayede .NET ve C#’ta geriye dönük
uyumluluk da vardır. Yani, eski bileşenlerimizi atmak veya .NET DLL’i haline
getirmek zorunda değiliz.
VB’deki Olay (event)
ve Form mantığını destekler: Visual C++ ile
yazılım geliştirmek gerçekten zor işti. Çünkü C++ dilinin zorluğunun yanında
MFC ile Windows’un kullanıcı grafik arayüzünün elemanlarını kullanarak
programlamayı öğrenmek ve program geliştirmek çok zordu. Diğer taraftan VB
programcıları hem dilin kolaylığını hem de form tabanlı yazılım geliştirme
modeli ile çok daha hızlı programlar geliştirme şansına sahiplerdi. Yalnız
bunlar Visual C++’a nazaran yavaş çalışan ve az yetenekli programlardır. Şimdi
ise C# ile Windows veya ASP.NET programı geliştirmek Form mantığı sayesinde hem
daha hızlıdır hem de geliştirilen uygulamalar daha güçlüdür. Bir kere daha
görüyoruz ki C#, C++ kadar hızlı VB kadar kolay bir araç.
C#: Modern bir dil: Aslında bu sonuca yukarıdaki maddeleri birleştirerek
ulaşabiliriz. İnternet çağının gerektirdiği tüm özellikleri desteklemesinin
yanında hızlı yazılım geliştirilmesine olanak tanıyarak verimliliğimizi ve
rekabet gücümüzü artırır. C/C++ ve Java’nın güzel yönleri alınıp, haliyle nesne
yönelimli, mükemmel bir dil olarak karşımıza çıkar C#. Dahası eskiden
yazdığımız bileşenler (COM ve DLL) ile anlaşır, gerekirse onlarla aynı dili
konuşmak için işaretçileri kullanır.
C#’ın .NET’teki Yeri
ve Kullanım Alanları
C#, .NET için
Microsoft tarafından geliştirilen ve programlama alanında en popüler üç dilin,
C/C++ ve Java’nın güzel özelliklerini alıp, bu dillerin tehlikeli olabilecek
özelliklerini dışarıda bırakan ve .NET’in prensi olarak adlandırılan bir
dildir.
VB.NET ve C++.NET’e
de .NET tam destek veriyor fakat bu iki dik türedikleri dillerin eksikliklerini
ve sorunlarını üzerlerinden atamamışla
rdır. Fakat C# ile programlamada beyaz bir sayfa açılmıştır.
rdır. Fakat C# ile programlamada beyaz bir sayfa açılmıştır.
Eğer C#’ı bilirseniz
.NET ortamında birçok iş yapabilirsiniz. Bunları şu şekilde sıralayabiliriz:
Konsol uygulaması
geliştirme aracı: C#’ın Windows
uygulaması geliştirme, ASP.NET uygulaması geliştirme ve diğer gelişmiş
özelliklerini öğrenince konsol uygulaması geliştirme aracı olarak pek
kullanmayacağınızı düşünebilirsiniz. Ama C#’ı tam anlamıyla öğrenebilmek için
bu süreçte konsol uygulaması geliştirmeyi kullanmanız size zamandan büyük
ölçüde kar ettireceği gibi; dilin temel özellikleri üzerine yoğunlaşmanızı
sağlayacaktır.
Windows için program
yazma: C# ile Windows için gelişmiş, güçlü,
hızlı ve güvenli programlar yazabiliriz. Yalnız bunun için programımızın
çalıştığı sistemde .NET Platformunun (.NET Framework) kurulu olması gerekir.
ASP.NET için en uygun
dil: Neden mi? .NET’in tamamı C# ile
yazılmıştır. Web Form (ASP.NET’in diğer adı) ile uygulamalarınızı hem daha
becerikli hale getirebilir, hem de daha hızlı geliştirebilirsiniz. Ayrıca
ASP.NET artık ASP gibi script yorumlamalı değil de tam olarak nesne yönelimli,
derlenen (compiled) ve çalıştırılan (executable) bir model haline gelmiştir.
Web servisleri: Adından da anlaşılacağı gibi web servisleri, web
üzerinden servis veren program parçacıklarıdır. Web üzerinden verilen bu
servisler standart HTTP protokolü ile olmaktadır. Bu da herkesin bu protokol
vasıtası ile bir web servisine ulaşabileceğini göstermektedir. Tabii ki bu
servisleri yazmak için de C# yine çok doğru bir seçim olacaktır.
Mobil uygulama
geliştirme: .NET ile tüm IP
tabanlı (Internet protokolünü kullanan) cihazlara erişim mümkündür. Bunlar cep
telefonları veya PDA (Personal Data Assistant – Cep bilgisayarları) olabilir.
Bunlar için yazılımlar geliştirmek için ne ayrı bir dil ne de ayrı bir
platforma ihtiyacımız var. Sadece .NET Mobil Geliştirme Aracı ve C# ile mobil
cihazlara yönelik yazılımlar geliştirebileceğiz.
C# ile DLL
yazabiliriz: İster C# programları
için, ister .NET desteği olan diller için güçlü, hızlı ve esnek DLL (Dynamic
Link Library) bileşenleri yazıp birçok yerde kullanma şansına sahibiz. Hatta bu
yolla spesifik bir alandaki programcılar için sınıf kütüphaneleri geliştirip
onların hizmetine de sunabiliriz.
Hiç yorum yok:
Yorum Gönder