Premier C# n'est pas un "derivitive" de .NET. .NET n'est pas une langue, c'est un cadre d'application et de la bibliothèque de classe basée sur la CLR, pour lequel un certain nombre de langues existent.
Cela dit, la raison la plus convaincante à utiliser .NET, c'est que c'est un bien conçu, à la bibliothèque de la classe et un moyen beaucoup plus facile de développer pour Windows que Win32 ou MFC. Cependant, personnellement, j'ai décidé que j'avais plutôt l'apprentissage d'une nouvelle langue au total que d'apprendre des extensions à l'ancienne, et parce que le C# a été conçu à partir du sol en place pour travailler avec .NET, je suggère qu'est la langue de choix pour .NET.
C++/CLI est utile si vous voulez utiliser .NET avec un code existant, et je l'ai utilisé pour la création de Fenêtres de Formes d'Interfaces graphiques et le collage pour le code d'application existant. Ses autres raison d'être , c'est qu'il est le seul .NET de la langue qui prend en charge mélangées code natif et géré dans un seul module de charge, il est donc à la fois de la performance et de la réutilisation de code existant.
Concernant le nombre de langues, Microsoft voulez toutes les applications de Windows pour être sur .NET parce que c'est mieux pour la sécurité et la stabilité de leur système d'exploitation. Le seul moyen qui va arriver, c'est par la prise en charge de plusieurs langues. Penser .NET est une plateforme d'application ou de système d'exploitation de l'API, et la question fait moins de sens; il y aura de nombreuses langues, pour .NET pour la même raison qu'il y a beaucoup de langues pour toute plate-forme. Les raisons sont nombreuses, y compris un avantage commercial, de l'application de l'ajustement, de la politique, à l'appui de développeurs, de choix et sans doute de plus en plus.