Ý tưởng của .Net là bạn có thể sử dụng bất kỳ ngôn ngữ nào bạn đã cảm thấy thoải mái và sử dụng nền tảng DotNet mà không phải học lại ngôn ngữ mới. Một cách nhìn vào nó là sự đảo ngược của kim tự tháp Java. Java có thể được giải thích là "hệ điều hành đơn ngôn ngữ đơn (IL)". dot net là "nhiều ngôn ngữ-một hệ điều hành-một hệ điều hành" (tất nhiên bit một hệ điều hành là không chính xác vì chúng tôi có Mono nhưng tôi không nghĩ đó là những gì Microsoft có trong tâm trí :-P).
Có C # có nghĩa là ngôn ngữ cho DotNet, nhưng không phải là "CHỈ". Microsoft có thể đã hy vọng sẽ khiến các lập trình viên C ++ chuyển sang C # trong thời gian dài, nếu không ngay lập tức. Nhưng điều đó dường như không xảy ra. C ++ vẫn là ngôn ngữ phổ biến thứ ba. Sự quen thuộc với một ngôn ngữ và nỗ lực cần thiết để chuyển một ứng dụng từ C ++ sang C # đã khiến hầu hết các nhà phát triển miễn cưỡng. Rốt cuộc, tại sao phải sửa cái gì đó không bị hỏng? Đó là lý do tại sao Microsoft đã đưa ra C ++ / CLI. Đó là một cách tuyệt vời để đưa các lập trình viên C ++ vào toa xe DotNet mà không phải học một ngôn ngữ mới. Tôi đã mất rất ít thời gian để làm quen với C ++ / CLI. Hạn chế duy nhất tôi thấy là ký hiệu con trỏ mới cho các lớp được quản lý có thể gây nhầm lẫn cho những người có hiểu biết yếu về con trỏ trong C ++. Không ảnh hưởng đến tôi mặc dù.