.NET Sürümlerini Anlamak: .NET Core, .NET Standard, .NET Framework ve Daha Fazlası
[[academy-video-youtube({"vid": "X75vbT-Yv-c", "start_time": "0", "title": ".NET Sürümlerini Anlamak: .NET Core, .NET Standard, .NET Framework ve Daha Fazlası", "creator": "Tim Corey", "length": "1h 25s"})]]
.NET SDK, .NET Core, .NET Standard ve .NET Framework gibi terimler, .NET ekosisteminde karmaşık bir yapıya sahip olabilir. Bunların herbiri C# geliştirici ortamında benzersiz bir rol oynamakta, projeleriniz için doğru hedef çerçeveyi seçmek açısından farklılıklarını anlamak önemlidir.
Tim Corey'nin .NET Sürümleri Açıklanıyor - .NET, .NET Core, .NET Standard, .NET Framework ve daha fazlası videosuna dayanan bu makale, bu terimleri basitleştirmeyi ve hangisini ne zaman kullanacağınız konusunda net rehberlik sağlamayı amaçlamaktadır.
Neden .NET Core'un Varlığı Gerekliydi
.NET Framework, genellikle sadece .NET olarak anılır ve yazılım geliştirmede ve masaüstü çalıştırmada yirmi yılı aşkın bir süredir temel bir unsur olmuştur. Ancak, sınırlamaları .NET Core'un oluşturulmasını gerektirdi. Tim Corey, birkaç kilit nedeni vurgulamaktadır:
Düzeltmeler ve Geçici Çözümler: Zamanla, .NET Framework birçok düzeltme ve geçici çözümler biriktirmiştir, bu da onu önemli ölçüde yavaşlattı (1:35).
Windows Bağımlılığı: .NET Framework, Windows ile derin bir şekilde entegre olmuştur ve bu, diğer platformlarda kullanımını zorlaştırmaktadır. Bu bağımlılık, platformlar arası geliştirmeyi engellemiştir (2:03).
Tek Paketli Tasarım: .NET Framework, her şeyi tek bir pakette içerecek şekilde tasarlanmıştır, bu da kullanıcı dostu olsa da şişkin ve daha az verimli bir sistemle sonuçlanmıştır (2:25).
- Güncelliğini Yitirmiş Tasarım: 20 yıl önce geliştirilmiş olan .NET Framework, modern internet ve mobil kullanımını düşünülerek tasarlanmamıştır (3:20).
.NET Uygulamalarının Yapısı
.NET Core'un faydalarını anlamak için, bir .NET uygulamasının nasıl yapılandığını kavramak önemlidir.

