HSancak Nesne Tabanlı Programlama I Ders Notları

Benzer belgeler
C# nedir,.net Framework nedir?

C# Eğitimi-1 (Giriş) Melih Hilmi Uludağ

GÖRSEL PROGRAMLAMA - I

Bahar. BM 211 Programlama Dilleri 3 1

C #

Windows Programlama Güz Dönemi

4. Bölüm Programlamaya Giriş

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

NESNE TABANLI PROGRAMLAMA

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

1. HAFTA TEMEL KURULUM İŞLEMLERİ ve NESNE TABANLI PROGRAMLAMA KAVRAMLARI

BİL 458 Web Programlama dersi. Yrd. Doç. Dr. Murat YEŞİLYURT

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

3. NESNE TABANLI PROGRAMLAMANIN PRENSİPLERİ

Ders 8 Konu Özeti ve Problemler

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Java Temel Özellikleri

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ NESNE TABANLI PROGRAMLAMA - 1

BİLİŞİM TEKNOLOJİLERİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Bölüm1. İlk Bilgiler ISBN

PROGRAMLAMA TEMELLERİ

Programlama Dillerinde Kullanılan Veri Tipleri

Bilgisayarda Programlama. Temel Kavramlar

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Android e Giriş. Öğr.Gör. Utku SOBUTAY

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Programlama Yazılımı ile Web Sitesi Oluşturma

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Programlama Dilleri sıralaması Programlama Dilleri sıralaması 2016

Bölüm 1. Ön Hazırlıklar ISBN

Dr. Fatih AY Tel: fatihay@fatihay.net

public static int Toplam int x, int y

WEB İŞLEMLERİ. .NET Platformu:

C++ Dersi: Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA I

1.1. Yazılım Geliştirme Süreci

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Sanallaştırma Nedir? Bahadır Demircioğlu. Şubat, 2013

BTEP243 Ders 3. class Yazım Kuralı:

5. PROGRAMLA DİLLERİ. 5.1 Giriş

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

HSancak Nesne Tabanlı Programlama I Ders Notları

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Üst Düzey Programlama

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

YZM 2105 Nesneye Yönelik Programlama

Temel Bilgisayar (Basic Computer) Yazılım (Software)

Programlama Dilleri III 1

Lecture 11: Generics

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

PROGRAMLAMA DERSİ 1. İNTERNET

Nesne Tabanlı Programlama. Ders Notları

Asp.Net Veritabanı İşlemleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

R ile Programlamaya Giriş ve Uygulamalar

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Sunum İçeriği. Programlamaya Giriş

BİL-141 Bilgisayar Programlama I (Java)

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

EĞİTİM : .NET UYGULAMA GELİŞTİRME PLATFORMU. Bölüm :.NET Uygulama Geliştirme Platformu. Konu :.NET Framework Nedir? Page 1 of 17

Nesne Yönelimli Programlama ve Kalıtım

BİT in Temel Bileşenleri (Yazılım-1)

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

NESNEYE YÖNELİK PROGRAMLAMA

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Öğr. Gör. Serkan AKSU 1

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

Program Nedir?(1) Programlamaya Giriş

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU Kernel çeşitleri

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

ALGORİTMA VE PROGRAMLAMA I

Nesne Yönelimli Programlama

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bilgisayar Mimarisi Nedir?

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Nesne Yönelimli Programlama

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Yazılım Mühendisliği 1

IOT NEDİR? Bölüm 1. Internet of Things ekosistemi altında donanım, programlama, veri tabanı, veri analizi gibi alt yapılar yer almaktadır.

Üst Düzey Programlama

Transkript:

NESNE TABANLI PROGRAMLAMA Nesne Tabanlı Programlama Nedir? Nesne tabanlı programlamada esas olan, gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yaklaşımdır. Klasik prosedürel programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her şey veri ve bu veriyi işleyen metotlar etrafında dönüyordu. Aslında nesne tabanlı programlamada da iki önemli birim; veri ve veriyi işleyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır. Mesela elimizde bir ütümüz olsun. Ütünün markası, modeli, rengi, çalıştığı elektrik voltajı, ne tür kumaşları ütüleyebildiği bu ütüye ait özelliklerdir (veri). Aynı zamanda ütümüzü ısıtabiliriz, ütüleme işinde kullanabiliriz ve soğumaya bırakabiliriz. Bunlar ise ütünün fonksiyonlarıdır(metot).

