2010-10-06 9 views
0

Je travaille sur la conception d'une application web d'entreprise qui aura une base de code unique et une base de données unique (pas besoin de flexibilité dans la base de données des locataires) mais différentes présentations basées sur les clients. Nous pouvons avoir 3 à 4 clients différents (sites Web) utilisant la même logique de base et le même squelette mais des en-têtes, pieds de page, images, css etc. spécifiques au client. J'ai besoin d'une solution multi-présentation puis multi-location. La plupart des échantillons que j'ai vus en ligne sont orientés vers la multi-location à part entière. Je ne pense pas avoir besoin de choses compliquées. J'ai trouvé quelques informations ici qui est très utile dans mon cas:Solution d'entreprise multi-présentation

http://jasonjano.wordpress.com/2010/02/22/multi-presentation-websites-for-c/

Comme le suggère le lien ci-dessus, je suis en mesure d'identifier et de saisir un identifiant unique basé sur le domaine demandé comme ci-dessous la configuration dans mon web fichier .config:

<configuration> 
    <appSettings> 
     <add key="MySite1.MyDomain.com" value="1"/> 
     <add key="www.MySite1.MyDomain.com" value="1"/> 
     <add key="MySite2.MyDomain.com" value="2"/> 
     <add key="localhost" value="1"/> 
    </appSettings> 
</configuration> 

Après cela, comment puis-je sélectionner dynamiquement ma page principale, des images et des fichiers CSS basée sur l'ID? Aussi je vais peupler la classe "CustomAppSettings" (comme suggéré dans l'article) de la base de données, est-il conseillé de le rendre statique pour qu'il puisse être consulté dans différentes couches? sinon, quelle est la méthode recommandée?

Vos suggestions seraient grandement appréciées.

Répondre

0

Content de vous voir utiliser cet article. En ce qui concerne la réponse, j'utilise généralement une classe de page personnalisée qui hérite de system.web.ui.page. Dans le Page_Init de la classe de page personnalisée que vous pouvez définir la page principale, etc ..

Quelque chose comme (code psuedo)

class MyCustomPage : System.Web.UI.Page 
{ 
public void Page_Init(object sender, eventargs e) { 
this.MasterPageFile = CurrentSettings.MasterPageFile <Or however you are getting your masterpage file> 
} 

Ensuite, dans vos pages, hériter de la classe MyCustomPage au lieu du système. Web.UI.Page.

Bonne chance

+0

Cette réponse n'est-elle pas spécifique aux formulaires Web ASP.NET? Pas MVC? (peut-être que je suis confus) –