Bonjour,
Il faut éviter à tout prix l'utilisation des IFrame ! Dans ton cas, il faut créer un module pour chaque catégorie de données à accéder (clients, produit, ...). Je te conseille vivement d'acheter le bouquin : Professional DotNetNuke 4 qui explique en détail l'architecture de dnn et la création de module. Tu as le site de Michael Washington du Core Team pour les permier pas et autres exemples. Il a aussi écrit un autre bouquin en collaboration sur le dev de modules (pub sur son site). Je te conseille vivement aussi de réaliser d'abord un tout petit module d'un exemple quelconque pour appréhender les différents aspects de la création de module dnn. Tu gagneras du temps, plutôt que de te lancer tête baissée dans ton dev final. L'idée est de créer un mdoule "standard", mais de modifier légèrement la fameuse classe SqldataProvider dont je parlais.
Cette classe s'appuie sur des méthodes pour aller lire et écrire au travers de procédures stockées de la base cible. Voici un court extrait du module WWStore, cette méthode va lire les données d'une boutique en passant en paramètre le numéro du portail à la procédure et retourn un objet IDataReader :
public override IDataReader GetStoreInfo(int PortalID)
{
return SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "WWStore_Administration_GetStoreInfo", PortalID);
}
On remarque le paramètre ConnectionString. C'est une propriété accédant à une variable locale initialisée dans le constructeur de la classe. Dans un premier temps, tu coderas le contenu de cette chaîne en dur. Puis idéalement, il faudrait aller relire une valeur du fichier web.config pour éviter d'avoir à recompiler le module en cas de changement des paramètres d'accès à la base (nom du server sql ou adresse ip, compte et mot de passe, etc.). Les valeurs DatabaseOwer et ObjectQualifier sont spécifiques à dnn, elle préfixe l'appel à la procédure avec le nom du compte dbo et un préfixe de table/procédure optionnel défini dans web.config. Cela pourrait donner par exemple: dbo.dnn_WWStore_Administration_GetStoreInfo. Tout le reste est du standard dev de module DNN. Donc lorsque tu saura créer un module pour dnn, ce sera vraiment très simple d'accéder aux données de ton autre base.
Pour faire court, un module est composé de contrôles pour afficher les données (Vue, Paramètres, etc.). Comme finalement ce ne sont que des contrôles ASP.NET dérivant d'une classe dnn, si tu sais faire un contrôle en ASP.NET et que tu as suivi mes conseils pour les premiers pas, alors tu ne devrais pas rencontrer de problèmes particuliers. L'avantage étant qu"avec dnn, tu t'appuie sur le framework dnn qui répond à 90% des besoins courants d'un site complexe (gestion des utilisateurs, droist d'accès, etc.).
Dernier conseil, il existe deux modèles de développement sous ASP.NET. WSP qui utilise la compilation dynamique et WAP qui utilise le concept de librairie. Le premier est plus simple et peut être utilisé avec Visual Sutdio Web Express (gratuit chez MS), mais une partie de ton code source est visible. Le second requière Visual Studio 2005 Pro SP1, plus puissant mais aussi un peu plus souple dans certains cas. Moi je n'utilise que WAP. Fais une recherche sur ce forum avec le mot clé WAP pour trouver différents posts sur le sujet.
Gilles