Eğer ütü ile ilgili bir program yapmış olsak ve nesne tabanlı programlama tekniğini kullansak hemen bir ütü sınıfı (class) oluştururduk. Bu sınıfta ütüye ait bilgiler (veriler) ve ütü ile yapabileceğimiz işler (metot) bulunurdu. O zaman nesne tabanlı programlamada bir sınıfta, sınıfa ait veriler ve bu verileri işleyip bir takım faydalı sonuçlar üreten fonksiyonlar/metotlar bulunur. Dahası, biz bir tane ütü sınıfı tasarlarsak bu sınıftan istediğimiz sayıda değişik ütüler (Objectveya instance) yapabiliriz. Nesne tabanlı programlamanın bazı temel kavramları vardır. Kapsülleme (Encapsulation) Kalıtım (Inheritance) Çok biçimlilik (Polymolphism) Kapsülleme (Encapsulation) İşlemlerin ve verilerin gizlenmesine veya bir grup içerisinde toplanmasına kapsülleme denir. Kapsüllleme sayesinde, sınıfımız içinde kullandığımız alanların dışarıdan herhangi bir etki ile doğrudan değiştirilmelerini engellemiş oluyoruz. Bu durum bizim isteğimiz dışında oluşabilecek atamaların önüne geçmemize ve ille de bu alanların değerleri değişecekse bizim belirlediğimiz bir çizgide olmasına neden oluyor. Bu da programcılıkta ve özellikle nesne tabanlı programlamada çok büyük bir yere sahip olan kontrolün elimizde olmasını sağlıyor. Kapsülleme, kendi amacına göre yönettiği kod ve veriyi birbirine bağlayan, kod ve veriyi dış kaynaklı karışıklık ve hatalı kullanımdan koruyan bir sistemdir. Dolayısıyla kod ve veri bir bütün olarak tutulur ve saklanır. Günlük yaşantımızda kullandığımız kapsüllü bir antibiyotiği örnek verebiliriz. Mantık aynıdır. Antibiyotiğin içindeki toz dış etkenlerden korunmak için kapsülle ambalajlanmıştır. Yandaki resimde gördüğünüz saat içinde çok karmaşık mekanizmalar bulunmaktadır. Ama bu karmaşık mekanizma saatin kullanıcısını ilgilendiren bir olay değildir. Kullanıcı için önemli olan saatin düzgün çalışmasıdır. Kalıtım (Inheritance) En genel tanımı ile kalıtım, "Bir sınıftan yeni sınıflar türetmektir". Başka bir sınıftan türetilen yeni bir sınıf ana sınıfın bütün özellik ve metotlarını miras alır. Tekrar tanımlamaya gerek olmadan kullanır. Türetilen her bir sınıf, türediği sınıfın özelliklerini de devralır.

Örneğin, otomobilleri bir temel sınıf olarak düşünebiliriz. Bu sınıftan otomobillere ait değişik kategorileri türetebiliriz. Buradaki tüm sınıfların ortak bir takım özellikleri var. Bir motorlarının olması, tekerleklerinin olması, viteslerinin olması vb. ama aynı zamanda her ayrı sınıfın kendine has özellikleri de vardır. Örneğin ralli araçları için güvenlik bariyerlerinin olması, pilotlar için kaskların kullanılması gibi. Bu tabloyu inceleyince Her ralli aracı bir otomobildir diyebiliriz. Bu ralli araçlarının otomobil sınıfından türediğini gösterir. Diğer yandan Her WRC bir ralli aracıdır. da diyebiliriz. Bu ise, WRC araçlarının ralli araçlarının birtakım ortak özelliklerine sahip olduğunu ayrıca otomobillerinde bir takım ortak özelliklerine sahip olduğunu gösterir. İlk aşamada ralli, ticari, özel ve spor sınıflarının otomobil sınıfından türediğini söyleyebiliriz. Bununla birlikte WRC ve GrupN sınıfları da otomobil sınıfından türeyen ralli sınıfından türemiştir. Yani burada şunu söyleyebilmek mümkündür. WRC sınıfı hem ralli sınıfının hem de otomobil sınıfının özelliklerine kalıtımsal olarak sahiptir. Çok Biçimlilik (Polymorphism) Bir metodun farklı nesnelerde veya farklı ortamlarda farklı sonuçlar üretmesidir. Mesela konuşmak insan sınıfına ait bir metottur. Ancak bu metot ait olduğu insan sınıfının örneğine göre farklı sonuçlar üretir. Arkadaşımızla konuşurken farklı bir tonda, patronumuzla konuşurken farklı bir tonda konuşuruz, diğer bir ifadeyle bu metodun birden fazla biçimi vardır. Nesne tabanlı programlamada çok biçimlilik, nesnelerin dışarıdan aynı yapıda görünmelerine rağmen içerde farklı işlem yapmalarıdır. Bu nedenle sınıflar nesnelerin içindeki farklılıklardan etkilenmeden çalışır. Çok biçimlilik aslında bir arayüz (interface) kullanarak birden fazla metodun kullanılmasını sağlar. Çok biçimliliğin amacı, genel bir sınıf belirtip aynı arayüzü kullanarak oluşabilecek karmaşıklığı azaltmaktır.

