Merhaba, Merhaba, bu yazıda Delegates ve Events(temsilciler ve olaylar) konuları hakkında edindiğim bilgiler ve araştırmalarımı aktarmak istiyorum. Delegeler ile başlayacak olursak; Bilindiği üzere metotlar bellekte oluşan ve bellek adreslerine sahip yapılardır. Delegeler ise bu metotların adreslerini tutan yapılardır. Delegeler aynı zamanda referans tipli değişkenlerdir. Bu da demek oluyor ki delegeler nesne oluşturabilir. Delegelerin bazı özellikleri:…
C# Records
Merhaba, bu yazıda Records konusu hakkında edindiğim bilgiler ve araştırmalarımı aktarmak istiyorum. C# 9.0 ile gelen Records yapısı ile birlikte bir objeyi bütünsel olarak değişmez(immutable) hale getirebiliyoruz. Bunu sınıflar içerisinde de init only property ile gerçekleştirebiliyorduk ancak bu tüm objeden ziyade sadece o property için geçerli bir durumdu. Records için ise bu durum farklıdır. İki tür record bulunmaktadır; Nominal Records Positional Records…
C# IComparable ve IComparer Arayüzleri
Merhaba Yazılım geliştirme esnasında karşımıza çıkan IEnumerable ve IEnumerator arayüzleri hakkında daha önceki yazıda bilgiler vermeye çalışmıştım. Bu yazıda ise IComparable ve IComparer arayüzleri üzerinde duracağım. Gelelim konumuza, Bir örnek üzerinden gidecek olursak; Bunun için Calisanlar sınıfını oluşturalım. Yukarıda oluşturduğumuz sınıfı örnekleyerek kullanalım. Bununla birlikte birkaç çıkarım yaparak devam edelim. Önceki IEnumerable yazısında da belirttiğim üzere ArrayList sınıfı IEnumerable arayüzünden implemente ediliyordu. Bu arayüzden gelen GetEnumerator metodu ile ArrayList sınıfından türeyen…
C# IEnumerable ve IEnumerator Arayüzleri
Merhaba Yazılım geliştirme esnasında karşıma birçok kez çıkan bu arayüzlerin kullanımı ve mantıksal olarak çözümlenmesi konularına kendimce değinmek istiyorum. Bu kavramlara gelmeden önce ilk olarak Iteration(yineleme) konusu üzerinde durmak gerekir sanırım. Matematikte gördüğümüz fonksiyonlar, fibonacci serisi ve bunun gibi şeylerde mantıksal bir yöntem kullanılır. Yazılımda ise geçişler döngüler ve onun adımları ise itersayon ile açıklanmakta. Bu konuda daha…
Entity Framework Code-First ilişkili tablolarda neden ‘Virtual’ kullanırız?
Database First yaklaşımı ile oluşturduğumuz projelerde veritabanında oluşturulan tabloları hazır şekilde projemize entegre edebiliyorduk ancak Code-First yaklaşımında veritabanı tablolarını kendimiz tasarladığımız için Database First’te bazı hazır gelen kısımları kendimiz tamamlamamız gerekmektedir. Bu kısımlardan property için “Virtual” anahtar kelimesi kullanımı kısmına değineceğim. Yazının sonunda ilişkili tablolar için eğer “virtual” kullanmazsak ne gibi bir problem ile karşılaşırız…
Singleton Design Pattern Nedir?
Singleton Design Pattern C# içerisindeki en popüler tasarım kalıplarından biridir. Aynı zamanda çalışma zamanında yalnızca 1 nesne oluşturulmasını garanti eder. Singleton class kendisinden sadece bir örnek(instance) oluşturulmasına izin verir. Singleton Design Pattern ile oluşturulan bir sınıftan birçok örnek oluşturmak istesek bile referansları RAM’in heap bölgesinde aynı yeri işaret ederler. Örnek üzerinden devam edelim. Yukarıda görüldüğü…
ASP.NET MVC Nedir?
Uygulama geliştirirken uygun mimarinin seçilmemesi kodların karmaşıklaşmasına neden olur. Bu durumlar için Microsoft MVC mimarisini ASP.NET içerisine eklemiştir. MVC ile geliştirilen uygulama belirli parçalara bölünür ve daha modüler ve düzenli hale getirilir. MVC(Model-View-Controller)’de her bir parçanın kendine göre görevleri vardır. Model : Kullanılacak verilerin olduğu, veritabanı ile bağlantıların yapıldığı katmandır. View : Kullanıcının uygulamaya ulaştığı katmandır. Model…
C# Generic Yapıları Temel Mantığı
Öncelikle şunu belirtmeliyim, Generic yapısı hakkında bir bilginiz yoksa bu yazıyı okumadan önce biraz araştırma yaparak bu konuda bilgi edinebilir ve daha sonra bu yazıyı okuyabilirsiniz. Eminim o şekilde çok daha anlaşılır olacaktır. Kendi araştırmalarım ve öğrendiklerimden sonra bu konunun ana mantığını anlamaya çalıştım ve birçok kaynağa eriştim. En sade ve anlaşılır şekilde aşağıda bu…
Node.JS Kullanımı — 2
Projede yaptığım her değişiklik için node programını yeniden çalıştırmam gerekiyor. Bu zahmetli bir durum. Bu problemi çözmek için projemize nodemon adı verilen bir modül ekleriz. Programa modül eklemek için npm(node package manager) programını yükleriz. npm hangi klasörden çağırılıyorsa o klasörü proje dosyası olarak düşünüyor. Bazen birçok modül kullanmamız gerekecek. Bazen projeleri modül dosyaları olmadan taşımamız gerekecek. Bu durumlar için modüllerin listesini tutmak önemli….
Design Patterns — Factory Design Pattern & Abstract Factory Design Pattern
Kendi araştırmalarım ve öğrendiklerim ile birlikte gördüm ki bu konu en iyi örnekler üzerinden anlaşılıyor. Kısa bir açıklamadan sonra direkt olarak örnek üzerinden birşeyler yazmak istiyorum. Yıllar içerisinde yazılım geliştirirken birçok problem ile karşı karşıya kalınmış ve bunlara belli çözümler getirilmiştir. Yazılımcılar bu ortak sorunlara çözümler getirmiş ve bu çözümleri bir araya getirerek optimum çözümleri…