Tim Corey'nin anlattığı gibi:
C# Kaynak Kodu: C# kodunuz, önce Ara Dilde (IL) derlenir (5:49).
- Ortak Dil Çalışma Ortamı (CLR): IL kodu daha sonra CLR tarafından çalıştırılır. .NET Framework ve .NET Core farklı CLR'lara sahiptir, ancak IL kodunu benzer şekilde işler, bu da kaynak kodunuzun büyük ölçüde her iki platformda da aynı kalmasını sağlar (6:42).
.NET Core'un .NET Framework'e Üstünlükleri
.NET Core çalışma zamanı, .NET Framework'ün eksikliklerini gidermek için geliştirilen bir geliştirme ortamıdır. Tim Corey, bunun başlıca faydalarını vurgulamaktadır:
Platformlar Arası Uyumluluk: .NET Framework'ün aksine, .NET Core Windows, Mac, Linux, Android, iOS, Xbox, IoT ve daha fazlası dahil olmak üzere birçok platformda çalışacak şekilde tasarlanmıştır.
Performans: .NET Core, önemli performans iyileştirmeleri sunmaktadır. Eski düzeltmeleri ortadan kaldırır ve modern donanım ve yazılım uygulamalarına destek verir, bu da onu .NET Framework'ten daha hızlı yapar.
Modülerlik: .NET Core, geliştiricilerin yalnızca gerekli bileşenleri dahil etmesine olanak tanıyacak şekilde modülerdir, bu da yükü azaltır ve verimliliği artırır.
Modern Özellikler: .NET Core, yerleşik bağımlılık enjeksiyonu ve günlük gibi daha modern kutudan çıkma özelliklerle gelir ve geliştirmede en iyi uygulamaları teşvik eder.
Açık Kaynak: .NET Core, topluluk katkılarını ve geliştirirken şeffaflığı teşvik eden açık kaynaktır.
Endüstri Standartlarına Uyumlu: .NET Core, modern teknolojilerle uyumluluğu ve entegrasyonu sağlayan endüstri standartlarına uyar, Windows ortamlarıyla sınırlı olan .NET Framework'ün aksine.
- Kolayca Yükseltilebilir: .NET Core'un yükseltilmesi genellikle basittir ve genellikle sadece sürüm numaralarındaki değişiklikleri ve NuGet paket güncellemelerini gerektirir. Microsoft'un yükseltme işlemi daha az sorunlu değişiklikle basitleştirilmiştir ve .NET Framework'le karşılaştırıldığında, daha karmaşık ve sorunlu yükseltmelere daha az yer verir.
.NET Standard
Tim, .NET Standard'ın, tüm .NET platformlarının uygulamak zorunda olduğu bir dizi API'yi tanımlayan bir spesifikasyon olduğunu açıklar ve sadece bir çalışma zamanı olmadığını söyler. Farklı .NET uygulamaları arasında kod uyumluluğunu sağlayan bir yapı sağlar. Bu, hem .NET Core hem de .NET Framework üzerinde çalışan kütüphaneler yazabileceğiniz anlamına gelir. 33:35'te Tim, en son sürüme kadar olan tüm .NET Standard sürümlerini tartışır. Özet aşağıdaki ekran görüntüsünde verilmiştir:

