Outre l'aspect commercial et stratégique, le framework .Net a plusieurs objectifs :
Un des premiers, est de fournir un environnement d'éxécution robuste et sécurisé. pour cela, le fonctionnement du framework repose sur une couche que l'on appelle le CLR (Common Language Runtime) que l'on peut comparer à la machine virtuelle de Java. C'est cette entité qui va notamment, controler le code qui est éxécuté sur la machine, ce qui permets de rendre l'éxecution d'un programme robuste et sécurisée. Grace au CLR, on pourra définir des politques de sécuritée pour les programmes s'executant sur le framework. Le schéma suivant donne une vue d'ensemble du contenu du CLR.
Un autre objectif, est de faciliter le déploiement et l'administration des applications .Net. Le framework dispose de mécanismes de controle de version des logiciels et le déploiement s'affranchi maintenant des fastidieuses procédures d'installation que l'on connait bien (enregistrement de librairies auprès du système, inscription dans la base de registres, ...); Il suffit de faire une copie de répertoire pour installer un logiciel prévu pour ce framework.
Ce framwork permets d'atteindre un des objectifs importants qu'il ne faut pas négliger, qui concerne l'intégration de l'existant. Pour cela, le framework a été concu pour assurer la compatibilité avec les anciennes technologies telles que COM ou bien encore avec l'API Windows. Une des nouveautés non négligeable qui permets d'intégrer à moindre cout l'existant est le support multi-langages et l'éxécution "cote-à-cote" de plusieurs versions d'un même composant. Toutes ces nouveautés seront expliquées dans la suite de site.
Enfin, ce framework, permets de simplifier de manière significative le travail a réaliser par le développeur. Il dispose désormais d'un modèle de programmation unifié, qui permets d'atteindre un niveau d'abstraction élevé. Pour cela le développeur dispose d'une bibliothèque de classes riches et extensibles ainsi que le support en natif des standards Web tels que HTTP, SOAP, XML et bien d'autres.
processus d'unification du modèle de programmation