İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Yapay Zeka
  • ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı
Bulut Altyapı Yapay Zeka ASP.NET Core, C# union türleri, Closed hiyerarşi, SignalR, System.Text.Json Aşkın KILIÇ 10/09/2026 0 Yorumlar

ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı

ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı
📑 İçindekiler
  1. Union türleri API sözleşmesini nasıl tanımlar?
  2. Union, polimorfizm ve closed hiyerarşi farkı
  3. System.Text.Json ile serileştirme
  4. ASP.NET Core, SignalR ve Blazor desteği
  5. OpenAPI şemasında union gösterimi
  6. Kaynaklar ve İleri Okuma
⏱️ 8 dk okuma📅 10 Eylül 2026

Bir API sözleşmesinde değer birden fazla JSON türünden biri olabiliyorsa C# union türleri bu alternatifi doğrudan metot imzasına taşıyabilir. C# 15 ve.NET 11 ile gelen union bildirimi, izin verilen türleri sabit bir küme olarak tanımlar. ASP.NET Core bu türleri System.Text.Json üzerinden JSON gövdelerinde, SignalR’da, Blazor JavaScript interop akışında ve bileşen durumunda kullanabilir.

Union türleri API sözleşmesini nasıl tanımlar?

Kubernetes’teki maxUnavailable alanı buna pratik bir örnektir. Değer mutlak sayı, örneğin 2, veya yüzde, örneğin "25%", olabilir. ASP.NET Core endpoint’i bu sözleşmeyi şöyle ifade edebilir:

public union IntOrString(int, string);
app.MapGet("/deployments/{name}/max-unavailable", IntOrString (string name) => Deployments.GetMaxUnavailable(name));

Bu union yalnızca int veya string kabul eder. bool, DateTime ve başka türler bu kümenin parçası değildir. Union case’lerinin aynı sınıf hiyerarşisindeki sınıflardan oluşması da gerekmez; ilkel türler, sınıflar, arayüzler ve nullable türler birlikte kullanılabilir.

Case değerleri union’a doğrudan dönüştürülebilir:

IntOrString absolute = 2;
IntOrString percentage = "25%";

Aktif case, standart C# pattern matching ile ele alınabilir:

static string Describe(IntOrString value) => value switch
{
int count => $"{count} pods",
string percentage => percentage,
};

Burada varsayılan bir _ => kolu yoktur. Derleyici union’ın izin verdiği tüm case’leri bildiği için switch ifadesinin eksiksiz olup olmadığını denetler. Union’a yeni bir case eklendiğinde, bu case’i ele almayan mevcut switch ifadeleri uyarı üretir.

Örneğin aşağıdaki tanıma sonradan string case’i eklenirse:

public union SettingValue(bool, decimal, string);
static string Describe(SettingValue value) => value switch
{
bool enabled => enabled ? "enabled" : "disabled",
decimal number => number.ToString(),
// missing string case
};

Derleyici şu uyarıyı verir:

warning CS8509: The switch expression does not handle all possible values of its input type (it is not exhaustive). For example, the pattern 'string' is not covered.

Bu kontrol union’ın kullanıldığı her noktada yapılır. Böylece yeni bir case mevcut kodda sessizce gözden kaçmaz.

Union’dan önce yaygın seçenekler object, ortak bir temel tür veya özel wrapper türleriydi. object gereğinden fazla tür kabul eder. Ortak bir temel tür ise int ve string gibi birbiriyle ilgisiz mevcut türleri aynı sözleşmede birleştiremez. Özel wrapper bu sınırı uygulayabilir; ancak bunun için kendi oluşturma ve eşleştirme API’leri gerekir. Union tür sözleşmesini metot imzasında tutar, normal C# pattern matching ile çalışır ve System.Text.Json desteği sunar.

Union, polimorfizm ve closed hiyerarşi farkı

Polimorfizm, bir temel sınıftan türeyen ilişkili türleri modellemek için kullanılır. Örneğin Circle ve Square, ortak bir Shape temel sınıfından türeyebilir. Bu türler ortak üyeleri ve davranışları paylaşır.

