C#

1950’li yıllardan başlayıp günümüze kadar uzanan yazılım sektöründe her geçen gün yeni şeyler duymak mümkün. Çünkü insanlık tarih boyunca işlerini kolaylaştıracak ürünler üretmeye meyilli olmuştur. Programlama ise 20. ve 21. yüzyılda insanların hayatını kolaylaştıran ürünler üretmek için kullanılan bir araç olmuştur.

Günümüze kadar pek çok programlama dilleri geliştirilmiştir. Bunlar kullanılacak platformlara göre yada dil yapısına göre farklı alanlarda kullanılır. Tüm dillerden arasında özellikle nesnel programlama alanında iki programlama dili insanlık için oldukça önemlidir. Bu dillerin ilki ortak platform olarak çalıştırılabilen Java ikincisi ise .net kütüphanesi ile entegre edilerek tüm dillerle ortak platformda programlanabilir ve kolay kodlama yapısı ile  C# (CSharp) programlama dilidir.

Bu yazı C# programlama dili hakkında tüm teknik detaylar yer alacak şekilde hazırlandı. C# diline giriş yapacak olan kişiler yada C# dilinin tam olarak ne olduğunu anlamaya çalışanlar için oldukça ideal bir kaynak olacaktır. Bu yazıda C# diline kısa bir giriş yaptıktan sonra C# nedir? Ne işe yarar?, sorusunun cevabını vereceğim. Sonrasında ise C# ile neler yapılabilir? sorusu içinde C# dili ile ne tür uygulamalar yazılabileceğini açıklayacağım. Bu yazıdaki tek hedefim ise C#’a yeni başlayan bireylere birer rehber kaynak oluşturmaktır.

C# Programlama Diline Giriş

C# Nedir?

C#, yazılım sektörü içerisinde en sık kullanılan iki yazılım dili olan C ve C++ etkileşimi ile türetilmiştir. Ayrıca C#, ortak platformlarda taşınabilir bir (portable language) programlama  dili olan Java ile pek çok açıdan benzerlik taşımaktadır . En büyük özelliği ise .Net Framework platformu için hazırlanmış tamamen nesne yönelimli bir yazılım dilidir. Yani nesneler önceden sınıflar halinde yazılıdır. Programcıya sadece o nesneyi sürüklemek ve sonrasında nesneyi amaca uygun çalıştıracak kod satırlarını yazmak kalır.

Microsoft tarafından geliştirilen C#, C++ ve Visual Basic dillerinde yer alan tutarsızlıkları kaldırmak için geliştirilmiş bir dil olmasına rağmen kısa süre içerisinde nesne yönelimli dillerin içinde en gelişmiş programlama dillerinden biri olmayı başarmıştır.

Ayrıca gelişmiş derleyicisi (debugger) ile hata olasılığını ortadan kaldırmaktadır. Yazılan program çalıştırıldıktan sonra derleyici tarafından algılanan Sınıf (Class) ve söz dizimi (syntax) hataları yazılımcıya ayrı bir ekranda ayrıntısı ile gösterilir ve yazılımcı bu hata penceresinden hataları tespit ederek kolayca düzeltebilir.

Ayrıca pek çok programcı tarafından kullanılan bir dil olmasından ötürü  takıldığımız noktalarda uzman programcılardan yardım almak oldukça kolaydır.

.NET Framework Nedir?

C# ve .Net Framework bazı kişiler tarafından tek bir kavram olarak algılanmaktadır. Fakat bu iki kavram birbirlerinden tamamen farklı amaçlar için geliştirilmiştir. C#, nesne yönelimli bir programlama diliyken .Net Framework ise C# için geliştirilmiş bir çalıştırma ortamıdır. Aslında C# dili, Microsoft tarafından .Net platformu için kod geliştirmek amaçlı tasarlanmış ve C# içerisindeki tüm kütüphaneler .Net platformu içinde tanımlanmış kütüphanelerdir.

Java’dan önce, geliştirilen yazılımlar makine koduna çevrilerek çalıştırılırdı. Java ise program kodlarını önce byte sayı sistemine çevirir. Sonrasında Java Sanal Makinesi (JVM – Java Virtual Machine) bu kodları işletim sisteminin istediği koda çevirerek programın çalışmasına sağlar.

.Net Platformu da Java diline benzer bir çalışma mantığı izleyerek kodları çalışabilir hale getirmektedir.

.Net platformunda kod ilk önce Microsoft Intermediate Language (Microsoft Ara Dili) olarak isimlendirilmiş dosya haline dönüştürülür bu dosya içerisinde derlenen kodların Microsoft’un standart haline getirdiği bir assembly dili haline dönüştürür. Bu ara dil de saklanan dosyalar çalıştırılmak istendiğinde ise CLR adı verilen sistem MSIL kodlarını çalıştırır.

.net-calısma

Ortak dil çalışma zamanı ( CLR – Common Language Runtime ) sisteminin temel görevi ise C# dilini taşınabilir kılmak ve diğer diller ile güvenli bir şekilde çalışmayı sağlayan sistemdir. CLR, .Net platformuna ait bir kod çalıştığı zaman JIT (Just in Time – Tam Zamanında ) derleyiciyi aktif hale getirir. Aktif hale gelen JIT derleyici, MSIL kodlarını yerel kod yapısına göre çalıştırarak ortak platform yapısı sağlanmış olur.

