Kompatibilitas aplikasi dalam .NET Framework

Kompatibilitas adalah tujuan penting dari setiap rilis .NET Framework. Kompatibilitas memastikan bahwa setiap versi bersifat aditif, sehingga versi sebelumnya akan terus berfungsi. Di sisi lain, perubahan pada fungsionalitas sebelumnya (misalnya, untuk meningkatkan performa, mengatasi masalah keamanan, atau memperbaiki bug) dapat menyebabkan masalah kompatibilitas dalam kode yang ada atau aplikasi yang ada yang berjalan di bawah versi yang lebih baru.

Setiap aplikasi menargetkan versi .NET Framework tertentu dengan:

  • Menentukan kerangka kerja target dalam Visual Studio.
  • Menentukan kerangka kerja target dalam file proyek.
  • Menerapkan TargetFrameworkAttribute ke kode sumber.

Saat bermigrasi dari satu versi .NET Framework ke versi lain, ada dua jenis perubahan yang perlu dipertimbangkan:

Perubahan runtime

Masalah runtime adalah masalah yang muncul saat runtime baru ditempatkan pada mesin dan perilaku aplikasi berubah. Saat berjalan pada versi yang lebih baru dari yang ditargetkan, .NET Framework menggunakan perilaku yang dikurangi untuk meniru versi yang ditargetkan yang lebih lama. Aplikasi berjalan pada versi yang lebih baru tetapi bertindak seolah-olah berjalan pada versi yang lebih lama. Banyak masalah kompatibilitas antara versi .NET Framework dimitigasi melalui model yang mengkueri ini. Misalnya, jika biner dikompilasi untuk .NET Framework 4.0 tetapi berjalan pada komputer dengan .NET Framework 4.5 atau yang lebih baru, biner berjalan dalam mode kompatibilitas .NET Framework 4.0. Ini berarti bahwa banyak perubahan dalam versi yang lebih baru tidak memengaruhi biner.

Versi .NET Framework yang ditargetkan aplikasi ditentukan oleh versi target rakitan entri untuk domain aplikasi tempat kode berjalan. Semua assembly tambahan yang dimuat dalam domain aplikasi tersebut menargetkan versi tersebut. Misalnya, dalam kasus yang dapat dieksekusi, versi yang targetnya dapat dieksekusi adalah mode kompatibilitas semua assembly dalam domain aplikasi tersebut berjalan di bawah.

Menargetkan ulang perubahan

Perubahan penargetan ulang adalah perubahan yang muncul ketika assembly dikommpilasikan ulang untuk menargetkan versi yang lebih baru. Menargetkan versi yang lebih baru berarti assembly memilih fitur baru serta potensi masalah kompatibilitas untuk fitur lama.

Klasifikasi dampak

Dalam artikel yang menjelaskan perubahan runtime dan penargetan ulang, misalnya, Penargetan ulang perubahan untuk migrasi ke .NET Framework 4.8.x, item individual diklasifikasikan oleh dampak yang diharapkan sebagai berikut:

Utama
Perubahan signifikan yang memengaruhi sejumlah besar aplikasi atau yang memerlukan modifikasi kode yang substansial.

Kecil
Perubahan yang memengaruhi sejumlah kecil aplikasi atau yang memerlukan modifikasi kecil kode.

Kasus tepi
Perubahan yang memengaruhi aplikasi di bawah skenario yang sangat spesifik yang tidak umum.

Transparan
Perubahan yang tidak memiliki efek nyata pada pengembang atau pengguna aplikasi. Aplikasi seharusnya tidak memerlukan modifikasi karena perubahan ini.

Lihat juga