.NET Core, Microsoft tarafından geliştirilen açık kaynaklı, çapraz platform (cross-platform) destekleyen bir framework’tür. Modern uygulamalar geliştirmek için kullanılan güçlü bir ortamdır ve özellikle yüksek performans, modüler yapı ve ölçeklenebilirlik gibi avantajlar sağlar.
2016 yılında .NET Framework’ün sınırlamalarını aşmak için piyasaya sürülmüştür ve günümüzde .NET 5 ve üstü versiyonlarla .NET olarak birleşmiştir. Ancak hâlâ .NET Core terimi, özellikle .NET 2, 3 ve 3.1 gibi versiyonları ifade etmek için kullanılır.
Neden .NET Core?
.NET Framework yalnızca Windows platformunda çalışırken, .NET Core şu avantajlara sahiptir:
- Çapraz Platform Desteği: Windows, macOS ve Linux işletim sistemlerinde çalışır.
- Performans ve Ölçeklenebilirlik: Yüksek performans gerektiren uygulamalar için optimize edilmiştir.
- Açık Kaynak Kodlu: GitHub üzerinde topluluk tarafından desteklenir ve sürekli güncellenir.
- Modüler Yapı: Geliştiriciler yalnızca ihtiyaç duydukları bileşenleri kullanabilir.
- Bulut Uygulamaları İçin Optimize Edilmiş: Özellikle Docker ve Kubernetes gibi teknolojilerle uyumlu çalışır.
2. .NET Core’un Temel Özellikleri
2.1. Çapraz Platform Desteği
.NET Core, Windows, Linux ve macOS üzerinde çalışabilir. Bununla birlikte, farklı platformlarda çalıştırılabilir uygulamalar geliştirmek mümkündür.
2.2. Performans ve Hafiflik
- Kendi içinde bağımsız çalışabilir: .NET Core uygulamaları, çalıştırılabilir dosya olarak derlenip işletim sisteminde bağımsız olarak çalışabilir.
- Yüksek performanslıdır: Özellikle ASP.NET Core ile web uygulamalarında büyük performans artışları sağlanmıştır.
2.3. Modüler ve Hafif Yapı
- .NET Core, NuGet paketleri ile genişletilebilir.
- Geliştiriciler, gereksiz kütüphaneleri içermeyen minimalist uygulamalar oluşturabilir.
2.4. Açık Kaynak ve Topluluk Desteği
.NET Core, GitHub üzerinden açık kaynak olarak geliştirilmektedir. Microsoft’un yanı sıra bağımsız geliştiriciler de katkıda bulunabilir.
2.5. Bulut ve Mikroservis Mimarisi Desteği
- Azure, AWS ve Google Cloud gibi servislerle entegre çalışabilir.
- Mikroservis mimarisini destekler ve Docker ile konteyner bazlı uygulamalar geliştirmek için uygundur.
2.6. Dependency Injection (Bağımlılık Enjeksiyonu)
.NET Core, Dependency Injection (DI) mimarisini yerleşik olarak destekler. Bu sayede SOLID prensiplerine uygun, yönetilebilir ve genişletilebilir kod yazmak kolaylaşır.
2.7. Gelişmiş CLI (Command-Line Interface) Desteği
.NET Core, komut satırı (CLI) üzerinden yönetilebilir ve bu sayede:
- Yeni projeler oluşturabilir,
- Uygulamaları derleyebilir ve çalıştırabilir,
- Bağımlılık yönetimi yapabiliriz.
Örnek CLI komutları:
dotnet new console -n MyApp # Yeni bir Console projesi oluşturur
dotnet build # Projeyi derler
dotnet run # Uygulamayı çalıştırırC#2.8. Gelişmiş ORM ve Veritabanı Desteği
.NET Core, veritabanı işlemleri için Entity Framework Core (EF Core) kullanır.
- SQL Server, MySQL, PostgreSQL, SQLite gibi veritabanlarını destekler.
- ORM (Object-Relational Mapping) desteği sayesinde, SQL sorgularını yazmadan C# nesneleriyle veritabanı işlemleri yapılabilir.
Örnek EF Core Kullanımı:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
public class AppDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
}C#2.9. Gelişmiş API Geliştirme Desteği (RESTful API)
.NET Core’un ASP.NET Core modülü ile güçlü ve hızlı REST API’ler oluşturmak mümkündür.
Örnek bir API controller:
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult GetAll()
{
return Ok(new List<string> { "Ürün 1", "Ürün 2", "Ürün 3" });
}
}C#2.10. Mikroservis Mimarisine Uygunluk
.NET Core, gelişmiş servis tabanlı mimari desteği sağlar.
- gRPC, REST API ve GraphQL gibi servisler oluşturulabilir.
- Docker ve Kubernetes ile ölçeklenebilir mikroservisler geliştirmek mümkündür.
3. .NET Core ile Neler Yapılabilir?
.NET Core, geniş bir kullanım alanına sahiptir:
| Kullanım Alanı | Açıklama |
|---|---|
| Web Geliştirme | ASP.NET Core ile modern web uygulamaları |
| RESTful API’ler | Mikroservis ve API geliştirme |
| Mobil Uygulamalar | Xamarin ile Android/iOS geliştirme |
| Oyun Geliştirme | Unity ile C# kullanarak oyun geliştirme |
| Masaüstü Uygulamaları | WPF ve WinForms ile masaüstü yazılımlar |
| Bulut Uygulamaları | Azure, AWS, Google Cloud entegrasyonu |
| IoT ve Gömülü Sistemler | IoT uygulamaları geliştirme |