System.Text.Json bu hiyerarşileri discriminator kullanarak serileştirebilir. Temel tür [JsonPolymorphic] ile işaretlenir, desteklenen türetilmiş türler de [JsonDerivedType] ile kaydedilir. JSON içinde aktif türü belirten bir $type alanı yer alır:

{"$type":"circle","radius":5}

System.Text.Json yalnızca açıkça kaydedilmiş türetilmiş türleri desteklenen küme içinde sayar. Temel C# sınıfı açık kaldığında, başka türlerin gelecekte türemesini dil düzeyinde engellemez. Bu nedenle böyle bir hiyerarşi üzerinde yapılan switch ifadesi genellikle varsayılan bir kol gerektirir.

C# 15’in closed class hiyerarşileri ise temel sınıfa başka assembly’lerden doğrudan türemeyi engeller. Derleyici bilinen türetilmiş türleri tamamlanmış bir küme olarak değerlendirebilir:

public closed record class PaymentEvent(string PaymentId);
public sealed record class PaymentInitiated(string PaymentId) : PaymentEvent(PaymentId);
public sealed record class PaymentAuthorized(string PaymentId, decimal Amount) : PaymentEvent(PaymentId);
public sealed record class PaymentFailed(string PaymentId, string Reason) : PaymentEvent(PaymentId);

Closed hiyerarşi union’a benzer biçimde sabit alternatifler sunar; ancak sonuçta bir kalıtım hiyerarşisidir. Case’ler ortak bir temel sınıftan türeyebilir ve ortak üyeleri paylaşabilir. closed anahtar sözcüğü C# tür ilişkisini sınırlar, JSON biçimini tek başına değiştirmez.

Yeni bir API tasarlıyor ve tüm alternatif sınıfları kontrol ediyorsanız closed hiyerarşi ile discriminator kullanımı tercih edilebilir. PaymentInitiated, PaymentAuthorized ve PaymentFailed gibi olaylar ortak bir PaymentEvent temel sınıfından türeyebilir. Discriminator JSON’u açıklayıcı hâle getirir; closed ise derleyicinin bilinen tüm olayların ele alınıp alınmadığını kontrol etmesini sağlar.

Mevcut hiyerarşinin başka assembly’ler tarafından genişletilmesi gerekiyorsa temel sınıf açık bırakılabilir. Bu durumda desteklenen türetilmiş türlerin System.Text.Json’a açıkça kaydedilmesi gerekir. Derleyici açık hiyerarşiyi eksiksiz kabul edemeyeceğinden fallback kolu da kullanılmalıdır.

Union, discriminator içermeyen mevcut JSON sözleşmesini korumak veya case’leri tek bir temel sınıftan türetmenin mümkün olmadığı durumlarda daha uygundur. Bu yaklaşım ilkel türler ve kontrol etmediğiniz mevcut türler için de kullanılabilir. Ancak discriminator içermeyen JSON’da iki case aynı yapıya sahip olabilir; okuma sırasında hangi case’in seçileceği için ek sınıflandırma gerekebilir.

System.Text.Json ile serileştirme

Union değer serileştirilirken wrapper kaldırılır ve yalnızca aktif case’in kendi JSON karşılığı yazılır. Union için ek bir zarf nesnesi, $type alanı veya discriminator eklenmez:

JsonSerializer.Serialize(new UnionIntString(42));      // 42
JsonSerializer.Serialize(new UnionIntString("hello")); // "hello"
JsonSerializer.Serialize(new UnionPet(new Cat("Whiskers", "Tabby"))); // { "name": "Whiskers", "coat": "Tabby" }

Aşağıdaki tanımlar, farklı JSON türleri ve nesne türleri içeren union’ları gösterir:

public union UnionIntString(int, string);
public union UnionBoolString(bool, string);
public union UnionNullableIntString(int?, string);
public record Cat(string Name, string Coat);
public record Dog(string Name, string Breed);
public union UnionPet(Cat, Dog);

