Skip to content

Gökhan Gökalp Posts

Lucene.Net Search Engine Kütüphanesi Kullanımı

Merhaba arkadaşlar, uzun bir aradan sonra karşınıza güzel bir kütüphane incelemesi ile geliyorum. Günümüzde yaygınlaşan teknoloji ile artık ciddi anlamda büyük boyutlu veriler ile çalışmaktayız. Zaman zaman bir e-ticaret projesindeki ürünlerin çokluğunu düşünün veya bir sosyal platform sitesini. Özünde geliştirmiş olduğumuz uygulamalarda hepimiz search işlemi…

Aspect Oriented Programming (AOP) – Giriş ve Örnek Bir Proje

Merhaba arkadaşlar, bu makalemde Aspect Oriented Programming (AOP) nedir ve birbirleri ile kesişen ilgiler (Cross-Cutting) nelerdir gibi kavramları açıklayarak AOP serisine bir giriş yapmak istiyorum. Uzun zamandır giriş yapmayı düşündüğüm bir konuydu aslında AOP fakat fırsat bulup bir türlü başlayamamıştım. Umarım keyifli bir makale serisi çıkar. :) AOP Nedir ve…

Entegrasyon (Integration) Testi Nedir ve Tipleri Nelerdir

Merhaba arkadaşlar. Bu makalemde sizlerle Test nedir ve neden önemlidir, Entegrasyon Testi nedir ve Entegrasyon Testi Türleri nelerdir hakkında, tecrübelerim doğrultusunda bilgiler sunmaya çalışacağım. Öncelikle Test nedir kavramını kendimce açıklamak istiyorum sizlere: Projemizde geliştirmiş olduğumuz modül veya operasyonel işlerin, doğru bir şekilde çalıştığını veya farklı modüllerinde…

Asp.Net Web API – Token Based Authentication

Merhaba arkadaşlar, bu makalemde Asp.Net Web API ile RESTful servis geliştirirken Token Based bir Authentication işlemi nasıl yapıldığına dair örnek bir proje yapacağız. RESTful’ün önemini kısaca hatırlamak gerekirse: Fazlasıyla basit ve esneklik sağlamaktadır. REST’in HTTP protokolü üzerine kurulmuş olmasıyla beraber günümüz modern web dünyasındaki bir çok uygulamalar kendini browser tabanlı…

Generic Repository ve Unit of Work Kullanarak Temel Bir Infrastructure Tasarlamak

Merhaba arkadaşlar, bu makalemde sizlerle Generic Repository ve Unit of Work kurumsal tasarım kalıplarını uygulayarak temel bir alt yapı (infrastructure) tasarlayacağız. Tasarlama sırasında Entity Framework’den yararlanarak code first yaklaşımı ile geliştireceğiz. Tabi ki alt yapımız ORM bağımsız (independent) olacak. Alt yapımızı geliştirirken makul bir seviyede sıkı sıkıya bağlı (tight coupled)…

C# Template Method Kullanımı

Merhaba arkadaşlar, Uzun bir bayram arasından sonra Behavioral(Davranışsal) tasarım kalıpları konumuza kaldığımız yerden hızla devam ediyor olacağız. :) Yine kullanım oranı oldukça sık görülen bir tasarım deseni olan Template Method desenini inceleyeceğiz. Template Method deseni için: Şablon bir algoritmamızın soyut(abstract) bir sınıfa implemente edilip, sorumlulukların alt sınıflara dağıtılması işlemidir…

C# Strategy Pattern Kullanımı

Tasarım desenleri makale serimize yine Behavioral tasarım kalıpları grubunda yer alan Strategy tasarım deseni ile devam edeceğiz. Açıkçası en sevdiğim GOF(Gang of Four) desenlerinden birisidir de diyebilirim. :) Evet haydi bakalım neymiş bu Strategy? İsminden de anlaşılacağı üzere bir işi yapabilecek birden fazla algoritmamız var ise orada hemen Strategy…

C# Observer Pattern Kullanımı

Tasarım desenleri ile ilgili daha önceki makalemde Behavioral tasarım kalıpları gurubunda yer alan Memento tasarım deseni ile giriş yapmıştık. Bu makalemde de yine Behavioral tasarım kalıpları gurubunda yer alan Observer tasarım deseni ile devam edeceğim. Observer tasarım desenindeki amaç: Tasarlanmış olan sistem içerisinde, değişimini izlemek istediğimiz bir değer için…

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ı GOF tasarım desenleri hakkındaki makalelerime başlangıcımı uzun zamandır düşünüyorum fakat bir türlü…

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 değişimi eş zamanlı olarak view(arayüz) kısmına bildirilmesini sağlar. Daha iyi anlayabilmek için…

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 verilerin birbirlerine bağlanarak beraber çalışmalarını sağlayan yapıdır diyebiliriz. Yukarıdaki şemadan da…

CQRS (Command Query Responsibility Segregation) Nedir?

Bu makalemde kimine göre basit bir pattern kimine göre de architectural bir yaklaşım olan CQRS yani Command Query Responsibility Segregation (Komut ve Sorgu Sorumluluklarının Ayrışması) konusunun kısaca üzerinde duruyor olacağız. Son zamanlarda gözlemlediğim kadarıyla yabancı bloglar da ve stackoverflow üzerindeki tartışmalarda CQRS‘in yavaş yavaş popülerliğini…

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 sağlamaktadır. * Basit tablo işlemlerini gerçekleştirebilmenizi sağlamaktadır. * Listeleme işlemlerini type…

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. var anonymousTypeObject = new { Name = “Gökhan”, Year = 2015 }; PropertyDescriptorCollection props = TypeDescriptor.GetProperties(anonymousTypeObject); foreach (PropertyDescriptor loopParam in props) { var paramName = loopParam.Name;…

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. Önce bu cümleye bulmuş olduğum güzel bir resim ile giriş yapalım. :)…