c# nedir, .net framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 c# nedir? c#...

26
1 C# nedir, .Net Framework nedir?

Upload: others

Post on 04-Sep-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

1

C# nedir, .Net Framework nedir?

Page 2: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

2

C# nedir?

C# , C/C++ ve Java dillerinde türetilmiş,bu

dillerin dezavantajlarının elenip iyi yönlerinin

alındığı, güçlü basit, esnek, tip-güvenli(type-

safe,tür dönüşümlerindeki önlemler,örn:

byte=byte+byte olamaz, int=byte+byte).Net

platformu için hazırlanmış %100 nesne

yönelimli bir dildir.

Page 3: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

3

C# nedir?

Script Dilleri Javascript,VBScript

Yüksek Düzeyli Diller Vbasic Delphi

Orta Düzeyli Diller C# Java

Düşük Düzeyli Diller C/C++

Assebmly(makine dili) Assembly

Page 4: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

4

C# kullanım alanları

• Konsol uygulamaları

• Windows için program yazma

• Web formları uygulaması

• Web servisleri

• DLL yazma

Page 5: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

5

.NET Bileşenleri

İŞLETİM SİSTEMİ

Ortak Dil Çalışma Platformu (CLR)

(Common Language Runtime)

ADO.NET ve XML

ASP.NET

(Web formları+Web Servisleri)Windows Formları

TEMEL DİL TANIMLARI (CLS)

(Common Language Specification)

C#

Vis

ua

l Stu

dio

NE

T

C++ VB.NET VJ#

Page 6: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

6

.NET Bileşenleri

Java’dan önce, geliştirilen yazılımlar direkt olarakmakine koduna çevrilirdi.

Java ile program kodu önce byte code’a çevrilir.JVM(java virtual machine) bu kodu işletimsisteminin istediği koda çevirir.

.Net içinde çalışma mantığı benzerdir, .NET koduilk önce IL’ye (Intermediate Language-Aradil)derler, bu IL kodu çalıştırılmak istendiğinde CLR,JIT derleyicilerini kullanarak kodu makine dilineçevirir.

Page 7: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

7

.NET Bileşenleri

CLR makine diline çevrilmiş bu kodu önbellekte

tutar, bu performans artışına sebep olurken diğer

taraftan sistem hafızasında küçümsenmeyecek yer

işgal eder.

Page 8: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

8

Ortak Dil Çalışma Platformu(CLR)(Common Language Runtime)

CLR .NET altyapısında programların çalışmasınıkontrol eden ve işletim sistemi ile programımızarasında yer alan arabirimdir. Normalde yazılankodlar makine diline çevrilir ve işletim sistemi iledirekt bağlantı kurup çalışırdı.

Eğer platformdan bağımsız bir ortam istiyorsak,ihtiyaç duyulan şey CLR dir, hangi platformdaiseniz (Linux,Mac,Windows) CLR bu noktadadevreye girer ve .NET programlarının farklıplatformlarda işletim sistemine göre çalıştırır.

Page 9: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

9

Ortak Dil Çalışma Platformu(CLR)(Common Language Runtime)

Eğer çok sayıda platform olduğunu düşünürsek,

programların bunlar için ayrı ayrı yazılıp

derlenmesi gerekir. Bu durum imkansız gibidir.

Bu durumda çözüm ortak bir ara dil kullanmak ve

her bir platform için bu ara dile çevrilmiş kodu

çalıştırmaktır.

Page 10: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

10

Ortak Dil Çalışma Platformu(CLR)(Common Language Runtime)

• Managed Code(Yönetilen Kod): Yalnızca CLR

yardımları altında çalışan koddur. Bir örnek vermek

gerekirse ; Windows’ta çalışan farklı işlemlere

sahibiz. Uygulamaların izlemesi gereken kural

Windows genel kurallarına uymalarıdır. Managed

kodda CLR tarafından Windows’un yaptığı şekilde

çalıştırılan koddur.

Page 11: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

11

Ortak Dil Çalışma Platformu(CLR)(Common Language Runtime)

C# kodu

MSIL veya IL Assembly

CLR

Çalıştırılabilir

Makine Kodu

.NET derleme ve çalıştırma

Page 12: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

12

Aradil (IL veya MSIL)(Intermediate Language)

Herhangi bir C++ veya Vbasic kodu direkt makine

koduna çevrilirdi ve çalıştırılırdı. Makine diline

çevrilen programlar, işlemciye ve işletim sistemine

özel olarak derlenirdi.

Örn: a ve b sayılarının toplamı için kullanılan bir

C++ programı Intel işlemciler için farklı SunSparc

işlemciler için farklı derlenirdi.

Fakat .NET ortamında kodumuzu derlediğimizde

elde ettiğimiz IL (aradil) kodu işlemciye bağlı olmaz

Page 13: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

13

Aradil (IL veya MSIL)(Intermediate Language)

IL iç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ı gibi

birçok işin nasıl yapılacağı açıklanır.

Artık IL ile oluşturduğumuz kodumuzun

çalıştırılabilir bir program olması için derlememiz

gerekiyor. Bunun için JIT (Just in Time) derleyici

kullanılır.

Page 14: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

14

JIT Derleyiciler (Just in Time)

C# ile IL’ye derlediğimiz programı çalıştırırken JIT

derleyicileri devreye girerler. Bu derleyiciler

programın çalıştırıldığı sistemin ve işlemcinin

