Aylık Arşiv: Nisan 2016


Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...
Liskov'un Yerine Geçme Prensibi(Liskov Substitution Principle - LSP) 10

Liskov’un Yerine Geçme Prensibi(Liskov Substitution Principle – LSP)

Merhaba, Önceki yazılarımda SOLID prensiplerinden S–Tek Sorumluluk Prensibi(Single Responsibility Principle – SRP)‘ni ve O–Açık Kapalı Prensibi(Open Closed Principle – OCP) incelemiştik. Bu yazımızda ise sıradaki L timsaline denk gelen Liskov’un Yerine Geçme Prensibi(Liskov Substitution Principle –...

Açık Kapalı Prensibi(Open Closed Principle - OCP) 7

Açık Kapalı Prensibi(Open Closed Principle – OCP)

Merhaba, Bir önceki yazımızda SOLID prensiplerinden S olan Tek Sorumluluk Prensibi(Single Responsibility Principle – SRP)‘ni incelemiştik. Bu yazımızda ise sıradaki O timsaline denk gelen Açık Kapalı Prensibi – Open Closed Principle (OCP)’yi izah edeceğim. Her yazılım geliştirici bilir...

Roslyn Syntax Tree API'sine Göz Atalım 1

Roslyn Syntax Tree API’sine Göz Atalım

Merhaba, Bu makalemizde .NET Framework Compiler’ının derinlerine ulaşmamızı sağlayan Roslyn yapısındaki Syntax Tree API’sine değineceğiz. .NET çatısı altında hangi dilde olursa olsun yazdığımız kodlar öncelikle derleyici tarafından ayrıştırılır(parse) ardından bu işlem neticesinde Syntax Tree(Sözdizimi...

1

C# 6.0 String Interpolation

C# 6.0 versiyonuyla gelen lakin çoktan geç kalınmış bir özellik olan String Interpolation’dan bahsedeceğim. String ifadelerde değişken değerlerini ifadeye entegre edebilmek için string.Format komutunu aşağıdaki gibi kullanıyorduk. Bu kullanımda değişken sayısını onlarca fazlalaştırırsak eğer...

6

C#’ta Öznitelik(Attribute) Oluşturma

Merhaba, Teee ne zamanlar MVC Attribute Oluşturma başlıklı yazımda Asp.NET MVC mimarisine özel Attribute oluşturma konusunu ele almıştım. Şimdi ise C# ile özel öznitelik(Attribute) oluşturmayı inceleyeceğiz. Attribute yapıları aslında arka planda bir class tanımlamalarıdır....

Ninject 0

Dependency Injection(DI) – Ninject

Merhaba, Önceki yazılarımdan Dependency Injection(DI) Nedir? Nasıl Uygulanır? başlıklı yazımda Dependency Injection desenine detaylıca değinmiştik. Bu yazımızda ise bu desene uygun tasarlanmış Inversion of Control(IoC) Framework’ü olan Ninject üzerine konuşacağız. Biliyoruz ki, uygulama içerisinde...

C# Facade Design Pattern(Facade Tasarım Deseni) 0

C# Facade Design Pattern(Facade Tasarım Deseni)

Merhaba, Bu makalemizde Structural Patterns(Yapısal Desenler) kategorisine giren Facade Design Pattern hakkında teferruatlı bir içerik oluşturacağız. ‘Facade’, kelime anlamı olarak ‘cephe’ diye nitelendirebileceğimiz aslen Fransızca kökenli bir kelimedir. Tasarım açısından, önemli olan cepheyi işaret...

0

C#’ta INotifyPropertyChanged Interface’inin Kullanımı

Merhaba, Oluşturduğunuz herhangi bir sınıfta; propertylerin değer değişikliklerinde veya metodların algoritmalarında olay yaratmamızı sağlayacak olan INotifyPropertyChanged Interface’ini tanıtacağım. Yazımızı kısa tutmak için hemen mevzuya giriş yapıyorum. INotifyPropertyChanged Interface’ini kullanabilmeniz için öncelikle System.ComponentModel kütüphanesini kod...

0

C# 6.0 nameof Expressions

Merhaba, Kod yazarken class tiplerini yahut metod, property veya field isimlerini string olarak ifade etmemiz gereken noktalar olabilir. İşte böyle durumlar için geliştirilmiş olan C# 6.0 ile gelen nameof keywordüne değineceğiz. Örnek olarak ArgumentNullException...

2

Asp.NET Cookie Kullanımı

Merhaba, Bu yazımızda web projelerinde yıllarca kullanılan Cookie yapısına değineceğim. Bunca zamandır bu yapı üzerine içerik oluşturmamamın sebebi sanırım fazla önemli olmaması ve kullanım açısından zorluk arz etmemesinden kaynaklanmaktadır. Halbuki şimdi bu konuyla ilgili...

0

C# 6.0 Null Conditional Operators (?.)

C# 6.0’da gelen ve null kontrol algoritmasını çok kısa bir şekilde yazmamıza olanak sağlayan, tek başına çok anlamlı durmamasına rağmen, iç içe geçmiş nesneleri yahut propertyleri çağırırken sürekli null kontrolü yapmaktan kurtaran şahane yeniliklerden...

0

C# 6.0 Dictionary Initializers

C# 3.0 versiyonu ile Dictionary gibi key – value yapısında çalışan koleksiyonlar için aşağıdaki gibi kullanıma gelen yapı C# 6.0 versiyonunda indexer tarzında işlenebilmektedir. Eski sürüm. Yeni sürüm. Gördüğünüz gibi, key – value pair...

3

C#’ta is ve as Operatörleri

Merhaba, Programlama dilinde bir çok yapı, kendisi haricinde diğer yapılarla organize halde çalışabilmesine yahut algoritmik olarak eşlik edebilmesine dikkat edilerek dizayn edilmektedir. Bu yazımızda kendi başlarına bir işlem icra ederken, birlikte bir bütünü ifade...

1

C# Memento Design Pattern(Memento Tasarım Deseni)

Merhaba, Behavioral Patterns(Davranışsal Kalıplar) kategorisinde bulunan Memento Design Pattern üzerine içerik oluşturacağız. Memento adı üzerinde “hatıra”, “yadigar” vs.. demektir 🙂 Yani anlayacağınız hatırlayıcı işlevde bir tasarım deseni üzerine konuşuyor olacağız. Memento Design Pattern, elimizdeki...

6

C#’ta IComparable Interface’i İle Nesneleri Sıralama

Merhaba, Bu içeriğimizde, kendisini uygulayan sınıfta kendi tipindeki nesnelere karşı nasıl bir karşılaştırma yapılacağını belirlemek için kullanılan IComparable Interface’ine değineceğiz. IComparable Interface’i, miras alan sınıfa CompareTo metodunu uygulatmakta ve bu metot aracılığıyla karşılaştırmayı sağlamaktadır....

6

LINQ to Entities – LastOrDefault Metodunda NotSupportedException Hatası

Merhaba, LINQ to Entities sorgularından LastOrDefault metodu ile elinizdeki veri kümesinin son elemanını elde etmek istiyor lakin aşağıdaki hatayı alıyorsanız çözümü bu içeriğimizdedir. An unhandled exception of type ‘System.NotSupportedException’ occurred in EntityFramework.SqlServer.dll Additional information: LINQ...

C# Observer Design Pattern(Observer Tasarım Deseni) 7

C# Observer Design Pattern(Observer Tasarım Deseni)

Merhaba, Bu yazımızda Behavioral Patterns(Davranışsal Kalıplar) kategorisine giren Observer Design Pattern üzerine konuşacağız. Observer adı üzerinde gözlemci, izleyici, gözcü yahut gözetmen diye nitelendirilen, anlamı gibi işlev gören bir tasarım desenidir. Elimizdeki mevcut nesnenin durumunda...

0

Java’da Static Constructer

C#’da Static Constructer ne ise Java’da da o dur. İlgili sınıftan nesne üretilirken herşeyden önce tetiklenirler. İlk nesne talebinde static constructer tetiklenmekte, sonrakilerde tetiklenmemektedir. Yani o sınıftan sadece ilk nesne talebinde çalışmaktadır. Sadece bir...

0

C#’da Checked ve UnChecked Komutları

C# programlama dilinde, elimizdeki sayısal verileri birbirlerine cast operatörü ile dönüştürürken, küçük değer aralığına sahip tipte tutulan değişkeni büyük değer aralığına sahip tipte tutulan değişkene dönüştürmeye çalışırsak normal bir işlem gibi algılanacaktır. Lakin tam...

C# Strategy Design Pattern(Strateji Tasarım Deseni) 3

C# Strategy Design Pattern(Strateji Tasarım Deseni)

Merhaba, Behavioral Patterns(Davranışsal Kalıplar) kategorisine giren Strategy Design Pattern üzerinde detaylı irdeleme gerçekleştirelim. Bir işlem için birden fazla farklı yöntemlerin uygulanabileceği durumlar mevcuttur. İşte bu tarz durumlarda hangi yöntemin uygulanacağını, hangisinin devreye sokulacağını Strategy...

1

Dependency Injection İle Factory Method Design Pattern Sentezi

Merhaba, Dependency Injection yaklaşımı ile Factory Method Design Pattern arasında bir bütünlük sağlayarak bir proje üzerinde beraber nasıl bir tasarım gerçekleştirebiliriz? sorusuna cevap vermeye çalışacağız. Bu iki konu üzerinde detaylı durmayacağım. Lakin kısaca özetleyecek...

C# Prototype Design Pattern - Prototip Tasarım Deseni 3

C# Prototype Design Pattern – Prototip Tasarım Deseni

Merhaba, Bu yazımızda Creational Patterns(Oluşturucu Kalıplar) kategorisine giren Prototype Design Pattern üzerine konuşacağız. Tasarım deseni yaklaşımlarından Prototype Design Pattern sayesinde elimizdeki mevcut nesnelerin prototiplerini oluşturabilmekte, birnevi bu nesnelerin kopyalarını elde edebilmekteyiz. Prototip deseninin tasarlanmasının...

1

C#’ta İsimsiz Metodlar(Anonymous Methods)

Merhaba, C#’ta bir temsilciye(Delegate) metod bağlarken Anaonymous Method yapısını kullanabilir, önceden tanımlanmış bir metoda gereksinim duymadan direkt olarak kod bloğu bağlayabiliriz. Yukarıdaki örnek kod bloğunda da gördüğünüz gibi yaptığımız işlem aslen arka planda bir...

9

C#’ta Iterator Kavramı ve yield Anahtar Sözcüğü

Merhaba, C#’ta türlü türlü komutlar mevcuttur. Bazıları doğal olarak ilk etaplarda fazla kullanım alanını sezdirmeselerde, dile olan aşinalık ilerledikçe mantığını ve varlığını daha net anladığımız keywordlerin değeri artmaktadır. Dilin gramer mantığını aşabilen yahut tam...

9

C# – Quartz.Net Kütüphanesi İle Zamanlanmış Görevler Oluşturma

Merhaba, Masaüstü veya Web projelerinde belirli periyotluk yapılması yahut tetiklenmesi gereken işlemlerin ihtiyacını hissetmişsinizdir. İşte böyle durumlarda prosedürel olarak binbir türlü işlem gerçekleştirebilir, ihtiyacınızı giderebilirsiniz. Tabi birde Quartz.Net kütüphanesini kullanarak daha pratik bir şekilde...

1

C#’ta ICloneable Interface’i İle Nesne Kopyalama

Merhaba, Bu yazımızda C#’ta bir nesneyi kopyalamamıza yarayan ICloneable Interface’ini inceleyeceğiz. Tabi bu Interface’e gelmeden önce uzun uzun bir kaç hususta konuşalım diyorum… C#’ta(ve Java vs. gibi popüler programlama dillerinde) bildiğimiz gibi değişkenler “Değer...

0

Java İle String İfadelerin Karşılaştırılması

Merhaba, Prosedürel programlama ve OOP kısmında Java programlama dili ile C# neredeyse kardeş dillerdir. %80 – 85 birbirlerine benzetebileceğimiz bu iki dil, imza olarak benzer grameri kullanmakta ve kodsal açıdan ise genel anlamda aynı...