Yıllık Arşiv: 2020


Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...
Asp.NET Core 5.0 - Angular'da JWT Eşliğinde Microsoft&Google Authenticator İle Two Factor Authentication 0

Asp.NET Core 5.0 – Angular’da JWT Eşliğinde Microsoft&Google Authenticator İle Two Factor Authentication

Merhaba, Hatırlarsanız eğer Two Factor Authentication Nedir? başlıklı makalemizde Two Factor Authentication’ın ne olduğundan bahsetmiştik ve Google & Microsoft Authenticator İle Two Factor Authentication başlıklı makalemizde ise Asp.NET Core MVC mimarisine özel çift aşamalı...

.NET Core - MassTransit Kullanarak RabbitMQ İle Messaging 4

Asp.NET Core – MassTransit & RabbitMQ İle Birlikte Messaging Uygulaması

Merhaba, Bir önceki .NET Core – MassTransit Kullanarak RabbitMQ İle Messaging başlıklı makalemizde MassTransit ESB kütüphanesini RabbitMQ ile birlikte ele almış ve birçok detayıyla birlikte incelemiştik. Bu içeriğimizde ise bir senaryo dahilinde MassTransit kütüphanesi...

.NET Core - MassTransit Kullanarak RabbitMQ İle Messaging 2

.NET Core – MassTransit Kullanarak RabbitMQ İle Messaging

Merhaba, Günümüzde geliştirilen birçok enterprise uygulama, ihtiyaçlar doğrultusunda birbirinden bağımsız platformlarda, distributed bir şekilde çalışmaktadır. Bu yapıların birbirleriyle olan iletişimleri genellikle Messaging yapıları sayesinde gevşek bağlılıkla(loosely coupled) ve asenkron bir şekilde gerçekleştirilmekte ve böylece...

Entity Framework Core - Owned Entities and Table Splitting 1

Entity Framework Core – Owned Entities and Table Splitting

Merhaba, Entity Framework Core tasarımlarında bir entity’nin olması gereken inşa kurallarının dışına çıkarak parçalamak ve grupsal olarak property’lerini farklı class’lar da tutmak isteyebiliriz. Bu class’lar, yapısal olarak entity type’a benzeyebilirler lakin davranışsal olarak, ana...

4

Entity Framework Core – Global Query Filters

Merhaba, Entity Framework Core ile şartlı sorgu deyince akla direkt Where komutu gelmektedir. Where, yapısal olarak bool mantıkta aldığı şart ifadesini sorgu diline çevirmekte ve hedef verileri bizlere getirmekte olan bir LINQ sorgusudur. Lakin...

0

Entity Framework Core – Connection Resiliency

Merhaba, Uygulamalarımızda veritabanı diyaloglarını hızlı bir şekilde gerçekleştirebilmek için kullandığımız ORM yapılanmaları bazen istemsiz durumlarla karşılaşabilmektedirler. Tabi ki de bir yazılımın çalışma süresince istemsiz durumlarla karşılaşması oldukça olağan bir durumdur lakin burada mühim olan...

C# Decorator Design Pattern(Decorator Tasarım Deseni) 6

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

Merhaba, Bu içeriğimizde mevcudiyette var olan bir class’a mimarisel yeni bir nitelik kazandırmamızı sağlayacak olan, Structural Pattern(Yapısal Desenler)’lerden Decorator Design Pattern(Decorator Tasarım Deseni) üzerine konuşuyor olacağız. Yazılım mimarilerinde temel esas, mümkün mertebe birbirlerinden soyutlanmış...

9

Özel Ders Formatında A’dan Z’ye C# 9.0 Programlama Eğitimi

Son radikal kararla eğitimlerin ücretsiz yayınlanmasına karar verilmiştir.  Merhaba, Son yıllarda hem yazılım projelerine, hem bloğumdaki makalelere hem de bireysel yahut kurumsal yazılım eğitimlerine ciddi bir zaman harcamaktayım. Bu süreçte kâh öğrencilerimden kâh...

