Yıllık Arşiv: 2021


Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...
0

C# 10 – Global Using Directive

Merhaba, Son zamanlarda .NET 6 ve C# 10 ile gelen yeniliklerde, kodun sadeliğine ve teknik açıdan doğrudan doğruya işlevsel amacını gerçekleştirmeye odaklanıldığı dikkatinizi çekmiştir! Buna en güzel örnek, Asp.NET Core 6’da gelen sadeleştirilmiş konfigürasyon...

0

C# 10 – CallerArgumentExpression Attribute’u

Merhaba, Bu içeriğimizde, C#’ın gelişim yolunda geçmişteki tartışmaları nihayete erdiren ve C# 8.0’da duyurulup, ertelenen, C# 9.0’da beklenirken sonunda C# 10 ile gelen CallerArgumentExpression attribute’u üzerine incelemede bulunuyor olacağız. Caller? Attribute’u Tanıdık mı Geliyor?...

0

.NET 6 – WebApplication İle Middleware Pipeline’ını İnceleyelim

Merhaba, Bu içeriğimizde .NET 6’da ki WebApplication nesnesinin arkasındaki koda bakacak, middleware ve endpointlerin nasıl yapılandırıldığına odaklanıyor olacağız. Önceki .NET 6 – WebApplicationBuilder’ı İnceleyelim başlıklı makalede açıklandığı gibi uygulama yapılandırmasının yapıldığı yer çoğunlukla WebApplicationBuilder‘dır....

1

.NET 6 – WebApplicationBuilder’ı İnceleyelim

Merhaba, Bu içeriğimizde .NET 6 ile gelen WebApplicationBuilder‘ı teknik olarak inceleyecek ve aynı işlevselliğe sahip olan generic Host ile aralarındaki benzerlikleri değerlendireceğiz. Bir önceki .NET 6’da Yeni Gelen WebApplication/WebApplicationBuilder’ı Eski Generic Host İle Karşılaştırma...

3

.NET 6’da Yeni Gelen WebApplication/WebApplicationBuilder’ı Eski Generic Host İle Karşılaştırma

Merhaba, Bu içeriğimizde .NET 6 ile Asp.NET Core uygulamalarına gelen WebApplication ve WebApplicationBuilder sınıfları üzerine konuşacak ve uygulama oluşturma alternatiflerinden biri olan WebApplication.CreateBuilder komutu üzerine incelemede bulunuyor olacağız. İlk olarak, WebApplication ve WebApplicationBuilder sınıflarını...

1

.NET 6’da ConfigurationManager Nesnesi

Merhaba, Bu içeriğimizde .NET 6 ile gelen yeniliklerden birisi olan ve Asp.NET Core 6 için performans açısından oldukça elverişli olan ConfigurationManager nesnesini inceliyor olacağız. Yazımızın seyri boyunca ConfigurationManager‘ın .NET 5’teki muadili olan ConfigurationBuilder nesnesiyle...

.NET 6'da HTTP/3 Desteği 1

.NET 6’da HTTP/3 Desteği

Merhaba, Bu içeriğimizde .NET 6’da gelen HTTP/3 desteği üzerine bir incelemede bulunuyor olacağız. .NET 6, HTTP/3 ile Asp.NET için Kestrel, HTTP.Sys ve IIS Sunucu Senaryolarına, HttpClient Request’lerine ve gRPC teknolojisine olmak üzere üç farklı...

16

Asp.NET Core’da Çok Dilli Uygulamalar Geliştirme

Merhaba, Her web uygulamasının ideali, üretildiği kültürün sınırlarını aşabilmek ve daha geniş kitlelere ulaşarak farklı coğrafyalara hitap edebilmektir. Bu ideali gerçekleştirebilmek ve kozmopolit bir platform oluşturabilmek için birden çok dili destekleyebilmek ve gelen ziyaretçilerin...

1

C# – ExpandoObject İle Dinamik Nesne Oluşturma

Merhaba, Hiç bir nesneyi runtime’da dinamik olarak tasarlama ihtiyacı hissettiniz mi? Ya da client’ın talebi üzerine üretilen data object içerisinde bulunacak olan alanların dışarıdan(client tarafından) belirlendiği senaryolara denk geldiniz mi? Bu yazıyı okuyorsanız muhtemeldir...

