İçeriğe geç

Kategori: .NET

Gizli Silah: Specification Pattern

Sanırım specification pattern‘ı en son bir buçuk yıl önce implemente etme ihtiyacım olmuştu. Amacım ise ilgili business domain’ini çok fazla kompleks bir hale getirmeden ve domain bilgilerini duplicate etmeden, domain kurallarını encapsulate ederek tekrar kullanılabilir bir hale getirebilmekti. Bir çoğumuzun bildiği gibi specification pattern, yeni…

Mevcut .NET Uygulamalarını Azure Kubernetes Service’e Migrate Etmek

Günümüz teknoloji çağında, özellikle büyük ölçekli firmalar için uygulamaları cloud ortamında host etmenin ne kadar da önemli olduğunu hepimiz biliyoruz. Bir çok anket verilerine göre de, özellikle geçtiğimiz 2 yıl içerisinde hem public hem de private cloud kullanım oranları oldukça artmış durumda. Başlıca birkaç sebebi…

Microservice Mimarisinde Resiliency Pattern’ları

Merhaba arkadaşlar. Açıkçası bir süredir bu konu hakkında bir makale yazmayı planlıyordum. Yaşamış olduğum son blackfriday tecrübesinden sonra, bu konu hakkında bir şeyler yazmanın sırasının geldiğini anladım. Evet, konumuz microservice yapılarında resilience ve fault tolerance‘ın önemi ve bunu nasıl sağlayabileceğimiz. Hikaye Daha önceki makalelerim içerisinde, bir…

Orleans ile Loosely Coupled ve Scalable RESTful Service Oluşturma

Merhaba arkadaşlar. Daha önceki Orleans’a Giriş makalem içerisinde, bu aralar Orleans ve Actor-based sistemler üzerinde durduğumdan bahsetmiştim. Bu makale konusu altında ise Orleans’ı middle-tier olarak kullanıp, loosely coupled ve scalable RESTful service’ler nasıl oluştururuz konusuna değinmeye çalışacağım. Orleans’ın bize kazandırdığı pratikliğin yanı sıra, mimari boyutta…

Messaging Yapılarında MassTransit ile Error ve Redeliver Handling

Merhaba arkadaşlar. Bu makale konumda sizlere messaging yapılarına geçiş süreçlerimizde consumer’lar üzerinde karşılaştığımız Error ve Redeliver handling gibi concern’lerden bahsedip, nasıl bir yaklaşım uyguladığımız konusunda ve service bus olarak kullandığımız MassTransit kütüphanesinin nasıl çözümler sunduğu konusunda bilgiler paylaşmaya çalışacağım. Consumer ile Error Handling Bir e-commerce sistemi…

Microsoft Orleans ile Distributed Virtual Actor Model’e Giriş

Merhaba arkadaşlar. Bu makale konumda straightforward bir şekilde concurrency problemlerini düşünmeden, distributed bir şekilde high-scale application’lar geliştirebilmemize olanak sağlayan Orleans project konusuna giriş yapmak istiyorum. Nedir Bu Orleans Project? Yukarıda da bahsettiğim gibi, concurrency problemlerini düşünmeden high-scale, distributed cloud-based uygulamalar geliştirebilmemiz için Microsoft’un 2014 yılında…

Microservice Mimarilerinde Consul ile Service Discovery

Merhaba arkadaşlar. Tekrardan microservice mimarilerine dayanan bir konu ile karşınızdayım. Bu konu kapsamında ise, “Service Discovery nedir?”, “Ne zaman ihtiyaç duyarız?” gibi kavramlardan bahsedip, bu işlemleri Consul ile nasıl gerçekleştirebileceğimize değinmeye çalışacağım. Service Discovery Nedir? Microservice’ler ile alakalı diğer makalelerimde de bahsettiğim gibi, bizlere kattığı artıların…

C# Loki ile Service Bazlı Distributed Locking

Merhaba arkadaşlar. Bu makale konumda sizlere Trendyol.com çatısı altında geliştirip, bazı uygulamalarımızda kullandığımız Loki kütüphanesinden bahsetmek istiyorum. Loki Nedir? Loki’yi kısaca tanımlamak gerekirse: Distributed sistemler üzerinde kolay bir şekilde lock işlemlerini handle etmeye yarayan bir library’dir. Loki’yi biraz daha açmak gerekirse eğer, shared bir resource üzerinden işlem yapan uygulamalarımız…

Microservice Mimarilerinde Consumer Driven Contracts Testing Nedir? ve C# ile Implementasyon

Merhaba arkadaşlar. Yine microservice mimarilerine yönelik bir konu ile karşınızdayım. Sizlerde biliyorsunuz ki son dönemlerde neredeyse tüm ilgi alanımı, microservice mimarileri ve MQ(Message Queue) tabanlı sistemlere yoğunlaştırdım. Bu sistemler her ne kadar bir çok derdimizi çözseler bile, asla kusursuz bir şey olmadığı gibi beraberlerinde getirdiği bazı…

MassTransit Saga State Machine ile Model Workflow’u Oluşturmak

Merhaba arkadaşlar. Bir süredir gerek yoğun iş temposu gerekse de sosyal hayatımdaki bazı yoğunluklardan dolayı, yeni bir makale yazmaya fırsat bulamamıştım. Sizlerde fark ederseniz bir süredir makale konularımı microservice ve messaging yapıları üzerine yoğunlaştırdım. Bu makale içeriğinde ise geliştiriyor olduğumuz microservice ve messaging yapılarında, long-running business…

Apache Kafka Serisi 02 – Docker Üzerine Kurulumu ve C# ile Giriş

Merhaba arkadaşlar. Bir önceki Apache Kafka Serisi 01 – Apache Kafka’ya Giriş makalesinde, Apache Kafka’nın ne olduğuna dair kabaca bir giriş yapmış ve terminolojisinden bahsetmiştik. Bu makale kapsamında ise aşağıdaki konulara değineceğiz: Zookeeper nedir Docker üzerine zookeeper kurulumu Docker üzerine kafka kurulumu C# client’ı ile kafka üzerinde örnek Kurulum…

Loglama Yapılarında Correlation ID ile Traceability’i Sağlamak

Merhaba arkadaşlar. Bu makale konusunda sizlerle uygulamalarımızda Correlation ID aracılığı ile consistent bir şekilde nasıl log’lama işlemlerini gerçekleştirebiliriz konusunu ele almaya çalışacağım. Çoğu zaman geliştirmekte olduğumuz uygulamalarda, arkaplanda neyin olup bittiğini anlayabilmek için genelde çeşitli log’lama işlemlerini gerçekleştiririz. Özellikle büyümekte ve büyük çapta olan projelerde, monolithic architecture’ların yerine distributed architecture’ların tercih…

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…

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…

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)…