.NET FRAMEWORK NET Framework, Microsoft tarafından geliştirilen, açık İnternet protokolleri ve standartları üzerine kurulmuş komple bir uygulama geliştirme platformudur. Buradaki uygulama kavramının kapsamı çok geniştir. Bir masaüstü uygulamasından tutun, bir web tarayıcı uygulamasına kadar her şey bu platform içinde düşünülmüştür ve desteklenmiştir. Bu uygulamaların birbirleriyle ve geliştirildiği ortam fark etmeksizin dünyadaki tüm uygulamalarla iletişimi için kolayca Web Servisleri oluşturulmasına imkân verilmiştir. Bu platform, işletim sisteminden ve donanımdan daha üst seviyede taşınabilir olarak tasarlanmıştır. Özet olarak bakıldığında önümüzde duran.net Framework: İnterneti hedef alan bileşen setiyle, Programcıları özgürleştiren, diller arası etkileşime olanak tanıyan bağımsız dil mimarisiyle, Donanım-bağımsız ara seviye derleme ve güvenli talimat icraatını güvence altına alan çalışma zamanı ortamıyla, Web uygulamalarına getirdiği özgün ve radikal yaklaşımıyla, Zengin ve mükemmel organize edilmiş sınıf kütüphanesi ve dokümantasyonu ile Sınırları ortadan kaldıran web servisi desteğiyle, ve daha da sayabileceğimiz bir çok özelliğiyle benzetildiği teknolojileri geride bırakan inkâr edilemeyecek seviyede özgün bir platformdur.

Önceden, geliştirilen yazılımlar direkt olarak makine koduna derlenir ve bu şekilde çalıştırılırlardı. Ayrıca bu programlar, her işletim sistemine özel olarak geliştirilmekte ve derlemi işlemi işletim sistemine göre belirlenmekteydi. Böyle bir yapıda taşınabilirlikten söz etmek mümkün değildir. Java da ise, program önce byte code a çevrilmektedir. Bu kodu JVM(Java Virtual Machine), işletim sisteminin istediği koda çevirmektedir..net platformunda da temel prensip Java ile benzerdir..net kodu önce IL ( Intermediate Language) ye derler ve bu IL kodu çalıştırılmak istendiği zaman.net CLR(Common Language Runtime- Ortak Dil Çalışma Platformu), JIT( Just In Time) derleticilerini kullanarak makine diline çevirir. CLR makine diline çevrilmiş olan program kodunu ön bellekte tutar. Bu büyük performans artışı sağlarken, oldukça büyük miktar belleği kullanmış olur. Temel Dil Tanımlamaları CLS ( Common Language Specifications) ve Ortak Tip Sistemi CTS(Common Type System) ile.net uyumlu dillerin hepsi aynı değişkenleri ve benzer nesne yönelimli özellikleri taşır Örneğin C# ile yazılan programdaki temel veri tipleri, VB.NET tekiler ile aynı özelliklere sahiptir. Böylece farklı dillerde yazılan bileşenler birbiri ile sorunsuz çalışırlar. Ara Dil MSIL (Microsoft Intermediate Language) - IL (Intermediate Language) Normalde bir program derlendiğinde doğrudan makine koduna çevrilirken,.net uyumlu bir dil ile derleme yapıldığında program kodu makine koduna değil de MSIL (Microsoft Intermediate Language)'e çevrilir. MSIL işlemciden bağımsız komut setinden oluşmaktadır. Bu komut seti içerisinde nesnelerin yüklenmesi, depolanması ve initialize (başlatılması) edilmesini sağlayan komutların yanı sıra aynı zamanda nesneler üzerinde metot çağrımını sağlayan komutlar da yer almaktadır..net Framework ile yazılmış bir kaynak kodun derlenmesi sonucu MSIL kodu oluşmaktadır. MSIL,