anlayabileceği makine kodunu oluştururlar.

Windows ortamı için 3 çeşit JIT mevcuttur

1. Normal JIT

2. Pre-JIT

3. Eco-JIT

Page 15: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

15

JIT Derleyiciler (Just in Time)

Normal JIT : IL kodu makine koduna çevrilirken

default(varsayılan) olarak kullanılan derleyicidir.

IL kodunu orijinal makine koduna çevirir ve

önbellekte tutar. Örneğin ; program içindeki bir

derlenmiş bir metot program akışı içinde tekrar

çağrılırsa önbellekten çekilir.

Pre-JIT: Tüm program kodunu makine koduna

çevirip sonra çalıştıran JIT. Fazla hafıza gerektirir.

Programın daha hızlı çalışmasını sağlar.

Page 16: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

16

JIT Derleyiciler (Just in Time)

Eco JIT : Kısıtlı hafıza ve önbellekli sistemlerde

.NET programlarının daha iyi çalışmalarını

sağlamak için kullanılan derleyicidir.

Page 17: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

17

CTS (Common Type System)

Bütün veri tiplerinin tanımlı olduğu bir sistem

olarak düşünebiliriz. C# dilindeki veri türleri

aslında CTS’deki veri türlerine karşılık gelen

arayüzlerdir.

CTS sayesinde .NET platformu için geliştirilen

bütün diller aynı veri tiplerini kullanırlar, tek

değişen türlerin tanımlama yöntemi ve söz

dizimidir.Geliştirilen bir nesnenin diğer dillerde de

sorunsuz çalışmasını garanti eder.

Page 18: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

18

CTS (Common Type System)

Veri Tipleri

Değer Tipleri Referans Tipleri

Temel Veri Tipleri Kullanıcı V.tipleri Öznitelikli V.Tipleri Göstericiler(Pointers) Arayüzler

CTS veri tipleri şeması

Page 19: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

19

CLS (Common Language System)(Temel Dil Tanımları)

• Dil derleyicisinin uyması gereken kuralları

içerir.

Page 20: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

20

CLS (Common Language System)(Temel Dil Tanımları)

• Dil derleyicisinin uyması gereken kuralları içerir.

• CLS’ ye uyan bir dille yazılmış kod ile diller arası

iletişim sağlanmış olur

•Örneğin Vbasic.Net içindeki InputBox komutunun C#

içinde çağrılması.

Page 21: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

21

CLS (Common Language System)(Temel Dil Tanımları)

• Projemizin «references» kısmından «Add Reference»

ile .NET kısmından VisualBasic referansını eklemeliyiz.

Page 22: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

22

CLS (Common Language System)(Temel Dil Tanımları)

• Artık proje kodumuzda gerekli namespace’i ekleyerek

Vbasic.Net içindeki InputBox komutunu C# içinde

kullanabiliriz..

using Microsoft.VisualBasic; //başlık kısmına eklenecek namespace

string giris = Microsoft.VisualBasic.Interaction.InputBox("Giris",

"Başlık", "Varsayılan");

Page 23: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

23

Namespaces and .NET Class Library(İsim Alanları Sınıf Kütüphanesi)

Programcıların işlerini kolaylaştırmak için bir

takım hazır kütüphaneler vardır fakat C# dili ile

gelen hazır bir takım kütüphaneleri yoktur.

Bunun yerine Framework dediğimiz altyapıda bir

takım temel türler ve sınıflar mevcuttur. Bu sınıf

ve türleri organize edebilmek için Namespace

kavramı kullanılır.

Page 24: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

24

Namespaces and .NET Class Library(İsim Alanları Sınıf Kütüphanesi)

C# dilinde .NET Framework sınıf kütüphanesi

içerisindeki veri türleri ve sınıflar “using” sözcüğü

ile kullanılır. Diğer dillerde de bu isim alanları

farklı şekillerde derleyiciye bildirilir.

Fakat temelde yapılan iş, .NET Framework Sınıf

Kütüphanelerini kullanma hakkı kazanmaktır.

Program geliştirirken sınıfların birbiri ile ilgili

olanlarını aynı isim alanı içine koymalıyız.

Page 25: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

25

Namespaces and .NET Class Library(İsim Alanları Sınıf Kütüphanesi)

System isim alanı : .NET çalışırken gerekli temel

sınıfları içerir. Ayrıca diğer tüm sınıf kütüphaneleri

de bunu içinde kümelenmiştir. System

hiyerarşinin tepesinde bulunur.

Örneğin tüm veritabanı işlemleri için kullanılacak

sınıf kütüphanesi “System.Data” dır.

Bu sınıf kütüphanesi içindeki SQL ile işlemler için

“System.Data.SqlClient” isim alanı mevcuttur.

Page 26: C# nedir, .Net Framework nedir?yapbenzet.kocaeli.edu.tr/wp-content/uploads/1_c... · 2 C# nedir? C# , C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip

26

Namespaces and .NET Class Library(İsim Alanları Sınıf Kütüphanesi)

System.Net : HTTP ve ağ protokolleri için

kullanılır.

System.Xml : XML verileri ile çalışmak için

System.IO : dosyalara bilgi girişi, dosyadan bilgi

okuma, I/O işlemleri için kullanılır.

System.Windows.Forms: Windows tabanlı

uygulamalarda kullanılan zengin grafik arabirimi

kontrollerini içerir.