logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
baharB  
#1 Gönderildi : 19 Ağustos 2017 Cumartesi 12:15:08(UTC)
baharB

Sıralama: Newbie

Gruplar: Registered
Katılan: 17.08.2017(UTC)
Mesajlar: 3
Turkey

1 Mesajına Toplam 1 Kere Teşekkür Edildi.
C# ve .NET’e Giriş

C# Nedir?

C#, C/C++ ve Java dillerinden türetilerek güçlü, basit,esnek,tip güvenliği modern ve Microsoft.NET platformu için hazırlanmış sıfırdan geliştirilerek sunulan tek programlama dilidir.
Bilgisayar kullanmak için öncelikle bir bilgisayarı programlamamız gerekmektedir. Geçmişten günümüze bakıldığında ilk çıktıkları günden bu yana birçok farklı düzeyde farklı programlama dilleri kullanılmıştır. Bilgisayarlar, programlama dillerinin kullanılmasıyla birlikte insanların işlerinde gün geçtikçe daha da kolaylaştırmakta bir araç olmaya devam etmektedir.
Pogramlama dillerini çalışma düzeylerine göre şu şekilde sıralayabiliriz:

Scrip dilleri : Java Script, Perl Script, VB Script…
Yüksek düzeyli diller : VBasic ve Delphi
Orta düzeyli diller : C# ve Java
Düşük düzeyli diller : C/C++
Assembly : Assembly

Yukarıda yer alan listeden anlaşılcağı gibi C# orta düzeyli diller grubuna girmektedir. C# kullanılarak alt düzey ve üst düzey programları geliştirebiliriz. C#, güvensiz kod bloklarında işaretçiler kullanmaktadır. Büyük çaplı projelerde tercih edilen dilin verimli ve zor olmaması gibi özellikler dikkate alınmalıdır.
C/C++ ve Java biliyorsanız C#’ı öğrenmek size hem kolaylık sağlayacak hemde tanıdık gelecektir. İlk zamanlar da sadece C olduğundan en popüler ve en çok tercih edilen dil olmuştur.
Zamanla diğer dillerin geliştirilip ortaya çıkmasıyla önem kaybetmeye başlamıştır. Bu durum göz önünde bulundurularak C++ dili geliştirilmiştir. Programcılara gelişim açısından profesyonellik katan bir dil olmuştur.
Daha sonraları bir anda Java dili çıkmış ve bir anda programcıların yeni gözdesi haline gelmeye başlamasıyla, java ile yazılan yeni programlar web ortamında hem Applet hem de Java Runtime kurulu bilgisayarlarda çalışabiliyordu.
Java ya karşılık olarak Microsoft .NET ile tamamen uyumlu olan C#’ı geliştirip hizmete sundu.

Neden C# kullanıyoruz?

C# ‘ın öğrenilmesi kolay ve gerçek anlamda nesne yönelimli bir dildir. Hem daha hızlı projeleri geliştirmekte hem de hataların giderilmesinde büyük önem sağlar. Microsoft bir takım önlemler alarak hata sıklığını en aza indirmeye çalışmıştır. Örneğin if () deyiminde parantezlerin içersinde Bool türünden olması gerekliğindendir bu demek oluyor ki if () içindeki değerin int veya türevi bir değer olursa program derlenemez.
Programcılar bir çok dille proje geliştirebilirler bu da bizlere kolaylık sağlar mesela VB kolay kullanılır bir dil olabilir ama C++’ a göre hem yavaş hemde özellik açısından eksiklikleri vardır. C++ güçlü ve zor bir dil olmasıyla VB’nin ise kolay kullanımı olmasına rağmen bu ikisinin sağladığı özellikleri kendisinde bulunduran programcıların tercihi olan C#’tır.
Diğer kullanım nedenlerinden bir tanesi de yazılan programların tek bir makinada çalışması yetersizliğini ortadan kaldırmaktır. Geliştirilen yazılımların intranet ve internete açılan yönlerinin olması diğer başka sistemlerle etkileşimde bulunmaya yarar sağlamaktadır. Böyle bir durumda farklı sistemlerle etkileşim için veri alışverişini sağlayabilen ortak bir dil olan XML dili gereklidir.
XML’in gelişimiyle Microsoft bu seferde .NET ve C#’in içine XML desteğini eklemiştir. Böylece XML verileri çalışmadığı durumlarda C# kolaylık sağlar. Form ve olay(event) mantığını VB dilinde mevcuttur. C++ zorluğunun yanı sıra, Windows ve MFC kullanıcı grafik arayüzünü kullanarak programlamayı öğrenmek ve geliştirmek zor bir hale gelmekteydi. VB’nin ise kullanımı kolay ve form tabanlı yazılım geliştirici özelliklerinin olmasıyla programcıların çalışmalarını daha hızlı geliştirmelerine olanak sağlıyordu.
Yani özetlersek C#’ı tercih etmemizin en büyük nedeni C/C++ ve Java mantığının avantajlı yönlerini alarak nesne yönelimli mükemmel bir dil ortaya çıkarılmış ve beraberinde daha kısa sürede daha iyi ve geliştirilmeye açık yazılımların çoğalmasına ön ayak sağlamaktadır.