3

C# 9.0 – Pattern Matching Enhancements

Merhaba, Pattern Matching’ler ilk olarak C# 6.0’da tanıtıldılar ve ardından C# 7.0’da(bknz : C# 7.0 – Pattern Matching) daha da geliştirildiler ve C# 8.0’da(bknz : C# 8.0 – Switch Expression(Property – Tuple – Positional...

0

Entity Framework Core – Query Tags

Merhaba, Bir önceki Entity Framework Core – Query Log başlığıyla kaleme aldığımız makalemizde Entity Framework Core ile oluşturulan sorguların loglanarak nasıl takip edilebildiğini incelemiştik. Bu içeriğimizde ise karmaşık uygulamalar üzerinden canlı ortamlarda gelen onlarca...

1

Entity Framework Core – Query Log

Merhaba, Entity Framework Core mimarisinde yazılan LINQ sorguları neticesinde generate edilen sorguları izleyebilmek ve olası teknik hataları ayıklayabilmek amacıyla loglama mekanizmasını çalıştırmamız gerekebilmektedir. Bu ihtiyaca istinaden, .NET Core’da dahili olarak gelen log mekanizması Entity...

1

IdentityServer4 Yazı Serisi #21 – Angular İle IdentityServer4 Kullanımı ve Refresh Token(Silent Refresh)

Merhaba, IdentityServer4 Yazı Serisinin bu yirmibirinci makalesinde artık IdentityServer4 framework’ü ile bir SPA(Single Page Application) uygulamasının nasıl kullanıldığına sıra geldiğini düşünerek Angular ile örneklendirmeye karar verdim. SPA teknolojilerinden Angular mimarisinde ele alacağımız bu içeriğimizde...

0

C# 9.0 – Lambda Discard Parameters

Merhaba, C# 7.0 sürümünde hayatımıza girmiş olan Discard Kavramı, C# 9.0 versiyonunda alanını daha da genişleterek lambda ifadelerinde de kullanılabilir bir hal almıştır. Herşeyden önce Discard’ın ne olduğunu hatırlayarak başlayalım… Değişken tanımlamaya ihtiyaç duyulmadığı...

0

C# 9.0 – Target-Typed New Expressions

Merhaba, C# 9.0 sürümünde, nesne oluşum süreçlerinde semantik açıdan inanılmaz kolaylık sağlayan Target-Typed New Expressions özelliğini duyurmuştur. Bu özellik, new operatörü ile türü bilinen bir class’tan nesne yahut bir struct’tan değer üretilirken constructor çağrımı...

3

C# 9.0 – Top-Level Statements

Merhaba, Bir dilin gücünü gösteren birçok faktör vardır. Yer yer bu güç ayrımını ihtiyaçlar belirlerken, bazı dönemler popüler ihtiyaçları(veri madenciliği, yapay zeka vs.) karşılayabilen diller bu özellikleriyle kendilerini daha güçlü şekilde kulvarlara sunabilmektedirler. Sanırım...

3

IdentityServer4 Yazı Serisi #17 – Merkezi Üyelik Sistemi – Client Uygulaması İçin Role Based Authorization

Merhaba, IdentityServer4 Yazı Serisinin bu onyedinci makalesinde, geliştirilen client uygulaması için rol tabanlı yetkilendirmeyi ele alacağız. Client uygulamasında rol tabanlı yetkilendirme için esasında bildiğimiz claim tabanlı bir yetkilendirme yapmamız gerekecektir. Burada MVC uygulamalarında kullandığımız...

7

C# 9.0 – Records İle Immutable Datalar

Merhaba, Hani bazen gelen yenilik, var olan küçük bir gediği kapatmak için yapılan bir onarımdan yahut iyi ya da kötü bir değişiklikten ibaret olabilmektedir. Lakin bazıları vardır ki, hangi olgu üzerinde olursa olsun bir...

