1- C# Hello world Nesne Yönelimli Programlama - i

Slides:



Advertisements
Benzer bir sunumlar
Java Hakkında Java Nedir? Java’nın Tarihi Java’nın Avantajları
Advertisements

.NET FRAMEWORK -MASAÜSTÜ VE SUNUCU YAZILIMLARI
Yazılım Geliştirme ve Java
Bilgisayar Programlama I
Java-Veri Tipleri- Operatorler
IIS 6.0. Giriş  Geçtiğimiz yıllarda, Microsoft güvenlik açıkları nedeniyle IIS 4/5 üstünden bir çok saldırıya uğradı.  Bu sebepten Microsoft’un geliştirdiği.
C# İsim uzayları(namespace)
C Programlama Dili AT&T Bell laboratuvarlarında, Ken Thompson ve Dennis Ritche tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiş.
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
.NET FRAMEWORK.
A. Betül Oktay Elif Edoğan Zeliha Çetin
WEB Tasarımı & .NET Bolum 1
İSİM UZAYLARI.
VHDL Kullanarak FPGA İle Yüksek Kapasİtelİ Tam ÇIkarIcI Devre TasarImI
C Programlama Diline Giriş
Bilgi Teknolojisinin Temel Kavramları
FRAMEWORK.
Bölüm 1: Introductions (Tanıtım,Tanım)
İNTERNET TARAYICILARINDA YENİ NESİL GRAFİK TEKNOLOJİLERİ
İSİM UZAYLARI (NAMESPACE).
İSİM UZAYLARI (NAMESPACE)
MPI İle Paralel Programlama Tunahan Altıntop
Yazılım Gelişimi. Donanım gelişimine paralel olarak süren yazılım gelişimi, son on yılda kayda değer bir ivmelenme ile bilgisayarları, herhangi bir uzmanlık.
Bilgisayar Programlama
.NET Teknolojileri .NET mimarisi VB.NET, C.NET, C#.NET
Net Class Framework ’ ün en üst yapısına İsim Uzayı denir. İsim uzayları ; pascal programlama dilinde 1990 ve hatta öncesinden beri varolmuş, C’de yer.
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
© Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE BU-SWE.
AĞ İŞLETİM SİSTEMLERİ Öğr. Gör. Mustafa SARIÖZ
GİRİŞ Yard.Doç.Dr. Cihad Demirli Sunu içeriği kaynağı: ALGAN, S. (2010). Her Yönüyle C# 4.0. (12.Baskı). Pusula Yay. İstanbul.
İŞLEMCİ MİMARİLERİ – Derya Işık
VERİ TABANI ve YÖNETİMİ
C# İsim Uzayları (Namespace)
Chapter 1: A First Program Using C#
Programlama Dili nedir? Programlama Dili nedir?. Programlama Dili: Programcının bir bilgisayara ne yapmasını istedi ğ ini anlatmasının standartlaştırılmış.
1 Öğr. B.Aliyeva Öğr. B.Aliyeva Bilgisayar Yazılımı.
HAZIRLAYAN:SEMİH KÜRTÜNCÜ
ASP.NET Web FORMS -> MVC FRAMEWORK
Bilgi Teknolojisinin Temel Kavramları
Microsoft Windows Server 2003 © Yenilikler ERCAN SAPMAZ.
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
Vmware.
Mobil Uygulama Geliştirme
Algoritmalar ve Programlama I Ders 3: PROGRAMLAMA VE PROGRAMLAMA DİLİ
SİSTEM Sistem, bir hedef veya amacı gerçekleştirmek üzere bir arada çalışan birbiriyle ilişkili parçalardan oluşan ve girdi-çıktıları olan sınırları.
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
İnsan Kaynakları Bilgi Sistemleri
Programlama Dili Nedir?
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Barış Ceviz Yazılım Geliştiricisi Yazılım, Yazılımcı, Yazılım Dilleri.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
Programlama Laboratuarı-I DERS - 3 Program Geliştirme Derleyici ve DevC++ Derleyicisi.
XML ve XML WEB SERVİSLERİ Volkan ALTINTAŞ. XML Bağımsız bir kuruluş olan W3C tarafından tasarlanmıştır. Herhangi bir kurumun tekelinde değildir. Kişilerin.
SUNUCU İŞLETİM SİSTEMLERİ
Asp.Net Veritabanı İşlemleri
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
haZIRLAYAN: ELİF KARAOĞLU
C Programlama Dili Bilgisayar Mühendisliği.
Bilgisayar Donanım ve Sistem Yazılımı
Nesne tabalı Programlamaya giriş
PROGRAMLAMA TEMELLERİ
VISUAL STUDIO İÇERİSİNDE VERİ TABANI BAĞLANTISI ACCESS DATA SOURCE SAVAŞ TUNÇER
Problem Çözme Yaklaşımları
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Mühendisliğine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
.NET Teknolojileri .NET mimarisi VB.NET, C.NET, C#.NET
Sunum transkripti:

