Göksu Özen
goksu@csharpturk.net

.net Framework

13 Kasım 2009

Bir çok uygulama geliştirme dili var. Bu dillerle yazılmış uygulamaları çalıştırmak için ise farklı platformlar var. .Net Framework, Windows tabanlı uygulamalar geliştirebilmek için farklı programlama dillerinin birlikte çalışabileceği ortak bir geliştirme ortamıdır. Bu ortam hem yazılımları geliştirmek hem de çalıştırmak için gereklidir.

Şekil: .Net Framework yapısı

. Net Framework aşağıdaki bileşenlerden oluşur

  • The Common Language Runtime (CLR) Ortak Dil Çalışma Zamanı
    Uygulamaların çalışabilmesi ve yönetilmesine yardımcı olan, dilden bağımsız bir yazılım geliştirme ve çalışma ortamdır.
  • The Framework Class Libraries (FCL) Framework sınıf kütüphaneleri
    .Net çatısı altındaki dillerin ortak kullanabilecekleri kütüphaneleri barındırır.

. Net ortamında yazılımlarınızı dilden bağımsız olarak geliştirebilirsiniz. Örneğin C# ‘ta yazılmış kod derlendiğinde, derleyiciden çıkan kod önce MSIL ya da IL’e dönüştürülür. Bu MSIL ya da IL dosyası çalıştırılabilir bir kod değildir.

MSIL ya da IL: İçerisinde değişken tanımları, değişkenlerin nasıl saklanacağı, metotların nasıl çalıştırılacağı, aritmetik ve mantıksal işlemler, bellek kullanımı v.s. gibi işlerin nasıl yapılacağını içeren özel tipte kodlar barındıran bir dosyadır.

CLR: Program çalıştırıldığında aradile(MSIL ya da IL) dönüştürülen kodların, çalıştırılabilir koda dönüştürme işini CLR yapar. CLR kodu alıp bulunduğu makinanın işlemcisine ve işletim sisteminin anlayacağı şekle (makine diline) dönüştürür. IL kodu makine diline dönüştürülürken JIT (just in time) derleyiciler devreye girer. CLR makine diline çevrilmiş kodu önbellekte tutarak, daha hızlı çalışmasını da sağlar.

MSIL ya da IL’e dönüştürülen her kod  CLR’nin uygulandığı her ortamda çalıştırılabilir. Yani  bu da kodun .Net Framework’ün kurulabileceği her platformda çalıştırılabileceği anlamına gelir.

Kodlar Makine Diline dönüştürülecekse niçin Aradile dönüştürülür de direk makine diline dönüştürülmezler?

Bunun cevabı çok basittir aslında. Örneğin C++ ya da Visual Basic dilleri kullanılarak yazılan kodlar derlenirken bulunduğu ortamın özelliklerine göre yani işlemcinin sahip olduğu komut setleri ya da işletim sisteminin özelliklerine göre derlenirler. Bu da derlenen kodun başka bir ortamda yani farklı bir işlemci ya da işletim sisteminde çalışmamasına sebep olur. O zaman her ortam için kodu tekrar derlememiz gerekir. Bu çok zahmetli ve gereksiz bir iştir. CLR aradili(MSIL) alıp o makinanın anlayabileceği şekle dönüştürür, CLR nin çalışabildiği yani .Net Framework’ün kuralabildiği her ortamda yazılımlarınız çalışır olur.

Common Language Specification (CLS / Ortak Dil Özelliği)

Dil derleyicisinin uyması gereken kuralları içerir. Eğer diğer diller tarafından da kullanılacak yazılım bileşenleri geliştirmek istiyorsak mutlaka geliştireceğimiz dilin CLS uyumlu olmasına dikkat etmemiz gerekir. Böylece CLS ile diller arasındaki iletişim sağlanmış olur.

Common Type System (CTS / Ortak Tip Sistemi)

Veri tiplerini ilgilendiren kuralları içerir. CTS sayesinde programlama dilleri arasında veri türleri arasında da uyum sağlanmış olur. Örneğin Int tipi C# da veya VB.Net’te de tamsayı tiplerinin kapasiteleri aynıdır. Ve birinde derlenen kod  diğerinde rahatlıkla kullanılabilir. CTS sayesinde .Net platformu için geliştirilen tüm diller aynı veri tiplerini kullanılır farklı olan sadece dillerdeki veri tiplerinin tanımlanma yöntemleri ve söz dizilimleridir. Ayrıca cts sayesinde .net uyumlu bir dilde geliştirilen bir nesne diğer dillerde de sorunsuz çalışır.

.Net dillerinden biri ile yazılmış bir programın çalışması için mutlaka sisteminizde .Net Framework’ün ilgili sürümü olmalıdır.

.Net Framework SDK (Software Development Kit)

Yazılım geliştiricilerin .Net Framework üzerinde geliştirme yaparken ihtiyaç duyacakları araçlar, dokümanlar ve birçok örnekler .Net Framework SDK içinde yer alır.

Sadece yazılım geliştirenlerin işine yarayan bir araçtır. İçerisinde bol bol örnekler yer alır.