2

C# 9.0 – Init-Only Properties ve Init Accessor

Merhaba, Bu içeriğimizde C# 9.0 ile gelen özelliklerimizden, herhangi bir nesnenin propertylerine ilk değerlerinin verilmesi ve sonraki süreçte bu değerlerin değiştirilmemesini garanti altına alan Init-Only Properties özelliğini ele alıyor olacağız. Init-Only Properties, nesnenin sadece...

0

IdentityServer4 Yazı Serisi #15 – Merkezi Üyelik Sistemi – Onay(Consent) Sayfası Ayarlama

Merhaba, IdentityServer4 Yazı Serisinin bu onbeşinci makalesinde kullanıcılardan istenilen bilgiler için onay sayfasının nasıl ayarlanabileceğini inceleyeceğiz. Şuana kadar client, Auth Server’dan kullanıcıya dair istediği tüm bilgileri, kullanıcı giriş yaptığı taktirde elde edebilmekte ve kullanabilmektedir....

Asp.NET Core - API Versiyonlama 3

Asp.NET Core – API Versiyonlama

Merhaba, API geliştirilirken aklımızda tutmamız gereken bir realite vardır ki o da ‘Değişim Kaçınılmazdır’ ilkesidir. Gelişim sürecinde her ne kadar iş odaklı bir çalışma gerçekleştiriyor olsakta, kâh öngörülemeyen kâh sonradan doğan ihtiyaçlara binaen API’a...

3

IdentityServer4 Yazı Serisi #12 – Merkezi Üyelik Sistemi – Claim ve Authentication Propertyleri Okuma

Merhaba, IdentityServer4 Yazı Serisinin bir önceki kaleme aldığımız Merkezi Üyelik Sistemi Temelleri başlıklı makalemizde client’ın Auth Server’dan authorization code almasını başarmış ve client üzerinde authorize olan kısımlara yetkili bir şekilde erişimi test etmiştik. Bu...

3

IdentityServer4 Yazı Serisi #11 – Merkezi Üyelik Sistemi Temelleri

Merhaba, Bu içeriğimizde yazı serimiz boyunca ara ara geliştirdiğimiz örnek uygulama üzerinden Merkezi Üyelik Sistemi’ni örneklendireceğiz. Geliştirdiğimiz uygulamanın bu makaleye kadar olan en son halini elde edebilmek için buraya tıklayınız. Şimdi Merkezi Üyelik Sistemi...

0

IdentityServer4 Yazı Serisi #9 – Implicit Grant(Flow)

Merhaba, Bu içeriğimizde IdentityServer4’ün bir başka akış stratejisi olan Implicit Grant‘ı teorik bir şekilde inceliyor olacağız. Implicit Grant(Flow) Nedir? Bir önceki makalede ele aldığımız Authorization Code Grant(Flow) iki aşamalı bir doğrulama süreci gerçekleştirmektedir. Implicit...

3

IdentityServer4 Yazı Serisi #8 – Authorization Code Grant(Flow)

Merhaba, Daha önce IdentityServer4 Yazı Serisinin üçüncü makalesi olan Client Credentials başlıklı makalemizde IdentityServer4 yapılanması üzerinden client’ların yetkilendirilmesini teorik ve pratik olarak incelemiştik. Bu sekizinci makalede ise Authorization Code Grant/Flow ile kullanıcıların onayı üzerinden...

1

IdentityServer4 Yazı Serisi #6 – Introspection Endpoint

Merhaba, IdentityServer4 Yazı Serisinin bir önceki Discovery Endpoint başlıklı makalesinde IdentityServer4 framework’ünün hali hazırda endpoint’leri olduğundan bahsettik ve bunlar arasından Auth Server’ı keşfetmemizi sağlayan Discovery Endpoint’i ele aldık. Bu içeriğimizde ise client açısından elde...

2