1- C# Hello world Nesne Yönelimli Programlama - i Yunus Özen yunus@csharpturk.net

C# Genel amaçlı Nesne yönelimli Tip güvenli 2000 yılı Anders Hejlsberg, Scott Wiltamuth ve Peter Golde

C# Programlama Dili C#, programlama dillerinin gelişim sürecinde bir sonraki aşamayı temsil eder. Daha önce kullanılan başarılı programlama dilleri gibi C# da bir yandan programlama sanatını daha ileriye taşırken bir yandan da geçmişte geliştirilen konseptlerin üzerine inşa edilmiştir. Microsoft, .net framework altyapısını geliştirmek için C# dilini oluşturdu. C# geliştirilirken diğer programlama dillerinden etkilenilmiştir.

C# Dil Ağacı Sintaks olarak ve üzerine inşa edildiği temel itibariyle C#; C ve C++ dillerinden türetilmiştir. Ayrıca benzer sintaksa sahip olan Java ile de ilişkilidir. Bu 3 dilin gelişimini inceleyip C# dilinin sunduğu olanaklara o çerçeveden bakmaya çalışalım.

Modern Programlama ve C Dili C, Dennis Ritche tarafından 1970 yılında UNIX işletim sistemi kullanan DEC PDP-11 üzerinde icat edildi. C dili yapısal programlama (structured programming) yaklaşımının dabaşlangıcı sayılabilir. Yapısal programlama, tanımlanmış kontrol ifadeleri, yerel değişkenler ve fonksiyonlar gibi özellikleri ile büyük programlar yazmayı olanaklı hale getirdi. C dilinin kısa ve öz ama kullanışlı söz dizimi, kontrolün programcıya verilmesi, programcıların C dilini seçerken tercih ettikleri özellikler olarak öne çıkıyor. 1980’lerin en yaygın dili olması da bu yüzdendir. Zamanla, programların büyümesi, kısa zamanda ve büyük ekiplerle program geliştirme gereksinimleri C dilinde programcıları zorlamaya başladı.

Nesne Yönelimli Programlama ve C++ Yapısal programlamanın başa çıkmakta zorlanacağı büyüklükte programlar yazma ihtiyacı neticesinde nesne yönelimli programlama yaklaşımı ortaya atıldı. Bjarne Straustrup 1979 yılında C diline nesne yönelimli özellikler eklemek üzere Bell Laboratuvarlarında çalışmaya başladı. Yeni geliştirilen bu dile 1983 yılında C++ adı verildi. 1990’ların başında C++ dili yeterince olgunlaşmıştı ve yagın kullanımı başladı. Bugün hala yüksek performanslı, sistem seviyesinde kod geliştirmek için C++ tercih edilmektedir. C++, yeni bir programlama dili icad etmek için değil, C dilinin yetersiz kaldığı noktada yeni özellikler ekleyerek onu daha gelişmiş bi dil haline getirme girişimi olarak değerlendirilmelidir.

Internet ve Java C/C++ ile azılan kodları belirli bir işlemci ve işletim sisteminde çalıştırılmak üzere derlenir. Başka bir işlemci ya da işletim sistemi için yeniden derlenmesi ve farklı çalıştırılabilir versiyonunun oraya kurulması gerekir. Farklı işletim sistemi ve işlemcilerin ortaya çıkması ile birlikte her platformda çalışabilecek taşınabilir kod yazma ihtiyacı kendini gösterdi. 1991’de Sun Microsystems’de James Gosling taşınabilir bir dil ortaya çıkarmak üzere çalışma başlattı. Patrick Naughton, Chris Warth, Ed Fraklin ve Mike Sheridan da bu yeni dilin gelişimine katkıda bulundular.

Internet ve Java Yeni ortaya çıkan ve adına Java denilen yeni dil, C dilinin söz dizimi, C++ dilinin nesne yönelimliyapısı üzerine geliştirildi. Java ile yazılan kodlar bytecode adı verilen bir ara dile çevrilir. Üzerinde Java Virtual Machine (JVM) kurulu olan herhangi bir platformda bytecode, JVM tarafından makina koduna çevrilir ve çalıştırılır. Java ilk olarak gömülü sistemlerde yaygın kullanıldı. Internet’in de taşınabilir ve her platformda çalışabilir koda ihtiyaç duyduğu zamanla anlaşıldı.

C# Dilinin Doğuşu Microsoft, diller arasında uyum içinde çalışma özelliği de ekleyerek yeni bir platform oluşturmaya karar verdi. Bir dilde yazılan kodun diğer bir dilde de kolayca kullanılabilmesi için bir çözüm geliştirmek istedi. 1990’ların sonlarında C# geliştirildi ve yeni oluşturulan .net platformunun temel bir parçası oldu. 2000 yılında ilk C# sürümü yayınlandı. C# dilinin baş mimarı Pascal ve Delphi gibi bir çok başarılı programlama dillerini de geliştirmiş olan Anders Hejlsberg’dir. Anders ile birlikte Scott Wiltamuth, Peter Golde, Peter Sollich ve Eric Gunnerson da temel dil tasarımı grubunda yer almaktadır.

C# Dilinin Doğuşu C#, C ve C++ dillerini miras alır ama Java’yı miras almaz. Java iel benzerlikleri vardır. Farklı dillerle ortak çalışabilme özelliği ve bileşen yönelimli bir dil olması ile farklılaşmaktadır. C# dilindeki Jenerik tip sistemi Eiffel ve Ada dillerinden miras alınmıştır. LINQ yapısı ve lambda ifadeleri, Haskell ve Lisp dillerinden alınmıştır. Ruby gibi dinamik dillerden ve F# gibi fonksiyonel dillerden de özellikler almaktadır.

.Net Framewrok Ortak Dil Çalışma Zamanı :Uygulamaların ihtiyaç duyacağı alt seviye servisleri sağlar. .Net Framewrok ortamında yazılan koda managed code, dışında yazlan koda unmamaged code dedir. Sınıf Kütüphanesi: 4000’den fazla sınıf vardır. Günümüzde bilinen en büyük sınıf kütüphanelerindendir. Paralel Programlama Platformu: Çok işlemcili ortamlarda çalışmanın avantajını kullanabilecek etkin kod yazmayı destekler. Dinamik Dil Çalışma Zamanı: IronRuby ve IronPython gibi dinamik diller için servisler sağlar.

Ortak Dil Çalışma Zamanı (Common Language Runtime - CLR) CLR, .net framework yapısının çekirdeğidir. Birleşik tip sistemi ve yönetilebilen çalışma zamanı sağlar. Dilden ve platformdan bağımsız uygulamalar geliştirme olanağı sağlar.

Ortak Tip Sistemi (Common Type System - CTS) Ortak tip sistemi sayesinde bütün .net dilleri aynı tip tanımlarını kullanır.

Ortak Dil Özellikleri (Common Language Specification - CLS) Ortak tip sisteminin olabilmesi için .net çatısına dahil edilen bütün dillerin bazı ortak özellikleri taşımaları gerekir. Bu ortak özelliklere ortak dil özellikleri denir. Bu sayede farklı dillerde yazılmış yönetilebilir kodlar birlikte çalışabilirler, dilden ve platformdan bağımsız uygulamalar geliştirmek mümkün hale gelir.

Ortak Ara Dil (Common Intermediate Language - CIL) Ortak tip sistemi ve ortak dil özellikleri sayesinde platformdan bağımsız ve dilden bağımsız uygulamala geliştirmek mümkündür ama derleyici kodu belirli bir donanım platformuna göre derlerse problem var demektir. Bu problemi çözmek için yönetilen kod ortak ara dile derlenir. Bu dili assembly dili gibi düşünebilirsiniz. Uygulama çalıştırılacağı zaman da uygun işletim sistemi ve donanım platformuna göre derlenir çalıştırılır. Donanım platformundan bağımsız olma durumu da bu şekilde sağlanır.

Sanal Yürütme Sistemi (Virtual Execution System - VES) Ortak Dil Çalışma Zamanı’nın diğer bir önemli parçası da yönetilen çalışma zamanı ortamı (managed runtime environment) olan Sanal Yürütme Sistemi’dir. Java uygulamaları JVM’ye ihtiyaç duyuyorlarsa .net uygulamaları da CLR’ye ve özellikle VES’e ihtiyaç duyarlar. VES, CIL kodunu yükler, yürütür, bellek kullanımını yönetir. Derlenen ya da yorumlanan bütün .net dilleri için CIL kodu yüklenir ve yürütülür. CIL kodu derlenmiş olur

