NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

C# ( C SHARP ) NEDİR?

C#: Microsoftun en güncel ve en çok yatırım yaptığı programlama dillerinden birisidir. İlk çıkışı 2000 yılına dayanmaktadır. İlk olarak Alpha sürümü yayınlanmıştır. Daha sonra Beta ve son olarak blitz oldu. Daha sonra C++ programlama dili çıkartılmıştır ve C# yeniden tasarlandı. Günümüzde C# programlama dili ile bir çok uygulamalar geliştirilebilir.

C# Programlama Dili (si şarp şeklinde telaffuz edilir), Microsoft'un geliştirmiş olduğu yeni nesil programlama dilidir. Yine Microsoft tarafından geliştirilmiş .NET Teknolojisi için geliştirilmiş dillerden biridir.

Microsoft tarafından geliştirilmiş olsa da ECMA ve ISO standartları altına alınmıştır.

Bu dilin tasarlanmasına Pascal, Delphi derleyicileri ve J++ programlama dilinin tasarımlarıyla bilinen Anders Hejlsberg liderlik etmiştir.

Birçok alanda Java'yı kendisine örnek alır ve C# da java gibi C ve C++ kod sözdizimine benzer bir kod yapısındadır. .NET kütüphanelerini kullanmak amacıyla yazılan programların çalıştığı bilgisayarlarda uyumlu bir kütüphanenin ve yorumlayıcının bulunması gereklidir. Bu, Microsoft'un .Net Framework'u olabileceği gibi ECMA standartlarına uygun herhangi bir kütüphane ve yorumlayıcı da olabilir. Yaygın diğer kütüphanelere örnek olarak Portable.Net ve Mono verilebilir.

Özellikle nesne yönelimli programlama kavramının gelişmesine katkıda bulunan en aktif programlama dillerinden biridir .NET platformunun anadili olduğu bazı kesimler tarafından kabul görse de bazıları bunun doğru olmadığını savunur.

C#, .NET orta seviyeli programlama dillerindendir. Yani hem makine diline hem de insan algısına eşit seviyededir. Buradaki orta ifadesi dilin gücünü değil makine dili ile günlük konuşma diline olan mesafesini göstermektedir. Örneğin; Visual Basic .NET (VB.NET) yüksek seviyeli bir dildir dersek bu, dilin insanların günlük yaşantılarında konuşma biçimine yakın şekilde yazıldığını ifade etmektedir. Dolayısıyla VB.NET, C#.NET'ten daha güçlü bir dildir diyemeyiz. Programın çalışması istenen bilgisayarlarda framework kurulu olması gerekmektedir. (Windows 7 ve Windows Vista'da .NET Framework kuruludur)

Tasarım hedefleri:
ECMA tarafından C# dilinin tasarım hedefleri şöyle sıralanır:
C# basit, modern, genel-amaçlı, nesneye yönelik programlama dili olarak tasarlanmıştır.
Çünkü yazılımın sağlamlılığı, güvenirliliği ve programcıların üretkenliliği önemlidir. C# yazılım dili, güçlü tipleme kontrolü (strong type checking), dizin sınırlar kontrolü (array bounds checking), tanımlanmamış değişkenlerin kullanım tespiti, (source code portability), ve otomatik artık veri toplama gibi özelliklerine sahiptir.
Programcı portatifliği özellikle C ve C++ dilleri ile tecrübesi olanlar için çok önemlidir.
Enternasyonal hale koymak için verilen destek çok önemlidir.
C# programlama dili sunucu ve gömülü sistemler için tasarlanmıştır. Bununla birlikte C# programlama dili en basit işlevselli fonksiyondan işletim sistemini kullanan en teferruatlısına kadar kapsamaktadır.
C# uygulamaları hafıza ve işlemci gereksinimleri ile tutumlu olmak uzere tasarlanmıştır. Buna rağmen C# programlama dili performans açısından C veya assembly dili ile rekabet etmek için tasarlanmamıştır.

Basit bir hesap makinesi örneği:

using System;

class Program
{
int sayi1, sayi2, cevap;
string islem;
static void Main(string[] args)
{
Console.Write("Lütfen ilk tam sayıyı giriniz: ");
sayi1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Lütfen yapacağınız işlemi giriniz (+, -, /, *): ");
islem = Console.ReadLine();
Console.Write("Lütfen ikinci tam sayıyı giriniz: ");
sayi2 = Convert.ToInt32(Console.ReadLine());
switch (islem)
{
case "-":
cevap = sayi1 - sayi2;
break;
case "+":
cevap = sayi1 + sayi2;
break;
case "/":
cevap = sayi1 / sayi2;
break;
case "*":
cevap = sayi1 * sayi2;
break;
default:
cevap = 0;
break;
}
Console.WriteLine(sayi1.ToString() + " " + islem + " " + sayi2.ToString() + " = " + cevap.ToString());
Console.ReadLine();
}
}

Eleştiri:
C# konusunda eleştiriler tabii ki var. En önemlisi using ile hangi referansları kullanacağımızı çok iyi bilmeliyiz. Ayrıca süslü parantez "{}" ve noktalı virgül ";" karakterlerini çok sevmemiz ve asla unutmamamız gerekmektedir.