NET dilleri arasında bir bütünleşme sağlamaktadır. MSIL kodun çalıştırılmasından önce var olan MSIL kodu, doğal makine koduna (native code) dönüştürülmektedir. Burada interpretation dediğimiz yorumlama işlemi yapılmaz. Bütün bunların yanında IL de Metadata olarak adlandırılan bir birim daha vardır. Metadata, programda kullanılan verilerin tiplerinin yanında oluşturulan sınıfların metotlarını ve bunların özelliklerini ve diğer bilgileri içerir. Ortak Dil Çalışma Platformu (CLR - Common Language Runtime).NET alt yapısında programların çalışmasını kontrol eden, işletim sistemi ile program arasında yer alan ara birimdir. IL kodu, CLR tarafından çağrılınca JIT derleyicileri tarafından makine diline çevrilir ve çalıştırılır. 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. Eğer platformdan bağımsız bir ortam istiyorsak, ihtiyaç duyulan şey CLR dir, hangi platformda iseniz (Linux, Mac, Windows) CLR bu noktada devreye girer ve. NET programlarını farklı platformlarda işletim sistemine göre çalıştırır.

JIT Derleyiciler (Just in Time Tam Zamanında) C# ile IL ye derlediğimiz programı çalıştırırken JIT derleyicileri devreye girer. Bu derleyiciler programın çalıştırıldığı sistemin ve işlemcinin anlayabileceği makine kodunu oluşturur. Metadata nın içeriği çalışma zamanında JIT derleyicileri tarafından kullan ı l ı r. IL ve Metadata s ı oluşturulan kod parçası, çalıştırılabilir bir yapıdadır. Windows ortamı için 3 çeşit JIT mevcuttur. 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 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. Eco-JIT: Kısıtlı hafıza ve ön bellekli sistemlerde. NET programlarının daha iyi çalışmalarını sağlamak için kullanılan derleyicidir. Ortak Tip Sistemi (CTS - Common Type System) CTS sayesinde, Programlama dillerinin kullandığı veri türleri arasında uyumluluk vardır. Örn: Int tipi C++.NET ve VB.NET teki tam sayı tiplerinin kapasiteleri aynıdır. Diğer bir deyişle VB de geliştirilen bir dll C# da rahatlıkla kullanılabilir.

. NET de tip güvenli, yüksek performanslı ve kullanılan programlama dilinin diğer.net uyumlu diller ile entegre bir şekilde çalışması sağlanır. Birçok programlama dilinin.net mimarisinde tam nesne yönelimli olarak.net için program yazma aracı olmasına imkan verir. Herhangi bir.net uyumlu dilde geliştirilen nesne diğer dillerde de sorunsuz olarak çalıştırılabilir. Temel Dil Tanımlamaları (CLS - Common Language Specifications).NET platformunu paylaşan dillerin sadece CTS yi desteklemeleri yetmemektedir. Bunun yanında Ortak Dil Spesifikasyonunuda (CLS) desteklemeleri gerekmektedir. CLS uyumlu bir dil ile geliştirilen bir program ile farklı diller arasında etkileşim sağlanabilir..net in temel sınıf kütüphanelerinin içerisinde yer alan kodların büyük bir bölümü CLS uyumludur. The Base Class Library-Temel Sınıf Kütüphaneleri.NET Framework te programcıların işlerini kolaylaştırmak için birtakım hazır kütüphaneler vardır fakat C# dilinde hazır kütüphaneler mevcut değildir. Bunun yerine Framework dediğimiz alt yapıda Base Class Library adı verilen temel sınıf kütüphaneleri mevcuttur. Temel sınıf kütüphaneleri, uygulamalarınızı geliştirirken size lazım olabilecek bir çok servisi ve nesneyi içinde barındıran bir sistemdir. Temel sınıf kütüphaneleri, namespaces (isim alanları) ler içinde organize edilmişlerdir. İsim Alanları,. NET Framework sınıf kütüphanesindeki veri türlerini ve sınıfları kullanabilmek için C# dilinde using anahtar sözcüğü ile birlikte kullanılır ve derleyiciye bildirilir.