C# Composite Design Pattern(Composite Tasarım Deseni) 0

C# Composite Design Pattern(Composite Tasarım Deseni)

Merhaba, Bu içeriğimizde Yapısal Tasarım Kalıplarından(Structural Patterns) olan Composite Tasarım Desenini(Composite Design Pattern) tam teferruatlı inceleyecek ve bol bol örnekler ile zihinlerimize mantıksal yapısını kazımaya çalışacağız. O halde fazla vakit kaybetmeksizin buyrun başlayalım… Başlarken...

0

Asp.NET Core İçin gRPC’de Authentication ve Authorization İşlemleri

Merhaba, gRPC, her ne kadar uzak sunuculardaki metotları sanki kendi ortamının birer parçasıymış gibi çağırabilen sistem olsa da kimlik doğrulama(authentication) ve yetkilendirme(authorization) nitelikleri sayesinde bir kullanıcıyla ilişkilendirilebilmekte ve böylece daha korunaklı ve tanımlı veri...

Intercepting Filter Pattern(Filtreleme Tasarım Deseni) 1

Intercepting Filter Pattern(Filtreleme Tasarım Deseni)

Merhaba, Bu içeriğimizde, kullanıcıdan gelen isteği(request) işleme almadan önce filtreleyip süzgeçten geçirmemizi sağlayan ya da istek neticesinde kullanıcıya döndürülecek cevabı(response) modifiye ederek o şekilde döndürmemize imkan tanıyacak olan Intercepting Filter Pattern‘ı inceliyor olacağız. Intercepting...

Marker Interface Pattern(İşaretleyici Arayüz Tasarımı) 1

Marker Interface Pattern(İşaretleyici Arayüz Tasarımı)

Merhaba, Bu içeriğimizde nesneler hakkında ek bilgi sağlayacak olan Marker Interface Pattern(İşaretleyici Arayüz Tasarımı)‘ı inceliyor olacağız. Marker Interface Pattern; kod yazma süreçlerinde derleyicinin nesneler hakkında ek bilgilere sahip olabilmesini ve böylece ilgili nesnenin kullanılacağı...

C# Visitor Design Pattern(Visitor Tasarım Deseni) 0

C# Visitor Design Pattern(Visitor Tasarım Deseni)

Merhaba, Bu içeriğimizde Davranışsal Tasarım Kalıplarından(Behavioral Patterns) olan Visitor Tasarım Desenini(Visitor Design Pattern) tam teferruatlı inceleyecek ve hangi senaryolarda, ne amaçla bu pattern’ı kullanabileceğimize dair teorik sorgulamada bulunurken bir yandan da pratiksel olarak birkaç...

Front Controller Design Pattern Nedir? Nasıl Uygulanır? 0

Front Controller Design Pattern Nedir? Nasıl Uygulanır?

Merhaba, Bu içeriğimizde yapısal desenler(structural patterns) kategorisiyle birlikte bir yandan da web arayüz desenleri kategorisinde de adından bahsettiren Front Controller Design Pattern üzerine konuşuyor olacağız. İçeriğimiz süresince Front Controller Design Pattern nedir? ne amaçla...

0

.NET Core’da MessagePack İle Binary Serialization

Merhaba, Bu içeriğimizde, programlama süreçlerinde verilerimizi binary olarak kat be kat fazla performansla serileştirmemizi sağlayacak olan MessagePack kütüphanesini .NET Core eşliğinde inceliyor olacağız. İçeriğimiz boyunca MessagePack kütüphanesi nedir? hangi teknolojiler tarafından tercih edilmektedir? ne...

C# State Design Pattern(State Tasarım Deseni) 0

C# State Design Pattern(State Tasarım Deseni)

Merhaba, Bu içeriğimizde Davranışsal Tasarım Kalıplarından(Behavioral Patterns) olan State Tasarım Desenini(State Design Pattern) tam teferruatlı inceliyor olacağız. State pattern nedir? Genellikle hangi tarz senaryolarda ne amaçla kullanılmaktadır? Hangi tasarım desenleriyle benzerlik göstermektedir? vs. gibi...

Microservice - Saga - Commands-Orchestration Implemantasyonu İle Transaction Yönetimi 7

Microservice – Saga – Commands/Orchestration Implemantasyonu İle Transaction Yönetimi

Merhaba, Önceki içeriklerimizden Microservice – Saga – Events/Choreography Implemantasyonu İle Transaction Yönetimi başlıklı yazımızda Saga pattern’ının iki implemantasyonundan biri olan choreography yöntemini tüm detaylarıyla ve pratik olarak incelemiştik. Bu içeriğimizde ise yine Saga pattern’ının...

1

Finite-State Machine Nedir?

Merhaba, Bu içeriğimizde Finite-State Machine kavramı üzerine duruyor olacağız. Özünde bu kavram, bir sonraki kaleme alacağımız microservice yapılanmalarında distributed transaction’ı sağlayabilmek için Saga pattern’ın Orchestrator implemantasyonunu ele alırken istifade edeceğimiz bir yapılanmaya karşılık gelmektedir....

Microservice Mimarilerde Saga Pattern İle Transaction Yönetimi 4

Microservice – Saga – Events/Choreography Implemantasyonu İle Transaction Yönetimi

Merhaba, Bir önceki Microservice Mimarilerde Saga Pattern İle Transaction Yönetimi başlıklı makalemizde Saga pattern üzerine detaylıca teorik incelemede bulunmuştuk. Bu içeriğimizde ise Saga pattern’ını Events/Choreography implemantasyonu çerçevesinde ele alacak ve pratikte nasıl bir inşanın...

Microservice Mimarilerde Saga Pattern İle Transaction Yönetimi 7

Microservice Mimarilerde Saga Pattern İle Transaction Yönetimi

Merhaba, Biliyorsunuz ki, yazılımsal operasyonlarda belirli senaryolarla baş edebilmek için tecrübevi birikim olarak yazılımcılar tarafından tatiksel tanımlanmış design pattern stratejilerinden istifade etmekteyiz. Design pattern uyarlılığı microservice yapılanmalarında da varlığını göstermekte ve yaşanılan problemlerde çözüm...

1

C# 9.0 – Module Initializers

Merhaba, Bu içeriğimizde C# 9.0’ın son sürümünde göze çarpan bir özellik olan Module Initializer’ı inceliyor olacağız. Hiç vakit kaybetmeden gelin direkt konuya sorularla giriş yapalım.. Module Initializer Nedir? Module Initializer, esasında .NET için yeni...

1

gRPC İle Client Factory Integration

Merhaba, gRPC kütüphanesi, client yapılanmasını merkezi hale getirip tasarımı kolaylaştırabilmek ve geleneksel gRPC client tasarımlarına alternatif olarak daha efektif geliştirmeler yapabilmek için gRPC Factory Integration özelliği sunmaktadır. Yukarıdaki geleneksel yapılanma, gRPC client tasarımlarında yönetilebilirlik...

4

Docker + Nginx Sunucusu İle Load Balancing Operasyonu

Merhaba, Önceki Load Balancing(Yük Dengeleme) ve Load Balancer(Yük Dengeleyici) Nedir? ve Docker + Ocelot Kütüphanesi İle Load Balancing Operasyonu başlıklı yazılarımızda load balancing ve load balancer üzerine hasbelkader irdelemelerde bulunmuştuk. Bu içeriğimizde ise load...

event store 1

.NET Core Ortamında ‘Event Store’ İle Event Sourcing Yapılanması

Merhaba, Bir önceki Basit Bir Event Sourcing Uygulaması Geliştirelim başlıklı makalemizde Event Sourcing pattern’ının nasıl gerçekleştirilebildiğine pratiksel olarak bir örnek vermeye çalışmıştık. İlgili makalede ele alınan örnekten de görüldüğü üzere uygulamada gerçekleştirilen ‘event’lerin in-memory’de...

Basit Bir Event Sourcing Uygulaması Geliştirelim 1

Basit Bir Event Sourcing Uygulaması Geliştirelim

