Ide dari .Net adalah bahwa Anda dapat menggunakan bahasa apa pun yang sudah Anda sukai dan menggunakan platform DotNet tanpa harus belajar bahasa baru lagi. Salah satu cara memandangnya adalah sebagai inversi dari piramida Jawa. Java dapat dijelaskan sebagai "OS tunggal-executable tunggal (IL) -banyak OS". dot net adalah "banyak bahasa-satu yang dapat dieksekusi-satu OS" (tentu saja bit satu-OS salah karena kita memiliki Mono tetapi saya tidak berpikir itu yang ada dalam pikiran Microsoft: -P).
Ya C # dimaksudkan sebagai bahasa untuk DotNet, tetapi tidak "THE ONLY". Microsoft mungkin berharap untuk mendapatkan programmer C ++ untuk bermigrasi ke C # dalam jangka panjang, jika tidak segera. Tapi itu sepertinya tidak terjadi. C ++ masih merupakan bahasa terpopuler ketiga. Faimiliaritas dengan bahasa dan upaya yang dibutuhkan untuk port aplikasi dari C ++ ke C # telah membuat sebagian besar pengembang enggan. Lagi pula, mengapa memperbaiki sesuatu yang tidak rusak? Itu sebabnya Microsoft datang dengan C ++ / CLI. Ini adalah cara yang luar biasa untuk mendapatkan programmer C ++ di kereta DotNet tanpa harus belajar bahasa baru. Butuh sedikit waktu untuk membiasakan diri dengan C ++ / CLI. Satu-satunya kelemahan yang saya lihat adalah notasi pointer baru untuk kelas yang dikelola dapat membingungkan mereka yang memiliki pemahaman yang lemah tentang pointer di C ++. Tidak memengaruhi saya.