Blog

Blog

Docker Üzerine Cassandra Kurulumu ve .Net ile Giriş

Merhaba arkadaşlar. Bir önceki makalemde bir süredir Messaging yapıları üzerinde çalıştığımdan bahsetmiştim sizlere. Yine aynı şekilde bazı ihtiyaç ve kararlardan dolayı, NoSQL olarak Apache dünyasından Cassandra kullanmamız gerekti. Bu makalemde ise sizlere biraz geç de olsa Docker üzerinde Cassandra kurulumundan bahsedip, .Net üzerinde bir örnek gerçekleştireceğim. Nedir bu Apache Cassandra? Geliştirilmesine ilk olarak Facebook tarafından başlanıp sonrasında ise open-source […]

Read More

RabbitMQ ve Publish-Subscribe Patterni ile Fanout Exchange

Merhaba arkadaşlar. Bir süredir Messaging sistemleri üzerinde yoğun bir şekilde çalışmaktayım. Bu makalede ise RabbitMQ’da Publish-Subscribe pattern’i ile Fanout Exchange‘e değinmeye çalışacağım. Öncelikle tüm bu işlemlere başlamadan RabbitMQ hakkındaki bilgilerimizi tazeleyebilmek adına, buraya tıklayarak RabbitMQ hakkında daha önce yazdığım makalelere bir göz atabilirsiniz. Dilerseniz konuya girmeden önce biraz messaging sistemlerinden bahsedelim. Messaging yapıları ile uygulamalar, loosely coupled olarak asenkron bir şekilde birbirleri ile […]

Read More

Repository Pattern Yaklaşımı Yerine Command/Query Object Pattern Yaklaşımı

Merhaba arkadaşlar. Bu makale konumuzda data access layer için Repository Pattern‘i yerine, Command/Query Object Pattern‘inin kullanımı ve faydaları inceliyor olacağız. Sizlerinde bildiği gibi uzun zamanlardır data access layer’larımız için, vazgeçilmez bir hal almıştır Repository Pattern’i. Peki bunca zamandır kötü tasarımlardan sıyrılabilmek ve bağımlılık yönetimi(dependency management) adına birde SOLID SOLID diye bağırırken ilk prensiplerinden birisi olan Single […]

Read More

Asp.Net Web API – Token Based Authentication Refresh Token Kullanımı

Merhaba arkadaşlar. Biraz aradan sonra tekrar bir Asp.Net Web API makalesi ile karşınızdayım. Daha önceki makalemde Asp.Net Web API’da Token Based Authentication nasıl gerçekleştirilir ve implemente edilir konusunu ele almıştım. Bu makale kapsamında ise sizlerden gelen feedback’ler doğrultusunda ilerleyerek, Token Based Authentication kullanırken Refresh Token nasıl implemente edilir ve nasıl çalışır konusunu da ele almaya karar verdim. Refresh Token Nedir? Refresh Token authorization server […]

Read More

Monolithic ve MicroService Architecture’a Genel Bir Bakış

Merhaba arkadaşlar. Bu blog yazımdaki konum, her ne kadar yeni bir şey olmasada, son dönemlerde Martin Fowler ile gündeme gelen ve git gide önemini arttıran MicroService mimarisi üzerine genel bir bakış olacak. Ayrıca bu doğrultuda doğru bilinen yanlışlar, MicroService mimarisinin artıları ve eksileri gibi yönlerine de değiniyor olacağız. Dilerseniz öncelikle Monolithic kavramından bir bahsedelim. Monolithic Architecture Nedir? Monolithic architecture yazılımın […]

Read More

Asp.Net Web API’da Cross-Site Request Forgery (CSRF) Saldırı Güvenliği

Merhaba arkadaşlar. Gelen sorular üzerine bu yazımda sizlerle Asp.Net Web API’da Cross-Site Request Forgery(CSRF) saldırılarına karşı güvenliği nasıl ele alabiliriz’i küçük çapta anlatmaya çalışacağım. Zaten bir çoğumuzun Asp.Net MVC‘den AntiForgeryToken ile aşina olduğu bir konu olabilir. AntiForgeryToken implementasyonunu Web API bacağında ise custom olarak kendimiz gerçekleştireceğiz. Dilerseniz öncelikle CSRF hakkındaki bilgimizi biraz güncelleyelim. CSRF atağı saldırgan tarafından son kullanıcının kullandığı […]

Read More

Kodlama Yaparken Dikkat Edilmesi Gereken Bazı Performans ve Optimizasyon Teknikleri

Merhaba arkadaşlar. Bu makale konumda sizlerle kodlama yaparken dikkat edilmesi gereken bazı performans ve optimizasyon tekniklerinden bahsedip, bunları nasıl ele almamız gerektiğini ve best practice’lerine değineceğiz. Sizlerde biliyorsunuz ki sürdürülebilir bir uygulama geliştirebilmek, hem biz yazılımcılar açısından (ileride gelecek olan yeni fonksiyonlar ve bakım işlemleri) hem de business kuralları gereği (müşteri memnuniyeti vb.) olmazsa olmaz […]

Read More

{:tr}Asp.Net Web API ve Mimari Özellikleri Kitabı{:}{:en}Asp.Net Web API and Architectural Features Book{:}

{:tr} Merhaba arkadaşlar. Uzun zamandır farklı makale konularım içerisinde de sizlere bahsetmekte olduğum, eski iş arkadaşım Burak TUNGUT ile beraber yazmış olduğumuz Asp.Net Web API ve Mimari Özellikleri kitabım sonunda yayına çıktı. Sizler için kitabı oldukça yalın ve gereksiz konu ve örneklerden uzak tutmaya çalıştık. Bunların yanında ek olarak videolu eğitim kısmında ise real-world bir mimari üzerinde, nasıl […]

