2008-09-24 5 views
2

J'ai besoin de construire beaucoup de sites qui sont très similaires, mais pas exactement les mêmes, en utilisant ASP.NET 2.0. J'essaie de trouver la meilleure façon de rendre la création de ces sites rapide et facile.Comment puis-je créer un cadre pour construire rapidement des sites similaires mais différents?

Les sites seront utilisés pour collecter des informations sur un utilisateur, et il y aura plusieurs étapes pour chaque site. Les sites collecteront tous des informations similaires, mais certains sites peuvent nécessiter moins ou plus d'informations que d'autres. En outre, certains champs de formulaire devront être remplis à partir de différentes tables de base de données, en fonction du site.

Je voudrais utiliser une solution Microsoft Practices &, mais je ne suis pas sûr qu'il en existe un qui correspond à ce scénario. Actuellement, je pense que je vais mettre autant de logique métier que possible dans un assemblage externe, puis écrire un contrôle utilisateur Web personnalisé pour chaque étape de chaque site. Je vais inclure ces contrôles utilisateur dans le contrôle Panel d'une page maître.

Je n'aime pas cette solution parce que chaque site dupliquera presque le code pour les autres sites.

Comment puis-je améliorer cette conception?

Le principal obstacle est que les sites sont similaires, mais suffisamment différents.

Merci!

Alex

Répondre

1

vous pouvez créer des classes de base qui gèrent toutes les fonctionnalités communes et que votre site soit des contrôles spécifiques hériter de leurs classes de base respectives et mettre en œuvre leurs implémentations spécifiques.

1

Nous faisons face à ce problème tout le temps. Ce que nous faisons est d'avoir une bibliothèque commune que tous nos sites utilisent, et d'enterrer les fonctionnalités partagées dans les classes ou les modules utilitaires dans cette bibliothèque. Chaque site peut alors utiliser ces objets ou fonctions d'utilité tels quels ou étendre les classes communes. Gardez à l'esprit que ces classes partagées peuvent inclure toutes sortes de choses, y compris le code-behind pour les pages et les contrôles utilisateur dont vous pouvez hériter et étendre. Cependant, décider ce qui se passe dans l'application et ce qui se passe dans la bibliothèque commune est l'une des choses les plus difficiles à propos de notre entreprise. Mettez-le dans la bibliothèque commune et vous perdez la flexibilité; mettez-le dans l'application et vous risquez d'avoir du code en double à maintenir. Si vous avez une configuration de base de données relativement complexe, il serait peut-être utile de définir un cadre pour spécifier votre schéma db en XML et de faire appliquer ce schéma par votre application et de construire toute l'infrastructure SQL dont vous avez besoin cette définition (par exemple, vues d'utilitaires, procédures stockées, etc.). Nous l'avons fait et cela a entraîné une énorme augmentation de la productivité.

+0

Merci pour votre participation. Avez-vous des exemples d'héritage de contrôle utilisateur? Je vois comment je pourrais hériter et surcharger le code derrière, mais je ne vois pas comment je pourrais changer la présentation (en ajoutant par programmation la présentation et la logique des contrôles de Web). –

0

Avez-vous regardé dans Monorail (www.castleproject.org) ceci est une mise en œuvre de modèle de themvc, semblable à Ruby sur des rails avec quelques bons moteurs de vue, je préfère Nvelocity. de projet de château ainsi vous pouvez utiliser n implémentation de ActiveRecord qui rend la vie très agréable. Si vous êtes sur cette piste, jetez un coup d'œil aux screencasts coln ramsay.

Pour être honnête, toutes ms solutions sont réelles graisse une autre grande chose au sujet de la castleproject est c'est la source totalement ouverte afin que vous puissiez apprendre des charges de leur code

+0

Alors que Monorail est superbe, j'ai peur que l'entreprise exige que nous nous en tenions à ASP.NET Web Forms pour ce projet. –

0

Que diriez-vous à l'aide d'un cadre d'application comme DotNetNuke ou mojoPortal? Ils offrent tous deux de la flexibilité et vous permettent de développer des sites Web très rapidement avec des fonctionnalités communes. Vous laissant pour développer des modules personnalisés où les fonctionnalités dont vous avez besoin peuvent être différentes. Il existe également des milliers d'autres modules qui peuvent être achetés et qui offrent d'excellentes fonctionnalités. Cependant, nous avons choisi d'utiliser WCSF et amélioré sur ce dernier.
Tous les projets mentionnés ci-dessus sont open source et quelques bons exemples de code à apprendre.

Je sais qu'il peut être une réponse tardive mais j'espère que cela aide

Questions connexes