Blog

Blog

Remote Facade Pattern ile Network Verimliliğini Arttırmak

Merhaba arkadaşlar. Bu makalemde sizlere distributed architecture design pattern’leri arasında bulunan Remote Facade pattern’i hakkındaki bilgilerimi aktarmaya çalışacağım. Bu pattern’i anladığımızda her ne kadar basit ve kolay gelecek olsa da, aslında yaptığı iş ve sağlayacağı fayda açısından asla küçümsememeliyiz. Günümüzde mobil uygulamalar sayesinde RESTful tabanlı mimarilerin git gide popülerleşmesi ile birlikte, yeni geliştirilen ve mevcut sistemler yavaş yavaş servis yönelimli mimarilere kaymaktadır. Bu mimarilerin […]

Read More

RabbitMQ Nedir ve Windows’a Kurulumu

Merhaba arkadaşlar. Bu makale konumda sizlere son zamanlarda üzerinde çalışmış olduğum, server to server bir mesaj kuyruğu sistemi olan RabbitMQ hakkında edindiğim deneyimlerimi aktarmaya çalışacağım. :) RabbitMQ Nedir? RabbitMQ en öz tabiri ile mesaj kuyruğu sistemidir. Publish ve Subscribe mantığı altında çalışmaktadır. Yani bir uygulamadan bir mesajı alıp, bir başka uygulamaya sırası geldiğinde bunu iletmektir. Gerçek hayat içerisinden bir […]

Read More

Asp.NET Web API’da IHttpRouteConstraint Implementasyonu ile Versiyonlama

Merhaba arkadaşlar. Bu makale konumda ise Asp.NET Web API’da nasıl versiyonlama yapılabileceğini görürken bir yandan da action method’lar üzerinde nasıl custom constraint’ler ekleyebileceğimizi göreceğiz. Dilerseniz fazla uzatmadan hemen konuya girelim. :) Asp.NET Web API içerisinde IHttpRouteConstraint interface’ini implemente ederek, custom constraint oluşturabilmek mümkündür. “System.Web.Http.Routing” namespace’i altında bulunan IHttpRouteConstraint interface’i, aşağıdaki gibi bir method imzasına sahiptir. namespace System.Web.Http.Routing { // […]

Read More

Entity Framework için Profiler

Merhaba arkadaşlar. Bu makalemde sizlere Entity Framework kullanılarak geliştirilmiş olan projelerde, performans ölçümleri ve refactoring’ler yapabilmek adına Entity Framework için geliştirilmiş olan bir Profiler aracını tanıtacağım. Bu Profiler aracı her ne kadar ücretli olsa da, 30 günlük bir trial sürümü işimizi görmektedir. Makalenin ilerleyen kısımlarında neden free bir Profiler aracı seçmediğimi anlayacaksınızdır. Database Administrator’lar için her ne kadar SQL Profiler […]

Read More

Asp.Net Web API’da Accept-Language ile Localization

Merhaba arkadaşlar. Yine bir Web API makalesi ile buradayım. Bir süredir ocak ayı içerisinde çıkacak olan Web API kitabi üzerinde yoğun olarak çalışmaktayız. Bu süre zarfında bloğumuda boş bırakmamak adına, Web API içerisinde Localization işlemleri adına bir makale yayınlamak istedim. Haydi bir bakalım nasıl oluyormuş? Asp.NET Web API’da client’ın Accept-Language header bilgisini kullanarak, server’a göndermiş olduğu language parametrelerini […]

Read More

Asp.NET Web API’da Circular Reference Handling

Merhaba arkadaşlar. Yılbaşından sonra çıkacak olan Asp.Net Web API kitabımıza odaklandığım için bu aralar fazla makale yazamıyorum. Fakat e-mail aracılığı ile gelen sorular ve benimde bir kaç projede karşı karşıya gelmem nedeniyle “Self referencing loop detected” problemini nasıl handle edebileceğimizi kitabın bir bölümünden alarak makale olarak koymak istedim. :) Circular referans yani döngüsel referans, farklı modellerin birbirlerini referans olarak […]

Read More

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 yapma ihtiyacı duymaktayız. Eğer geliştirmiş olduğumuz uygulamada verimizin boyutu ciddi […]

Read More

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 Neden İhtiyaç Duyarız? Aspect Oriented Programming yaklaşımı, temelinde birbirleri ile […]

Read More

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 eklenmesi durumda hala doğru çalıştığını hızlıca anlayabilmemizi sağlayan yapılardır. Test […]

Read More

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ı uygulamalara bırakıyor ve artık bir çok işlem client-side tabanlı yapıldığı […]

Read More

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) olmadan  gevşek bağlanmış (loosely coupled) bir şekilde geliştirmeye çalışacağız ki, […]

Read More

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 diyebiliriz. Bu sayede bize katacağı avantajları ele aldığımızda ise: Kod […]

Read More

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 tasarım deseni ben buradayım diye bağırır. :) En sık kullanılan […]

Read More

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 kullanılır. UML Diagramına bir göz atalım:   Subject: Takip edilecek […]

Read More

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ü fırsat bulamamıştım, bir projem üzerinde kullanmam gerekince bu bana adı […]

Read More

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 basit bir örnek yapalım. Örneğimizde Gird içerisinde 2 adet TextBox […]

Read More