Article

Pazartesi, 23 Eyl 2024 - 21:09

.NET Core: C# 12 ve .NET 8'deki Bazı Yeni Özellikler

Owner: Barış Gelebek

".NET 8 ve C# Kasım 2023 sürümü, .NET dünyasında sadece bir sürüm yükseltmesi değil, aynı zamanda ASP.NET Core proje geliştirmenin geleceğini şekillendirecek yeniliklerle dolu bir dönüm noktasıdır. "



.NET 8 ve C# 12: Yeniliklerle Dolu Bir Dönüm Noktası

Yeni sürüm, performans iyileştirmelerinden kod yazma pratiklerine, verimliliği artıran özelliklerden geliştirici deneyimini zenginleştiren araçlara kadar bir dizi yenilik getiriyor.



Öne Çıkan Özellikler

Makalede, Primary Constructors, Collection Expressions, Default Lambda Parameters gibi önemli özelliklerin yanı sıra, Inline Arrays ve Experimental Attribute gibi daha gelişmiş konseptler üzerinde duracağız. Ayrıca, C# 11 ile tanıtılan ve .NET 8 ile daha geniş bir kitleye ulaşması beklenen Raw String Literals gibi özelliklerin pratik kullanımlarını da ele alacağız.



1. Primary Constructors

C# 12 ile gelen Primary Constructors, sınıf tanımlarını daha sade hale getiriyor. Özellikle ASP.NET Core projelerinde bağımlılık enjeksiyonunu daha etkili bir şekilde yönetmenizi sağlıyor. Örneğin, bir UserService sınıfı için bağımlılıkları tanımlamak artık tek bir satırda yapılabiliyor:

public class UserService(IUserRepository userRepository, ILogger logger) : IUserService
{ private readonly IUserRepository _userRepository = userRepository; private readonly ILogger _logger = logger; }


2. Collection Expressions

Collection Expressions, koleksiyonları başlatmayı ve tanımlamayı daha kısa ve anlaşılır hale getiriyor. Örneğin, bir listeyi tanımlamak için artık aşağıdaki gibi bir sözdizimi kullanılabiliyor:

List<User> users = [ new User { Username = "user1" }, new User { Username = "user2" } ];

Diziler için de benzer bir kolaylık sağlanıyor:

string[] statusCodes = ["SUCCESS", "WARNING", "DANGER"];


3. Default Lambda Parameters

Default Lambda Parameters, lambda ifadelerinde varsayılan değerler tanımlama imkânı sunuyor. Bu özellik, kodun okunabilirliğini artırarak, lambda ifadelerinin daha esnek kullanılmasını sağlıyor:

var getFullName = (string firstName, string lastName = "") => string.Join(" ", firstName, lastName);


4. Alias Any Type

Alias kullanımı, belirli türler için kısa ve anlamlı isimler tanımlayarak kodun okunabilirliğini artırıyor. Örneğin, List<User> için bir alias tanımlayarak daha anlamlı bir kod yazabilirsiniz:

using Users = System.Collections.Generic.List<User>;


5. Experimental Attribute

Experimental Attribute, geliştiricilerin kod bloklarını "deneysel" olarak işaretlemelerine olanak tanıyor. Bu, belirli özelliklerin değişkenlik gösterebileceği ve dikkatli kullanılmaları gerektiği anlamına geliyor:

[Experimental("Feature07")]
public void DeleteAllProducts() { /*...*/ }


6. Inline Arrays

Inline Arrays, bellek yönetimi üzerinde daha fazla kontrol sağlıyor. Bu özellik, derleyicinin bellek tahsisatını daha verimli hale getirerek, performansın kritik olduğu durumlarda kullanılabiliyor:

csharp [InlineArray(5)]
public struct MyArray<T> { /*...*/ }


7. Raw String Literals

Raw String Literals, çok satırlı string ifadeler ve özel karakterler içeren metinlerin kolayca yazılmasını sağlıyor. Örneğin, SQL sorguları ve JSON oluştururken bu özellik büyük kolaylık sunuyor:

var query = $"""
SELECT * FROM Products WHERE Price > {minPrice} AND Price < {maxPrice} """;



Sonuç

.NET 8 ve C# 12, geliştiricilere daha temiz, okunabilir ve verimli bir kod yazma imkanı sunarak, ASP.NET Core projelerinin geleceğini şekillendiriyor. Gelişen bu özelliklerle birlikte, yazılım geliştirme süreçleri daha kolay hale geliyor.

Bir sonraki yazıda görüşmek üzere!


Tags:
net netcore net core Asp .Net Core yenilikler .net core yenilikleri .net core 8
info:
Category: .NET Core
Created on: 23.09.2024 21:14:55
Last View Date: 23.09.2024 21:14:55
Stats:
0 comments
24 views
1 likes

Comments: