Je développe une application Windows Forms. Il a été essentiellement évoqué avec un mélange de BDUP et de prototypage. Je possède environ 1500 lignes de code (excluant la classe partielle générée IDE ... 1465 pour être exact) dans le formulaire et le formulaire a 6 onglets (9 sous-onglets). Il n'y a pas plus de 10 contrôles dans chaque formulaire, de sorte que la solution multi-forme serait une overkill.Refactoring Application Windows Forms
J'ai un ensemble de classes d'entités qui, lorsqu'elles sont sérialisées, me donnent une représentation XML que je stocke dans un fichier XML. J'ai encapsulé ceci avec un modèle de Repository ainsi je pourrais déplacer le stockage à une base de données à l'avenir. Le formulaire utilise les classes d'entités (pour enregistrer/modifier) et la fabrique Repo (ajouter, récupérer et enregistrer). Maintenant, mon problème est qu'une grande partie des 1500 lignes de code traite de l'interaction entre les éléments de l'interface utilisateur (faire un choix dans un combo désactive certains éléments ou affiche différents éléments dans une grille, gérer les transitions de tabulation), le chargement des menus (chaque élément distinct dans le référentiel de fichiers XML devient un élément de menu), nouveau/mode d'édition, etc (j'ai trois ensembles distincts de nouveau/modifier sur la même forme).
- Quel serait La meilleure approche ici pour faire sortir l'interaction de l'élément? Disons, je peux décider de faire l'interface utilisateur basée sur le Web à l'avenir
- Plus important encore quels sont les refactorings composites que je peux appliquer
- Quels modèles dois-je refactoriser à/vers?
Merci de votre aide.
Note: Je lis refactorisation Patterns ... Plus précisément, je voulais avoir un "guide pratique"/conseils sur refactoring pour MVC ...
Vous êtes sûrement excité par les motifs. – Eric
@Eric: Oui, je suis. :) Je comprends sur le plan conceptuel, Séparation des préoccupations est ce que les modèles sont sur. Cependant, il faut un certain temps [même si vous pensez que vous connaissez bien le modèle] pour obtenir l'expérience 'aha' [sachant quand appliquer ce qui peut être très subtile parfois]. –