Windows Programlama 2016-2017 Güz Dönemi
C#, yeni bir programlama dili olup, iki açıdan önemlidir: Microsoft.NET Framework ü kullanabilmek üzere tasarlanıp geliştirilmiştir. Modern object-oriented metodolojileri temel alınmıştır.
C#, C/C++ ve Java dillerinin sytaxına benzeyen, güçlü, basit, esnek, tip güvenli, modern ve Microsoft.NET platformu için sıfırdan geliştirilmiş bir programlama dilidir.
C#, C/C++ dilinden farklı olarak tamamıyla nesneye yöneliktir. int, double gibi temel veri türleri dahi birer nesne olarak tanımlanmıştır.
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 amaktadır. Mobil uygulama geliştirme ve DLL yazabilme.
Temel Kavramlar.NET nedir? FCL nedir? CLR nedir? Merhaba Dünya Temel İfadeler ve Operatörler Derleyiciler ve Komut Satırı Araçları Visual Studio da Proje Oluşturmak
.NET http://msdn.microsoft.com/en-us/netframework/default.aspx UYGULAMANIZ
.NET in Bileşenleri Microsoft.NET platformunu aşağıdaki şekilde göstermek mümkündür:
CLR CLR yazmış olduğunuz uygulamayı çalıştığında yönetir. CLR, Bellek Yönetimi (Memory Management) Güvenlik (Security) İşletim Sistemi ve Donanımsal Bağımsızlık (Operating System ve Hardware Independence) Dil Bağımsızlığı ( Language Independence) gibi özellikleri bünyesinde barındırır.
Aradil (IL).NET yapısında kod parçası derlendikten sonra elde edilen IL kodu işlemciye bağımlı bir kod değildir. IL, daha genel ve taşınabilirdir. IL içerisinde, değişken tanımları, değişkenlerin nasıl saklanacağı, metotların nasıl çalıştırılacağı, aritmetik işlemler, mantıksal işlemler, bellek kullanımı ve hata yakalama ve yönetimi dahil birçok işin nasıl yapılacağı açıklanır. Bütün bunların yanında IL de Metadata olarak adlandırılan bir birim daha vardır.
.NET altyapısında programların çalışmasını kontrol eden, işletim sistemi ile program arasında yer alan ara birimdir. Diğer dll ve COM bileşenleri C# program kodu MSIL Assembly CLR Çalıştırlabilir Makine Kodu.NET temel sınıf kütüphanesi IL kodu, CLR tarafından çağrılınca JIT derleyicileri tarafından makine diline çevrilir ve çalıştırılır.
JIT Derleyicileri 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. Kaynak Kod Derleme Derleyici Kod MSIL Metadata Native Kod İşletim JIT Derleyici Kurulum öncesi ya da her metot ilk çağrıldığında
FCL Framework Class Library
CTS ve CLS CTS(Common Type System) sayesinde;.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.
.NET platformunu paylaşan dillerin sadece CTS yi desteklemeleri yetmemektedir. Bunun yanında Ortak Dil Spesifikasyonu da (CLS- Common Language Specification) desteklemeleri gerekmektedir. Desteklenen Programala Dilleri APL Fortran Pascal C++ Haskell Perl C# Java Language Python COBOL Microsoft JScript RPG Component Pascal Mercury Scheme Curriculum Mondrian SmallTalk Eiffel Oberon Standard ML Forth Oz Microsoft Visual Basic
Assembly.NET platformu için yazılan bütün kodların sonucunda oluşan.exe ve.dll uzantılı dosyalara genel olarak assembly denilmektedir. Derlenmiş kodlar ve metadata olarak adlandırlan özniteleyici kodlar Assembly içerisinde bulunurlar. Assembly içersindeki metadata verileri, tür bilgileri ve başka kaynaklara olan bağlantıları saklar. Assembly de ayrıca versiyon bilgisi de tutulur. Assembly sayesinde programlar register edilmeye gerek kalmadan direkt kopyalanarak kurulabilirler.
Application Domain Application domain sayesinde aynı anda çalışan birden fazla program veya process birbirinden izole edildiği halde sistemde herhangi bir aksaklığa yol açmadan aralarında veri alış-verişi yapabilirler.
C# Nedir?.NET bileşenleri oluşturmak için standartlaştırılmış bir dildir. ECMA tarafından standardize edilmiştir. Uygulamalar, servisler ve tekrar kullanılabilen kütüphaneler oluşturulabilir. Syntax Java ve C++ a oldukça benzemektedir.
csc.exe C# ın komut satırı derleyicisidir. C# da yazılmış olan kaynak kodları MSIL(Microsoft Intermediate Language) e dönüştürür. Assembly dosyaları üretir (.dll,.exe)
Csc Parametreleri
Visual Studio Integrated Development Environment C# ve/veya diğer dosyalar üzerinde düzenleme (editting) C# derleyicisini çalıştırır. Debugging Testing
Solution Explorer En az bir tane proje içerir. Bir veya daha fazla kaynak kod dosyası içerir. Her bir proje bir assembly üretir. Projeler, bir solution altında organize edilirler. Çoklu uygulamaları veya kütüphaneleri yönetebilir.
Types C# çok farklı tipi destekler. Bir türü tanımlamanın bir yolu class oluşturmaktır. Çalıştığınız her nesnenin belirli bir tipi vardır..net Framework de 1000 nin üzerinde tip tanımlanmıştır. Kendinize özel tipi tanımlayabilirsiniz. Yürütmek istediğiniz kod, bir tipin içinde olmadır. Kodunuzu bir metodun içerisinde yerleştirebilirsiniz. Tipin içerisine ekleyebileceğimiz diğer öğeleri ilerleyen kısımlarda belirteceğiz.
Temel Tipler
NameSpaceler Namespace tipleri organize eder. Tip ismi çakışmalarını önlerler Namespace i bir veya daha fazla yerde tanımlayabiliriz. using anahtar sözcüğü Diğer namespaceleri scope a dahil eder.
Değişkenler Değişkenler bir değer tutarlar. Mutlaka bir tipi olmalıdır. Bir değişkeni kullanmadan önce mutlaka değer ataması yapılmalıdır. C# derleyicisi atama yaparken tiplerin birbiri ile uyumluluğunu kontrol eder.
Deyim bir komuttur. Deyimler ve İfadeler Statement & Expression Metod, deyimler topluluğudur. Deyimler noktalı virgüller biterler. Bulundukları sırayla yürütülürler. İfadeler, değer üreten deyimlerdir. Genellikle bir operatör içerirler (gerekli değildir.) İfadenin değerini yeni bir değişkene atamak ve test etmek mümkündür.
Operatörler Bir veya daha fazla değişken üzerinde gerçekleştirilecek işlemleri belirtirler. Matematiksel Operatörler (+, -, *,/) İlişkisel Operatörler (<,>,<=,>=) Eşitlik Operatörü (==,!=) Koşul Operatörü (&&, ) Atama Operatörleri ( =, +=,-=,*=,/=)
Referanslar Diğer assembly içerisinde olan tiplerin kullanılmasını sağlar. Object Browser tipleri incelemek için kullanılan bir yöntemdir. FCL içinde olan diğer assemblylere referans verirler. 3. parti assembly lere referans verirler. Solution içerisinde yer alan diğer assemblylere referans verirler.
Özet C#,.NET içerisinde yer alan bir çok dilden sadece bir tanesidir. Syntaxı C++ ve Java ya oldukça benzemektedir. Tip çeşitliliği Deyim ve ifadeler Operatörler Referanslar