28 Ekim 2013 Pazartesi

Csharp Nedir ?

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
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.
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