0 votes

Conseil stratégique: Mise à niveau de la conception d'une application Web

J'ai un site web en ASP.NET dédié au reporting des statistiques d'extension PBX. Il comprend de nombreuses pages de rapport, avec du HTML généré presque uniquement par le code-behind (en définissant la propriété Text d'un contrôle Label au lieu d'utiliser Response.Write), en utilisant des requêtes SQL littérales non paramétrées qui peuplent des paramètres DataTable par référence.

Les pages de maintenance comprennent au moins des DataGrids et des formulaires détaillés, mais utilisent le même DAL, une chose pour laquelle on peut dire qu'elle supporte plusieurs serveurs de bases de données, avec des sous-classes remplaçant chacune ces méthodes d'accès par leurs propres requêtes SQL littérales.

Que dois-je envisager pour nettoyer ce désordre ? J'ai déjà pris une décision presque évidente d'utiliser une solution de reporting tierce, et de déplacer les requêtes vers des procédures stockées dans leurs langages de bases de données respectifs, réduisant la diversité des différentes classes DAL, et de séparer le CSS dans des fichiers partagés, car une grande partie est très cachée dans des fichiers C# !

1voto

tsilb Points 4356

Pour la conception de votre back-end, je suggère d'avoir une classe pour représenter chaque table principale de votre base de données (par exemple une classe Rapport et une classe Utilisateur). Tout ce qui n'est pas un gestionnaire d'événements doit aller dans les fichiers de classe back-end / espace de noms.

Pour votre interface utilisateur, il semble que vous êtes sur la bonne voie en utilisant les contrôles ASP.NET au lieu de simplement diffuser vos données à l'utilisateur. Cependant, vous pouvez envisager d'objectiver les zones de la page. Par exemple, l'un de mes trucs préférés est d'ouvrir des panneaux "pop-up" semi-transparents lorsqu'un utilisateur doit saisir des données ou afficher un message court comme la barre d'information.

Considérez AJAX et le AJAX Control Toolkit. Il est facile à mettre en œuvre (surtout en cas de refonte) et offre une grande flexibilité. En particulier, j'ai trouvé que les accordeons - parfois même imbriqués dans d'autres accordeons - sont excellents pour organiser une surabondance d'informations.

Éditer:

Remarquez que si vous utilisez AJAX, vous ne pouvez pratiquement plus utiliser response.write.

En ce qui concerne le fait d'avoir trop de contenu à l'écran, rappelez-vous que les panneaux ont une propriété "Scrollbar" et pas les DIVs sans quelques modifications importantes.

Aussi, j'ai tendance à séparer mes fichiers de code par espace de noms; mais la tendance populaire est de le faire par classe. C'est une meilleure option si vous avez de nombreux développeurs ou si plusieurs classes au sein d'un espace de noms sont susceptibles d'être consultées ou modifiées simultanément par différentes personnes.

0voto

cfeduke Points 13153

Je considérerais abandonner tout DAL personnalisé et utiliser l'un des :

Vous pourriez même finir par abandonner complètement les sprocs.

Si vous êtes audacieux, vous pourriez essayer la refonte en utilisant l'implémentation du MVC de Microsoft.

Quelle que soit l'approche que vous choisissez, assurez-vous d'écrire des tests unitaires avant de refactoriser le code, vérifiez que les tests passent avant et après la refactorisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X