Я привык к макету, который LLBLGen дает, когда он генерирует объекты на основе структуры базы данных, которая может генерировать следующие файлы классов для данной таблицы «Пользователь» в базе данных:
/EntityClasses/UserEntity.vb
/CollectionClasses/UserCollection.vb
Это обеспечивает некоторую базовую функциональность для доступа к данным. Однако, когда вы хотите реализовать бизнес-логику, как вы это делаете? Например, учитывая структуру таблицы, которая может выглядеть следующим образом:
USER
userId
firstName
lastName
username
password
lockedOut
Что если вы хотите заблокировать пользователя? Какой код вы бы назвали со слоя презентации? Вы бы создали экземпляр класса UserEntity и сделали бы:
User = new UserEntity(userId)
User.lockedOut = true
User.Save()
Или вы создадите новый класс, такой как UserHelper (/BusinessLogic/UserHelper.cs), который может иметь функцию LockOutUser. Это изменит код на:
UH = new UserHelper()
UH.LockOutUser(userId)
Или вы бы расширили базовый класс UserEntity и создали бы UserEntityExt, который добавляет новые функциональные возможности? Поэтому код из уровня представления может выглядеть следующим образом:
User = new UserEntityExt(userId)
User.LockOutUser()
Или ... ты бы вообще сделал что-нибудь еще?
И какова будет ваша структура каталогов / пространств имен и соглашения об именах файлов / классов?