.NET Sürümlerinin Ayrıntılı İşleyişi
.NET Framework Zaman Çizelgesi
.NET Framework 2000'lerin başından beri vardır ve Windows ile sıkı bir şekilde entegre edilmiştir. Windows masaüstü ve web uygulamaları oluşturmak için uygundur, ancak çapraz platform yetenekleri açısından sınırlıdır.
.NET Framework 1.0 (Ocak 2002)
Tim Corey, .NET Framework 1.0'ın ilk sürümünü, birden çok programlama dilinin birlikte çalışmasına izin veren ortak ara dil kavramını tanıtarak devrim niteliğinde olarak tanımlıyor (40:07). Bu temel sürüm, çeşitli diller için birleşik bir platform sunarak gelecekteki geliştirme için sahneyi hazırladı.
.NET Framework 2.0 (Ekim 2005)
Üç yıl sonra piyasaya sürülen .NET Framework 2.0, platformun büyümesini sürdüren önemli gelişmeler ve yeni özelliklerle birlikte geldi (41:40). Bu sürüm, gelişmiş dil özellikleri ve daha geniş bir uygulama yelpazesine olanak tanıması ile dikkat çekti.
Başlıca Güncellemeler:
Kasım 2006: .NET Framework 3.0 tanıtıldı (41:43).
Kasım 2007: Önemli bir dönüm noktası olan .NET Framework 3.5 piyasaya sürüldü (41:49).
Nisan 2010: Son büyük sürüm olan .NET Framework 4.0 çıktı (42:13).
Ağustos 2012: .NET Framework 4.5 piyasaya sürüldü (42:50).
- Nisan 2019: Son küçük sürüm olan .NET Framework 4.8 başlatıldı (47:17).
.NET Core Sürümleri
.NET Core 1.0 (Haziran 2016)
Tim Corey, .NET Core 1.0'ı sınırlı işlevsellikle bir kavram kanıtı olarak tanımlar ve .NET Core'un potansiyelini göstermeyi hedeflediğini belirtir (43:32). Bu ilk sürüm, temelleri attı, ancak sınırlı özelliklerinden dolayı geniş çapta benimsenmedi.
.NET Core 2.0 (Ağustos 2017)
Daha zengin özellikler içeren bir güncelleme olarak yayımlandı, .NET Core 2.0, özellikle web uygulama geliştirmede önemli ilerlemeler içeriyordu (45:23). Ancak, bir LTS sürümü değildi ve Tim, daha sonra daha kararlı bir sürümün yayınlanmasına neden olan kırılma değişikliklerine sahip olduğunu vurguluyor.
.NET Core 2.1 (Mayıs 2018)
.NET Core 2.1 bir LTS (Uzun Süreli Destek) sürümüydü ve Tim, işletmeler için istikrar ve genişletilmiş destek gereksinimi açısından zorunlu olduğunu belirtir (45:42). Bu, .NET Core'u üretim kullanımı için daha uygun hale getiren önemli bir güncelleme oldu.
.NET Core 3.0 (Eylül 2019)
.NET Core 3.0, web uygulamalarının ötesinde kullanımını genişleterek masaüstü uygulamaları, WinForms ve WPF için destek sunmaya başladı (53:04). Bu sürüm, birçok işletmenin .NET Framework'ten geçiş yapmasını sağladı ve .NET Core'u daha kapsamlı bir platform haline getirdi.
.NET Core 3.1 (Aralık 2019)
3.0'ın üzerine kurularak, .NET Core 3.1 diğer bir LTS sürümüydü ve masaüstü ve web uygulamaları için sürekli destek ve istikrar sağladı (53:16). Tim, bu sürümün .NET Core'un kapsamlı ve kurumsal kullanım için güvenilir kabul edildiği bir aşamayı işaret ettiğini açıklıyor.
.NET 5 ve Ötesi
.NET 5.0 (Kasım 2020)
.NET 5'in yayınlanmasıyla birlikte Microsoft, ismi basitleştirmek için 'Core' kelimesini adından çıkardı (58:03). Tim, bu değişikliğin .NET Framework ve .NET Core arasındaki kafa karışıklığını azaltmayı amaçladığını açıklar. .NET 5, tüm .NET ekosistemini tek bir isim altında birleştirmede büyük bir adım oldu.
.NET 6.0 (Kasım 2021)
.NET 6, .NET 5 ile başlatılan yıllık sürüm döngüsüne devam etti (59:56). Tim, her yeni sürümün, .NET 6'da dahil olmak üzere, düzenli iyileştirmeler ve özellik eklemeleri sağlayan bir yıllık güncelleme ritmine dahil olduğunu belirtir.
.NET 7.0 (Kasım 2022)
.NET 7 yıllık sürüm modelini takip etti ve küçük güncellemeler ve iyileştirmelerle platformu daha da geliştirdi (59:56). Tim, bu sürümün ve öncüllerinin, Microsoft'un .NET ekosisteminde sürekli geliştirme ve yenilik taahhüdünü nasıl yansıttığını tartışıyor.

.NET Sürümleri ve Destek Döngüsü Anlama
Tim Corey, (1:01:27) .NET sürümleri ve destek döngüleri hakkında ayrıntılı bir açıklama sağlayarak açıklamalarda bulunuyor. İşte tartışılan önemli noktaların özeti:
Destek Döngüsü: STS vs. LTS
Tim Corey, iki destek penceresi türü arasındaki farkı açıklar: Standart Dönem Desteği (STS) ve Uzun Dönem Desteği (LTS).
STS (Standart Dönem Desteği): 18 aylık bir destek penceresi sağlar. Örneğin, Kasım 2020'de yayınlanan .NET 5, Mayıs 2022'ye kadar desteklendi. Kasım 2022'de yayınlanan .NET 7, benzer şekilde Mayıs 2024'te sona eren 18 aylık bir destek penceresi içeriyor.
- LTS (Uzun Dönemli Destek): 3 yıllık daha uzun bir destek penceresi sunar. Kasım 2021'de çıkan .NET 6, Kasım 2024'e kadar desteklenmektedir. Kasım 2023'te piyasaya sürülmesi planlanan .NET 8, bir sonraki LTS sürümü olacak ve Kasım 2026'ya kadar destek sağlayacaktır.
Tim, hızlı hareket eden uygulama geliştiricilerinin en son özelliklere erişmek için STS sürümlerini tercih edebileceğini ancak şirketlerin genellikle istikrar ve daha uzun destek süresi için LTS sürümlerini tercih ettiğini belirtir.
Yükseltme Yolu ve Sürüm Yayınları
Tim Corey, .NET sürümleri için yükseltme yolunu ana hatlarıyla belirtir:
.NET 5'ten .NET 6'ya: Her iki sürümün de desteklendiği bir yıl boyunca örtüşme vardır.
.NET 6'dan .NET 8'e: .NET 6 desteği sona ermeden önce .NET 8'e yükseltmeniz için tam bir yılınız olacak.
- Gelecek Yükseltmeler: Bu modeli takip ederek, .NET 8 (şu anda en son sürüm) .NET 10 gelene kadar desteklenecek ve yükseltme yapmak için size yeterince zaman verilecektir.
Tim, bu öngörülebilir yayın döngüsünün şirketlerin yükseltme planlarını güvenle yapmalarına olanak tanıdığını vurgular.