JIT VES tarafından sağlanan servislerden birisi de Just-In-Time Derleyici (JIT)’dir. Just-In-Time derleme işlemi, yarı derlenmiş CIL kodunu çalışma zamanında doğal koda (native code) ya da yürütülebilir koda dönüştürmektir. Derlenen kod yürütülür ve sonraki yürütmeler için önbelleklenir.

Bellek Yönetimi ve Çöp Toplama (Garbage Collection) Yönetilmeyen dillerde bellek kullanımı ve buna bağlı çıkablecekler problemler için bellek yönetimi önem arzeder. .net Framework bellek yönetimini VES’in bir parçası olarak üstlenir. İhtiyaç kalmadığında ilgili bellek bölgesini temizleme işlemine çöp toplama denir ve C# da .net framework içinde böyle bir özelliğe sahiptir.

Framewrok Sınıf Kütüphanesi (Framewrok Class Library - FCL) Java Sınıf Kütüphanesi, C++ Standart Şablon Kütüphanesi, Microsoft Aktif Şablon Kütüphanesi, Microsoft Temel Sınıfları, Borland Windows Nesne Kütüphanesi gibi .net Framework de çok zengin bir sınıf kütüphanesine sahiptir. Yaygın programlama görevlerini yerine getirmek için ihtiyaç olan tipler ve sınıflar .net framework içerisinde hazır olarak gelir.

FCL

FCL FCL’nin en altında Temel Sınıf Kütüphaneleri (Base Class Libraries - BCL) vardır. BCL içerisinde toplam 172 tane açık erişilebilir tip vardır. Bu tipler ECMA Ortak Dil Altyapısı (Common Language Infrastructure - CLI)standardında tanımlanmıştır. BCL haricinde kalan FCL sınıfları ise xml işlemleri, güvenlik, ağ gibi daha spesifik işlevlere odaklanmıştır.

ECMA Nedir ECMA 1961’de kurulan, Bilgi İletişim Teknolojileri’nde standartları belirlemek üzere örgütlenmiş kuruluştur. C# Dil Spesifikasyonları ve CLI, 2001 yılında ECMA tarafından kabul edilmiştir. CLI, CLR’ın açık kanaklı versiyonudur. Mono, Portable .Net gibi açık kanaklı framewrokler bu standartlar temel alınarak geliştirilmiştir. Mono, özellike lnuc platformunda ve diğer işletim sistemlerinde çalışabilen bir framework olarak yaygındır.

İsim Uzayları (Namespace) FCL’nin içerisinde yüzlerce tip tanımı var. Bu sınıfları hiyerarşik olarak gruplamak için namespace mekanizması kullanılıyor. İsimuzayları temel olarak tip koleksiyonlarıdırlar. Hiyerarşik gruplar birbirlerinden (.) ile ayrılırlar. Örneğin System.Printing.PrintDriver ifadesi System.Printing isimuzayının altında bir sınıf ismidir. FCL içerisinde 400 civarında isimuzayı vardır. Bazıları her yazdığımız uygulamada kullanılır, belki bazılarını hiç görmeyeceksiniz bile.

Yaygın İsimuzayları System: .net içerisindeki temel isimuzayıdır. Ortak kullanılan veri tipleri, istisna ve olaylar bu isimuzayı altında gruplanmıştır. System.Collections.Generic: Jenerik koleksiyonların, listelerin oluşturulması için gerekli sınıfları içerir. System.Data: ADO.NET kütüphanesinin aşağı yukarı tamamını ve diğer veri erişim sınıflarınıbarındıran isimuzayıdır. Geliştirdiğimiz uygulamada ihtiyaç oldukça bu isimuzaylarından gerekli olanlarını uygulamamıza dahil ederiz.

Paralel İşleme Platformu Çok kanallı ve asenkron uygulamalar geliştirmek hem yönetilen hem de yönetilmeyen kod ile mümkündür. Paralel işleme platformu iş parçacıkları ve kilitler gibi alt seviye işlemlerle uğraşmadan çok kanallı ve asenkron uygulama geliştirmeyi kolay hale getirir.

Dinamik Dil Çalışma Zamanı (Dynamic Language Runtime - DLR) Framework 4.0 ile birlikte dinamik dil çalışma zamanı geliştirilmiştir. Bu sayede dinamik dillere çalışma zamanı servisleri sağlanır. Dinamik dillerin statik .net dilleri ile ortak çalışma imkanı ortaya çıkar. Ayrıca mevcut statik dillere dinamik özellikler kazandırır.

Framework Diagram

C# Versiyonları

C# ile İlk Program DEMO

Teşekkürler