Visual C#

Geleneksel Olarak Visual Basic ve Visual C + + farklı spektrumdaki programcıları hedeflemiştir. Visual Basic özellike üretkenliği ön plana çıkarması ile programcılara daha kolay ve sezgisel bir geliştirme modeli sunuyordu. Öte yandan Visual C++, üretkenliği azaltıyor gibi görünmesine rağmen Windows işletim sisteminin bütün özelliklerini etkili bir şekilde kullanma imkanı tanıyordu.

Bu iki dilin sunduğu imkanlar arasındaki boşluğu doldurmak için Microsoft kod odaklı uygulama geliştirmeyi modern ve yenilikçi bir tazrda ele alan C# dilini geliştirdi. C#, C++ sözdizimine benzer bir şekilde temiz ve güzel bir programlama dili sunarken aynı zamanda Visual Basic dilinin üretkenliğinide korur.

Kod Odakli Geliştirme

Programcıların hepsi projelerinde mutlaka belli özelliklerde kod yazarlar. Fakat programcılarinin çoğu zamanlarının önemli bir kısmını sihirbaz(wizard),kontrol ve tasarım araçları kullanarak harcarlar ve böylece önemli ölçüde bir üretkenlik sağlarlar. Bu özelliğin programcılar için tek kötü yanı sihirbaz tarafindan üretilen kodun anlaşılabilirliğinin az olmasıdır.Fakat programcılar kodlarında anlaşılırlık ve verimlilik arasindaki tercihlerinde güveni tercih ettiler.

Ayrıca kod odaklı geliştirme yapan programcılar başkaları tarafindan doğru tasarlanmış kodu yeniden yazmaya yönelir ve bu daha az bilgili programcıların pratik olarak iyi kod geliştirebilmesindeki karmaşıklığı düzeltir.

Hangi Programcılar Neden VB.NET'i Seçmelidir?

Gelecek kuşak uygulamaları ve servisleri birleştirerek .NET ortamında araştırma yapmak isteyen aşağıdaki tipteki programcılar için C# ideal bir dildir.

• Üretkenlik arayan C/C++ ailesindeki diller ile geliştirme yapan programcılar :C# dili, C++ dili gibi isleç(operator) aşırı yüklerken buna ek olarak numaralandırmalar, küçük-büyük harf duyarlılığı ve component-oriented(bilesen-yönelimli) özellikler olan property,delegate, events ve daha fazlasini içerir. C#, .NET framework ile beraber yüksek verimlilik ,yönetilebilir , daha güvenli ve anlaşılabilir sözdizimi ile yeni özellikler isteyen C++ programcılarına sunulmuş bir dil olarak da düşünülebilir.

• Framework tasarımcıları ve yazılım mimarlari : Framework tarafindan iyi desteklenen , isleç yükleme özellikleri içeren, güvenli olmayan kodlara ve önceden yazılmış yazılımlara erişimiyle C#, yazılım mimarlarına geniş ve esnek kütüphaneler ve iş parçacıkları tasarlama imkanı sağlar.

• Java tabanlı yazılımlar geliştirmiş programcılar : Java Language Conversion Asistant (JLCA) ile Java programcıları uygulamalarını C# ve .NET Frameworke'e rahatlıkla taşıyabilirler. JLCA kaynak kod seviyesinde bir analiz yapar ve Java kodunu C# koduna dönüştürür. Dönüştürme işlemi bittiğinde geliştiricinin dikkat etmesi gereken noktalar belirtilir. Böylece taşıma işlemi an az hasarla geçekleştirilmiş olur.

C#'ın C ++ Diline Benzer olan Özellikleri

C# dili, geleneksel C++ özelliklerinin bir çoğunu desteklemektedir. Bu geleneksel özelliklerin bir çoğu Visual C++ 'taki üretkenliği artırmak için de kullanılmıştır.

• Tüm CLR türleri için destek : C# dili tüm CLR veri tiplerini destekler , programcılar çözüm sunarken .NET ortamının yönetilen çalışma ortamının tüm özelliklerinden yararlanırlar.

Referens yolu ile parametre aktarma ve out parametresi : C# programcıları, parametreleri foksiyonlara referans yolu ile aktarabilirler ayrıca out parametresi ile değişkenlere ilk değer vermeden onları fonksiyonlara parametre olarak geçirebilirler.

• Overloading (Operatör aşırı yükleme) : Sınıf kütüphanesi tasarımcıları operatörleri aşırı yükleyerek daha sağlam sınıflar tasarlayabilirler.

Using ifadesi : Programcılar, uygulamalarında bulunan kaynakları daha kontrollü bir şekilde yönetebilmek için using anahtar sözcüğünü kullanırlar.

Guvensiz kod(Unsafe code) : C#, programcılara gösterici kullanma imkanı tanıyarak hafızaya direkt erişimi sağlar. Her ne kadar güvensiz kodda CLR yönetiminde olsa da ileri düzey programcılar uygulamalarının hafıza yönetimi üzerinde söz sahibi olmaları için güvensiz kod yazabirler. Buna rağmen hafıza üzerinde daha etkili bir kontrol için Visual C++ kullanılması daha çok tavsiye edilir.

• XML dökümantasyonu : Programcılar, kodlarına açıklayıcı notlar eklemek için XML formatındaki bildirimleri kullanabilirler.

Öte yandan C# dil tasarımının sınırlarını genişletecek şekilde hızla büyümektedir. C# dilinin tasarımcıları yakın bir gelecekte dile eklemeyi planladıkları bir kaç önemli özellikten bahsetmektedir. Daha modern ve yenilikçi bir yaklaşım sunan bu özellikle şunlardır :

• Generics : Varolan kodların yeniden kullanılabilirliğini kolayca sağlayan C++ şablonlarına benzer bir yapı.

• Erişiciler (Iterators) : Koleksiyon tabanlı sınıfların elemanları arasında daha hızlı ve kolay bir şekilde dolaşmamızı sağlayacak yapı.

• Anonim(Anonymous) Metotlar : Basit görevleri temsilcilerle daha rahat bir şekilde ele alacak yöntem

• Kısmi(partial) Türler : Bir kodu farklı dosyalara bölebilecek türler.