Question

Je suis en train de concevoir une application web qui aura plusieurs modules installables qui offrent des fonctionnalités différentes. Il y a beaucoup de choses communes qui se passe ici et j'ai 3 bibliothèques C # de classe que je sais qu'il sera facile à utiliser sur différents projets.

Le bit je suis bloqué sur le site lui-même. Idéalement, je voudrais faire une ASP.NET bibliothèque de pages qui peuvent être réutilisés sur plusieurs projets, mais je comprends que cela est impossible.

Comment structurez-vous les gars vos projets de site web afin que les pages peuvent être remploi sur plusieurs projets? Jusqu'à présent, la seule solution que je suis venu avec est de créer un dépôt SVN et l'ont référencé dans les propriétés de svn:externals du projet principal. Cela me permet d'ajouter des pages à ce répertoire qui sont communs à tous les sites Web, et je sais que je vais pouvoir l'utiliser pour les vérifier à d'autres projets. Cependant, je pense que c'est un peu maladroit et causera des problèmes lors de la création de nouveaux projets (il y aurait un certain nombre d'étapes pour créer la nouvelle solution, en veillant à ce que les bons sont en place externals).

Y at-il une meilleure solution? Quelle est la meilleure façon quand vous voulez partager des fichiers ASPX communs sur plusieurs projets clients? Comment comptez-vous gérer les changements contre eux?

Merci à l'avance!

EDIT:

Un grand merci à David pour sa réponse. J'ai eu plus de réflexion à ce sujet et je pensais énumérer quelques-unes de mes idées plus concrètes / préoccupations. Tout d'abord, un peu plus sur le projet (s). En premier lieu, il est un CMS. Cependant, nous avons aussi des clients qui veulent CRM, et il y a aussi des clients qui ne veulent ni et veulent un ensemble sur mesure système à partir du sol.

Dans mon message original ci-dessus, je parle d'avoir des sous-répertoires de la racine principale (par exemple, cms), en utilisant svn:externals pour permettre de rétablir un partage facile des pages web à travers plusieurs projets. Je commence à penser que c'est la seule façon de le faire. Une chose qui m'a dérangé était si l'URL du client était:

http://www.shotgunanddribble.com/cms/content.aspx

Cependant, je pense que je peux utiliser le Application_BeginRequest pour atténuer les urls horribles en les réécrivant selon la configuration du site du client. Par exemple, si un client était juste un CMS je pourrais réécrire leur premier niveau domaine /cms/. Même avec si elles étaient un CRM. Si elles étaient à la fois:

http://www.shotgunanddribble.com/ -> /cms/

http://crm.shotgunanddribble.com/ -> /crm/

Y at-il inconvénient à utiliser ce genre de réécritures? Je pense que, à moins que quelqu'un d'autre a des idées magiques, svn:externals est mon seul espoir.

Était-ce utile?

La solution

Le code actuel est assez facile à mettre dans d'autres assemblées et Hériter de, mais les fichiers ASPX sont certainement une autre histoire. Que diriez-vous d'une bibliothèque commune de contrôles utilisateur pour contenir la plupart du contenu d'affichage, et chaque projet a ses propres pages qui la plupart du temps cadre juste les contrôles utilisateur? Je ne l'ai jamais essayé, donc il peut y avoir quelques « Gotcha » que je suis tout simplement pas imaginer en ce moment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top