C#’ın .NET’teki Yeri ve Kullanım Alanları

Microsoft tarafından geliştirilip ve programlama da en popüler üç dil olan C/C++ ve Java nın avantajlı yönlerini alıp .NET’in tehlike sarf edecek özelliklerini dışarıda bırakan C# kendisini bu dillerden besleyerek bu dillerin kralı olma statüsüne yükselmiştir diyebilliriz.
C# ‘ı iyi derecede öğrenmişseniz .NET ortamında birçok güzel işi yapabilirsiniz. Birçok farklı yol deneyerek bu işte başarı basamaklarını tırmanmak kaçınılmazdır.Bir kaç kullanım alanını aşağıdaki gibi sıralayalım:

Konsol uygulaması geliştirme aracı:

Çoğu programcıya göre Asp.NET uygulamasının geliştirici özelliklerini çok iyi kavramış yani öğrenmişseniz konsol uygulaması geliştirme aracı olarak kullanmayacağınızı zamanla düşünebilirsiniz. Ama burda önemli olan noktanız C#’ı tam anlamıyla öğrenmeniz için konsol uygulamasını geliştirmelisiniz. Yani bu demek oluyor ki dilin temel özellikleri üzerinde yoğunlaşmanızda yarar vadır.

Windows için program yazma :

Windows için güvenli ve çeşitli özelliklerde programlar yazabilmek için C#’ı kullanabilirsiniz. Programlarınızın sistemde çalışabilmesi için .NET Platformunun (.NET Framework) kurulu olmasının yanıda .NET’in desteklediği işletim sistemlerinden birini de tercih etmelisiniz.

Asp.Net için uygun olan dilin kullanımı:

.NET tamamı C# ile yazılmıştır. Asp.NET(Web Form) ASP gibi script yorumlama içermemektedir.Derlenebilen(complited), çalıştırılan(executable) nesne yönelimli bir model haline gelmiştir. Kaliteli ve önem arz eden işlerde kaliteli bir dil olan C# kullanabiliriz.
Yine diğer kullanım alanlarından bir diğeri de;
Web servislerdir ve web üzerinden hizmet sunan programlardır. Bu servislere de HTTP protokolü ile ulaşılabilmekteyiz.
Mobil uygulamalarında ise .NET ile tüm IP tabanlı cihazlara erişim mümkünleştirilmiştir. C# ve .NET mobil geliştirici ile mobil yazılım uygulamalarını geliştirebiliriz. Yine .NET desteği olan dillerden DLL’yi (Dynamic Link Library) hızlı erişim sağlayabilen bu dili kullanabilirsiniz.
Bunun gibi bir çok kullanım alanından bahsedebiliriz, ancak iyi bir başlangıç için sanırım bunlar size yeterli ve yadımcı olacaktır.

.NET’in Bileşenleri Nelerdir?

.NET,dağıtık uygulama geliştirme modellerini benimsemektedir.Programlama da istikrarlı, güvenli,etkili, verimli ve kolay olmayı bizlere sağlar.
Javadan önce ilk zamanlar yazılımlar makine koduna direk derlenip çalıştırılırdı. Bu programlar, işletim sistemi türüne göre özel olarak geliştirilmiş ve işletim sistemi kurallarına göre derlenmiştir. Programların başka sisteme taşınılabilirlikleri neredeyse yok sayılırdı.
Java önce yazılan kodun işletim sisteminin istediği tipte ki koda çevirir. Javanın kodu çalıştıması için ilk olarak kodu byte koda çevirmesi gerekir.
Direk makina koduna çevirilen yazılımlar yavaşlayabilmektedir. Bu .NET'in çalışma şekliyle benzerlik gösteririr.
Farklı dillerde yazılan bileşenlerin birbirileriyle sorunsuz şekilde çalışması için Temel Dil Tanımları(CSL) ve Ortak Tip Sistemi ile .Net'e uyumlu diller, değişkenler, nesne yönelim gibi benzer özellikleri bulundurmalıdır.
Sistemimizde çalışan programları yerel(Local), çalışan programlar ve ağ üzerinden çalışanlar olarak ayırabiliriz.
Veri tabanında ki verilerimize ADO(Activex Data Objet) ve SQL ile istediğimiz vakit ulaşmaktaydık. Daha sonraları ortaya çıkıp geliştirilen XML yaygınlaştı. Standart bir hal almaya başlayan XML verileri internet üzerinden paylaşabilmekteydi.
İşleme modeli ile ADO’nun sağladığı verileri işlemek kolay sayılmazdı.Bu nedenle.Net,ADO.NET ve tam bir XML desteği ile işleme modelini geliştirerek kolaylık ve verimlilik sağladı.
Bilgisayar programlama için hızlı ve verimli programlar geliştirmekte büyük zorunluklar olmaya başlayınca dil ile birlikte dil kütüphanesi de gerekli ve önemli hale gelmiştir.
Programlamada nesne yönelimli olmasının bir yararı da kullanılan kodun daha sonra ihtiyaç halinde tekrar kullanılamasını sağlamaktır. .NETin temel sınıf kütüphanesi kullanıcıya yüzbinden fazla metodu sunar.
C# ve.NET uyumlu bir dili öğrenmek sınıf kütüphanelerini daha iyi tanımak bizi Microsoft.NET’de uzmanlaşmamazı sağlar.