Merhaba, Bu içeriğimizde bir önceki kaleme aldığımız Event Sourcing Nedir? Haydi Gelin Hep Beraber İnceleyelim başlıklı makalemize basit bir somut örnek teşkil edecek şekilde çalışma gerçekleştireceğiz. Amacımız Event Sourcing’in pratikte ucundan kıyısından tadına bakmak...

Event Sourcing Nedir Haydi Gelin Hep Beraber İnceleyelim 11

Event Sourcing Nedir? Haydi Gelin Hep Beraber İnceleyelim

Merhaba, Bu içeriğimizde, bir veri üzerinde meydana gelen tüm değişiklikleri kayıt altında tutmamızı öneren ve böylece ilgili verinin sadece güncel ham vaziyettinden ibaret tutulmasından ziyade o verinin süreçte yaşadığı değişikliklerinde esasında ilgili verinin bir...

2

Asp.NET Core 5.0 – SqlTableDependency Kütüphanesi İle Veritabanındaki Değişikleri Anlık Yakalama

Merhaba, Yaklaşık 1 ay önce youtube kanalımda ‘Veritabanındaki Değişiklikleri Anlık Yakalama Uygulaması’ başlıklı aşağıdaki dersi yüklemiştim. Bu içeriğimizde ise ilgili videonun içeriğindeki SqlTableDependency kütüphanesi ile veritabanındaki değişiklerin yakalanmasını ele alacak ve konuya dair metinsel...

10

C# Mediator Design Pattern(Mediator Tasarım Deseni)

Merhaba, Bu makalemizde Davranışsal Tasarım Kalıplarından(Behavioral Patterns) olan Mediator Tasarım Desenini(Mediator Design Pattern) bol pratiksel senaryolar eşliğinde inceliyor olacağız. İçeriğe başlamadan önce şahsi fikrimi beyan ederek bir girizgâh eylemek isterim ki; bana sorarsanız doğası...

0

Deadlines ve Cancellation İle Güvenilir gRPC Servisleri Geliştirmek

Merhaba, gRPC kütüphanesi, client’lar tarafından yapılan istekleri kontrol edebilmek ve özellikle ihtiyaca istinaden iptal edebilmek için Deadlines ve Cancellation özelliklerini sunmaktadır. Bu içeriğimizde gRPC sistemlerde sunulan bu Deadlines ve Cancellation özelliklerinin neden önemli olduklarını...

5

Entity Framework Core İle In-Memory’de Çalışmak

Merhaba, Günlük hayatta yeni bir teknolojiyi, yapıyı, yöntemi vs. öğrenirken veya tatbik ederken yahut geliştireceğiniz herhangi bir ürünün promosyonunu oluştururken yapacağınız çalışmada veritabanına ihtiyacınız varsa ve ORM olarak Entity Framework Core’u kullanacaksanız, bunun için...

0

IdentityServer4 Yazı Serisi #23 – IdentityServer4 Entity Framework İle Konfigürasyon Ayarlarını Veritabanına Taşıma

Merhaba, IdentityServer4 Yazı Serisinin bu sonuncu makalesinde IdentityServer4 ile yaptığımız ve in-memory’de tuttuğumuz tüm client, scope, user vs. gibi konfigürasyonları Entity Framework ile fiziksel veritabanına taşımayı inceliyor olacağız. Neden konfigürasyon değerlerini fiziksel veritabanında tutmalıyız?...

2

C# 9.0 – Static Anonymous Functions

Merhaba, Nasıl ki, beşeri bir dilin keskinliği, o dilin belagat ve fesahata olan yatkınlığına, belagat ve fesahata olan yatkınlığı ise ilgili dilin tarihsel dokusuna yani bir başka deyişle temas ettiği insanlık tecrübesine bağlı, benzer...

1

.NET Core 5.0 – Retry Pattern, Timeout ve Circuit Breaker | Polly

Merhaba, Client ve server arasındaki haberleşmede request/response esasına dayanan bir proje düşleyelim… Client’ın, ihtiyacı doğrultusunda server’a request tabanlı isteklerde bulunabildiğini ve elde edilen response neticesinde gelen verileri işleyebildiğini… Evet, biliyorum. Bu durum günümüzün en...