Je suis actuellement en train de créer un projet assez grand à mon avis pour séparer soigneusement les couches bien connues de son architecture.Où implémenter l'interface INotifyPropertyChanged dans l'architecture logicielle?
Pour la couche d'accès aux données (DAL), j'utilise simplement .NET Entity Framework.
Pour la couche de gestion, j'ai défini des objets métier qui sont ensuite disponibles pour les développeurs suivants qui peuvent les utiliser pour créer des clients et gérer l'interface utilisateur. Comme je dois développer une application client aussi bien à des fins de démonstration, j'ai réalisé qu'il peut être très utile d'avoir un ObservableCollection<T>
au lieu d'une liste, et que le plus souvent possible les objets doivent implémenter l'interface INotifyPropertyChanged
pour que l'interface utilisateur détecte automatiquement les modifications et affiche les mises à jour immédiatement.
Pourtant, je me demande si c'est vraiment la bonne façon de faire d'un point de vue architectural. C'est, techniquement, je ne pense pas que la couche de gestion devrait avoir quelque chose à voir avec l'affichage de l'interface utilisateur car nous ne savons pas vraiment ce qu'un programmeur pourrait l'utiliser pour; il pourrait juste vouloir utiliser les objets à des fins de calcul par exemple. Par conséquent, je me demandais quelle était la pratique commune? Dois-je implémenter ces fonctionnalités dans la couche de gestion (il n'y aurait pas de problème de performance)? Dois-je créer une sorte d'objet "décorateur" dans un autre calque qui inclut toutes ces caractéristiques?
Vous devez avoir différents ensembles de classes dans chaque couche. Cela semble un peu redondant mais c'est le choix correct (comme en témoigne votre doute) – Sklivvz