Yazılım Mimarileri ve Tasarım Desenleri Üzerine Blog


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

AWS Cloud Development Kit(AWS CDK)’i C# İle İnceleyelim

Merhaba, Bu içeriğimizde, geliştiricilerin AWS kaynaklarını programlama dilleriyle tanımlayarak yönetmelerine olanak tanıyan bir yazılım geliştirme paketi olan AWS Cloud Development Kit(AWS CDK)‘i inceleyeceğiz. Tabi her şeyden önce bu paketi bizlere sunan davranışın temelleri olan...

0

Amazon SNS & Asp.NET Core – Scalable Notification System

Merhaba, Bu içeriğimizde web ve mobil uygulamalarında notification sistemleri oluşturmak isteyen geliştiriciler için Amazon tarafından sunulmuş olan SNS(Simple Notification Service) servisini inceleyecek ve bir Asp.NET Core uygulamasında nasıl yapılandırılabileceğini ve bir notification’ın alınabilmesi için...

0

Angular – output() API

Merhaba, Bu içeriğimizde, Angular mimarisinde parent component’lere değer emit’lememizi sağlayan geleneksel Output decorator’ının yerine geçecek olan output() API yapısını inceleyeceğiz. output() API yapısı davranışsal olarak output() ve outputFromObservable() fonksiyonlarıyla hayatımıza girmiştir. output() fonksiyonu, bizlere...

1

Amazon SQS & Asp.NET Core – Scalable Messaging

Merhaba, Biliyorsunuz ki, bir yazılım için önem arz eden birçok faktör arasından ölçeklenebilirlik ve güvenilir mesajlaşma yapılanması oldukça kritik arz etmektedir. Bu ihtiyaçlara karşın kullanabileceğimiz muhtelif teknolojiler olmasının yanında Amazon SQS’de imdadımıza yetişmekte ve...

3

EF Core 8 – Complex Types

Merhaba, Bu içeriğimizde EF Core’da ki Owned Types özelliğine oldukça benzerlik gösteren ve biz geliştiriciler açısından bir entity içerisindeki property’lerin düzenlenmesine olanak tanıyan Complex Types özelliğini inceliyor olacağız. Öncelikle Owned Types özelliğini hatırlayarak başlayalım…...

0

.NET 8 – Collection Expressions

Merhaba, Bu içeriğimizde .NET 8 ile C# programlama diline gelmiş olan yeni koleksiyonel syntax yapısından bahsediyor olacağız. Malumunuz C#’ta bir koleksiyon ya da dizi oluşturabilmek için genellikle aşağıdaki söz dizimlerinden istifade ediyorduk. Artık bu...

.NET 9 0

SearchValues İle Dizi Arama Performansını Artırma

Merhaba, Malumunuz iş süreçlerinde belirli işlemler için diziler içerisinde veri aramak oldukça yaygın bir davranış olabilmektedir. Amma velakin bu davranışlar ciddi maliyetlere ve önemli ölçüde performans kayıplarına da yol açabilmektedir. Bu içeriğimizde, bu tarz...

0

Angular – exportAs Özelliği

Merhaba, Bu içeriğimizde Angular’da, bir component’in veya directive’in şablon/template üzerinde kullanılırken belirli bir değişkene atanarak dışa aktarmamızı ve böylece genellikle HTML template’i içerisinde daha okunabilir ve yeniden kullanılabilir hale gelmesini sağlayan exportAs özelliğini inceliyor...

0

Angular – Template Local Variables | @let

Merhaba, Angular mimarisinde çalışanların en büyük muradı, ihtiyaca istinaden yer yer template içerisinde değişken tanımlayıp kullanabilmekti diyebiliriz 🙂 Evet, bu murada Angular 18’de gelmiş olan Template Local Variables özelliği ile erdiğimizi söyleyebiliriz. Bu içeriğimizde...

.NET 8 1

.NET 8 – global using İle Anlık Type Tanımlama

Merhaba, C# ile yaptığımız geliştirmelerde bazen anlık olarak elimizdeki verileri bütünsel olarak temsil edebilecek ve sadece o an için kullanacağımız bir türe ihtiyacımız olabiliyor. Bu tarz durumlarda bir class, record ya da struct tanımından...

JWT(JSON Web Token) & PASETO(Platform-Agnostic Security Tokens) Kapsamlı Karşılaştırmasını Yapalım 1