.NET teki sınıf kütüphaneleri bir dilden bağımsız bir yapıdadır. Program geliştirilirken birbiri ile ilgili olan sınıfların aynı isim alanı içerisine konulması programdaki hataları bulma ve anlaşılabilirlik açısından oldukça önemlidir..net sınıf kütüphanesinde bulunan ve en sık kullanılan sınıf kütüphaneleri şunlardır: System :.NET çalışırken gerekli temel sınıfları içerir. Ayrıca diğer tüm sınıf kütüphaneleri de bunun içinde kümelenmiştir. System hiyerarşinin tepesinde bulunur. Konsol temelli uygulamalarda temel giriş çıkış işlemleri için gerekli temel sınıf Console, birçok matematiksel fonksiyonu içinde barındıran Mat h sınıfı da System isim alanı içerisinde yer alır. System.Data : Veri tabanı işlemlerinin tamamı için hazır gelen sınıf kütüphanesine bu isim alanı ile erişilir. Bu sınıf kütüphanesi içindeki SQL ile işlemler için System.Data.SqlClient isim alanı mevcuttur. System.Net : HTTP ve ağ protokolleri için kullanılır. System.Xml : XML verileri ile çalışmak için kullanılır. 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. Neden C# Öğrenilmesi kolaydır. Nesne yönelimli programlamaya tam destek vermektedir. Yüksek verim. Güç ve kolaylık arasında dengededir. Xml desteği sunmaktadır. Windows Forms mantığını destekler. Internet teknolojilerinin gelişimine uyum sağlayabilmiş modern bir dildir. C# ile Yapılabilecekler Konsol tabanlı uygulama geliştirme Windows için program yazma C# ile Windows için gelişmiş, güçlü, hızlı ve güvenli programlar yazılabilir. Fakat bunun için programın çalıştığı sistemde. NET platformunun yüklü olması gerekir. ASP.NET için en uygun dildir. ASP.NET, ASP gibi script yorumlamalı olmayıp tamamen nesne yönelimli haldedir. C# bu konuda büyük kolaylıklar sağlamaktadır. C# ile Web Servisleri geliştirmek oldukça kolay ve hızlı bir hal almaktadır. Mobil uygulama geliştirme ve DLL yazabilme.

C# Temel Özellikleri ve Yazım Kuralları 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 ve.net platformu için hazırlanmış %100 nesne yönelimli bir dildir. C# dili %100 nesne yönelimli bir dildir Nesne olmayan hiçbir şey yoktur. C ve C++ dillerinde programın çalışması main işlevinden başlar ancak main işlevi hiçbir zaman bir sınıf içerisinde olmamıştır. C# dilinde her şey sınıflarla temsil edildiği için main işlevi de bizim belirlediğimiz bir sınıfın işlevi olmak zorundadır. Bütün C# programları en az bir sınıf içermelidir. Sınıf içinde olmayan programlar derlenmez. Main() işlevi bizim için C ve C++ dillerinde olduğu gibi programımızın başlangıç noktasıdır. C de diğer bazı dillerde olduğu gibi kaynak koddaki bütün satırlar ; ile sonlandırılır. (Bazı durumlar hariç.) Sınıflar ve işlevler açılan ve kapanan küme parantezler {} içerisine yazılırlar. C# dilinde birçok kavram sınıf dediğimiz nesneler üzerine kurulmuştur. Her sınıfın iş yapan çeşitli elemanları vardır. İş yapan bu elemanlara metot ya da işlev denilmektedir..net i meydana getiren sınıf kütüphanesi hiyerarşik bir yapı sunmaktadır. Sınıflar isim alanı (namespace) dediğimiz kavramla erişilmesi kolay bir hale gelmiştir. Kodlar arasında tek satırlık açıklama bilgileri için // işareti kullanılır. Kullanılan kütüphaneler using (using System;)deyimi ile kodun başına eklenmeli. C# dilinde küçük büyük harf ayrımı yapılmaktadır. Deyimlerde büyük küçük harf yazıma uyulmalıdır.