Case’ler farklı JSON token türlerine karşılık geliyorsa System.Text.Json otomatik seçim yapabilir. UnionBoolString(bool, string) bu açıdan belirsiz değildir: JSON boolean değeri bool ile, JSON string değeri string ile eşleşir.

Her iki case de JSON nesnesi olduğunda otomatik seçim mümkün olmayabilir. UnionPet(Cat, Dog) için yapısal sınıflandırıcı kullanılabilir:

[JsonUnion(TypeClassifier = typeof(JsonUnionTypeStructuralClassifier))]
public union UnionPet(Cat, Dog);

Yapısal sınıflandırıcı, System.Text.Json serileştirme işleminden önce JSON nesnesini tarar. Bu işlem yükün boyutuyla orantılı ek çalışma getirir. Karar case’lerdeki özellik adlarına dayandığı için JSON yapılarındaki değişiklikler mevcut değerlerin sınıflandırılmasını etkileyebilir veya belirsizlik yaratabilir. Yeni ve kontrol edilen sözleşmelerde discriminator kullanan closed hiyerarşi bu nedenle daha uygun olabilir. Yapıyla ayırt edilemeyen ileri senaryolarda özel bir JsonTypeClassifier sağlanabilir.

HTTP JSON bağlamında başka bir belirsizlik de ortaya çıkabilir. Web JSON ayarları sayıların string olarak okunmasına izin verdiğinden, IntOrString bir istek gövdesi olarak kullanıldığında JSON string’i hem sayı hem de string case’iyle eşleşebilir. Böyle bir sözleşmeyi deserialize etmek için açık bir özel sınıflandırma gerekir.

Closed hiyerarşilerde closed kullanmak tek başına polimorfik JSON üretmez. Somut türetilmiş tür kullanılırsa normal serileştirme yapılır:

var json = JsonSerializer.Serialize(new PaymentAuthorized("p-123", 42.5m), JsonSerializerOptions.Web);
var payment = JsonSerializer.Deserialize<PaymentAuthorized>(json, JsonSerializerOptions.Web);
{"paymentId":"p-123","amount":42.5}

API temel tür olan PaymentEvent üzerinden çalışıyorsa JSON’un hangi türe dönüştürüleceğini belirtmek gerekir. Closed hiyerarşinin türetilmiş türlerini otomatik keşfetmek için polimorfizm etkinleştirilebilir:

[JsonPolymorphic(InferClosedTypePolymorphism = true)]
public closed record class PaymentEvent(string PaymentId);

Bu durumda System.Text.Json türetilmiş türleri closed hiyerarşiden çıkarır ve tür adlarını discriminator olarak kullanır:

app.MapPost("/payment-event", (PaymentEvent paymentEvent) => paymentEvent);
{"$type":"PaymentAuthorized","paymentId":"p-123","amount":42.5}

Aynı opt-in davranışı JSON pipeline’ında JsonSerializerOptions.InferClosedTypePolymorphism ile de yapılandırılabilir.

ASP.NET Core, SignalR ve Blazor desteği

ASP.NET Core’daki union desteği System.Text.Json üzerinden sağlandığı için JSON kullanan farklı akışlarda da kullanılabilir. Buna Minimal API istek ve yanıt gövdeleri, MVC input-output formatter’ları, SignalR’ın JsonHubProtocol protokolü ve Blazor’ın System.Text.Json kullanan sınırları dahildir.

Minimal API’lerde union hem istek gövdesi parametresi hem de dönüş türü olabilir. Runtime yolu olan RequestDelegateFactory ile kaynak üreten Request Delegate Generator (RDG) arasında davranış aynıdır:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// Request body: UnionBoolString is unambiguous (bool vs string), so it binds without a classifier.
app.MapPost("/flag", (UnionBoolString flag) => flag);
// Request body: UnionPet's cases are both objects, so it uses the built-in classifier shown earlier.
app.MapPost("/pet", ([FromBody] UnionPet pet) => TypedResults.Ok(pet));
// Return types: only the active case is serialized, and no classifier is needed to write.
app.MapGet("/value", () => new UnionIntString(42));
app.MapGet("/pet", () => new UnionPet(new Cat("Whiskers", "Tabby")));
app.Run();

