Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kompatibilitas mengacu pada kemampuan untuk mengkompilasi atau menjalankan kode pada versi implementasi .NET selain yang kode awalnya dikembangkan. Perubahan tertentu dapat memengaruhi kompatibilitas dengan enam cara berbeda:
- perubahan perilaku
- kompatibilitas biner
- Kompatibilitas sumber
- kompatibilitas saat desain
- Kompatibilitas ke belakang
- Meneruskan kompatibilitas (bukan tujuan .NET Core)
Perubahan perilaku
Perubahan perilaku mewakili perubahan pada perilaku anggota. Perubahan mungkin terlihat secara eksternal (misalnya, metode dapat melemparkan pengecualian yang berbeda), atau dapat mewakili implementasi yang diubah (misalnya, perubahan dalam cara nilai pengembalian dihitung, penambahan atau penghapusan panggilan metode internal, atau bahkan peningkatan performa yang signifikan).
Ketika perubahan perilaku terlihat secara eksternal dan memodifikasi kontrak publik jenis, perubahan tersebut mudah dievaluasi karena memengaruhi kompatibilitas biner. Perubahan implementasi jauh lebih sulit dievaluasi; tergantung pada sifat perubahan dan frekuensi dan pola penggunaan API, dampak perubahan dapat berkisar dari parah hingga tidak berbahaya.
Kompatibilitas biner
Kompatibilitas biner mengacu pada kemampuan konsumen API untuk menggunakan API pada versi yang lebih baru tanpa kompilasi ulang. Perubahan seperti menambahkan metode atau menambahkan implementasi antarmuka baru ke jenis tidak memengaruhi kompatibilitas biner. Namun, menghapus atau mengubah tanda tangan publik dari rakitan sehingga konsumen tidak dapat lagi mengakses antarmuka yang sama yang disediakan oleh rakitan dapat memengaruhi kompatibilitas biner. Perubahan semacam ini disebut perubahan biner tidak kompatibel.
Kompatibilitas sumber
Kompatibilitas sumber mengacu pada kemampuan konsumen API yang ada untuk melakukan kompilasi ulang terhadap versi yang lebih baru tanpa perubahan sumber apa pun. Perubahan sumber yang tidak kompatibel terjadi ketika pengguna perlu memodifikasi kode sumber agar dapat berhasil dibangun terhadap versi API yang lebih baru.
Kompatibilitas saat desain
Kompatibilitas waktu desain mengacu pada mempertahankan pengalaman waktu desain di seluruh versi Visual Studio dan lingkungan waktu desain lainnya. Meskipun ini dapat melibatkan perilaku atau UI perancang, aspek terpenting dari kompatibilitas waktu desain menyangkut kompatibilitas proyek. Proyek atau solusi harus dapat dibuka dan digunakan pada versi lingkungan waktu desain yang lebih baru.
Kompatibilitas mundur
Kompatibilitas mundur mengacu pada kemampuan pengguna API yang ada untuk beroperasi pada versi baru sambil berperilaku dengan cara yang sama. Baik perubahan perilaku maupun perubahan kompatibilitas biner memengaruhi kompatibilitas mundur. Jika konsumen tidak dapat menjalankan atau berperilaku berbeda saat menggunakan versi API yang lebih baru, API tersebut tidak kompatibel dengan versi sebelumnya.
Perubahan yang memengaruhi kompatibilitas mundur tidak disarankan, karena pengembang mengharapkan kompatibilitas mundur dalam versi API yang lebih baru.
Kompatibilitas ke depan
Kompatibilitas ke depan mengacu pada kemampuan pengguna API yang ada untuk berfungsi dengan versi yang lebih lama sambil mempertahankan perilaku yang sama. Jika konsumen tidak dapat berjalan atau berperilaku berbeda saat dijalankan terhadap versi API yang lebih lama, API tersebut tidak kompatibel ke depan.
Mempertahankan kompatibilitas dengan versi-versi mendatang mencegah perubahan atau penambahan apa pun dari versi ke versi, karena perubahan tersebut mencegah konsumen yang menargetkan versi yang lebih baru berfungsi pada versi sebelumnya. Pengembang mengharapkan bahwa konsumen yang bergantung pada API yang lebih baru mungkin tidak berfungsi dengan benar terhadap API yang lebih lama.
Mempertahankan kompatibilitas ke depan bukanlah tujuan .NET Core.