JWT(JSON Web Token) & PASETO(Platform-Agnostic Security Tokens) Kapsamlı Karşılaştırmasını Yapalım

Merhaba, Günümüzde modern web uygulamalarının güvenlik yapılanmaları token-based authentication’a dayanmakta ve bu, geleneksel session-based authentication’a nazaran daha gelişmiş bir yapılanma sağlamaktadır. Bizler bu güne kadar çeşitli token yaklaşımları arasından basitliği, uygulama kolaylığı ve en...

0

Signal Store ve NGXS – State Management’ta Esnekliği Artırma

Merhaba, Malumunuz, Angular mimarisinde signal yapılanmasının gelmesi ve kullanılmaya başlamasıyla özellikle state management’ta olmak üzere farklı davranış fırsatları ortaya çıkmış bulunmaktadır. Bunlardan en meşhuru NgRx ekibi tarafından signal tabanlı state management için geliştirilmiş olan...

0

Angular 18 – Zoneless Change Detection

Merhaba, Geçmişten bu güne takip eden okuyucularım bilir… Bir zamanlar C# programlama dilinin her yeni sürümü için eşsiz bir heyecan duyuyordum. Artık bu heyecana Angular mimarisinin yetişemediğimiz evrimsel sürecindeki yenilikler de eklenmiş bulunmaktadır. Evet…...

1

Asp.NET Core Web API Uygulamasını Amazon EC2’de Host Etme

Merhaba, Amazon EC2(Elastic Compute Cloud), Amazon Web Service’leri tarafından sunulan yüksek oranda ölçeklenebilir ve esnek bir cloud servisidir. Bu servis üzerinde kendi uygulamalarımızı çalıştırabileceğimiz, uygulamanın bellek veya CPU gibi gereksinimlerine uygun çeşitli türler üzerinden...

Load Balancing(Yük Dengeleme) ve Load Balancer(Yük Dengeleyici) Nedir? 0

YARP Load Balancing İle Yatay Ölçeklendirme(Horizontally Scaling-Scaling Out)

Merhaba, Biliyorsunuz ki, bir yazılımdan beklenen mühim davranışlardan biri sürdürülebilirliktir. Tek bir sunucuda çalıştırılan yazılımlar artan sayıda kullanıcılara hizmet verirken kaynakların yetenek sınırlarına ulaşıldığında istemsizce performans düşmesi, yavaş yanıt süreleri, trafikte dalgalanmalar ve hatta...

YARP İle Microservice'ler de API Gateway Implementasyonu 3

YARP İle Microservice’ler de API Gateway Implementasyonu

Merhaba, Microserve mimarisinde yapılan çalışmalarda client’lar açısından en önemli konulardan biri servislere istekte bulunabilmek için tüm servislerin bilgilerine sahip olması gerekliliğidir ki böylece hedef servis odaklı bir istek süreci yürütebilsin. Amma velakin microservice gibi...

1

Asp.NET Core’da Current User’ı Elde Etmek

Merhaba, Asp.NET Core ile geliştirdiğimiz uygulamaların çoğunda authentication ve authorization yaygın olarak kullandığımız güvenlik protokolleridir. Genellikle, bu protokoller neticesinde doğrulanan kullanıcıların bilgilerine erişim gösterebildikleri noktalarda bizler tarafından ihtiyaç duyulabilmektedir. Bu konuya dair kaynakları taradığımızda...

0

Asp.NET Core Uygulamaları İçin URL Ayarlamanın 7 Yolu

Merhaba, Malumunuz, Asp.NET Core uygulamalarını geliştirirken lalettayin bir URL kullanamamakta, IPv4 ve IPv6 için loopback adresi eşliğinde http://localhost:5000, http://127.0.0.1:5000 veya http://[::1]:5000 formatlarında url’ler kullanılabilmekte ya da geliştirmenin yapıldığı makinede bulunan belirli bir IP adresi...

0

Asp.NET Core – SignalR’da Streaming

Merhaba, Önceki yazılarımızda klavyeye aldığımız Asp.NET Core – SignalR yazı serisinde SignalR teknolojisini sürekli tekil mesajların iletimi üzerine ele almıştık. Halbuki SignalR aynı zamanda message streaming’i destekleyen bir yapıya sahiptir. Evet, iki konum arasındaki...

0

Angular 17.2 – Model Inputs