Union’lar asenkron dönüşlerde, nullable wrapper içinde ve TypedResults ile birlikte kullanılabilir:

app.MapGet("/maybe", () => new UnionNullableIntString((int?)null));
app.MapGet("/typed", () => TypedResults.Ok(new UnionPet(new Cat("Whiskers", "Tabby"))));

Başka bir modelin özelliği, IAsyncEnumerable<T> üzerinden aktarılan öğe veya [AsParameters] kapsayıcısının gövde alanı da union olabilir. Union serileştirmesi ConfigureHttpJsonOptions ile yapılandırılan seçeneklere uyar.

MVC controller’larında union’lar action parametreleri ve dönüş türleri olarak kullanılabilir. Task<TUnion> ve ValueTask<TUnion> sonuçları da desteklenir. Controller’lar Minimal API’ler gibi JsonSerializerDefaults.Web kullandığından, HTTP isteklerinde sayı ve string ayrımıyla ilgili belirsizlik burada da geçerlidir.

SignalR’da union desteği JsonHubProtocol üzerinden çalışır. Union’lar hub metotlarının parametreleri, dönüş değerleri ve stream öğeleri olabilir. Okuma sırasında çağrı bağlayıcısından çözümlenen tür, union converter’ını ve varsa [JsonUnion] sınıflandırıcısını yönlendirir.

HTTP JSON bağlamından farklı olarak JsonHubProtocol, JSON string token’ını sayısal case’ler için belirsiz kabul etmez. Bu nedenle UnionIntString(int, string) sınıflandırıcı olmadan iki case’i de karşılıklı olarak taşıyabilir. Ancak UnionPet(Cat, Dog) gibi her iki case’i de JSON nesnesi olan union’lar okuma sırasında hâlâ belirsizdir ve sınıflandırıcı gerektirir. Union’lar yalnızca JsonHubProtocol ile desteklenir; MessagePack ve Newtonsoft.Json hub protokollerinde bu destek yoktur.

Blazor’da davranış, değerin serileştirme sınırını geçip geçmediğine bağlıdır. Razor işaretlemesiyle veya RenderTreeBuilder.AddComponentParameter ile yapılan işlem içi bileşen parametreleri doğrudan atanır ve serileştirme gerektirmez. JavaScript interop, kalıcı bileşen durumu ve prerender edilmiş parametreler ise System.Text.Json kullanır.

JavaScript’in Element.scrollIntoView API’si boolean kısaltma veya seçenek nesnesi kabul eder. Bu sözleşme union ile modellenebilir:

public sealed record ScrollIntoViewOptions(string Behavior, string Block, string Inline);
public union ScrollIntoViewArgument(bool, ScrollIntoViewOptions);
private ValueTask ScrollAsync(
ElementReference element,
ScrollIntoViewArgument argument) =>
JS.InvokeVoidAsync("scrollElementIntoView", element, argument);
await ScrollAsync(target, false);
await ScrollAsync(target, new ScrollIntoViewOptions("instant", "start", "nearest"));
window.scrollElementIntoView = (element, argument) =>
element.scrollIntoView(argument);

Bu kullanımda union zarfı veya discriminator eklenmez; aktif case, JavaScript’in beklediği JSON boolean ya da seçenek nesnesi olarak yazılır. PersistentComponentState, PersistAsJson ve TryTakeFromJson üzerinden union değerlerini saklayıp geri yükleyebilir. Aktif case’i JSON null olan nullable union’lar da bu akışa dahildir.

Blazor Server veya Blazor WebAssembly prerender işleminde bileşen parametreleri marker içine System.Text.Json ile yazılır ve istemci başlatılırken deserialize edilir. Union’lar bu sınırda da desteklenir; JSON’da null olarak temsil edilen aktif case’ler de buna dahildir.

