İlkay İlknur

Welcome

Subscribe to RSS or email service to get notified when a new post is available.

.NET 6 Preview 4 İle Beraber System.Text.Json API'larına Gelen Yenilikler

May 25, 2021
Herkese Selamlar, Blogda bundan önce yazdığım yazılarda System.Text.Json API'larından uzun uzun bahsettim. Eğer yazıları görmediyseniz ve okumak isterseniz aşağıdaki linkleri kullanabilirsiniz. .NET Core'da JSON API'ları: https://www.ilkayilknur.com/net-coreda-json-apilari System.Text.Json API'larına .NET 5.0 İle Beraber Gelen Yenilikler: https://www.ilkayilknur.com/system-text-json-apilarin...
Continue Reading →

Teknolot Source Generatorlara Bakış Meetupı

May 25, 2021
Herkese Selamlar, 24 Mayıs 2021 tarihinde sevgili Teknolot'un YouTube kanalında Source Generatorlara Bakış başlıklı meetupda bir konuşma gerçekleştirdim. Meetup kaydına aşağıdan ulaşabilirsiniz. ...
Continue Reading →

.NET Uygulamalarında Trimming Kontrolü

May 10, 2021
Bundan önceki yazılarımdan birinde uygulamalarımızı yayınlarken kullanabileceğimiz opsiyonlardan bahsetmiştim. O yazıda .NET'in kurulu olmadığı yerlerde uygulamayı .NET runtime'ı ile birlikte deploy etme opsiyonunun deployment paketlerini ne kadar büyüttüğünü de görmüştük. Bu sorunun çözümü olarak uygulamanızı publish ederken sadece uygulamanın kullandığı ve uygulamanın çalışması için gerekli olan...
Continue Reading →

Params Kullanımında Oluşabilecek Allocationlar

April 18, 2021
Bir önceki yazıda foreach döngülerinde oluşabilecek olan allocationlardan bahsetmiştik. Bu yazıda ise params kullanımını incelleyeceğiz ve oluşabilecek allocationlara bakacağız. Değişen sayıda parametre kabul eden metotlarda params keywordünü kullanıp, metodu çağıranların parametreleri kolay bir şekilde sırayla geçmesini sağlayabiliyoruz. Örnek yapmamız gerekirse... public void DoWork(params s...
Continue Reading →

Foreach Döngülerinde Oluşabilecek Allocationlar

April 11, 2021
Herkese Selamlar, Bu yazıda konumuz foreach döngülerinin oluşturabileceği allocationlar. Biraz ilginç bir konu. :) Konuya hemen basitçe giriş yapalım. Bir foreach döngüsü yazdığımızda yazdığımız kod compiler tarafından yaklaşık olarak aşağıdaki gibi dönüştürülür. Foreach Döngüsü List<int> Collection = new List<int>(); foreach (var item in Collection) { }  Çevrilmiş ha...
Continue Reading →

Source Generatorlar İçin Kod Üretim Opsiyonları

March 31, 2021
Blogda daha önce yazdığım yazıda source generatorların ne olduğundan ve nerelerde kullanılabileceğinden bahsetmiştim. Source generatorlardaki en sıkıntılı noktalardan biri aslında kod üretme kısmı. Özellikle yazdığınız source generator karmaşık bir hal aldığında işler biraz karışabiliyor. Bu yazıda source generator implemente ederken kullanabileceğimiz üç farklı kod üretim yöntemini inceleyeceğiz....
Continue Reading →

C# 8.0 - Default Interface Methods

March 23, 2021
Herkese Selamlar, Bu yazıda C# 8.0 ile beraber ile gelen default interface metotları özelliğini inceleyeceğiz. Bu özelliği incelemeden önce varolan interface yapısını da kısaca inceleyip aradaki farkları öyle görmemizde fayda var. Default metotların olmadığı yani C# 7.0 versiyonunda bir interface içerisinde tanımladığımız üyeler her zaman abstract ve public olma özelliğini taşıyordu. Örneğin, ...
Continue Reading →

MemoryStream'in Optimize Versiyonu RecyclableMemoryStream

February 14, 2021
Gerek blogda performansla ilgili yazdığım yazılarda gerekse .NET Conf'ta yaptığım "Yüksek Performanslı Uygulama Geliştirme" oturumunda memory allocationları azaltmakla ilgili pek çok yöntemden bahsettim. Özellikle LOH(Large Object Heap) allocationları konusunda oldukça dikkatli olmamız gerektiğinden çünkü LOH'da yer kalmadığı durumlarda uygulamalarımızda full GC tetiklendiğinden ...
Continue Reading →

IAsyncEnumerable<T> İle Asenkron Streaming

February 04, 2021
Bu yazıda .NET Core 3.0 ile beraber gelen, asenkron streaming yapmamıza olanak sağlayan IAsyncEnumerable&lt;T&gt; interface'ini inceleyeceğiz. Aslında bu interface'in senkron versiyonu olan IEnumerable&lt;T&gt; interface'ine çok da yabancı değiliz. Hatırlamak amacıyla ufak bir örnek yaparsak, public IEnumerable&lt;string&gt; ReadLines(string filePath) { using var stream = File.OpenRead(fil...
Continue Reading →

.NET Runtime Eventlerine In-Process ve Out Of Process Erişmek

January 24, 2021
Bir önceki yazıda .NET içerisindeki diagnostic araçlarından bahsetmiştik. Bu araçlardan biri olan dotnet-trace ile uygulamalarımızın tracelerini toplayıp sonrasında da bu traceleri çeşitli araçlarla analiz edip runtime eventlerini ve daha pek çok şeyi analiz edebiliyorduk. Bu yazıda ise işi biraz daha ileri götürüp bu runtime eventlerini uygulamalarımız içerisinde nasıl işleyebileceğimizi ve kendi...
Continue Reading →