C# ile Neler Yapılabilir

Bu kısımda ise sizlere C# ile proje geliştirme hakkında basit ipuçları ve giriş yapılacaktır. Aşağıda Visual C# kullanarak ne tür uygulamalar geliştirebileceğimizi anlatmaya çalıştım.

Konsol Uygulamaları (Console Applications)

Grafiksel kullanıcı arayüzünden çok, komut satırı penceresinde programcı tarafından yazılan uygulama çalışmalarına verilen isimdir. Konsol uygulamaları MS- DOS olarak ifade edilen nesne yönelimli programlamanın yaygınlaşmadığı dönemlerde kullanılan bir arayüz olmuştur. Bu uygulama modelini kullanıcının etkileşim kurması gerekmeyen uygulamalarda basit bir arayüz oluşturmak için kullanılabilir.

c#-console-uygulaması

Windows Form Uygulamaları (Ado.Net)

Grafiksel kullanıcı arayüzü (GUI – Graphical User Interface) olarak tanımlanır. Windows form uygulamalarını, konsol uygulamalarından ayıran en önemli özelliği de budur. Windows Form uygulaması oluşturmak için Toolbox adı verilen araç kutusundan nesnel araçlar sürükle bırak yöntemi ile kolayca oluşturulabilir.

csharp-windows-form-uygulama-ekranı

Windows Form uygulamaları, bilgisayar programları geliştirmek amacıyla kullanılmaktadır. Windows Forms Application seçeneği ile yeni bir windows uygulama penceresi açılarak program geliştirmeye başlanabilir. Ayrıca Windows Form uygulaması içinde grafiksel olarak daha gelişmiş çalışmalar yapmak da mümkün hale getirilmiştir. Daha güçlü grafiksel arayüzler için WPF ile uygulama geliştirmek gerekmektedir.

Windows form uygulamaları için veritabanı bağlantısı kurabilmek için kullanılan .Net kütüphanesinin adı Ado.Net olarak tanımlanmıştır. Bu konu üzerinde çalışmak isteyenlerin internet üzerinde Ado.Net olarak arama yapmaları gerekmektedir.

Web Form Uygulaması (Asp.Net)

Web form uygulamaları ise Ado.Net yerine ASP.Net sayfa yapısı ile çalışmaktadır. Web form uygulamaları temel olarak Windows Form Uygulaması gibi düşünülebilir. Fakat aralarında temel faklılıklar vardır. Web Form uygulamaları internet üzerinden erişilebilen form uygulamalarıdır. Bundan dolayı uygulamalar kişisel bilgisayar yerine web tarayıcısı ile çalışmaktadır.

asp-net-uygulaması

ASP.Net kullanılarak oluşturulan bir web uygulaması içerisinde bir yada birden daha çok ASP.Net sayfası olabilir. Web formları, .Net kütüphanesinde özel etiketler içeren bir HTML sayfalarıdır.  Web Formları, uzantısı .aspx olarak işlenir. Ayrıca her web form uygulamasında Web.config ile belirtilen bir yapılandırma dosyası vardır. Bu dosya XML biçimindedir ve web uygulamasının güvenlik, önbellek yönetimi gibi ilgili işlerin bilgilerini içerir.

Mobil Programlama

Windows Phone işletim sistemleri için uygulama geliştirme kısmıdır. Eğer Windows Phone için uygulama geliştirmek istiyorsanız bu kısmı kullananız gerekmektedir. Mobil Programlamaya başlamak istiyorsanız daha önce hazırladığım Windows Phone uygulaması geliştirme adlı yazıma bakabilirsiniz.

Web Servisleri

Kısaca veri iletimi için kullanılan sistemlerdir diyebiliriz. Biraz daha açacak olursam ise Evrensel veri transer metodu sayılan XML ve HTTP kuralları ile internet ağı ile dünyanın her hangi bir yerine veri taşıyan sistemlerdir.  Web servisi işlemlerinde veriler bir başka kullanıcıya gönderildiği için güvenlik ve adresleme gibi konular oldukca önemlidir. Microsoft, C#’ta web servisleri kullanımını güvenli kılan pek çok işlemler yapmaktadır. Web servisleri ile ileri zamanlarda daha geniş bir yazı yazmayı planlamaktayım.

DLL yazma

İlk olarak DLL nedir? diye soranlara DLL hakkında bilgi vereceğim. Sonrasında ise DLL’i açıklayacağım. DLL: Dinamic Link Library ifadesinin kısaltılmasıdır. yani dinamik kütüphaneler oluşturmak için kullandığımız yapıdır. Örnek verecek olursam C#’ta bir yapıyı sürekli kullanıyorsunuz böyle bir durumda hem kod sayfasında bir karmaşa olacak hem de sürekli aynı kodları yazmak zorunda kalacaksınız. İşte bu iki sorunu ortadan kaldırmak için DLL yazarsınız. DLL yazdıktan sonra uygulama sayfasında sürekli aynı kodları yazmak yerine yazılan DLL’i çağırarak ilgili kodları çalıştırırız.

Paylaştıkça Artan Tat...