Ortak Dil Çalışma Platformu(CLR)

CRL ,işletim sistemi ile .NET’in alt yapısında programın çalışmasını sağlayan arabirimdir.Programlar makine diline çevirilerek derlenirdi bu da işletim sisitemine direk bağlantı kurmayı sağlardı .

CLR ve .NET Programların Derlenip çalıştırılması

.NET farklı platformlarda CRL ninde işin içine girmesiye bağımsız bir geliştirme ve yürütme ortamı sağlanabilir.
Kullanılmakta var olan çok sayıda platformu varsayarsak tek bir işletim sisiteminde herbiri için ayrı ayrı derleme işini yapmak imkansızdı. Bu yüzden ortak bir arabirim dil kullanmamız gerekir.

IL(Intermediate Language-Aradil)

Metotların nasıl çalıştıralıcağı, aritmetik ve mantıksal işlemler, değişken tanımları, hata yakalama gibi birçok işin yapılmasını açıklar. “Metadata” adında bir birim daha IL’de de vardır. Metadata oluşturulan sınıf metotların bilgilerini ve özelliklerini içerir. Burada metada içeriği çalışma sırasında JIT adı verilen derleyiciler tarafından kullanılır.

JIT Derleyicileri

Programları C# ve IL derleyicileri ile derlerken, programın çalışması sırasında JIT(Just in Time) devreye girer. Programın çalıştığı sistemin derlenirken anlayabilmesi için bu derleyiciler makine kodunu oluştururlar.
Windows ortamı için üç çeşt JIT derleyici versiyonu vardır. Bunlar:

a.)Normal JIT: Varsayılan JIT derleyicisi IL kodunu makine koduna çevirerek ön beleklte tutar.
b.)Pre-JIT: Bütün program kodlarını makina kodlarına çevirip daha sonra çalıştırarak daha hızlı hale getirirmek için tasarlanmıştır.
c.)Eco-JIT: Normal JIT’in hafızasında derlenen ve çalıştırılmış olan programlar hafızadan hemen silinmiyordu. Ama Eco-JIT daha önceden derlenip çalıştırılmış kısımlar belli bir oran aralığının altına düştüğü vakit silinir.Böylece hafıza alanındaki problem ortadan kalkmış oldu.

CTS ve CLS

Programlama dillerinin veri türleri arasında ve .NET ‘in Common Type Sistem(CTS-Ortak Tip Sistemi) ile özellikeri birbirileriyle uyumluluk sağlar.CTS fonksiyonlarının sağladıkları:
• .NET uyumlu diller ile entegre bir şekilde çalışmasını sağlar
• .NET mimarisinde nesne yönelimli olarak .NET için program yazma imkanı sunar.
• .Net ile geliştirilen uyumlu diğer dillerden sorunsuz şekilde çalışmasını sağlar.
CTS’de veri tipleri değer(Value) ve referans(Reference) olmak üzere 2 ana kısıma ayrılır.

Assembly Kavramı

Düşük düzey bir dil olan Asembly dili ile bir alakası yoktur sadece isim benzerliği vardır.Asembly .NET içinde yazılan tüm kodların sonuçlarından oluşan EXE, ve DLL uzantılı dosyalara denir.
Metadata da yer alan Assembly tür bilgilerini ve başka kaynaklarla olan bağlantıları saklar.
Bazı sistemlerde sorun çıkmasının nedeni bu DLL’nin üzerine hazırda bulunan sonradan register edilen DLL’nin yazılmış olmasıdır. Asembly de DLL ve EXE versiyon bilgileri tutulur. Bu nedenle farklı versiyonlara sahip Asembly’leri kullanabiliriz.Bu da bize Asembly le ilişkin dosyaları direkt kopyalamamızı sağlar.