Merhaba, Bu içeriğimizde Angular 17.2 versiyonuyla gelen ve bir diğer Signal API’si olan Model Inputs özelliğini inceleyecek ve Angular 17.1 ile gelmiş olan önceki yazılarımızda değerlendirmiş olduğumuz Input Signals özelliğiyle karşılaştırmasını yapıyor olacağız. İlk...

0

Angular 17.1 – New Router info Parameter

Merhaba, Bu içeriğimizde router navigation özelliğiyle ilgili bilgileri depolamak için kullanabileceğimiz, Angular 17.1 ile gelmiş olan info parametresini inceliyor olacağız. info parametresinin kullanımı yönlendirici linkler üzerine aşağıdaki gibi oldukça basittir; Bu şekilde info parametresiyle...

0

Angular 17.1 – Input Signals

Merhaba, Bu içeriğimizde, Angular mimarisinin 17.1 sürümünde gelmiş olan ve Input decorator’ının davranışını signal olarak da uygulamamızı sağlayacak olan Input Signals özelliğini kısaca inceliyor olacağız. Input Signals, geleneksel decorator yaklaşımına nazaran yeni bir signal...

.NET 8 0

.NET 8 | Short-Circuit Routing

Merhaba, Bu içeriğimizde .NET 8 ile Asp.NET Core’a gelen ve short-circuit routing olarak nitelendirilen küçük bir yeniliği inceliyor olacak, bu yeniliğin normal routing’den ne kadar farklı olduğuna ve hangi durumlarda kullanılması gerektiğine dair istişarede...

.NET 8 3

Asp.NET Core 8 – Global Error Handling

Merhaba, Geliştirdiğimiz uygulamalarımızı her ne kadar hassas ve güvenilir bir şekilde tasarlıyor olsak da, genellikle yazılımların çalışma sürecinin doğal bir parçası olan hata durumları ister istemez meydana gelecektirler ve özellikle bu durumlar web uygulamaları...

0

.NET’te Rebus Kütüphanesiyle Saga Orchestration Yaklaşımının Uygulanması

Merhaba, Malumunuz, microservice mimarisiyle tasarlanmış yazılımlarımızda kullanıcılar tarafından başlatılan işlem ya da görevlerin, bir servis tarafından alınıp ardından belirli servisler üzerinde mantıksal bir tetikleme silsilesiyle işlenme ve koordine edilme süreçlerini yürütmemize ve biryandan da...

1

Angular 17 – View Transitions API

Merhaba, Bu içeriğimizde Angular 17 ile gelmiş olan tarayıcıların View Transitions API özelliğini yapılandırma davranışının nasıl kullanılabileceğini inceliyor olacağız. View Transitions API Nedir? View Transitions API, web uygulamalarında kullanıcıların bilişsel yükünü azaltmak, bağlamda kalmalarına...

NServiceBus 0

.NET’te NServiceBus Nedir? Nasıl Kullanılır?

Merhaba, Bu içeriğimizde Microsoft platformlarında çalışan bir mesajlaşma altyapısı olan NServiceBus üzerine odaklanacak ve Asp.NET Core mimarisinde nasıl yapılandırılabildiğini pratiksel olarak inceliyor olacağız. NServiceBus Nedir? NServiceBus, giriş satırında da belirtildiği gibi bir mesajlaşma altyapısı...

.NET 8 6

.NET 8 – Identity API Endpoints

Merhaba, Bu içeriğimizde kanaatim odur ki Asp.NET Core açısından .NET 8 ile gelen en güzel özelliklerden birini, Identity API Endpoints özelliğini inceleyeceğiz. Bu özellik sayesinde uygulamalarımızdaki temel kullanıcı işlemlerini gerçekleştirdiğimiz Identity mekanizmasının artık daha...

.NET 8 0

.NET 8 – Minimal API’lar da Form Binding İşlemi

Merhaba, Bu içeriğimizde .NET 8 ile Asp.NET Core mimarisinde minimal api’ler de form binding’e yönelik gelen yeniliğe dair odaklanacak ve bu destekle birlikte form kullanımı açısından MVC controller’larına olan bağımlılığın ortadan kaldırılması temellerinin nasıl...

1

.NET WebAPI – Amazon Cognito ile Güvenliğin Sağlanması: Serverless Authentication | Client Credentials | Password Flows | JWT

Merhaba, Bu içeriğimizde, Amazon Cognito ile .NET WebAPI’ın güvenliğini sağlama konusunda kapsamlı bir inceleme çalışması gerçekleştiriyor olacağız. Odak noktamız, OAUth ve Amazon Cognito eşliğinde Serverless Authentication sistemi oluşturabilme üzerine olacaktır. Bu içeriğin sonunda .NET...

