0ReiS0
Dekan
- Katılım
- 8 Temmuz 2008
- Mesajlar
- 5,666
- Reaksiyon puanı
- 91
- Puanları
- 228
C# Giriş Videolu anlatım
http://www.dosya.tc/ders1_2533.rar.html ( Birinci Ders )
C# Örnek Program Kodları 228 adet
C# Örnek Program Kodları ve Projeler 228 Adet
RAPIDSHARE&HOTFILE
Kodlamalarin içinde projr dosyalarıda bulunmaktadir. Ayrıca C# için her nesneye ait örnek kodlamayı bu örnekler içinde görebilirsiniz. Örnek olarak bazı hazır kodlama başlıklarını asağıda görebilirsiniz...
Ornekler:
AcceptCancelButton.rar
AileYardımı.rar
Alarm.rar
Anchor.rar
ARGB.rar
Array_Diziİşlemleri.rar
BinaryDecimalCevir.rar
Binlik_Ayır.rar
BirdenFazlaDeğerGönderme.rar
Break.rar
BringToFront.rar
CheckButton.rar
Checked_ListBox.rar
Check_Box.rar
Class_MotorluAraç.rar
Class_Sifre.rar
ComboBox_ElemanEkleme.rar
ComboBox_ÇokSayıdaBilgiGösterme.rar
Combo_Box.rar
ContextMenu_Ornek.rar
ContextMenu_Ornek_2.rar
CultureInfo_Liste.rar
DataGrid_1.rar
DataGrid_Expression.rar
DataGrid_Satış.rar
DataGrid_SütunAyarları.rar
DateAddDays.rar
.
...v.s.
DownloadBR
Bildigimiz gibi her programlama dilinde DLL yaratabilir ve bunları kullanabiliriz.Bu dökumanda c# da dll yaratma ve kullanmayı anlatmaya calısacagım.Platform olarak Visual Studio 2005 kullandım
Vs de dll ler classlibrary oalrak gecmektedir.Önce classlibrary secerek yeni bir proje acalım.Resimdede gördügümüz gibi.
C# da dll dosyaları içinde main fonksiyonu bulunmamktadır dll lerin içinde fonsiyonlar indeksleyiciler sınıflar olusturarak bunları programımızda cagırabiliriz.Simdi olusturdugumuz dll dosyası içinde topla adında bir fonksiyon yaratalım.YAratılan fonksionda ekrandan iki sayı alıp bun ları toplayıp geri döndürelim.Asagıda kodlarını görmekteyiz
--------------------------------------------------------------------- using System;
using System.Collections.Generic;
using System.Text;
namespace ClassLibrary1
{
public class Class1
{
public int topla(){
int a,b;
Console.WriteLine("2 sayi giriniz");
a=Convert.ToInt32(Console.ReadLine());
b=Convert.ToInt32(Console.ReadLine());
return a+b;
}
}
}
---------------------------------------------------------------------
Burda dikkat etmemiz gereken bi hususda console.readline(); fonksiyonun string aldıgıdır.Alınan deger string oldugu için bunları convert edip görüldügü gibi degişkenlerimize atmıs bulunuyoruz.
Dll dosyamızı build edelim ve kaydedelim.
Şimdi ise bir console uygulaması acalım ve bu uygulamada dll dosyamızı kullanalım.
Actıgımız console uygulamasına dll eklemek için solutıon explorer kısmında daki projemizi sag tıklayıp add reference diyelim daha sonra browse diyip kaydetdigimiz
dll dosyamızı ekleyelim..Resimdeki gibi..
Simdi dll limiz eklenmiş oldu son olarakda console uygulamamıza using ClassLibrary1 namespacemizi ekleyelim ve bölece programa dll dosyamızı tanıtmıs olduk.
---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using ClassLibrary1;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int sonuc=0;
Class1 yap = new Class1();
sonuc=yap.topla();
Console.WriteLine(sonuc);
}
}
}
---------------------------------------------------------------------
Simdi dll limizdeki topla fonksiyonunu kulanabilmemiz için dll içindeki sınıfımızdan nesne yaratamak zorundayız.Kodda görüldügü gibi class1 den yap adında bir nesne olusturuyoruz.Daha sonra bu nesne aracılıgı ile dll lemizdeki topla fonksiyonunu cagırıyoruz .Topla fonksiyonu integer döndürdüğü için bunu bir degişkene atamak zorundayız.Daha sonra yazdırma işlemini yapıyoruz.
Programımızı build edip daha sonra calıstırıyoruz.Program 2 sayı istiyor ve işte sonuc..
# Programlama Dili, .NET Framework
C# Programlama Dili, .NET Framework ve Programlama Dilleri Tarihinde Önemli Adımlar
" Biz programcılar, daha iyinin arayışı içinde olan bir kitleyiz; daima yazdığımız programların performansını, verimliliğini ve taşınabilirliğini arttırmanın yollarını ararız. Ayrıca kullandığımız araçlardan da pek çok şey bekleriz. Özellikle de programlama dilleri söz konusu olduğunda... Pek çok programlama dili mevcuttur, fakat sadece bir kaçı gerçekten müthiştir. Bir programlama dilinin müthiş olması için, güçlü ve aynı zamanda esnek olması gerekir. Söz dizimi kısa ve öz, ama net olmalıdır. Önümüze engel çıkarmadan doğru kodun üretilmesini kolaylaştırmalıdır. En son teknoloji özelliklerini desteklemelidir, fakat sonu bir yere varmayacak modalardan kaçınmalıdır. Son olarak, müthiş bir programlama dili neredeyse özet sayılabilecek bir niteliğe daha sahip olmalıdır: Dilin, yaptığımız işe uygun olduğunu hissedebilmeliyiz. C# işte böyle bir dildir. "
Ne güzelde tanımlamış Herbert Schildt " C# Complete Reference " kitabında; programlama dillerinde iyiyi. Zira bu gün için bir uygulamayı çok farklı programlama dilleri ile gerçekleştirebilirsiniz. Tabi son cümle için hala tereddütlerim olduğunu söylemek istiyorum.
Bu kısa ama etkili olduğunu düşündüğüm girişten sonra herkese merhabalar. Bu makalede özellikle Microsoft ’un son yıllardaki en büyük adımlarından biri olan C# ( C Sharp ) programlama dilinin gelişimi ve öncesindeki programlama dillerine ilişkin bilgiler vermeye çalışacam. Kaynak olarak C# The Complete Reference ( Herbert Schildt ) kitabını baz aldım. Zira Microsoft C# Ürün Müdürü Prashant Sridharan bu kitap için " Herbert Schildt, her programcının sahip olması gereken bir kaynak hazırlamış. " diyor. Eeee... " kimse yoğurdum kara demez " elbette
C# Nedir? , Ne değildir?
C# ; Microsoft ’un gelecek vaadeden " .NET ortamının çatısını oluşturan .Net Framework ’ü " desteklemek-geliştirmek amacıyla geliştirdiği bir programlama dilidir. C# ’ın baş mimarı olan Anders Hejlsberg aynı zamanda 80 ’li yıllarda büyük başarı sağlayan Turbo Pascal ’ı yazan bir programlama dehasıdır. Bu faktörlerin yanında C# çoğu otorite tarafından kabul edilen ve dünyanın en " başarılı " iki dili olan : C ve C++ ’ tan türetilmiştir.
Kişisel olarak C# dili ile tanışmam , şuan için boş zamanlarımda geliştirmeye çalıştığım CSL projesi ile başladı. Özellikle bir programlama dili kullanarak başka bir alanda bir programlama dili geliştirmek çok zordur. CSL projesinin ilk zamanlarında çektiğim zorluklardan sonra, uzun zaman önce yazdığım " C++ ın yaratıcısı Bjarne Stroustrup ile röpörtaj " makalesi aklıma geldi. Makalede bahsi geçen C# üzerinde kısa bir araştırma yaptıktan sonra ozamanlar sadece boş zamanlarımı değerlendirmek için yaptığım bu projede C# ’ın çok daha etkili olduğunu düşünüp CSL ’i C++ yerine C# ile yazmayı uygun gördüm.
Programlama Dilleri Tarihinde Önemli Adımlar
60 ’ lı yıllarda özellikle Pascal gibi önemli başarılar elde etmiş programlama dilleri, yapısal programlama ( structured programming ) mantığı ile oldukça büyük ilerlemeler kaydetti. 70 ’li yıllara gelindiğinde Dennis Ritchie Unix İşletim sistemi kullanan bir DEC bilgisayar üzerinde " C " dilini yarattı. C programlama dili ozaman için büyük bir adımdı ve 80 ’li yıllarda en yaygın kullanılan programlama dili haline geldi. Fakat gelişen teknoloji beraberinde daha gelişmiş programları ve komplike sistemleri ortaya çıkardı. Çok kısa bir süre sonrada C dili artık yetersiz gelmekteydi.
1979 yılında nesne yönelimli programlama ( OOP, Object Oriented Programming ) yöntemi ilk kez kayda değer bir hale geldi. Bu değer Bjarne Stroustrup ’un yazdığı C++ diliydi. C++ aslında tamamen C dili üzerine kurulmuş, yani onun tüm özelliklerini içeren ve ayrıca nesne yönelimli programlama yöntemi kazandırılmış bir dildi. Bu sayede C++ dili C ye göre hem çok daha etkili oldu hemde kullanıcıların dili öğrenmek için harcayağı zamandan tasarruf sağlayarak yumuşak bir geçiş ve dolayısıyla yaygınlaşmasında avantajlar sağladı. Sonraki 10 yıl sonunda C++ artık dünyada en çok kullanılan ve en iyi programlama dili olarak gösteriliyordu.
" C++ ’ın keşfinin bir programlama dili ortaya çıkarmaya yönelik bir girişim olmadığını anlamak kritik bir öneme sahiptir. Bilakis, C++ zaten çok başarılı bir dilin gelişmiş haliydi. Dillerin gelişimi ile ilgili bu yaklaşım - mevcut bir dil ile başlayıp, onu daha da ileriye taşımak - bu gün bile devam etmekte olan bir trendin öncüsü oldu. " ( Herbert Schildt )
Programlama dillerindeki bu gelişmelerden sonra en büyük adım Java ile oldu. 1991 ’de Sun Microsystems tarafından geliştirilen dilin arkasındaki en güçlü isim James Gosling ’di. Java söz dizimi ve felsefesi C++ ’tan alınan yapısal ve nesne yönelimli bir dildir. Özellikle Internet ’in oluşması ile Java büyük bir hız kazandı. Aslında bunun nedeni çok basitti. O zamana kadar programlama dilleri ile yazılan programların çoğu belirli işletim sistemleri ve işlemciler için yazılıyordu. Yani kodun taşınılabilirliği karşısında Java en iyi yöntemdi. Java ’nın sunduğu platform bağımsız ( cross-platform ) teknolojisi bir anda büyük bir çevre tarafından kabul gördü. Yazılımcılar sistemlere göre program geliştirmektense yazılan kodun heryerde kullanılmasını tercih ettiler. Elbette internete bağlı birbirinden farklı bu sistemlerin ortak veya ayrı noktalarda aynı uygulamaları kullanabilmesi için.... yada her nasıl ise öyle olması için
" Gosling ve arkadaşları yeni ve yenilikçi özelliklere odaklanmakta serbesttiler. Tıpkı Stroustrup ’un C++ ’ı geliştirirken " tekerleği yeniden icat etmesine " gerek olmadığı gibi, Gosling ’ın de Java ’yı geliştirirken bütünüyle bir dil icat etmesi gerekmiyordu. İlaveten Java ’nın ortaya çıkışıyla C ve C++ yeni bilgisayar dillerinin üzerine inşa edileceği onaylanmış bir katman oluyordu. " ( Herbert Schildt )
Tabi java ’nın da eksik yönleri vardı...
Java platform bağımsız bir kodlama için JVM ( Java Virtual Machine ) kullanıyordu. Java kaynak kodu " bytecode " denilen bir koda çeviriyor, ve gerektiğinde JVM ile programı çalıştırıyordu. Yani JVM ’nin olduğu her sistemde her kod aynı muameleyi görüyor, böylece kodun işletim sistemi veya işlemciye göre tekrar derlenmesine gerek kalmıyordu. Fakat bu aynı zamanda Java ’nın diğer programlama dilleri ile uyum içinde çalışması ( cross-language interoperability ) için dezavantaj oluşturuyordu.
İşte bu noktada bir gereksinim ortaya çıkıyordu...
C# ’ın Doğuşu
1990 ’lı yılların sonlarına doğru Microsoft ’un programlama dehası Anders Hejlsberg C# dilini yarattı. 2000 yılının ortalarında C# ’ın ilk alfa versiyonu piyasaya çıktı. C# programlama dili ; C, C++ ve Java ile bağlantılı bir dil olarak yapıldı. Bunun bir tesadüf olduğunu düşünmeyin. Bunlar dünyada en yaygın kullanılan ve sevilen dillerden üçüdür. Hejlsberg ’de aynı Stroustrup ve Gosling gibi tekerleği yeniden icat etmektense mevcut bir dili geliştirmeyi uygun görmüştür.
Eğer bu diller arasında bir bağlantı kurmak gerekirse. C# programlama dili; C dilinin söz dizimini ve C++ dilinin nesne yönelimli programlama yöntemlerini ve tekniklerini almıştır.
C# ’ın Java ile olan ilişkisi ise özel bir durumdur. Zira C# ’ta Java gibi C ve C++ dillerinden özellikler almış ama aynı zamanda Java gibi platform bağımsız kod amaçlı tasarlanmıştır. Yani C# dili, Java dilinden türememiştir. En iyi tarafı ise C, C++, C# veya Java dillerinden birinde iyi olmanız diğer tüm dillerdede size büyük kolaylıklar sağlar.
Tüm bu diğer dillerle olan bağlantısına rağmen C# beraberinde pek çok yenilik, özellik getirmiştir. Zaten diğer başarılı dillerin doğuşunda da aynı trend yaşanmıştır. İşte bu noktada C# : bileşen yönelimli bir dil ( component-oriented language ) olarak nitelendirilmiştir. Zira C# bileşenleri yazmak için bütünleşik destek içermektedir. Bunların içinde en önemlisi; karışık dillerin olduğu bir ortamda çalışabilme becerisidir.
Dikkat ettiyseniz, birbirinden türeyen her dil bir önceki dilde eksik olan bir özelliği tamamlarayarak ilk adımları atmıştır. C++; C deki nesne eksikliğini, Java; C++ daki platform bağımsızlık özelliğini ve son olarak C# hem hepsinde olan özellikleri hemde Java ’da olmayan uyumlu çalışma desteğini almıştır.
.NET Framework Nedir? ( .NET Çatısı ) ve C# ile Arasındaki Bağlantı...
Makalenin başındada söylediğim gibi C# programlama dili .NET Framework için kod geliştirmek-desteklemek amacı ile tasarlanmıştır. C# dilinde kullanılan ve her programlama dilinde bulunan kütüphaneler aynı zamanda .NET Framework tarafından kullanılan kütüphanelerdir. Yani C# dilini .NET ortamından ayırsanız bile bir biri ile sıkı sıkıya bağlıdır. O yüzden .NET Framework ’ün C# için önemini anlamak çok önemlidir.
.NET Framework bileşen yönelimli uygulamaların geliştirilmesini ve yürütülmesini destekleyen bir ortam tanımlamaktadır. Bu sayede; farklı programlama dilleri, farklı işletim sistemleri ile çalışabilme özelliğine sahiptir. ( Mesala şuanda C# kodlarıın unix sistemlerde çalışabilmesi için yapılan uygulamalardan biri www.go-mono.com )
.NET Framework ve C# ’ın arasındaki en önemli iki ilişki : Ortak dil çalışma zamanı ( CLR - Common Language Runtime ) ve .NET sınıf kütühanesidir.
CLR - Common Language Runtime : Programların çalışmasını idare eden, programların taşınabilirliğini sağlayan, aynı zamanda diğer avantajlarının dışında karışık dilde programlamayı destekleyen ve güvenliği sağlayan parçadır.
.NET Sınıf Kütüphanesi : Programınızın çalışma ortamına erişmesine imkan veren parçadır. Mesala bu sınıf kütüphanesi tanımlanan özelliklerle kısıtlı kalırsa kodlarınız .NET ortamında rahatça çalışır.
İşte bu nokta C# için en önemli özelliklerden biridir. Aynı kodun her yerde çalışması...
Son Sözler...
Sonuç olarak; ben size güvenilir kaynaklardan okuduğum, araştırdığım ve öğrendiğim bilgiler doğrultusunda C# programlama dili ve ona kadar gelinen tarihte oluşan olayları anlattım. Her programlama dili bir öncekinden pek çok özellik almış ve yenilerini ekleyerek programcılara yeni olanaklar sağlamıştır. Bu sayede dilin yaygınlaşması ve çabuk adaptasyonu sağlanmıştır.
C# : Platform bağımsız oluşu ve aynı zamanda Microsoft ’un .NET strateji açısından kritik öneme sahip bir dil olmasından dolayı gelecek vaadeden ve kullanıcıların mutlaka dikkate alması gereken bir dil.
" Bilişim tarihi boyunca programlama dilleri, programlama ortamındaki değişiklikleri ve programlama hakkındaki düşüncelerimizde ve programlamaya yaklaşımımızdaki değişiklikleri barındıracak şekilde gelişmiştir. C# da bir istisna değildir. Süregelen geliştirme, adaptasyon ve yenilik sürecinde C# halihazırda ön sırada yer almaktadır. C#, her profesyonel programcının göz ardı etmekten kaçınacağı bir dildir. " ( Herbert Schildt )
Alıntı : The Complete Reference C# ( Yazar : Herbert Schildt )
Arkadaşlar Bugünlük Bu kadar Paylaşıyorum Yarın İtibari ile konuya ufak ufak eklentileri koycağım herkese saygılar.
http://www.dosya.tc/ders1_2533.rar.html ( Birinci Ders )
C# Örnek Program Kodları 228 adet
C# Örnek Program Kodları ve Projeler 228 Adet
RAPIDSHARE&HOTFILE
Kodlamalarin içinde projr dosyalarıda bulunmaktadir. Ayrıca C# için her nesneye ait örnek kodlamayı bu örnekler içinde görebilirsiniz. Örnek olarak bazı hazır kodlama başlıklarını asağıda görebilirsiniz...
Ornekler:
AcceptCancelButton.rar
AileYardımı.rar
Alarm.rar
Anchor.rar
ARGB.rar
Array_Diziİşlemleri.rar
BinaryDecimalCevir.rar
Binlik_Ayır.rar
BirdenFazlaDeğerGönderme.rar
Break.rar
BringToFront.rar
CheckButton.rar
Checked_ListBox.rar
Check_Box.rar
Class_MotorluAraç.rar
Class_Sifre.rar
ComboBox_ElemanEkleme.rar
ComboBox_ÇokSayıdaBilgiGösterme.rar
Combo_Box.rar
ContextMenu_Ornek.rar
ContextMenu_Ornek_2.rar
CultureInfo_Liste.rar
DataGrid_1.rar
DataGrid_Expression.rar
DataGrid_Satış.rar
DataGrid_SütunAyarları.rar
DateAddDays.rar
.
...v.s.
DownloadBR
Bildigimiz gibi her programlama dilinde DLL yaratabilir ve bunları kullanabiliriz.Bu dökumanda c# da dll yaratma ve kullanmayı anlatmaya calısacagım.Platform olarak Visual Studio 2005 kullandım
Vs de dll ler classlibrary oalrak gecmektedir.Önce classlibrary secerek yeni bir proje acalım.Resimdede gördügümüz gibi.
C# da dll dosyaları içinde main fonksiyonu bulunmamktadır dll lerin içinde fonsiyonlar indeksleyiciler sınıflar olusturarak bunları programımızda cagırabiliriz.Simdi olusturdugumuz dll dosyası içinde topla adında bir fonksiyon yaratalım.YAratılan fonksionda ekrandan iki sayı alıp bun ları toplayıp geri döndürelim.Asagıda kodlarını görmekteyiz
--------------------------------------------------------------------- using System;
using System.Collections.Generic;
using System.Text;
namespace ClassLibrary1
{
public class Class1
{
public int topla(){
int a,b;
Console.WriteLine("2 sayi giriniz");
a=Convert.ToInt32(Console.ReadLine());
b=Convert.ToInt32(Console.ReadLine());
return a+b;
}
}
}
---------------------------------------------------------------------
Burda dikkat etmemiz gereken bi hususda console.readline(); fonksiyonun string aldıgıdır.Alınan deger string oldugu için bunları convert edip görüldügü gibi degişkenlerimize atmıs bulunuyoruz.
Dll dosyamızı build edelim ve kaydedelim.
Şimdi ise bir console uygulaması acalım ve bu uygulamada dll dosyamızı kullanalım.
Actıgımız console uygulamasına dll eklemek için solutıon explorer kısmında daki projemizi sag tıklayıp add reference diyelim daha sonra browse diyip kaydetdigimiz
dll dosyamızı ekleyelim..Resimdeki gibi..
Simdi dll limiz eklenmiş oldu son olarakda console uygulamamıza using ClassLibrary1 namespacemizi ekleyelim ve bölece programa dll dosyamızı tanıtmıs olduk.
---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using ClassLibrary1;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int sonuc=0;
Class1 yap = new Class1();
sonuc=yap.topla();
Console.WriteLine(sonuc);
}
}
}
---------------------------------------------------------------------
Simdi dll limizdeki topla fonksiyonunu kulanabilmemiz için dll içindeki sınıfımızdan nesne yaratamak zorundayız.Kodda görüldügü gibi class1 den yap adında bir nesne olusturuyoruz.Daha sonra bu nesne aracılıgı ile dll lemizdeki topla fonksiyonunu cagırıyoruz .Topla fonksiyonu integer döndürdüğü için bunu bir degişkene atamak zorundayız.Daha sonra yazdırma işlemini yapıyoruz.
Programımızı build edip daha sonra calıstırıyoruz.Program 2 sayı istiyor ve işte sonuc..
# Programlama Dili, .NET Framework
C# Programlama Dili, .NET Framework ve Programlama Dilleri Tarihinde Önemli Adımlar
" Biz programcılar, daha iyinin arayışı içinde olan bir kitleyiz; daima yazdığımız programların performansını, verimliliğini ve taşınabilirliğini arttırmanın yollarını ararız. Ayrıca kullandığımız araçlardan da pek çok şey bekleriz. Özellikle de programlama dilleri söz konusu olduğunda... Pek çok programlama dili mevcuttur, fakat sadece bir kaçı gerçekten müthiştir. Bir programlama dilinin müthiş olması için, güçlü ve aynı zamanda esnek olması gerekir. Söz dizimi kısa ve öz, ama net olmalıdır. Önümüze engel çıkarmadan doğru kodun üretilmesini kolaylaştırmalıdır. En son teknoloji özelliklerini desteklemelidir, fakat sonu bir yere varmayacak modalardan kaçınmalıdır. Son olarak, müthiş bir programlama dili neredeyse özet sayılabilecek bir niteliğe daha sahip olmalıdır: Dilin, yaptığımız işe uygun olduğunu hissedebilmeliyiz. C# işte böyle bir dildir. "
Ne güzelde tanımlamış Herbert Schildt " C# Complete Reference " kitabında; programlama dillerinde iyiyi. Zira bu gün için bir uygulamayı çok farklı programlama dilleri ile gerçekleştirebilirsiniz. Tabi son cümle için hala tereddütlerim olduğunu söylemek istiyorum.
Bu kısa ama etkili olduğunu düşündüğüm girişten sonra herkese merhabalar. Bu makalede özellikle Microsoft ’un son yıllardaki en büyük adımlarından biri olan C# ( C Sharp ) programlama dilinin gelişimi ve öncesindeki programlama dillerine ilişkin bilgiler vermeye çalışacam. Kaynak olarak C# The Complete Reference ( Herbert Schildt ) kitabını baz aldım. Zira Microsoft C# Ürün Müdürü Prashant Sridharan bu kitap için " Herbert Schildt, her programcının sahip olması gereken bir kaynak hazırlamış. " diyor. Eeee... " kimse yoğurdum kara demez " elbette
C# Nedir? , Ne değildir?
C# ; Microsoft ’un gelecek vaadeden " .NET ortamının çatısını oluşturan .Net Framework ’ü " desteklemek-geliştirmek amacıyla geliştirdiği bir programlama dilidir. C# ’ın baş mimarı olan Anders Hejlsberg aynı zamanda 80 ’li yıllarda büyük başarı sağlayan Turbo Pascal ’ı yazan bir programlama dehasıdır. Bu faktörlerin yanında C# çoğu otorite tarafından kabul edilen ve dünyanın en " başarılı " iki dili olan : C ve C++ ’ tan türetilmiştir.
Kişisel olarak C# dili ile tanışmam , şuan için boş zamanlarımda geliştirmeye çalıştığım CSL projesi ile başladı. Özellikle bir programlama dili kullanarak başka bir alanda bir programlama dili geliştirmek çok zordur. CSL projesinin ilk zamanlarında çektiğim zorluklardan sonra, uzun zaman önce yazdığım " C++ ın yaratıcısı Bjarne Stroustrup ile röpörtaj " makalesi aklıma geldi. Makalede bahsi geçen C# üzerinde kısa bir araştırma yaptıktan sonra ozamanlar sadece boş zamanlarımı değerlendirmek için yaptığım bu projede C# ’ın çok daha etkili olduğunu düşünüp CSL ’i C++ yerine C# ile yazmayı uygun gördüm.
Programlama Dilleri Tarihinde Önemli Adımlar
60 ’ lı yıllarda özellikle Pascal gibi önemli başarılar elde etmiş programlama dilleri, yapısal programlama ( structured programming ) mantığı ile oldukça büyük ilerlemeler kaydetti. 70 ’li yıllara gelindiğinde Dennis Ritchie Unix İşletim sistemi kullanan bir DEC bilgisayar üzerinde " C " dilini yarattı. C programlama dili ozaman için büyük bir adımdı ve 80 ’li yıllarda en yaygın kullanılan programlama dili haline geldi. Fakat gelişen teknoloji beraberinde daha gelişmiş programları ve komplike sistemleri ortaya çıkardı. Çok kısa bir süre sonrada C dili artık yetersiz gelmekteydi.
1979 yılında nesne yönelimli programlama ( OOP, Object Oriented Programming ) yöntemi ilk kez kayda değer bir hale geldi. Bu değer Bjarne Stroustrup ’un yazdığı C++ diliydi. C++ aslında tamamen C dili üzerine kurulmuş, yani onun tüm özelliklerini içeren ve ayrıca nesne yönelimli programlama yöntemi kazandırılmış bir dildi. Bu sayede C++ dili C ye göre hem çok daha etkili oldu hemde kullanıcıların dili öğrenmek için harcayağı zamandan tasarruf sağlayarak yumuşak bir geçiş ve dolayısıyla yaygınlaşmasında avantajlar sağladı. Sonraki 10 yıl sonunda C++ artık dünyada en çok kullanılan ve en iyi programlama dili olarak gösteriliyordu.
" C++ ’ın keşfinin bir programlama dili ortaya çıkarmaya yönelik bir girişim olmadığını anlamak kritik bir öneme sahiptir. Bilakis, C++ zaten çok başarılı bir dilin gelişmiş haliydi. Dillerin gelişimi ile ilgili bu yaklaşım - mevcut bir dil ile başlayıp, onu daha da ileriye taşımak - bu gün bile devam etmekte olan bir trendin öncüsü oldu. " ( Herbert Schildt )
Programlama dillerindeki bu gelişmelerden sonra en büyük adım Java ile oldu. 1991 ’de Sun Microsystems tarafından geliştirilen dilin arkasındaki en güçlü isim James Gosling ’di. Java söz dizimi ve felsefesi C++ ’tan alınan yapısal ve nesne yönelimli bir dildir. Özellikle Internet ’in oluşması ile Java büyük bir hız kazandı. Aslında bunun nedeni çok basitti. O zamana kadar programlama dilleri ile yazılan programların çoğu belirli işletim sistemleri ve işlemciler için yazılıyordu. Yani kodun taşınılabilirliği karşısında Java en iyi yöntemdi. Java ’nın sunduğu platform bağımsız ( cross-platform ) teknolojisi bir anda büyük bir çevre tarafından kabul gördü. Yazılımcılar sistemlere göre program geliştirmektense yazılan kodun heryerde kullanılmasını tercih ettiler. Elbette internete bağlı birbirinden farklı bu sistemlerin ortak veya ayrı noktalarda aynı uygulamaları kullanabilmesi için.... yada her nasıl ise öyle olması için
" Gosling ve arkadaşları yeni ve yenilikçi özelliklere odaklanmakta serbesttiler. Tıpkı Stroustrup ’un C++ ’ı geliştirirken " tekerleği yeniden icat etmesine " gerek olmadığı gibi, Gosling ’ın de Java ’yı geliştirirken bütünüyle bir dil icat etmesi gerekmiyordu. İlaveten Java ’nın ortaya çıkışıyla C ve C++ yeni bilgisayar dillerinin üzerine inşa edileceği onaylanmış bir katman oluyordu. " ( Herbert Schildt )
Tabi java ’nın da eksik yönleri vardı...
Java platform bağımsız bir kodlama için JVM ( Java Virtual Machine ) kullanıyordu. Java kaynak kodu " bytecode " denilen bir koda çeviriyor, ve gerektiğinde JVM ile programı çalıştırıyordu. Yani JVM ’nin olduğu her sistemde her kod aynı muameleyi görüyor, böylece kodun işletim sistemi veya işlemciye göre tekrar derlenmesine gerek kalmıyordu. Fakat bu aynı zamanda Java ’nın diğer programlama dilleri ile uyum içinde çalışması ( cross-language interoperability ) için dezavantaj oluşturuyordu.
İşte bu noktada bir gereksinim ortaya çıkıyordu...
C# ’ın Doğuşu
1990 ’lı yılların sonlarına doğru Microsoft ’un programlama dehası Anders Hejlsberg C# dilini yarattı. 2000 yılının ortalarında C# ’ın ilk alfa versiyonu piyasaya çıktı. C# programlama dili ; C, C++ ve Java ile bağlantılı bir dil olarak yapıldı. Bunun bir tesadüf olduğunu düşünmeyin. Bunlar dünyada en yaygın kullanılan ve sevilen dillerden üçüdür. Hejlsberg ’de aynı Stroustrup ve Gosling gibi tekerleği yeniden icat etmektense mevcut bir dili geliştirmeyi uygun görmüştür.
Eğer bu diller arasında bir bağlantı kurmak gerekirse. C# programlama dili; C dilinin söz dizimini ve C++ dilinin nesne yönelimli programlama yöntemlerini ve tekniklerini almıştır.
C# ’ın Java ile olan ilişkisi ise özel bir durumdur. Zira C# ’ta Java gibi C ve C++ dillerinden özellikler almış ama aynı zamanda Java gibi platform bağımsız kod amaçlı tasarlanmıştır. Yani C# dili, Java dilinden türememiştir. En iyi tarafı ise C, C++, C# veya Java dillerinden birinde iyi olmanız diğer tüm dillerdede size büyük kolaylıklar sağlar.
Tüm bu diğer dillerle olan bağlantısına rağmen C# beraberinde pek çok yenilik, özellik getirmiştir. Zaten diğer başarılı dillerin doğuşunda da aynı trend yaşanmıştır. İşte bu noktada C# : bileşen yönelimli bir dil ( component-oriented language ) olarak nitelendirilmiştir. Zira C# bileşenleri yazmak için bütünleşik destek içermektedir. Bunların içinde en önemlisi; karışık dillerin olduğu bir ortamda çalışabilme becerisidir.
Dikkat ettiyseniz, birbirinden türeyen her dil bir önceki dilde eksik olan bir özelliği tamamlarayarak ilk adımları atmıştır. C++; C deki nesne eksikliğini, Java; C++ daki platform bağımsızlık özelliğini ve son olarak C# hem hepsinde olan özellikleri hemde Java ’da olmayan uyumlu çalışma desteğini almıştır.
.NET Framework Nedir? ( .NET Çatısı ) ve C# ile Arasındaki Bağlantı...
Makalenin başındada söylediğim gibi C# programlama dili .NET Framework için kod geliştirmek-desteklemek amacı ile tasarlanmıştır. C# dilinde kullanılan ve her programlama dilinde bulunan kütüphaneler aynı zamanda .NET Framework tarafından kullanılan kütüphanelerdir. Yani C# dilini .NET ortamından ayırsanız bile bir biri ile sıkı sıkıya bağlıdır. O yüzden .NET Framework ’ün C# için önemini anlamak çok önemlidir.
.NET Framework bileşen yönelimli uygulamaların geliştirilmesini ve yürütülmesini destekleyen bir ortam tanımlamaktadır. Bu sayede; farklı programlama dilleri, farklı işletim sistemleri ile çalışabilme özelliğine sahiptir. ( Mesala şuanda C# kodlarıın unix sistemlerde çalışabilmesi için yapılan uygulamalardan biri www.go-mono.com )
.NET Framework ve C# ’ın arasındaki en önemli iki ilişki : Ortak dil çalışma zamanı ( CLR - Common Language Runtime ) ve .NET sınıf kütühanesidir.
CLR - Common Language Runtime : Programların çalışmasını idare eden, programların taşınabilirliğini sağlayan, aynı zamanda diğer avantajlarının dışında karışık dilde programlamayı destekleyen ve güvenliği sağlayan parçadır.
.NET Sınıf Kütüphanesi : Programınızın çalışma ortamına erişmesine imkan veren parçadır. Mesala bu sınıf kütüphanesi tanımlanan özelliklerle kısıtlı kalırsa kodlarınız .NET ortamında rahatça çalışır.
İşte bu nokta C# için en önemli özelliklerden biridir. Aynı kodun her yerde çalışması...
Son Sözler...
Sonuç olarak; ben size güvenilir kaynaklardan okuduğum, araştırdığım ve öğrendiğim bilgiler doğrultusunda C# programlama dili ve ona kadar gelinen tarihte oluşan olayları anlattım. Her programlama dili bir öncekinden pek çok özellik almış ve yenilerini ekleyerek programcılara yeni olanaklar sağlamıştır. Bu sayede dilin yaygınlaşması ve çabuk adaptasyonu sağlanmıştır.
C# : Platform bağımsız oluşu ve aynı zamanda Microsoft ’un .NET strateji açısından kritik öneme sahip bir dil olmasından dolayı gelecek vaadeden ve kullanıcıların mutlaka dikkate alması gereken bir dil.
" Bilişim tarihi boyunca programlama dilleri, programlama ortamındaki değişiklikleri ve programlama hakkındaki düşüncelerimizde ve programlamaya yaklaşımımızdaki değişiklikleri barındıracak şekilde gelişmiştir. C# da bir istisna değildir. Süregelen geliştirme, adaptasyon ve yenilik sürecinde C# halihazırda ön sırada yer almaktadır. C#, her profesyonel programcının göz ardı etmekten kaçınacağı bir dildir. " ( Herbert Schildt )
Alıntı : The Complete Reference C# ( Yazar : Herbert Schildt )
Arkadaşlar Bugünlük Bu kadar Paylaşıyorum Yarın İtibari ile konuya ufak ufak eklentileri koycağım herkese saygılar.