Home / Yazılım / C# Nedir? .NET Nedir? Java ile Karşılaştırma

C# Nedir? .NET Nedir? Java ile Karşılaştırma

.NET Nedir?

.NET Microsoft’un yeni kuşak bir uygulama geliştirme ve çalıştırma ortamıdır.

.NET’in Tarihsel Gelişimi

.NET’in resmi duyurusu 2000 yılında yapıldı. İlk versiyonu 2002’de çıktı (Framework 1.0). Sonraki versiyon 2003’te piyasaya sürüldü (Framework 1.1). Sonra 2005’te Framework 2.0 çıktı. Onu 2007’de Framework 3.0 ve 2008’de Framework 3.5 izledi. 2010’da Framework 4.0, 2012’de Framework 4.5 piyasaya sürüldü. Halen Framework 5.0 üzerinde çalışılmaktadır.

.NET’in Standardı

.NET ortamı ECMA ve ISO tarafından standardize edilmiştir. Bu ortamın standardı ECMA-335 CLI (Common Language Infrastructure) ismiyle oluşturulmuştur. .NET bir CLI gerçekleştirimidir (implementasyonudur). Aynı ortam UNIX/Linux sistemlerinde Mono ismiyle gerçekleştirilmiştir. Bunun dışında Portable.NET, Rotor projeleri de vardır.

C# Nedir?

C# ismindeki # müzikteki diyez işaretinden gelmektedir. C# sırf .NET ortamı için düşünülmüş ve tasarlanmış bir programlama dilidir. C# eski Borland çalışanı Anders Hejlsberg ve 4 arkadaşı taarafından tasarlanmıştır. C# “nesne yönelimli”, fonksiyonel özellikleri olan modern bir dildir. C# büyük ölçüde Java’dan kopya çekilmiş fakat Java’dan çok daha iyileştirilmiştir. C++’a biraz daha yaklaştırılmıştır.

.NET’in Temel Özellikleri

  1. Arakodlu Çalışma Sistemi: C, C++, Pascal gibi dillerde proramı derleyip .exe dosya elde ettiğimizde bu dosyanın içerisinde Microişlemcinin doğrudan çalıştırabileceği Makine kodları bulunur. Halbuki C#’ta bir programı derlediğimizde oluşan .exe’nin içerisinde hiçbir mikroişlemcinin dili olmayan yapay bir arakod bulunur. Bu arakod doğrudan çalışmaz. .NET framework tarafından gerçek Makine komutlarına dönüştürülerek çalışır. Bu arakoda CIL (Common Language Infrastructure) denilmektedir. Arakod içeren bir program çalıştırılmak istendiğinde .NET’in ismine CLR (Common Language Runtime) denilen alt sistemi devreye girer. Önce arakod CLR tarafından gerçek makine komutlarına dönüştürülür ve çalıştırılır. Arakodun gerçek makine koduna dönüştürülmesi sürecine JIT derlemesi (Just in Time Compilation) denilmektedir. JIT işlemi sırasında Microsoft’un verilerine göre %18 civarında bir kayıp söz konusudur. Pekiyi arakodlu çalışmanın ne avantajları vardır? Bu sayede programlar platform bağımsız bir biçimde yazılıp çalıştırılabilir. Yani Windows’ta oluşturduğumuz bir .exe program başka bir sisteme götürülerek (tabi orada CLI ortamının kurulu olması gerekir) çalıştırılabilir. C/C++ gibi dillerde üretilen doğal kodlar hem işlemciye hemde işletim sistemine bağlıdır. .NET için üretilen CIL kodları giçbirine bağlı değildir.
  2. Geniş Bir Sınıf Kütüphanesi: .NET’in geniş ve ortak bir sınıf kütüphanesi vardır. Buna Framework Class Library (FCL) denilmektedir. Kütüphanenin çeşitli bölümleri çeşitli farklı isimlerle anılır. Örneğin veritabanı işlemlerine işlemleri için kullanılan sınıflara ADO.NET, Web sayfası yapmak için kullanılan sınıflara ASP.NET, gibi…
  3. Dillerarası Entegraston (Language Interoperability): Bir dilde yazılmış bir kodun diğer bir dilden kullanılması her zaman sorunlu bir konudur. Örneğin C++’ta yazılan kodun VB’den kullanılması gibi. Microsoft bunun için COM (Component Object Model) isimli bir arayüz oluşturmuştu. Böylece COM standartlarına uygun olarak yazılmış olan bir kod yine bu standardı destekleyen bir dilden çağrılabiliyordu. COM’ların pek çok problemi de vardır. Ve bu sistem hala kullanılmaktadır. .NET’te aynı arakodu üreten birden fazla dil vardır:
    1. C#
    2. C++/CLI (C++’ın .NET’leştirilmiş versiyonu)
    3. VB.NET (Klasik VB’nin .NET’leştirilmiş biçimi)
    4. J# (Java sentaksıyla .NET kullanımı)
    5. F# (Microsoft’un fonksiyonel yeni dili. Fakat amacı farklı. C# ile rekabet halinde değil)
      Bu dillerin hepsi aynı arakodu ürettiği için birinde yazılan kod diğerinde rahatça kullanılabilmektedir. Yani örneğin bir projenin bir parçası VB.NET ile diğer parçası C# ile yazılabilir.
      CLI ortamında pek çok dil kullanılabiliyorsa da bu ortamın birinci dili C#’tır. Çünkü C# sıfırdan bu ortamın için tasarlanmıştır.
  4. Hızlı Uygulama Geliştirme Ortamı (Rapid Application Development): .NET bir hızlı uygulama geliştirme ortamı sunar. Bunun için görsel araçlardan da faydalanılır. Öğrenilmesi nispeten daha kolaydır.
  5. Güvenli Bir Çalışma Ortamı: .NET’te yazılmış olan programların sisteme zarar verme olasılıkları çok daha azdır. Program yüzünden makinada problem çıkma olasılığı (birtakım bilgilerin bozulması vs.) çok daha azdır.

Java mı .NET mi?

Java hem programlama dilinin ismidir hem de ortamın (platformun) ismidir. Bu nedenle konuşurken “Java Programlama Dili” ya da “Java Platformu” demek gerekir. Halbuki .NET ortamın ismidir, dilin ismi C#’tır. Java 90’ların ilk yarısında çıkmış olmasına karşın .NET 200’lerin ilk yarısında çıkmıştır. Dolayısıyla arada 10 seneye yakın zaman farkı vardır. Java daha yaygın kullanılmaktadır. Java ortamıyla .NET ortamı tamamen benzer amaçlar için kullanılır. Bu durumda bu iki ortam rekabet halindedir. Fakat dil olarak C# kesinlikle Java’dan çok daha iyidir. İki platformda da işsiz kalınmaz. .NET daha çok Microsoft’u çağrıştırdığı için açık kaynak kodu destekleyen grupların gönlü daha çok Java’dadır. Fakat Java’nın kontrolü de Oracle şirketine geçmiştir. .NET Java’dan daha derli toplu bir ortamdır.

.NET Ortamı Nasıl Kurulur?

Microsoft .NET’i Windows XP’nin belli bir sürümüyle birlikte Windows’un bir parçası haline getirmiştir. Yani Windows kurulduğunda .NET Framework de kurulmuş olmaktadır. Tabi biz bunu silip yeni versiyonu kurabiliriz. .NET Framework şu biçimlerde kurulabilmektedir:

  • Visual Studio IDE’sini kurduğumuzda zaten .NET ortamı da kurulmuş olur.
  • Microsoft’un Web sayfasına girilip .NET redistributable Package indirilerek kurulabilir.

Programlama Dillerinin Tarihsel Gelişimi

Programa dilleri hep başka dillerden alıntılar yaparak ve yeni birtakım özellikler ekleyerek geliştirilmiştir. Ağacın tepesinde Fortran vardır (1954-1957). Fortran Dünyanın ilk yüksek seviyeli dilidir. Fortran’ı Algol ve Cobol dilleri izlemiştir. C Programlama Dili 1970 yılında tasarlanmıştır. Java 90’ların ilk yarısında C# 2000’lerin ilk yarısında kullanıma girmiştir.

Programlama Dillerinin Sınıflandırılması

Programlama Dillerini 3 biçimde sınıflandırabiliriz:
1) Seviyelerine Göre Sınıflandırma
2) Kullanım Alanlarına Göre Sınıflandırma
3) Programlama Modeline Göre Sınıflandırma

Seviyelerine Göre Sınıflandırma

Seviye (level) bir programlama dilinin insan algılayışına yakınlığının bir ölçüsüdür. Yüksek seviyeli diller kolay öğrenilebilen, insana yakın dillerdir. Alçak seviyeli diller makinanın doğal çalışmasına daha yakındır. Olabilecek en aşağı seviyeli dil saf Makine dilidir.

Kullanım Alanlarına Göre Sınıflandırma

Genel amaçlı diller, Bilimsel ve mühendislik diller, Oyun ve animasyon dilleri, Yapay seka dilleri, Web dilleri, Sistem programlama dilleri vs…

Programlama Modeline Göre Sınıflandırma

Bir programı yazarken kullanılan genel model (paradigm) önemlidir. Bazı dillerde sınıf yoktur. Program fonksiyonların birbirlerini çağırmasıyla yazılır. Bu tekniğe prosedürel model denir. Bazı dillerde sınıflar vardır. Program sınıflar kullanılarak yazılır. Bu modele nesne yönelimli (object oriented) model denir. Bazı dillerde program sanki formül yazılıyormuş gibi yazılır. Bunlara fonksiyonel (functional) diller denir. Bazı dillerde program tamamen ya da kısmen göresel olarak oluşturulur. Bunlara görsel (visual) model denir. Bazıları ise birden fazla modeli desteklerler. Bunlara çok modelli (multiparadigm) diller denir.

C# Nasıl Bir Dildir?

C# genel amaçlı, yapay zeka, Web programlama, bilimsel ve mühendislik alanlarda kullanılabilen nesne yönelimli, fonksiyonel özellikleri olan, yüksek seviyeli bir programlama dilidir.
Anahtar Notlar: Hangi programlama dilinin yüzde kaç kullanıldığına ilişkin istatistikleri yapan Tiobe isimli bir şirket vardır. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Anahtar Notlar: Geniş bir sınıflandırma için http://en.wikipedia.org/wiki/List_of_programming_languages_by_type linkini inceleyiniz.

Önemli Temel Kavramlar

Çevirici Program, Derleyici ve Yorumlayıcı Kavramları

Bir programlama dilinde yazılmış olan programı eşdeğer olarak başka bir dile dönüştüren programlara çevirici programlar (translater) denir. Çevirici programlarda kaynal dil (source language) ve hedef dil (target language) söz konusudur. Örneğin C#’ı VB’ye dönüştüren program bir çevirici programdır. Burada kaynak dil C#, hedef dil VB’dir. Bir çevirici programda hedef dil alçak seviyeli bir dilse (saf Makine dili, sembolik Makine dili ya da arakod) bu tür çevirici programlara derleyici (compiler) denilmektedir. CLR’nin arakodu gerçek Makine koduna dönüştürme faaliyeti de bir derleme faaliyedir.
Bazı programlar hiç kod üretmeden programları doğrudan çalıştırırlar. Bunlara yorumlayıcı (interpreter) denilmektedir. Bazı dillerle yalnızca derleyicilerle (C, C++, C#, Java), bazı dillerle yalnızca yalnızca yorumlayıcılarla (perl, php, …), bazı dillerle de hem derleyicilerle hem de yorumlayıcılarla (Basic, Matlab) çalışılır.

İşletim Sistemi Kavramı

İşletim sistemi makinanın donanımını yöneten, bilgisayar ile kullanıcı arasında köprü kuran temel bir sistem 3
yazılımıdır. Örneğin Windows, Mac OS X, Linux, Android, IOS gibi…
İşletim sistemlerini masaüstü ve mobil olmak üzere ikiye ayırabiliriz.

  • Microsoft Firmasının Masaüstü sistemi –> Windows, Mobil sistemi –> Windows Mobile
  • Apple Firmasının Masaüstü sistemi –> Mac OS X, Mobil sistemi –> IOS
  • Linux açık kaynak kodlu masaüstü sistemdir. Onun mobile versiyonuna “Embedded Linux” denilmektedir.
  • Android Linux kod temeline dayanan Google tarafından finanse edilen açık kaynak kodlu mobil bir işletim sistemidir.
  • Blackberry RIM firmasının mobil işletim sistemidir.

Mobil Sistemlerde Kullanılan Programlama Dilleri ve Ortamları

Her mobil sistemin kendi öz bir geliştirme dili ve ortamı vardır:
Microsoft Windows Mobile —-> : .NET ve C#
Apple IOS —> Cocoa ve Objective-C/Swift
Android —> Java
C# biliyorsanız, IOS’ta Mono Touch, Android’te Monodroid kullanılarak program yazılabilir.

Açık ya da Özgür Yazılım ve Mülkiyete Sahip Yazılım

Özgür yazılımın (free software) ve açık kaynak (open source) yazılımın aralarında bazı farklar olmasına karşın temel prensipleri aynıdır. Bu prensipler:

  • Bedavadır.
  • Kaynak kod sahiplenilmez, kaynak kod üzerinde ekleme yapılırsa bu kapatılamaz. Onun da açılması gerekir.
  • Çoğaltılabilir, izin almadan kullanılabilir.
    Bunun tersi mülkiyete bağlı (propriatery) yazılımdır. Bunlar para ödenerek kullanılır. Çoğaltılamazlar.

IDE (Integrated Development Environment) Kavramı

Derleyiciler komut satırından çalıştırılan basit bir arayüze sahip programlardır. Aslında teorik olarak dünyanın en büyük C# programı notepad gibi bir editörde yazılı, komut satırından csc.exe ile derlenebilir. Fakat yazılım geliştirmeyi kolaylaştırmak için ismine IDE denilen özel yazılımlar geliştirilmiştir. IDE’lerin içerisinde editörler, yardımcı araçlar, test araçları vs. bulunur. Microsoft’un ünlü IDE’si “Visual Studio” isimli IDE’dir. Bu IDE paralıdır. Fakat bedava versiyonu “Visual Studio Express Edition” biçiminde verilmektedir. Ve bu kursta kullanılabilecek yetenektedir. Apple’ın Xcode isimli bir IDE’si vardır. Eclipse, Netbeans gibi open source IDE’ler de vardır. Moo’da “Mono Develop” isimli bir IDE bedava olarak kullanılabilir.

Rate this post

One comment

  1. İyi bir derleme ve içerik yazısı olmuş. Teşekkür ederim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Mualla Premium Chocolate