2

Angular 17 – @defer Deferrable Views

Merhaba, Bu içeriğimizde Angular 17 ile component lazy loading davranışına karşın yeni bir yol olarak gelmiş olan @defer syntax’ı ile birlikte Deferrable Views özelliğini inceliyor olacağız. @defer Nedir? Nasıl Bir İşleve Sahiptir? @defer syntax’ı...

4

Angular 17 – Control Flow Syntax

Merhaba, Bu içeriğimizde Angular 17 ile gelen ve built-in olarak mimaride varlık gösteren *ngIf, *ngFor ve *ngSwitch gibi direktifler yerine daha programatik bir üslupla if/else, for ve switch yapılarını kullanmamızı sağlayan Control Flow Syntax...

.NET 8 1

.NET 8 – Keyed Service | Dependency Injection

Merhaba, Bu içeriğimizde .NET 8 ile IoC container’a gelen keyed service özelliğini inceleyecek, nasıl ve ne zaman kullanılmaları gerektiğini, olayın perde arkasını masaya yatırarak bol istişare eşliğinde değerlendireceğiz. O halde buyurun başlayalım… Keyed Service...

angular signals 0

Angular 16 Signals – State Management

Merhaba, Bu içeriğimizde, Angular 16 ile gelmiş olan Signals yapılanmasını kullanarak state management’ın nasıl uygulanabileceğini inceliyor olacağız. Angular mimarisi, yapısal olarak fazlasıyla kurallı bir anatomiye sahip olsa da, esasında temel mantığı anlaşıldığı taktirde oldukça...

Microservice Mimarisinde Two-Phase Commit(2PC) Pattern İle Transaction Yönetimi - Nedir Nasıl Uygulanır Sagadan Farkı Nedir 0

Microservice Mimarisinde Two-Phase Commit(2PC) Pattern İle Transaction Yönetimi – Nedir? Nasıl Uygulanır? Saga’dan Farkı Nedir?

Merhaba, Bu içeriğimizde microservice yaklaşımını uyguladığımız mimarilerde veri tutarlılığını sağlamanın davranışlarından biri olan Two-Phase Commit(2PC) modelini ele alacak, nasıl ve hangi durumlarda kullanıldığını değerlendiriyor olacağız. Ayrıca neden Saga pattern’ına nazaran daha az tercih edilmesi...

.NET 8 0

.NET 8 – Method Çağrılarını Interceptor’larla Değiştirme

Merhaba, Bu içeriğimizde .NET 8’de C# 12 ile birlikte gelen Interceptor özelliğini inceliyor olacağız. Interceptor Nedir? Neden Bu Yapılanmaya İhtiyacımız Vardır? Interceptor, uygulamadaki herhangi bir metoda yapılan çağrıyı alternatif başka bir metotla değiştirmemize ya...

0

.NET Uygulamaları İçin Detaylı AWS Credentials Konfigürasyonu

Merhaba, Depolama, bilgi işlem ve veritabanları gibi AWS servislerine erişim maksatlı authentication yapabilmek için kullandığımız ve AWS’nin güvenlik modelinin temel bir parçası olan AWS Credentials, korumalı hizmetlere erişim için geliştiricilerin .NET uygulamalarını/ortamlarını gerekli kimlik...

.NET 8 1

.NET 8 – Minimap API Source Generator’ı İnceleyelim

Merhaba, Bu içeriğimizde .NET 8 ile gelmesi beklenen, AOT iş yüklerini(workloads) desteklemek için tanıtılmış olan Minimal API Source Generator‘ı inceliyor olacağız. O halde hiç vakit kaybetmeden buyurun başlayalım… Minimal API’lar Nasıl Çalışırlar? Malumunuz, Asp.NET...

.NET 8 1

.NET 8 – WebApplication.CreateBuilder() Metodunun Yeni CreateSlimBuilder() Metoduyla Karşılaştırılması

Merhaba, Bu içeriğimizde, bir önceki klavyeye almış olduğumuz .NET 8 – Minimal API Ahead of Time(AOT) Compilation Template başlıklı makalemizde incelediğimiz AOT Compilation senaryolarını desteklemek için .NET 8’de tanıtılmış olan WebApplication.CreateSlimBuilder(args) metodunu derinlemesine inceliyor...