.NET Framework'te uygulama uyumluluğu

Uyumluluk, her .NET Framework sürümünün önemli bir hedefidir. Uyumluluk, her sürümün ek olmasını sağlar, bu nedenle önceki sürümler çalışmaya devam eder. Öte yandan, önceki işlevlerde yapılan değişiklikler (örneğin, performansı geliştirmek, güvenlik sorunlarını gidermek veya hataları düzeltmek için), var olan kodda veya daha sonraki bir sürüm altında çalışan mevcut uygulamalarda uyumluluk sorunlarına neden olabilir.

Her uygulama şu şekilde belirli bir .NET Framework sürümünü hedefler:

  • Visual Studio'da hedef çerçeve tanımlama.
  • Proje dosyasında hedef çerçeveyi belirtme.
  • Kaynak koduna uygulama TargetFrameworkAttribute .

.NET Framework'ün bir sürümünden diğerine geçiş yaparken dikkate alınması gereken iki tür değişiklik vardır:

Çalışma zamanı değişiklikleri

Çalışma zamanı sorunları, makineye yeni bir çalışma zamanı yerleştirildiğinde ve uygulamanın davranışı değiştiğinde ortaya çıkan sorunlardır. .NET Framework, hedeflenenden daha yeni bir sürümde çalışırken, eski hedeflenen sürümü taklit etmek için ilginç davranış kullanır. Uygulama daha yeni sürümde çalışır ancak eski sürümde çalışıyor gibi davranır. .NET Framework sürümleri arasındaki uyumluluk sorunlarının çoğu bu ilginç model aracılığıyla giderilir. Örneğin, bir ikili .NET Framework 4.0 için derlenmiş ancak .NET Framework 4.5 veya üzeri bir makinede çalışıyorsa, .NET Framework 4.0 uyumluluk modunda çalışır. Bu, sonraki sürümdeki değişikliklerin çoğunun ikiliyi etkilemeyebileceği anlamına gelir.

Bir uygulamanın hedeflediği .NET Framework sürümü, kodun çalıştığı uygulama etki alanı için giriş derlemesinin hedef sürümü tarafından belirlenir. Bu uygulama etki alanına yüklenen tüm ek derlemeler bu sürümü hedefler. Örneğin, yürütülebilir dosya söz konusu olduğunda yürütülebilir dosyanın hedeflediğini sürüm, bu uygulama etki alanındaki tüm derlemelerin altında çalıştığı uyumluluk modudur.

Yeniden hedefleme değişiklikleri

Yeniden hedefleme değişiklikleri, derleme daha yeni bir sürümü hedeflemek için yeniden derlendiğinde ortaya çıkan değişikliklerdir. Daha yeni bir sürümü hedeflemek, derlemenin yeni özellikleri ve eski özellikler için olası uyumluluk sorunlarını kabul etmesi anlamına gelir.

Etki sınıflandırması

Çalışma zamanı ve yeniden hedefleme değişikliklerini açıklayan makalelerde( örneğin, .NET Framework 4.8.x'e geçiş için yeniden hedefleme değişiklikleri) tek tek öğeler, beklenen etkilerine göre aşağıdaki gibi sınıflandırılır:

Büyük
Çok sayıda uygulamayı etkileyen veya kodun önemli ölçüde değiştirilmesini gerektiren önemli bir değişiklik.

Küçük
Az sayıda uygulamayı etkileyen veya kodda küçük değişiklikler gerektiren bir değişiklik.

Kenar büyük/küçük harf
Yaygın olmayan çok özel senaryolarda uygulamaları etkileyen bir değişiklik.

Şeffaf
Uygulamanın geliştiricisi veya kullanıcısı üzerinde belirgin bir etkisi olmayan bir değişiklik. Bu değişiklik nedeniyle uygulamada bir düzenleme yapılması gerekmez.

Ayrıca bkz.