Gökhan Gökalp Blog

0

C# Memento Pattern Kullanımı

Güzel bir konu ile tekrar merhaba arkadaşlar. Bu makalemde sizlere nesnenin hallerini tutma ihtiyacı duyduğunuzda yani nesnenin farklı halleri arasında geçiş yapabilmeniz gerektiği durumlarda kullanabileceğiniz güzel bir tasarım deseni olan Memento Pattern’inin kullanımından bahsedeceğim. Açıkcası...

0

WPF INotifyPropertyChanged Nedir ve Implementasyonu

Merhaba arkadaşlar, WPF’e giriş makalemi binding modları üzerinde yapmıştım ve şimdi en az bindingsler kadar önemli olan INotifyPropertyChanged arayüzü nedir ve nasıl implemente edilir onun üzerinde duracağız. Ne işe yarar bu INotifyPropertyChanged arayüzü? Bir property’nin(özelliğin) değeri değiştiği zaman bu...

0

WPF Binding Nedir, Binding Modları ve Value Converter

Uzun zamandır nasıl başlasam diye düşündüğüm WPF serisine sonunda Binding nedir ve Binding modlarından başlamaya karar vererek, adım atmış bulunmaktayım. Nedir bu Binding? Kabaca iki özellik arasındaki bağlantıdır diyebiliriz. Biraz daha açarsak kontroller arasında...

0

CQRS (Command Query Responsibility Segregation) Nedir?

Bu makalemde kimine göre basit bir pattern kimine görede architectural bir yaklaşım olan CQRS yani Command Query Responsibility Segregation konusunun (Komut ve Sorgu Sorumluluklarının Ayrışması) üzerinde duruyor olacağız. Son zamanlarda gözlemlediğim kadarıyla yabancı bloglar...

4

C# Linked List (Singly Linked List) nedir?

Merhaba arkadaşlar, bu makalemde sizlerle veri yapılarının bir parçası ve mülakatların ise vazgeçilmez sorusu olan Linked List‘i ve en basiti olan Singly Linked List hakkında bahsedip custom bir örnek yapacağız. 🙂 Nedir bu Linked Lists...

Goo Micro ORM

Goo Micro ORM .Net için geliştirilmiş strongly typed destekli, code-first yaklaşımlı basit bir açık kaynak kodlu orm aracıdır. Link: https://github.com/GokGokalp/Goo-Micro-ORM # DESTEKLERİ * Şuan sadece MSSQL veritabanını desteklemektedir. * Veri modelinizi code-first yaklaşımı ile oluşturmanıza olanak...

0

Anonymous Tiplerin Propertysine Ulaşmak

Bu kısa makalemin konusu C# 3.0 ile gelen Anonymous tiplerin propertylerine nasıl ulaşabileceğinizi ve değerlerini nasıl alabileceğinizi basit bir şekilde göstermeye çalışacağım.

  Anonymous tipler hakkında unutmamalıyız ki: Metotlara parametre olarak geçirilememektedir (Geçirebilmek için bir sonraki makale...

3

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

Open Closed prensibinden sonra vermiş olduğum uzun bir aranın arından sıradaki prensibimiz olan Liskov’un yerine geçme prensibi (Liskov Substitution Principle)  ile makalemize devam edelim. 🙂 Önemli prensipler arasında olan LSP özünde bize geleceğe dönük olarak nasıl hamleler ile kod geliştiriliri veriyor....

9

C# ile Asenkron Socket Programlama

Merhaba arkadaşlar, bu makalemde sizlerle her ne kadar kimine göre eskide kalmış olsa da hala birçok yerde aktif olarak kullanılan soket programlama üzerine bir örnek vermeye çalışacağım. Öncelikle soket programlama nedir? Soketler için istemci (Client) ve sunucu (Server) arasındaki bağlantının sağlanması...

0

C# runtime ortamında kod derleme

Bazen runtime esnasında bir kodu derleyip çıktısını elde etmek isteyebiliriz, en azından benim başıma geldi. 🙂 Bir projemde bana “DateTime.Now()” şeklinde string olarak gelen bir değeri vb. runtime esnasında derleyip çıktısını elde etmem gerekti. Örneği aşağıda...

1

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

Evet bir önceki Single Responsibility makalesinden sonra sıra geldi 2. prensibimiz olan Open-Closed (Açık Kapalı) prensibine. Prensiplerin hepsinin ayrı bir önemi var fakat open-closed’ın önemi biraz daha önde geliyor, en azından benim için 🙂 Gerçek dünyada, bir...

1

Solid Nedir ve Single Responsibility Principle (SRP)

Merhaba arkadaşlar, ilerleyen makalelerimi artık nesneye yönelimli programlamanın prensipleri üzerine durmak istiyorum. SOLID prensipleri üzerinden giderek devam edeceğim. Öncelikle ilk prensibimiz olan Single Responsibility’e geçmeden kısaca SOLID nedir bir tanımaya çalışalım. Solid, Robert Martin‘in sunumu...

2

İyi tasarım ve Kötü tasarım nedir?

Tasarım nedir? Tasarımı kısaca açıklamak gerekirse, bir programı hayata geçirebilmek için tasarım prensipleri kullanılarak oluşturulan yapıdır. İyi bir tasarım yapmak, bir program için büyük ölçüde önemlidir ve onun sürdürülebilirliğinin garantisidir de diyebiliriz.   İyi...

3

Basit bir IoC Container ve Loglama sistemi yapımı

Merhaba arkadaşlar, Uzun zamandır makale yazamadığımı farkettim ve projelerimizde kullanım kolaylığı sağlayacak bir konu ile arayı pekiştirmek istedim. 🙂 Öncelikle nedir bu IoC Container? Açılımını Inversion of Control’den alan IoC Container, uygulamanın akışı sırasında bize yaratılması gereken doğru...

0

Abstract ve Interface Nedir? Farkları nelerdir?

Zaman zaman ilk başlarda hepimizin kafasını karıştırdığına eminim bu ikilinin. 🙂 Ne zaman abstract kullanmalıyım? Ne zaman interface kullanmalıyım? vb. tarzı sorular. Şimdi gelelim bu ikilinin ne olduklarına. Bu ikili nesne yönelimli programlamada (OOP) sınıfları soyutlamaya yarayan...

1

Plug-in Tabanlı Uygulama Geliştirme ve Hesap Makinesi Örneği

Neden plug-in tabanlı uygulama geliştirmeye ihtiyaç duyarız? Biz yazılımcıların karşılaştıkları en büyük sorunlardan birisi, bitirmiş olduğumuz bir uygulamanın üzerine ek bir özellik istenmesidir. Şahsen bu beni delirten bir şey. 🙂 İşte bu tarz durumların önüne...