Los objetivos principales son:
Portabilidad: que puedas mudar tu codigo entre SO y entre Maquinas (PC y Mac), siempre y cuando estas soporten .net.
Que puedas interactuar entre leguajes. Es decir, supongamos que una parte de tu codigo esta en Java y la otra en C++. Entonces, si declaras una variable szVariable en Java, puedas accesar a ella desde C++ con el mismo nombre. Ademas, de esto se infiere que en un programa puedes emplear varios lenguajes de programacion al mismo tiempo.
Soporte de servicios Web: E-Commerce. La plataforma .net emplea extensivamente XML y te da todo un soporte para estas aplicaciones. Antes, por ejemplo, tenias tu pagina web y tenias que emplear tecnologias como ASP, CGI o Applets (Objects). Ahora, es un programa el que genera y mantiene toda la pagina web. Asi, la interaccion de tus datos es estrictamente privada, asi como mas versatil.
La plataforma .net, ademas, te elimina tecnologias que eran muy dificiles de aprender, como COM o ATL: todo el soporte ya viene integrado.
saludos.