Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNStratégie - que...Stratégie - que...Intégration entre DNN et une autre application .netIntégration entre DNN et une autre application .net
Précédente
 
Suivante
Nouveau message
03/01/2007 13:56
 

D'abord, mes meilleurs voeux.

Cela fait maitenant quelques mois que je m'intéresse à DotNetNuke et, bonnes résolutions obligent, je me sens prêt pour un premier projet.

Il me reste toutefois quelques questions d'ordre assez général, pour lesquelles je n'ai pas encore de réponse et que je vous soumets ici.

1. Pour l'hébergement, je vois des tarifs autour de 10$ / mois aux USA. Y a-t-il des fournisseurs avec des grilles de prix similaires en France/Belgique/Suisse/Luxembourg?

2. J'ai des applications .net existantes que j'aimerais intégrer au site DNN. Quelle est la voie la plus simple ? Mettre les applications dans un sous-répertoire sous DNN et y accéder via des pages DNN avec des modules iframes? Recompiler le DNN et faire une seule grosse application avec DNN et mes applications existantes. Cela donne l'avantage de pouvoir passer des variables de session entre DNN et les applications, mais recompiler DNN pose un problème si je choisi un pack où DNN est pré-installé. Il me reste enfin l'approche d'isoler ce qui devrait être commun entre les applications et DNN dans des server controls et de les utiliser à la fois dans mes apps et dans des modules sur DNN, mais cela va me demander pas mal de ré-écriture.

3. Pour les login, y a-t-il une possibilité d'utiliser mes propres tables avec les users et rôles qui existent déjà pour les différentes applications. Je suppose qu'il doit bien y avoir quelque part un module qui permet de retirer ces informations d'une table définie par l'utilisateur.

4. Enfin, si parmi vous certains ont installé leur propre serveur, quelle version de sql 2005 avec quelle mode de licence me conseilleriez-vous ?

 
Nouveau message
04/01/2007 01:34
 

Bonjour Avert,

Côté hébergement, je ne peux pas te renseigner. Mes clients possèdent leur propre serveur. Pour SQL Server, j'utilise la version 2000 car mes sites sont sous DNN 3.x.

En revanche, pour tes applications existantes je pense que le plus simple serait de faire des modules. Nul besoin de recompiler DNN, l'API permet d'accéder à toutes les possibilités du framework. Un programmeur .Net ne devrait pas avoir trop de problème. Il suffit généralement de lire la documentation et de regarder comment sont fait les modules livrés avec leur source.

Cela demande un peu de temps, mais je pense que cela en vaut la peine. D'autant plus qu'il existe beaucoup de modules commerciaux avec source, il est rare de ne pas trouver son bonheur quitte à les modifier quelque peu.

En ce qui concerne les login, depuis la v3 DNN utilise un système d'identification très complet. Il peut aussi utiliser Active Directory. Je pense donc que le plus simple serait de transformer les applications existantes en modules afin quelles disposent de tous ces avantages.

Gilles

 
Nouveau message
04/01/2007 13:51
 

Merci pour les conseils. Je vais poursuivre mes recherches dans ce sens.

Il m'apparaît déjà clairement que réécrire les applications ne sera pas possible, car elles sont beaucoup trop grosses et de plus j'utilise des générateurs de code .net qui me permettent de gagner beaucoup de temps, alors que pour les modules, je devrais coder tout manuellement. Mais je pense quand même isoler certains composants dans des modules pour faciliter l'intégration entre les applications.

Mon seul vrai problème est que je cherche à partager des variables de session entre DNN et mes applications, et cela ne me semble pas possible sans passer pas une recompilation de DNN, enfin je pense.

 
Nouveau message
04/01/2007 19:13
 

Bonjour,

pour intégrer ton application plutot que d'utiliser un IFRAME essaye plutot de te créer un module à l'aide de cet exemple :

http://www.aspfr.com/codes/ASP-NET-COMMENT-OBTENIR-CONTENU-PAGE-WEB-DISTANTE_26619.aspx 

Tu pourras ainsi intégrer une page de ton application externe en l'intégrant à ta page dnn, mais cette intégration se fera du côté serveur. Un IFRAME révélerait dans le code source de ta page le lien vers la page de ton application. De plus on verrait les paramètres éventuels passés dans l'URL.

Dans l'url  tu pourras donc passer des valeur de dnn vers ton application web comme tu le ferais avec des variables de session (Exemple : System.Net.WebRequest.Create(http://www.monsite.com/mapage.html?param1=toto))

De plus par rapport à un IFRAME tu n'as pas à te soucier de la largeur et la hauteur de la fenetre avec cette méthode.

EXEMPLE :

la page

http://" & DotNetNuke.Globals.GetDomainName(Request) &  /DesktopModules/Mediadoo_LogisDeFrance/ChoisirUnLogis.asp

