Category
ASP.NET Core
.NET Microservice’lerinde Outbox Pattern’ı ile Eventual Consistency için Atomicity Sağlama
Bildiğimiz gibi microservice architecture’ına adapte olmanın bir çok artı noktası olduğu gibi, maalesef getirdiği bazı zorlayıcı noktaları da bulunmakta. Özellikle data consistency tarafında. Örneğin, monolithic dünyada birden fazla işlemi consistent bir şekilde kolayca gerçekleştirebilmek için, ACID database transaction’larından yararlanabilmekteyiz. Fakat microservice dünyasında işlemlerin farklı service’ler tarafından distributed olarak ele alınması gerektiği için, maalesef işler monolithic dünyası […]
Read More.NET 7 ile Gelen Bazı Harika Yenilikler
Bildiğimiz gibi .NET Conf 2022, 8-10 kasım arasında gerçekleşti. Konferans sırasında ise .NET 7 ve C# 11 çevresinde gelen heyecan verici yeniliklerden ve performans iyileştirmelerinden bahsedildi. Bu release de özellikle biz developer’ların daha “hızlı”, “lightweight” ve daha kolay “cloud-native” application’lar geliştirebilmesi gibi harika konulara odaklanılmış. Bu makale kapsamında ise beğendiğim bazı yeniliklere değinmeye çalışacağım. NOT: […]
Read More.NET Microservice’lerinde Choreography-based Saga
Günümüz teknoloji çağında neredeyse hepimiz microservice’ler hakkında konuşuyor ve uygulamalar geliştirmeye çalışıyoruz. Yüzeysel baktığımızda her şey çok net ve uygulaması kolay gibi görünsede, özellikle söz konusu distributed transaction yönetimi olduğunda işler daha karmaşık bir hal almaya başlıyor. Çünkü business’ımızın sağlıklı bir şekilde ilerleyebilmesini sağlayabilmemiz ve nihai business outcome’ına ulaşabilmemiz için, data’nın tutarlılığını sağlayabilmemiz gerekmektedir. Bu […]
Read MoreASP.NET Core Serisi 05: Kod’unu bloklama, reactive ol
Eskiden sadece belirli bir kesime hitap eden uygulamalar geliştirirken, günümüz teknoloji çağının ilerlemesiyle ve global marketten de bir pay alabilmek için, artık daha büyük bir kesime hitap eden uygulamalar geliştirmemiz gerekiyor. Geliştirdiğimiz uygulamaların 7/24 kesintisiz hizmet verebiliyor olması ve response süreleri düşük olan, kullanıcı deneyimi sorunsuz ve yüksek olan uygulamalar olması da oldukça önem arz […]
Read MoreGetting Started with Clean Architecture using ASP.NET Core – 02
Henüz makalenin ilk bölümünü okumadıysanız, konuyu daha iyi anlayabilmek adına buradan ulaşabilirsiniz. Makalenin bu ikinci bölümünde ise, clean architecture konsept’inin .NET Core ile minimal düzeyde implementasyon işleminden bahsedeceğim. Örnek olarak, içerisinde film ekleyebileceğimiz ve listeleyebileceğimiz basit bir API geliştireceğiz. Application Domain’in Implementasyonu İlk önce architecture’ın kalbi olacak olan application domain kısmını oluşturacağız. Öncesinde ise kısaca […]
Read MoreGetting Started with Clean Architecture using ASP.NET Core – 01
Biliyoruz ki maintenance işlemi, uygulamanın kendisini yazmaktan her zaman daha maliyetli bir operasyondur. Her ne yaparsak yapalım, değişmeyen tek gerçek maintenance maliyetidir, değil mi? Bu maliyeti etkileyen en önemli etkenlerden birisi de, uygulamanın architecture’ının seçimidir. Edindiğim geçmiş tecrübelerim doğrultusunda iki farklı makale serisi olarak, “iyi bir architecture design edebilmek için nelere dikkat etmeliyiz” ve “clean […]
Read MorePlaying with Service Mesh – Linkerd ve Azure Kubernetes Service
Bildiğimiz gibi Microsoft, bu yıl Barcelona KubeCon‘da bir çok yeniliklerini duyurdu. Bence bunlardan önemli bir tanesi ise SMI(Service Mesh Interface) idi. İncelediğim kadarıyla SMI‘ın tanımı için kısaca, tıpkı AMQP‘de olduğu gibi “interoperability” konusunu service mesh’ler arasında sağlayabilmek diyebilirim. Özünde service mesh’ler için Kubernetes üzerinde standart bir interface sunmaktadır. Böylece service mesh için provider-lock durumuna düşmeden, […]
Read More.NET Core ve Visual Studio for Mac ile Behavior Driven Development (BDD)
Agile bir development takımı düşünelim, Developer’ından Product Owner’ına, Scrum Master’ından Stake Holder’larına kadar hepsinin product development konusunda collaborative olarak birbirlerine bağlı bir şekilde çalışıyor oldukları. Kulağa harika geliyor değil mi? Ama maalesef bu her zaman %100 mümkün olmuyor. Peki, bugün ise Behavior Driven Development hakkında konuşacağız. Bu makale kapsamında BDD hakkındaki bilgilerimizi tazeleyip hemen ardından […]
Read MoreKubernetes Üzerindeki .NET Core Uygulamalarının OpenTracing API ile Distributed Tracing İşlemleri
Distributed tracing, microservice architecture’ı olarak tasarladığımız sistem içerisindeki uygulamalarımızın, nerede performans problemi yaşadığını belirleyebilmemiz ve monitor edebilmemiz için harika bir method. Bir başka değişle, hangi request nereye gidiyor, uçtan uca bir request ne kadar zaman harcıyor gibi sorulara cevap alabilmemiz için implemente etmemiz gereken bir method. Bu makale kapsamında ise, OpenTracing API‘ını ve Jaeger tracer’ını […]
Read MoreAPI Request ve Response’larını Azure API Management üzerinden Azure Funtions Kullanarak GrayLog’a Loglama
Sizlerinde bildiği gibi hemen hemen her backend application’ının sahip olması gereken en temel özelliklerden birisi, request ve response‘ların log‘lanmasıdır. Özellikle çoklu API kullanımının söz konusu olduğu ortamlarda, “nice-to-have” durumundan “must-have” durumuna geçiş yapan temel bir özellik. Çünkü öyle bir zaman geliyor ki, API‘ı call eden bir client’a, gönderdiği request’in hatalı parametreler içerdiğini gösterebilmeniz gerekiyor. Kısacası, daha iyi […]
Read More.NET Core Uygulamalarının Linux Üzerinde Debugging & Profiling İşlemlerine Genel Bakış – 1 (Perf, LTTNg)
Genelde hayatımızdaki bütün işlerin, her zaman iyi bir şekilde yolunda gitmesini bekleriz/isteriz. (Aslında kim beklemez ki?) Maalesef bir çok zaman ise, işler beklediğimiz, planladığımız veya umduğumuz gibi olmuyor, iyi bir şekilde yolunda gitmiyor. Bir developer olarak beklentilerimiz, hayatımızda olduğu gibi, geliştirdiğimiz uygulamalarda da aslında her şeyin iyi bir şekilde yolunda gitmesinden yana. Geliştirdiğimiz uygulamaların gerek […]
Read More.NET Core ve Azure Text Analytics API Kullanarak Ürün Yorumları Üzerinde Sentiment Analizi Gerçekleştirme
Merhaba arkadaşlar. Bir süredir büyük ilgi alanlarım arasında olan “Machine Learning” ve “Natural Language Processing” konuları üzerinde araştırmalar ve denemeler yapmaktayım. Bu araştırmalarım ve denemelerim sırasında ise iş hayatımda bulunuyor olduğum domain içerisinde, bu konuları nasıl ve nerede implemente edebilirim sorularını da düşünmekteyim. (Günün sonunda, implemente ettiğimiz bir fikrin son kullanıcıya olan güzel etkisini görebilmek, bir […]
Read MoreASP.NET Core Serisi 04: Kubernetes Üzerinde Serverless API Backend Tasarlama
Cloud-based sistemlerin çoğalması ile birlikte, son dönemlerde kendisinden oldukça fazla söz ettiren bir kavram açıkcası serverless. Bir şeylerin hızla geliştiği bu günümüz çağında, time to market’e daha da önem verilmesiyle beraber, bazen tek ihtiyacımız olan şey sadece bir function olabiliyor. Durum böyle olunca, bu makale kapsamında ise araştırmalarım ve deneyimlerim doğrultusunda serverless(Function-as-a-Service) kavramından biraz bahsedip, daha sonra […]
Read MoreElasticsearch Serisi 04 – ASP.NET Core’da Completion Suggester ile Autocomplete API Tasarlamak
Özellikle Amazon, Netflix, eBay gibi commercial siteler başta olmak üzere bir çok popüler websitelerine baktığımızda, autocomplete(search suggestion) kutularına büyük bir önem verildiğini açıkça görebiliriz sanırım. Biliyoruz ki iyi bir arama sonucu, son kullanıcı için oldukça büyük bir önem taşımaktadır. Commercial siteler açısından ise son kullanıcıyı hızlı bir şekilde doğru bir ürüne veya kategoriye yönlendirebilmek, satış oranlarını pozitif bir şekilde […]
Read MoreASP.NET Core MVC ve Elasticsearch’de Globalization
Merhaba arkadaşlar. Biliyoruz ki günümüz teknoloji çağında firmalar, e-ticaret siteleri üzerinden hiç tanımadığı ve farklı şehirdeki insanlara ürünlerini satabilmektedirler. Bu satışlarını daha geniş bir alanda yapabilmek ve farklı ülkelere de satabilmek için ise, globalization konusu büyük bir önem taşımaktadır. Bu makale içerisinde ise ASP.NET Core MVC ve Elasticsearch içerisinde, nasıl “globalization” desteğini sağlayabiliriz konusuna değinmeye çalışacağım. […]
Read MoreGraphQL’e Giriş ve ASP.NET Core 2.0 ile Basit Bir Query API Tasarlamak
Merhaba arkadaşlar. Bir süredir yeni bir makale yazmaya fırsat bulamadım. Hatta bu makalenin bir kısmını ise Ağustos ayında yazmıştım, fakat bir türlü tamamlayamamıştım. :) Bulduğum ilk fırsatta ise tamamlamayı başardım. Herneyse, sanırım GraphQL (ayrıca Asp.NET Core 2.0), veri erişimi ve sorgulama üzerine son dönemlerin en popüler konuları arasındadır. GraphQL özellikle günümüz çağında hızla gelişen bu business ihtiyaçlarına karşı, […]
Read More