IdentityServer4 Yazı Serisi #5 – Discovery Endpoint

Merhaba, IdentityServer4 framework’ü, kendisiyle belli başlı ihtiyaçlara istinaden iletişim kurulabilmesi için hali hazırda mevcut olan endpointler barındırmaktadır. Bizler bu endpointler vasıtasıyla sistemin getirisi olan bazı işlevlere erişebilmekte ve ihtiyaç doğrultusunda kullanabilmekteyiz. Bu endpoint’lere misal...

5

IdentityServer4 Yazı Serisi #4 – Claim Bazlı Yetkilendirme

Merhaba, IdentityServer4 Yazı Serisinin üçüncü makalesi olan Client Credentials başlıklı makalede IdentityServer4’ün pratiksel temelleri eşliğinde işlevsel mekanizmasına değinmiş ve bir yandan da sadece client’ları yetkilendirme merkezli(Client Credentials) temel bir uygulama geliştirmiştik. Bu içeriğimizde ise...

5

IdentityServer4 Yazı Serisi #3 – Client Credentials

Merhaba, IdentityServer4 Yazı Serisinin bu üçüncü makalesinde Client Credential yetki tipi ile gerekli konfigürasyonlar eşliğinde IdentityServer4 uygulaması geliştirecek ve ayağa kaldıracağız. Client Credential; machine to machine kimliklendirme dediğimiz iki uygulama arasındaki etkileşime istinaden kullanılan...

1

IdentityServer4 Yazı Serisi #2 – IdentityServer4 Hangi Problemlere Çözüm Getiriyor?

Merhaba, IdentityServer4 Yazı Serisinin bu ikinci makalesinde IdentityServer4 kütüphanesinin problem senaryolarını şematik görselleştirmeye çalışacak ve bunlara nasıl çözüm getirdiğini inceleyeceğiz. 1. Problem Senaryosu Birden fazla uygulama arasında merkezi bir yetkilendiriciye ihtiyaç hissedildiği durumlarda IdentityServer4...

21

IdentityServer4 Yazı Serisi

Merhaba, Yaklaşık bir yılı aşkın süre önce başladığım Asp.NET Core Identity – Yazı Serisi oldukça rağbet gördü ve beklenilenden fazla okunma oranıyla karşılaştı. Haliyle bu ilgi beni büyük bir şevkle yeni konulara yelken açmaya...

.NET Core Microservices - Ocelot İle Authentication İşlemleri 8

.NET Core Microservices – Ocelot İle Authentication İşlemleri

Merhaba, Önceki .NET Core Microservices – Ocelot API Gateway başlıklı makalemizde bir Gateway kütüphanesi olan Ocelot’un; microservice’ler arası geçiş görevi gören sorumluluğundan, deploy tasarımlarından, pratik olarak nasıl kullanıldığından ve daha birçok özelliğinden detaylıca bahsetmiş...

0

Asp.NET Core – SignalR Serisi #10 – Derinlemesine Kimlik Doğrulama(Authentication) ve Yetkilendirme(Authorization)

Merhaba, Klasik web uygulamalarında olduğu gibi SignalR mimarisiyle real time çalışan uygulamalarda da kullanıcı doğrulama ve yetkilendirme ihtiyacı hissedebilir ve eşzamanlı veri akışı esnasında tanımlı kullanıcılar dışında etkileşime müdahale olunmasını istemeyebiliriz. Bu içeriğimizde, bu...

0

Asp.NET Core – SignalR Serisi #9 – Strongly Typed Hubs

Merhaba, Yazılım uygulamalarında sistemler arası haberleşmeleri yahut ortak tanımlamaları statik metinsel değerler üzerinden sağlamaya çalışmak, hata yapma ihtimalini arttırmakta ve böylece sürece ister istemez ekstra bir zorluk kazandırılmaktadır. Bu durum SignalR mimarisinde oldukça karşılaşılmakta...