est appelé dans

 http://www.logis-de-france-47.com/Default.aspx?tabid=110 

Roland


Roland
 
Nouveau message
05/01/2007 15:25
 
Merci pour le lien, Roland. C'est précisément l'information dont j'avais besoin.
 
Nouveau message
06/01/2007 15:17
 

Bonjour,

Nous proposons des hébergements de sites DNN à partir de 5€ (portail sur instance mutualisée) et nous hébergeons également des applications personnalisées à la demande.

Pour ce qui est du développement, la migration de l'application est sans doute moins contraignante que tu peux l'imaginer. Bien sûr, utiliser un IFrame est une possibilité rapide et si le temps importe, c'est envisageable.

Sinon, il te suffit sans doute de changer tous tes aspx en ascx de type PortalModuleBase et de les déclarer dans des définitions de modules personnalisées en ligne. L'interface de définition en ligne te contraint à placer tes ascx dans un répertoire dédié sous DesktopModules, C'est contournable (comme pour les modules d'admin), mais reste le plus simple à administrer et déployer.

Ca sous-entend sans doute un peu de nettoyage dans le code, ça dépend de l'usage que tu as fait de ton objet page. C'est la solution la plus propre et te donne accès à toute l'API DNN.

Tu peux également envisager une solution hybride comme dans nombre de modules, où un jeu d'ascx simples constituant le module DNN déclaré et font appels à des aspx plus ou moins indépendant réalisant des taches métier. C'est par exemple le cas dans les modules de manipulation d'image ou bien ceux qui ouvrent des pop-up de configuration complexes. Tu peux même placer des HttpHandlers personnalisés dans ton web.config et charger des pages programmatiques (cf le captcha de DNN).

Comme le suggère le code de Roland, tu peux attaquer l'API DNN depuis un aspx en utilisant les fonctions de Globals par exemple ou en instanciant les providers, sachant que les modules HTTP d'authentification et de gestion des URLs sont déjà passés à l'initialisation de ta page, et donc que tu as à portée de code le portail en court, le user authentifié et tout l'état de l'appli DNN. Tu peux même bénéficier du système de traduction par clé de ressource DNN en héritant tes aspx de PageBase.

Programmer dans un module te permet de "rentrer" dans ton code après la mise en place de la page Default.aspx et la classe Skin qui gèrent la mise en page conventionnelle.

Pour ce qui est de la compilation, tu peux utiliser le modèle WAP pour générer tes propres dll, tu pourrais bien encore utiliser un projet de librairie, l'important est que la dll contenant le code de tes aspx/ascx et les dll référencées soit dans le répertoire bin. Sinon, tu peux travailler directement dans le projet DNN comme suggéré dans la doc officielle, et dans ce cas placer tes références externes directement depuis DNN. Le packaging et le sourcing est un peu plus délicat mais le développement est nettement plus rapide (Edit and Continue). L'idéal est sans doute de combiner avantageusement les deux.

Dans tous les cas, il t'est possible de brancher ton propre membership provider tout en utilisant le provider d'authentification par formulaire par défaut. Dans un projet de classe, dérive une classe personnalisée du provider abstrait et branche le sur tes méthodes existantes, déclare le dans le web.config parmi les provider et défini le en provider par défaut.

Voilà pour quelques pistes. Bon développement.


Jesse
Société de conseil et de service en 
informatique et systèmes d'information
 
Nouveau message
08/01/2007 10:30
 

Jesse,

Merci pour tes bons conseils. Pour l'hébergement, les offres sont certainement attrayantes.

Pour l'intégration avec d'autres sous-applications, les possibilités sont restreintes, car j'ai développé toutes ces applications avec un outil RAD qui génére le code en automatique. Je ne code que les exceptions et/ou personnalisations. Le but est évidemment de toucher le moins possible au code généré pour pouvoir continuer à faire évoluer en "automatique" toutes ces applications.

Il n'en reste pas moins que toutes les approches proposées ici sont valables, bien entendu.

Dans mon cas, la plus rapide, c'est évidemment l'iframe. Le plus propre serait probablement d'isoler le code ou plutôt les fonctions devant être utilisées à la fois dans Dnn et par ailleurs dans les applics dans un server control à partir et d'appeller du code identique à partir de n'importe quel point.

 
Nouveau message
24/01/2007 16:23
 

Avert, si cela ne te dérange pas d'être hébergé aux USA, tu peux être hébergé pour ~10$/mois avec de très bonnes offres. Tu peux consulter le fichier PDF que j'ai mis à disposition, concerne le comparatif fait en décembre: http://declic-video-fx.com/dnn.aspx

 

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNStratégie - que...Stratégie - que...Intégration entre DNN et une autre application .netIntégration entre DNN et une autre application .net