«Язык первого класса .NET» не является официальным термином.
Официально язык может быть Спецификация общего языка (CLS) -совместим и, таким образом, может взаимодействовать с другими CLS-совместимыми языками.
(Примечание. Конечно, совместимость с CLS является свойством программного обеспечения , которое вы пишете, и, следовательно, вашей сборки. A Язык CLI позволит вам писать CLS-совместимый код, но не заставит вас сделать это * 1014. * Вы можете написать не-CLS-совместимую сборку в C #, например, используя неподписанные типы в своем открытом API.)
Однако, поскольку (опять же) не существует официального определения «первоклассного языка .NET», некоторые люди могут не считать, что они работают на «первоклассном» языке .NET, если они не могут использовать WPF или (завтра) Code Contracts, что явно намного сложнее, чем требование соответствия CLS.