Read More

ElasticSearch Serisi 03 – C# ile Genişletilebilir Temel Search ve Filter Yapısı

Yeni bir ElasticSearch seri ile tekrar merhaba arkadaşlar. Bir önceki seriden hatırlarsak oluşturmuş olduğumuz index içerisine, hem tek olarak hem de bulk olarak product’lar eklemiştik. Bu noktaya kadar artık her şeyimiz mevcut. Bir adet “product_search” alias’ına sahip indeximiz ve içerisinde de bir kaç ürün var. Geriye artık yavaş yavaş ElasticSearch’ün asıl amacı olan search işlemlerine girmenin […]

Read More

ElasticSearch Serisi 02 – C# ile Document Indexing ve Bulk Indexing

  Yeni bir ElasticSearch serisi ile merhaba arkadaşlar. Bu serimizde sizlerle, Document Indexing ve Bulk Indexing gibi işlemleri gerçekleştireceğiz. Bir önceki serimiz olan “ElasticSearch Serisi 01 – C# ile Index Oluşturmak” adlı makalede, type bazlı nasıl index oluşturulduğunu inceledik ve bir ElasticSearch projesi oluşturmuştuk. Bu serimizde de aynı proje üzerinden ilerliyor olacağız. 1) Document Indexing ElasticSearch’e Başlarken […]

Read More

ElasticSearch Serisi 01 – C# ile Index Oluşturmak

Merhaba arkadaşlar. Hatırlarsak bir önceki makalem olan “ElasticSearch’e Başlarken (Kurulum, Kibana, Marvel ve Sense)” ile aslında ElasticSearch dünyasına bir adım atmıştık. Bu makale kapsamında ise C# üzerinde ElasticSearch için kullanacak olduğumuz NEST kütüphanesini tanıyacağız ve hemen ardından bir index oluşturacağız. Dilerseniz öncelikle biraz NEST kütüphanesinden bahsedelim. NEST: ElasticSearch’e bağlantı kurabilmemizi, indexleme ve sorgulama gibi işlemleri yapabilmemizi sağlayan ve […]

Read More

ElasticSearch’e Başlarken (Kurulum, Kibana, Marvel ve Sense)

Merhaba arkadaşlar, bir başka makale konusu ile karşınızdayım. Search Engine konusuna daha önceki makalelerimden birisi olan Lucene.Net Search Engine Kütüphanesi Kullanımı konusu ile bir giriş yapmıştım. Lucene’in özellikle distributed indexleme ve search işlemlerinde pure hali ile yetersiz kaldığını ve daha kompleks işlemler için ise “Scoring işlemleri, Facets’ler, Auto Suggestorler gibi vb.” ElasticSearch gibi güçlü engine’leri tercih edebileceğinizden de bahsetmiştik. Yaklaşık […]

Read More

C# ile RabbitMQ Client’ı kullanarak Publisher ve Consumer Yapısı

Merhaba arkadaşlar. Bir önceki makalem olan “RabbitMQ Nedir ve Windows’a Kurulumu” isimli makale ile, RabbitMQ konusuna bir giriş yapmış idik. Bu makale kapsamında ise RabbitMQ’nun C# provider’ını kullanarak en sık kullanılan Messaging Pattern‘lerinden birisi olan “Publish / Subscribe” pattern’i mantığında, basit bir şekilde nasıl mesaj gönderilir ve alınıra bakıyor olacağız. RabbitMQ’nun Procuder, Queue ve Consumer yapısını basit olarak hatırlamak gerekirse; Producer: Queue’ya mesaj gönderen […]

Read More

Unit Test Yazarken Pratik Mocklama

Merhaba arkadaşlar. Bir süredir architectural düzeyde devam ettirmeye çalıştığım yazı serilerimi, bu aralar vakit buldukça biraz daha test ağırlıklı konulara kaydırmaya karar vermedim. Çünkü birisi henüz yazılım projesi inşa aşamasında iken kaliteli bir şekilde altyapı üzerine kurulması ile ilgilenirken, bir diğeri ise hızla gelişen ve büyüyen projenin kod kalitesinin sürekliliği ile ilgilenmektedir değil mi? İşte bu noktada iki uç arasında […]

Read More

WinDBG ile Dump Analizi Yaparak Performans Sorunlarını Çözümleme

Uzun bir aradan sonra tekrardan merhaba arkadaşlar. Bir süredir şirkette yoğun geçirdiğim bir çalışma temposundan sonra, bir makale daha yazabilmeye fırsat bulabildim. :) Bu makaleyi yazma ihtiyacım ise, bir kaç haftadan bu yana mevcut bir sistemin üzerine yerleştirmiş olduğum Asp.NET Web API’da, anlamsız bir şekilde Load Test‘ler sonucunda yeterli response time performansını alamıyor olmam yatıyor aslında. […]

Read More

Asp.NET Web API Response’larında Tutarlılığı (Consistency) Sağlamak

Merhaba arkadaşlar, bir süredir bloğuma çok fazla vakit ayıramıyorum. Gerek iş yerimdeki yoğunluğumdan, gerek hazırlanıyor olduğum sertifikasyon sınavlarından, gereksede üzerinde çalışıyor olduğumuz Asp.NET Web API kitabından dolayı fazla vakit bulamamaktayım. Konusu küçük fakat etkisi büyük olan bu konuyu paylaşmak istedim. Evet konumuz Asp.NET Web API üzerindeki response’larımızın tutarlılığını (Consistency) sağlamak. Bu konunun önemli olmasının sebebi ise: […]

Read More