Application Domain Kavramı

En önemli özelliklerinden biri de Asembly de “Domain Kavramıdır” .
Application domain ile sistemde herhangi bir aksaklığa yol açmadan veri alışverişi gerçekleştirmek-tedir. Asp modelinde bir web sunucusuna bir çok kullanıcı bağlanabilir ve kullanıcıların herbiri için faklı işlemler olması halinde bir sorun durumunda web sunucusu hizmet dışı kalabilir.
Asp.Net’in bu sorunlara çözüm olarak Application Domain ile üstesinden gelmiştir.

İsim Alanları ve .NET Sınıf Kütüphanesi

Programlama da bir takım hazır kütüphanelerin bulunması kullanıcının işini kolaylaştırmaktadır. Bu kütüphanelerin bazıları standart bazıları ise sonradan geliştirilmiştir.
C# de diğer dillerin aksine hazır sınıf kütüphaneleri bulunmamaktadır.Bu bize hemen düşünüleceği gibi zorluk verebilicek bir dezavantaj değildir.Çünki .NET Framework dediğimiz alt yapı bizlere bir çok sınıf hizmeti sunmaktadır.
Microsoft programcıya bazı temel kurallar getirmiştir. Bunlar isim alanında adlandırma yaparken örneğin isim alanının başında bir isim yazıldığında araya bir nokta koymamızı ve isim alanımızın isimi ne ise onu yazmamızı tavsiye etmektedir.
.Net sınıf kütüphanesinde bulununan en çok tercih edilenlerin bazıları şunlardır:
System,
System.Data,
System.XML,
System.NET,
System.IO,
• System.Windows.Forms[/b][/u]
Bu sınıf küphaneleri çeşitli özellikte ve kullanım alanlarına göre çeşitlendirilmektedir. İhtiyacınız olduğunda küçük bir web araştırmasıyla detaylı bilgilerine ulaşabilir ve çok rahat kullanabilirsiniz.

C# Komut Satırı Derleyicisi

C#’ı iyi öğrenemeniz için sürekli bahsettiğim ve bahsetmeye devam edecek olacağım C# komut satırı derleyicisiyle çalışmanız gerekmektedir. Etkili bir biçimde kullanmak için ve işlerinizin kolaylığı için onu sıklıkla kullanmayı ihmal etmemelisiniz.

Derleyici Ayarları

C# ‘ta derleyicimizin ismi csc.exe’dir ve .NET kuracağınız vakit yüksek ihtimalle derleyici ayarları yapılmamış olarak kurulacaktır. Hemen test edip ayarların yapılıp yapaılmadığını anlamak için komut satırına ‘csc’ yazıp enter’a basın.
Eğer yapılamadıysa aşağıdaki yolu sırasıyla yapın.

Control Panel > System> Advanced>Environmental

Açılan pencerede System Variables kısmından Path’ ı bulup çift tıklayınız.
Çıkan iletişim kutusunda alt tarafta yer alan metin kutusunun son kısmına aşağıdaki gibi yazın. XP ve hangi Windows sürümlerini kullanıyorsanız ona göre farklılık göstermektedir. Aşağıdaki örnek olarak XP için verilmiştir.

;C:\ Windows\Microsoft.NET\Framework\v.1.0.3705;

HATIRLATMA!! (Hangi windows sürümünü kullandığınızı dikkate alarak yapınız. )

Derleyici Paramatreleri

C# derleyicileri ile parametreler kullanabiliriz. Çeşitli yöntemlerde bulabiliriz. Bunlardan bazılarını bahsedelim.
Komut satırında çalışmasını istediğimiz program için:

csc ProgramAdi.cs

Program kodunun isminden farklı bir .exe için:

csc/out: YeniProgramAdi.exe ProgramAdi.cs

Bunlar gibi çeşitli derleme işlemleri mevcuttur bunun için yine bir web araştırması işinizi kolaylaştıracaktır. Burada sadece kısaca birkaç örnek verip konuya biraz daha hakim olmanızı amaçlamaktayım sizlerinde bildiğiniz gibi günümüz internet bize bu konularda en büyük yardımı sağlamaktadır.

Düzenle Kullanıcı Tarafından 19 Ağustos 2017 Cumartesi 12:23:31(UTC)  | Sebep: Sebep Bildirilmesi



Bu konudaki kullanıcılar
Guest (2)
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.