Kayıtlar

Ekim, 2022 tarihine ait yayınlar gösteriliyor

Derinlemesine Sayısal Değerler (Tamsayılar (Byte, Short, Integer, Long), Küsüratlılar (Float, Double, Decimal) )

Resim
  Sayılar tam sayılar ve küsüratlı sayılar olmak üzere ikiye ayrılır. Array olarak kullanılmakça Ram üzerinde Stack alanında tutulurlar ve hızlı çalışırlar. Herhangibir sayı tutmak için hepsi kullanılabilir, dikkatli olunması gereken konu performanstır. Sınırları belli olan(plakalar, ülkeler, şubeler vs...) yada sıralama yapılması gerekmeyen(tc kimlik no, forma numarası vs...) gibi senaryolarda iyi düşünülmelidir. Genel olarak yapılan hatalar; Sayı olan heryerde int kullanmak :  Aşırı büyük sayılarda hata verir, ufak sayıları tutmak için gereksiz yer kaplar. Data yada analiz incelenip ona seçilmelidir. Float ve double'ı parasal işlemler için kullanmak : Decimal tipi bu iş içindir. TC Kimlik numarası için long kullanmak : Kimlik numarası için sıralama çoğunlukla gerekmemektedir. Bu tarz büyük sayı olan ama sıralama gerektirmeyen sayılar için string kullanılabilir. Fatura/Sipariş no için int kullanmak : Bu tarz sayılar işinize bağlı hızlıca artabilir. Özellikle sipariş no gibi a...

Derinlemesine Char

CTS'deki (Common Type System) "System.Char" tipidir. Char ise değer tipidir, ram üzerinde Stack bölgesinde tutulur. Char[] ise referans tipidir, Heap bölgesinde tutulur. Tek karakterlik değerler, Hexadecimal, Integer ve Unicode tutmak için kullanılır.

Visual Studio 2019 Kurulumu

Resim
visualstudio.microsoft.com  adresinden ücretsiz olan "community 2019" sürümünü indirebilirsiniz. Yükleme tamamlandıktan sonra gelen installer ekranından : ASP.NET and Web Development Node.js Development .NET Desktop Development Universal Windows Platform Development Data Storage and Processing .NET Core Cross-Platform Development

Derinlemesine String ve Metodları

CTS'deki (Common Type System) "System.String" tipidir. Referans tipidir, ram üzerindeHeap bölgesinde tutulur. Metinsel değerleri tutmak için kullanılır. String, Char'ların bir araya gelmesinden oluşur ama char array değildir. Char değişkeni mutable bir tiptir(değişibilir), string immutable(değişemez) bir tiptir.  Yani bir string'e sonradan başka bir değer atandığında ilk değer değişmez, ram üzerinde Heap bölgesinde yeni bir alan açılır. Metodlar :  Length :  Yazıda kaç karakter olduğunu sayar. Boşluklarıda sayar. Sayı döner. ToUpper :  Yazıyı büyük harf yapar. ToLower :  Yazıyı küçük harf yapar. ToLowerInvariant :  Yazıdaki büyük harfleri küçük harfe çevirir. ToUpperInvariant :  Yazıdaki küçük harfleri büyük harfe çevirir. EndsWith :  Yazının sonunu kontrol eder. True/False döner. StartsWith :  Yazının başını kontrol eder. True/False döner. Replace :  Yazıda değişiklik yapmayı sağlar. TrimEnd :  Yazının sonundaki boşlukları siler. T...

Değişkenler ve Ram Kullanımları(Heap, Stack)