Union’lar query string, route value, header veya form alanlarında desteklenmez. Destek, System.Text.Json kullanan veri akışlarıyla sınırlıdır.

OpenAPI şemasında union gösterimi

OpenAPI belgesinde union, her case türü için bir giriş içeren anyOf şeması olarak temsil edilir. UnionIntString için şema integer ve string alternatiflerini içerir:

"UnionIntString": {
"anyOf": [
{ "type": "integer", "format": "int32" },
{ "type": "string" }
]
}

Nesne case’lerinden oluşan UnionPet ise ilgili modelleri referanslayan bir anyOf yapısı kullanır:

"UnionPet": {
"type": "object",
"anyOf": [
{ "$ref": "#/components/schemas/Cat" },
{ "$ref": "#/components/schemas/Dog" }
]
}

Model seçimi API sözleşmesinin yapısına göre yapılır. İlişkili ve kontrol edilen sınıflar discriminator içeren closed hiyerarşiyle modellenebilir. Mevcut discriminator’siz biçimin korunması veya ilgisiz türlerin aynı sözleşmede birleştirilmesi gerekiyorsa union tercih edilir. Her iki yaklaşımda da alternatifler genişletildiğinde exhaustive switch kontrolleri devreye girer ve mevcut çağıranların ele alması gereken yeni durumları gösterir.

Kaynaklar ve İleri Okuma

  • kubernetes.io
  • devblogs.microsoft.com
  • developer.mozilla.org
  • learn.microsoft.com
  • learn.microsoft.com
  • Microsoft kaynak yazısı: ASP.NET Core’da union ve closed hiyerarşiler
  • System.Text.Json genel bakışı
  • JsonPolymorphicAttribute API başvurusu
  • .NET 11 kütüphanelerindeki yenilikler
  • Request Delegate Generator (RDG)
  • ASP.NET Core TypedResults API’si
  • Blazor IJSRuntime API’si
  • OpenAPI Specification
  • C# 15’te Union Types hakkında önceki yazı
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

GitHub Code Quality API: Repo Bazlı Açma-Kapama Dönemi
GitHub Code Quality API: Repo Bazlı Açma-Kapama Dönemi29 May 2026
Outcome-Driven Learning: OpenEnv ve Foundry ile Kurumsal RL
Outcome-Driven Learning: OpenEnv ve Foundry ile Kurumsal RL19 Haz 2026
AI Projelerinde Azure Blob’a Bağlanmak Hiç Bu Kadar Kolay Olmamıştı: adlfs Deneyimi
AI Projelerinde Azure Blob’a Bağlanmak Hiç Bu Kadar Kolay Olmamıştı: adlfs Deneyimi18 Mar 2026
WinApp CLI ile .NET Uygulamalarına Paket Kimliği Vermek
WinApp CLI ile .NET Uygulamalarına Paket Kimliği Vermek1 Tem 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket ASP.NET Core C# union türleri Closed hiyerarşi SignalR System.Text.Json
Önceki yazı

GitHub Copilot Agent İşlemlerinde Kurumsal İzin Yönetimi

İlginizi Çekebilir

GitHub Ağustos 2026 Kullanılabilirlik Raporunu Yayımladı
Aşkın KILIÇ 0

GitHub Ağustos 2026 Kullanılabilirlik Raporunu Yayımladı

10/09/2026
GitHub Advanced Security Deneme Erişimini Genişletti
Aşkın KILIÇ 0

GitHub Advanced Security Deneme Erişimini Genişletti

09/09/2026
OpenAI, Gazeteciliğe Sınıftan Haber Merkezine Destek Veriyor
Aşkın KILIÇ 0

OpenAI, Gazeteciliğe Sınıftan Haber Merkezine Destek Veriyor