.net Framework Özellikleri

  • Standart ağ protokollerine ve standarlarına destek
    TCP/IP, SOAP, XML, HTTP gibi standart internet protokolleri ve standartlarına destek verir.
  • Farklı programlama dillerine destek
    Programcılara istedikleri dilde geliştirme özgürlüğü sunan .net bünyesinde bir çok programlama dilini barındırır.
  • Farklı dillerde geliştirilen programlama kütüphanelerine destek
    .net Framework, farklı dillerde oluşturulmuş programlama dillerinde oluşturulmuş program kütüphanelerine destek verir. Kütüphaneler uygulama geliştirmeyi kolaylaştıran bir kere yazılmış bir program parçasını tekrar tekrar yazmaktan kurtaran yapılardır.
  • Farklı platformlara destek
    .net Framework bütün windows platformları için mevcuttur. Farklı bilgi işlem platformlarından insanları, sistemleri ve cihazları birbirine bağlar. Meselâ, Windows XP gbi bir masaüstü platformunu kullanan insanlar veya Windows CE kullanan gezgin bir platformu kullanan insanlar Windows 2003 Server gibi bir sunucu sistemine bağlanabilir.

C# ile .Net Framework arasındaki ilişki

.net framework ve geliştirme ortamları C# dili ile geliştirilmiştir. C#, .net ile birlikte doğmuştur, modern nesne yönelimli dillerin bütün özelliklerini barındırmakla birlikte nesne yönelimli geliştirmeye yeni yaklaşımlar da getirmektedir.

Yorum Yaz

 
Ad  
Eposta     E-posta isteğe bağlıdır.
Yorum  
  Gönder       Temizle

Bu Makale İçin Yazılan Yorumlar

Büşra
20.08.2010
teşekkürler..
Yavuz KÜLEKÇİ
26.05.2010
Göksu Hanım,

Özel bir firmada proje sorumlusu ve ürün geliştirme uzmanı olarak görev yapmaktayım. AutoCAD vb... çizim programlarını kullanıyorum. Yazılım alanında da kalıcı birşeyler yapmak istiyorum. Sitenizi sık kullanılanlara kayıt ettim.
Verdiğiniz bilgiler için teşekkür ediyorum.
ümit fatih
29.03.2010
Geçtiğimiz uzun yıllar ASP ve PHP ile yüksek hitlere sahip portal siteleri yaptım ve şu an itibariyle yeni projeye başlamak için c# kullanmayı düşünüyorum, bu yazıyı okuyarak başladım ve bu yazıdan önce başka yazılarıda okudum ama burdakiler kadar öz ve anlaşılır olanına şimdi rastladım,

Çok teşekkür ediyorum.
Sinan
26.02.2010
Göksu Hanım, belkide bu yazınız benim yaşamımı değiştirecek kadar önemli. Teşekkürler.
Gökhan MİDİLLİ
02.10.2009
C# .net Alnında yeniyim. Sürekli .net alanında araştırmalar yapıyorum bu bilgilerde kısa ve öz olmuz paylaşmınız için çok teşekkür ederim. Başarılarınızın devamını diliyorum.
Hasan Burak
19.07.2009
Merhabalar,
Böle güzel bilgileri bizlerle paylaştığınız için sizlere çok teşekkürler. C# öğrenmede başlangıç için çok güzel bir adım atmamızı sağlandığınız için çok teşekkürler.
sara
15.05.2009
Bir kaç web sayfasını karıştırdıktan sonra kendimce okumaya değer bulduğum bir yazı C # ya yeni başladım Bilgiler için teşekürler
ömer sarıhan
15.04.2009
hep başlangıc için birşeyler ariyordum.
Sanırım burası bana yeterınce yol gösterici olacak şimdiden çok teşekkür ediyorum . allah utandirmasın diyor kork benden c# sharp geliyorum .
Buradaki tüm ustalarıma ve arkadaşlarıma saygı ve selamlarımla.....
Timuçin elgin
08.03.2009
Konunun özü gayet sade ve anlaşılır bir şekilde anlatılmış. Teşekkür ederim.
Ercan ŞİRANLI
04.02.2009
Güzel bir başlangıç yapmak istiyorum. Sitenizden faydalacağıma eminim. Bu güzel bilgiler için teşekkür ederim.
Derviş Kır
12.01.2009
teşekkür ederim. bugün ilk sizin makalenizi okuyarak başladım öğrenmeye... (: sağolun.
oktay
24.12.2008
çok güzele benziyor
Can Yastıoğlu
17.12.2008
Mehmet hocan gerçekten hoca ise size o işi öğretecektir korkmayın.Bende hocayım :) çok karşı değilim bu sıçramalara. Programlama mantığını kaptıktan sonra öğrenme açısından c#'ın diğer programlama dillerinden çok fazla kasacağını sanmıyorum seni. C# ile asp.net felan desen belki biraz farklı gelebilir ama masa üstü yazılım geliştirmek çok zorlamayacaktır seni. Çok geçerli bir dil öğrendiğin için bence sevinmelisin :)
Semih
12.12.2008
Kendi çapımda C# öğrenmek istiyorum. Şans eseri web sitenizi buldum gerçekten harika . Yazılarınız için sizlere çok teşekkür ederim...
mehmet
17.10.2008
bizim hoca visual basic i öğretmeden c# a gecirdi ne yapacam biraz yardımcı olun