Performans:
Diğerleri gibi Sanal Makine'ye dayalı dillerden biridir, C# programlama dili direkt yerleşik kod'a derleyen dillerden daha yavaştır.

Platform:
.NET Microsoft uygulama bonservisi Windows üzerinde geçerlidir. Fakat C# programlarını Windows, Linux veya MacOs üzerinde yürüten başka uygulamalar da yer almaktadır.

Güvenlik:
C# sanal makineye dayalı bir dil olduğundan kaynak kodlarının korunması zordur. Kaynak kodları karıştırıp şifreleyen ek uygulamalar ile güvenlik düzeyi artırırsada tam olarak koruma sağlanmaz.

Nesne Yönelimli Programlama (Object Oriented Programming)
C#, Java gibi bir Nesne Yönelimli Programlama (OOP) dilidir. OOP 1960’lardan bugüne yazılım dünyasını etkisine almış bir metodolojidir. 1970 yılından bugüne kadar geliştirilen birçok dil OOP desteğine sahiptir.

OOP temel olarak, ortaya çıktığı güne kadar süregelen programlama mantığını kökten değiştirmiştir. OOP’den önce kullanılan yazılım metodolojisi, Prosedürel Programlama adı ile anılır. Bu metodoloji, belirli bir yönde ilerleyen kodlar ve iş yükünü hafifletmek için ortak işlerin yüklendiği fonksiyonların çağırılması esasına dayalıydı.

Bu metodoloji, yazılım dünyasının uzun süre işini görse de, bazı sıkıntıları da içinde barındırıyordu:
Geliştirilen uygulama parçalanamayan bir bütün halindeydi. Bu yüzden, uygulama üzerinde çalışan her geliştirici; uygulamanın hemen her yapısına hakim olmalıydı.
Bu durum nedeniyle, projelere yeni yazılımcıların katılması önemli bir adaptasyon süreci gerektiriyordu.
Uygulama tek bir bütün halinde olduğu için, ufak değişiklikler uygulamanın farklı noktalarında büyük sorunlara yol açabiliyordu.
Yıllarla birlikte müşteri ihtiyaçları ve donanım kabiliyetleri arttı. Bunun getirisi olarak da, geliştirilen uygulamaların kapsamları ve boyutları büyüdü. Bu aşamada, yukarıda bahsedilen problemler gittikçe artmaya başladı. Başlanan projelerin çoğu istenen sürelerde yetiştirilememeye ve geliştirme zorluklarından ötürü iptal olmaya başladı.
Uygulama maliyetleri giderek artmaya başladı.

Yazılım dünyasında bu çıkmazın aşılması OOP ile sağlanmıştır. OOP ile tüm yazılım anlayışı kökten değişmiştir. 1960’larda OOP fikrini ilk ortaya atan Alan Kay, önerdiği metodolojiyi şu şekilde ifade etmiştir:

Uygulama, nesneler ve onların ilişkileri çerçevesinde belirli bir iş yapmak için geliştirilebilmelidir.
Her nesnenin bir sınıfı olmalıdır ve sınıflar nesnelerin ortak davranışlarını ifade etmelidir.
Nesneler birbirleri ile iletişime geçebilmelidir.
Bunu basitçe, prosedürel programlamada bulunan soyut program geliştirme mantığını rafa kaldırıp, gerçek dünya modellemesi ile program geliştirme çabası olarak da düşünebiliriz. Gerçek dünya modellemesiyle anlatılmak istenen şudur: Bir fabrika örneğini ele alalım. Bu fabrikada işçiler, makineler gibi birçok nesne bulunur ve bu nesnelerin ilişkisi çerçevesinde fabrika çeşitli işler yapıp çıktılar üretebilir. OOP ile programlama mantığında da, bu örnektekine benzer şekilde program kurgulanır. Çeşitli nesneler geliştirilip birbirleriyle ilişkilendirilerek, belirli amaçlara hizmet eden uygulamalar geliştirilir.

Bu yapının önemli getirileri şunlardır: Yazacağınız sınıflar birbirinden bağımsız olarak geliştirilebilir. Bu sayede program böl, parçala, fethet mantığı çerçevesinde çok kolay bir şekilde parçalanır ve her parça ayrı ayrı ele alınabilir. OOP mantığında gerçek dünya algılayışı temel alındığı için bu, anlaşılması çok daha kolay bir yapıdır.

OOP, yapısı gereği kod tekrarlarının önüne geçer (doğru bir şekilde kullanılırsa) ve bu durum, özellikle ilk dönemlerde yazılımcıların hızlı bir şekilde OOP yapılarına geçmesinin temel nedenlerinden biri olmuştur.

Yukarıda değinilen getiriler, projelerin yönetilebilirliğini büyük miktarda artırdığı için daha büyük projeler çok daha az çaba ile yönetilebilir hale gelmiştir. Yine aynı getiriler sayesinde, projeler rahat bir şekilde büyütülebilmiştir. Alttaki grafikte noktalı çizgilerle gösterilen bölümler OOP’nin etkileridir. Yani, OOP ile yazılım kalitesi artmış, bunun yanısıra yazılım maliyetleri düşmüştür.
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.