09/09/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı
    10/09/2026 ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı
  • GitHub Copilot Agent İşlemlerinde Kurumsal İzin Yönetimi
    10/09/2026 GitHub Copilot Agent İşlemlerinde Kurumsal İzin Yönetimi
  • GitHub Ağustos 2026 Kullanılabilirlik Raporunu Yayımladı
    10/09/2026 GitHub Ağustos 2026 Kullanılabilirlik Raporunu Yayımladı
  • Kubernetes v1.37 ile Node Lifecycle Conditions dönemi
    10/09/2026 Kubernetes v1.37 ile Node Lifecycle Conditions dönemi
  • GitHub Advanced Security Deneme Erişimini Genişletti
    09/09/2026 GitHub Advanced Security Deneme Erişimini Genişletti
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı
Bulut Altyapı Yapay Zeka

ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı

10/09/2026 Aşkın KILIÇ
GitHub Copilot Agent İşlemlerinde Kurumsal İzin Yönetimi
Geliştirici Araçları Güvenlik & Kimlik Kurumsal Teknoloji

GitHub Copilot Agent İşlemlerinde Kurumsal İzin Yönetimi

10/09/2026 Aşkın KILIÇ
GitHub Ağustos 2026 Kullanılabilirlik Raporunu Yayımladı
Bulut Altyapı DevOps Güvenlik & Kimlik Yapay Zeka

GitHub Ağustos 2026 Kullanılabilirlik Raporunu Yayımladı

10/09/2026 Aşkın KILIÇ
Kubernetes v1.37 ile Node Lifecycle Conditions dönemi
DevOps Konteyner & Kubernetes

Kubernetes v1.37 ile Node Lifecycle Conditions dönemi

10/09/2026 Aşkın KILIÇ
GitHub Advanced Security Deneme Erişimini Genişletti
Bulut Altyapı Güvenlik & Kimlik

GitHub Advanced Security Deneme Erişimini Genişletti

09/09/2026 Aşkın KILIÇ
Kubernetes v1.36’da Askıya Alınan Job Kaynakları Değişiyor
DevOps Konteyner & Kubernetes Kurumsal Teknoloji

Kubernetes v1.36’da Askıya Alınan Job Kaynakları Değişiyor

09/09/2026 Aşkın KILIÇ
OpenAI, Gazeteciliğe Sınıftan Haber Merkezine Destek Veriyor
Bulut Altyapı Kurumsal Teknoloji Yapay Zeka

OpenAI, Gazeteciliğe Sınıftan Haber Merkezine Destek Veriyor

09/09/2026 Aşkın KILIÇ
.NET 11 RC1 Yayında: Öne Çıkan Yenilikler
Bulut Altyapı Geliştirici Araçları Yapay Zeka

.NET 11 RC1 Yayında: Öne Çıkan Yenilikler

09/09/2026 Aşkın KILIÇ
GitHub Copilot App ile Birden Fazla Agent Çalıştırma
Geliştirici Araçları Yapay Zeka

GitHub Copilot App ile Birden Fazla Agent Çalıştırma

08/09/2026 Aşkın KILIÇ
Kurumsal Yapay Zekâ Ajanlarında Context Engineering
Kurumsal Teknoloji Yapay Zeka

Kurumsal Yapay Zekâ Ajanlarında Context Engineering

08/09/2026 Aşkın KILIÇ
GitHub CLI Linux İmzalama Anahtarı 5 Eylül’de Bitiyor
Bulut Altyapı Geliştirici Araçları

GitHub CLI Linux İmzalama Anahtarı 5 Eylül’de Bitiyor

08/09/2026 Aşkın KILIÇ
Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı
Güvenlik & Kimlik Yapay Zeka

Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı

08/09/2026 Aşkın KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps azure sdk Azure SQL bulut bilişim C++ CI/CD CodeQL code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Foundry otomasyon performans Pull Request RAG SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 432 yazı 🏗️ Bulut Altyapı 345 yazı 🤖 Yapay Zeka 289 yazı 🔧 DevOps 242 yazı ☁️ Microsoft Azure 231 yazı 🔒 Güvenlik & Kimlik 199 yazı 🏢 Kurumsal Teknoloji 83 yazı 📊 Veri & Analitik 62 yazı 🐳 Konteyner & Kubernetes 53 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← GitHub Copilot Agent İşlemleri...
    →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS