Je suis habitué à la mise en page LLBLGen donne quand il génère des objets basés sur une structure de base de données, ce qui pourrait générer les fichiers de classe suivants pour une table « Utilisateur » donnée dans la base de données:Est-ce que quelqu'un a un bon article ou un bon conseil pour le nommage de classe pour les applications web n-tier?
/EntityClasses/UserEntity.vb
/CollectionClasses/UserCollection.vb
Cela fournit une fonctionnalité de base pour l'accès aux données. Cependant, lorsque vous voulez mettre en œuvre une logique métier, comment gérez-vous les choses? Par exemple, étant donné une structure de table qui pourrait ressembler à ceci:
USER
userId
firstName
lastName
username
password
lockedOut
Et si vous vouliez verrouiller un utilisateur? Quel code appelleriez-vous à partir de la couche de présentation? Souhaitez-vous instancier la classe UserEntity et faire:
User = new UserEntity(userId)
User.lockedOut = true
User.Save()
Ou créer une nouvelle classe, comme userhelper (/BusinessLogic/UserHelper.cs), ce qui pourrait avoir une fonction de LockOutUser. Cela changerait le code à:
UH = new UserHelper()
UH.LockOutUser(userId)
Ou voulez-vous étendre la classe de base UserEntity et créer UserEntityExt qui ajoute les nouvelles fonctionnalités? Par conséquent, le code de la couche de présentation peut ressembler à:
User = new UserEntityExt(userId)
User.LockOutUser()
Ou ... feriez-vous autre chose?
Et quelle serait la structure de votre répertoire/espace de noms et de vos conventions de dénomination de fichier/classe?
Vous ne pouvez pas modifier la classe UserEntity? J'ajouterais la méthode de verrouillage là. –