Microsoft'un Destek Stratejisi
Tim, Microsoft'un destek ve geliştirme konusundaki yaklaşımını tartışır:
Maliyet ve Karmaşıklık: Daha eski sürümler için desteği uzatmak, birden çok sürümde güvenlik güncellemelerini sürdürme ihtiyacı nedeniyle pahalı ve karmaşık olabilir. Bu nedenle, Microsoft daha öngörülebilir ve yönetilebilir bir destek stratejisi benimsemiştir.
- Modüler Çerçeve: .NET Core ve .NET'in modüler yaklaşımı, hızlı özellik güncellemeleri ve daha yönetilebilir bir destek döngüsü sağlar.
.NET Framework ve .NET Core Arasında Seçim Yapmak
Tim Corey, farklı .NET sürümlerinin ne zaman kullanılacağı konusunda tavsiyelerde bulunur:
.NET Framework: Mevcut projeler için veya Windows XP gibi eski işletim sistemlerini desteklerken kullanın.
- .NET Core (şimdi .NET): Yeni projeler için, en yeni .NET sürümü ile başlayın. .NET Framework'ün eski sürümlerinden .NET'e yükseltmek, önemli performans iyileştirmeleri sunabilir.
ASP.NET ve ASP.NET Core Karşılaştırması
Tim, ASP.NET ve ASP.NET Core arasındaki farkları açıklar:
ASP.NET: .NET Framework üzerine inşa edilmiştir ve Web Forms, MVC ve Web API'yi destekler. Özellikle Web Forms, ASP.NET Core'da yer almaz.
- ASP.NET Core: .NET Core üzerinde web uygulamaları oluşturmak için modüler bir çerçeve. Razor Pages, MVC, API, Blazor Server ve Blazor WebAssembly içerir. ASP.NET Core, selefine kıyasla daha esnek ve modern olacak şekilde tasarlanmıştır.
Tim, 1:21:00'de ASP.NET Core'un yeni özelliklerle ve daha büyük modülerlikle web geliştirmeyi desteklemeye devam ettiğini, oysa ASP.NET (Framework) daha geleneksel olduğunu ve daha eski .NET sürümleriyle sınırlı olduğunu açıklar.
Sonuç
Tim Corey, .NET Framework'ün tarihi bağlamının modern yeteneklerine ve .NET Core'un ötesine geçiş yaparken, .NET ekosistemini gezinmek için net ve etraflı bir kılavuz sunar. Onun videosu, .NET sürümlerinin evrimini, .NET Core'un gerekliliğini ve modülerlik ile platformlar arası uyumluluğun faydalarını açıklar. .NET Framework ve .NET Core arasında seçim yapmak veya çeşitli .NET sürümlerinin destek döngüsünü anlamak arasında kalırken, Tim'in açıklamaları, bilgilere dayalı geliştirme kararları vermeniz için değerli bir yol haritası sağlar.
Daha derinlemesine tartışmalar ve pratik kodlama örnekleri için Tim Corey'nin YouTube kanalını ziyaret ettiğinizden emin olun, IAmTimCorey.


