Question

Lors de la mise en œuvre modèle MVP dans WinForms Je trouve souvent des interfaces vue pléthorique avec trop de propriétés, setters et getters. Un exemple simple avec une vue avec 3 boutons et 7, textboxes toute valeur ayant, permis et les propriétés visibles exposées de la vue. Ajout des résultats de validation pour cela, et vous pourriez facilement vous retrouver avec une interface avec des propriétés 40ish. Utilisation de la présentation du modèle, il sera un modèle avec le même nombre de propriétés aswell.

Comment avez-vous facilement synchroniser la vue et le modèle de présentation sans avoir la logique de présentateur pléthorique qui passent toutes les valeurs avant et en arrière? (Avec cette ligne de code 80ish présentateur, imaginez avec le test du présentateur qui se moque du modèle et vue regarderont les lignes like..160ish de code juste pour se moquer de ce transfert.) Y at-il cadre pour gérer cela sans avoir recours à WinForms Databinding? (Vous pouvez utiliser différentes vues d'un WinForms vue. Selon certains, cette synchronisation doit être le travail des animateurs ..) utiliseriez-vous AutoMapper?

Peut-être im poser les mauvaises questions, mais il me semble MVP facilement obtient pléthorique sans une bonne solution ici ..

Pas de solution correcte

Autres conseils

Ceci est juste une idée, et je sais où certaines personnes pourraient ne pas apprécier -. Il y a beaucoup de choses différentes que vous pouvez faire ici

Si vous vous trouvez en utilisant beaucoup de code boilerplate, encapsuler.

public class UiField<ContentType>
{
    public bool IsEnabled { get; set; }
    public ContentType Value { get; set; }
    public bool IsVisible { get; set; }
}

Selon vous, alors:

public interface ISampleView
{
    UiField<bool> IsStaffFullTime { get; set; }
    UiField<string> StaffName { get; set; }
    UiField<string> JobTitle { get; set; }
    UiField<int> StaffAge { get; set; }
    UiField<IList<string>> Certifications { get; set; }
}

Ici, vous enveloppez les différentes propriétés associées à chaque champ.

Par ailleurs, je suggère que vous cognez pas ces interfaces à la main pour tester - utiliser un cadre moqueur

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