Resim
Değişkenler, veri saklamaya yarar. Her veri tipi için özel değişkenler vardır. Değişkenler nerede saklanır : Ram üzerinde 2 kısım vardır, Heap ve Stack. Stack kısmında değer tipleri, Heap kısmında referans tipleri saklanır.  Stack'te saklama işlemi yapılırken verinin saklandığı yer bellidir bu yüzden hızlıdır. Kodlar derlenirken,  ram üzerinde yer açılır ve yazdırılır. Uygulama kapandığında yada değişken işlevsiz hale getirildiğinde bu bilgiler ram'dan otomatik silinir. "Stack Overflow" hatası burdan kaynaklanmaktadır, kodlar derlenirken kaplanan alan dışında bir alanda veri ararsak bu hatayı alırız. Heap'te saklama işlemi yapılırken Ram üzerinde ne kadar yer tuttuğu bilinmediği için, runtime sırasında yapılır. Array içindeki değer tipleride, Heap'te saklanır. Heap'te garbage collector yoktur, saklanan verinin yazılımcı tarafından silinmesi(null,dispose) beklenir, eğer silme işlemi yapılmazsa "Memory Leak" oluşur. Memory Leak sonucunda da uygulam...

Syntax, Genel Kurallar ve Yorum Satırı

Resim
Kullandığımız Her kütüphane(dll) için using ile kütüphaneyi ekleriz. Kodumuzun olduğu yeri belirten namespace olmalı   ve süslü parantezler içinde olmalıdır. Classımız yada Classtan miras alan herhangi bir obje başlamalı ve süslü parantezler içinde olmalıdır. Metodlarımız olmalı  ve süslü parantezler içinde olmalıdır. Her satırın sonunda ";" olmalıdır. Case Sensivite yani küçük büyük harf duyarlıdır, dolayısıyla dikkatli yazılmalıdır.

Çalışma Mantığı, Terimleri, CIL, CLR, JIT, CTS, Garbage Collector

Resim
C# ile yazılan proje build edildiğinde, projede değişen kodların olduğu katmanlarda dll veya exe'ler yeniden oluşturulur. Proje compile edildiğinde, dll dosyalarındaki kodlar makine diline dönüştürülür. Bu yüzden büyük projelerde compile süresi uzayabilir çünkü tüm projedeki kodlar, makine diline dönüştürülmelidir. Terimler : Compile : Derlemek Compile Time : Yüksek seviyeli dilin, düşük seviyeli dile dönüştürülmesi Run : Çalıştırmak Run Time : Programın çalıştığı zaman aralığı Garbage Collector : Ram üzerine yazılan kayıtların temizlenmesi işidir. CIL (Common Intermediate Language) : E xe dosyalarının içindeki "ortak dil" diye çevirebileceğimiz kodlardır. CLR  (Common Language Runtime)  : .NET frameworkte programın çalışmasını sağlar. Garbage Collector işinide otomatik yapar. JIT (Just In Time) : CIL kodlarını, makine diline çevirir. CTS (Common Type System) : Farklı dillerde farklı adlardaki ortak değişkenlerin, ortak tipidir.

Nedir, Tarihçe, Nerelerde Kullanılır

Resim
1996 yılında  Microsoft 'a katılan  Anders Hejlsberg ve ekibinin , 2000 yılında geliştirdiği yüksek seviyeli bir programlama dilidir yani donanım bilgisi ve  assembly kodlama  yapabilmesine gerek yoktur. C# ile Java, PHP, Python vs... diğer arasında pek bir fark yoktur. Çoğu, diğer dillerin yaptığı herşeyi yapabilir. Doğaları gereği ufak avantajları/dezavantajları olabilir ama hiçbirinin diğerine baskın bir net bir üstünlüğü yoktur. C#'ın diğerlerine göre en büyük üstünlüğü Microsoft tarafından geliştirilmesidir.  C# ile yapılabilecek uygulama türleri : ASP.NET ile web uygulamaları XAMARIN  ile mobil uygulamalar Windows Servisler Masaüstü Uygulamaları Unity  ile oyun geliştirme Blazor  ile SPA geliştirme C# Atalarından Farkı : C ve C++'a göre Object Oriented bir dildir. Hafıza kontrolünü kendi yapar.(Garbage Collector) C ve C++'ta Ram üzerindeki kayıtları kendinizin silmesi gerekir. C ve C++ gibi makine diline yakın değildir daha yüksek seviyeli b...