Je me bats pour décider d'une bonne façon de structurer mon modèle d'objet/services Web dans une webapp je travaille. Nous avons un problème commun où différentes pages ont besoin d'une vue légèrement différente d'un objet standard. Par exemple, nous avons des types d'équipe et d'organisation dans lesquels une organisation peut avoir des équipes un-à-plusieurs. Sur une page tout ce que je besoin est quelque chose commeQuel est un bon moyen de structurer mon modèle d'objet webapp?
class Team {
long TeamID { get; set; }
string Name { get; set ;}
TeamType TeamType { get; set; }
}
Mais dans une autre page je besoin d'une projection différente des données telles que
class Team {
long TeamID { get; set; }
string Name { get; set ;}
string OrganizationName { get; set; }
string TeamPicture { get; set; }
}
Souvent, la projection d'un objet couvre plusieurs tables. Ma pensée est qu'il est mauvais d'interroger et de transmettre TOUTES les données pour une équipe et une organisation, puis d'utiliser simplement les parties dont j'ai besoin sur la page. Il semble que je vais me retrouver avec d'énormes quantités de données inutiles étant interrogées et circulant dans le système.
Mon modèle actuel est de créer des types distincts pour chaque projection. J'aime le type de sécurité mais le problème que je rencontre est que j'ai des types comme Team, SimpleTeam, TeamAndOrganization, etc. J'utilise l'équipe/organisation comme exemple, mais je trouve le même problème avec beaucoup de différents types dans mon système.
Comment gérez-vous cela? J'utilise WCF pour transmettre des données entre la webapp et un système back-end.
Il ne certainement conduire à une explosion des méthodes de service, ce qui est terrible. Suis-je trop préoccupé par perf/scalabilité dans mon inquiétude à propos de données supplémentaires flottant autour. Le produit se vend bien, nous avons progressivement augmenté notre base d'utilisateurs. Si nous continuons notre cours, nous verrons plus de 1000 utilisateurs simultanés l'année prochaine. – AgileJon
Vous devez trouver un équilibre entre performance et maintenabilité. En général, j'irais avec la maintenabilité jusqu'à ce que les performances deviennent un problème, puis refactoriser au besoin pour améliorer les performances. – tvanfosson
Wow, il semble que peu importe combien de fois je lis/entends cette idée générale (l'optimisation prématurée est la racine de tous les maux), elle ne résonne pas dans mes conceptions. Je vous remercie! – AgileJon