# DotNetNuke

DNN (anciennement DotNetNuke) est un système de gestion de contenu (CMS). Il s'agit d'une application Web dynamique, dotée d'une base de données permettant de gérer directement en ligne son contenu et sa configuration. Son architecture est modulaire et extensible de sorte que son usage couvre une gamme diversifiée de scénarios (Sites Web, Intranets, Extranets, Progiciels, etc.). La version de base comporte la plupart des éléments permettant la conception de portails communautaires (gestion des pages et des principaux types de contenu web, gestion des utilisateurs, de leur accès sécurisé et de leurs permissions, multiples formulaires d'administration en ligne).
DNN est une application ASP.NET. Au sein du Framework .Net - plateforme de développement objet de Microsoft analogue à la technologie Java - ASP.NET est le composant Web, et s'inspire en partie de la technologie ASP précédente (il peut être aisé de migrer une applications ASP vers ASP.Net, et a fortiori vers DNN). La première version de DNN a été conçue sur les bases du starter-kit IBuySpy, diffusé par Microsoft pour promouvoir sa technologie ASP.Net lors de sa sortie en 2000. DNN a depuis largement évolué.

## DNN est un projet communautaire Open-Source

DNN est publié sous licence BSD : il s'agit d'une licence relativement permissive qui permet notamment de concevoir des extensions commerciales et de commercialiser l'application elle-même sous des noms distincts. Cela a permis le développement d'un écosystème d'acteurs commerciaux très diversifié.
DNN est maintenu autour de ses fondateurs par un ensemble d'équipes bénévoles spécialisées organisées en projets, et dont le « Core Team », l'équipe au cœur du mouvement, s'occupe du tronc architectural principal.
Le site officiel dnnsoftware.com en constitue le principal point d'entrée. Avec 800 000 inscrits et environ 600 000 sites en production recensés, DNN est le plus gros projet open-source en technologie .Net.
Depuis 2007, DNN est géré par une entité commerciale, DNN Corp., qui se charge d'animer la communauté, salarie les principaux membres du noyau DNN, et depuis une levée de fonds fin 2008 assure un certain nombre de services commerciaux, dont la diffusion d'une version payante licenciée, qui comporte un certain nombre de composants additionnels et des services de support dédiés.
Il existe un AppStore dédié aux extensions DNN : DNN Store (anciennement SnowCovered, acquis par DotNetNuke Corp en 2009). On y trouve notamment des milliers de modules applicatifs et de thèmes graphiques. La plupart des éditeurs de solutions pour DNN diffusent leurs modules publics grâce à cette plateforme commerciale qui constitue un bon point d'entrée pour la recherche de nouvelles fonctions.

## Une organisation modulaire

La très grande majorité des applications DNN est hébergée sous Windows sur le serveur Web IIS intégré. Quelques cas d'utilisations peu documentés mentionnent l'hébergement de DNN sous Linux sur serveur Apache, grâce au composant Mono (port sous Linux de la technologie .Net).
DNN est composé d'un site web principal et d'un ensemble de bibliothèques associées. La plupart sont développées dans le langage VB.NET, quelques-unes dans le langage de programmation CSharp (C#), et compilées : une petite partie du code source de DNN est compilée dynamiquement à l'exécution, ou « interprétée », comme c'est le cas dans d'autres technologies Web comme PHP, mais la majorité des bibliothèques est livrée compilée dans des assemblages .Net (l'ensemble des fichiers .dll qu'on retrouve dans le répertoire /bin). Une partie des composants de DNN sont déclarés sous forme de « Provider » : ils peuvent être remplacés par des composants tiers fournissant les mêmes fonctionnalités.
Le composant d'accès à la base de données DNN est l'un de ces providers : cela signifie qu'en théorie, DNN peut être adapté à tout type de base de données, à condition de fournir le provider associé. En pratique, DNN est livré nativement uniquement avec un provider SQL Server (le SGBD de Microsoft). Si par le passé, un certain nombre de providers tiers étaient disponibles pour l'utilisation d'autres SGBD, le provider natif a fini par s'imposer du fait du manque de maintenance des providers pour d'autres SGBD et la non prise en compte d'autres SGBD par les extensions tierces.
Les versions minimales supportées étaient initialement le Framework .Net 1.1 et SQL Server 2000, puis à partir de la version 4.0 le Framework 2.0, et à partir de la version 5.2 le Framework 3.5 et SQL Server 2005/2008. La version 5.4.0 apporte également le support du Framework .Net 4. Depuis la version 7, le Framework .Net 4 est requis.