Вопрос
Я хочу создать мультимерный проект с 3 слоями (или ярусами? В чем разница?)
Теперь, как я должен назвать каждый слой (уровень)?
Я видел это описание в Википедии:
Но я не могу просто назвать мои слои "Презентационный уровень", "Логический уровень" и "Данные уровня", Могу ли я?
Это не будет соответствовать в пространствах имен.
Любые идеи для именования?
Решение
Уровень и слой иногда используются взаимосвязанно, но есть тонкое различие.Ярусы физические и слои логичны.Подробнее: В чем разница между «слоями» и «ярусами»?
Что касается именования, это зависит от того, на каком проекте вы работаете, и на какой тип архитектуры вы собираетесь.
Например, у меня есть веб-проект под названием Amber.У этого есть эти проекты:
- .
- amber.logic (логика и данные были объединены в один проект / слой в этом случае)
- amber.tests (тесты)
- amber.web (презентация)
Другие советы
Вы можете назвать ваши пространства имен, как это:
MeormyCompany.TheApplication.data
MeormyCompany.TheApplication.Logic
MeormyCompany.Эаппликация. ПредставлениеИногда нужно добавлять пространства на подпункте, такие как
MeormyCompany.TheApplication.presentation.main
MeormyCompany.TheApplication.presentation.dialogs
MeormyCompany.TheApplication.presentation.controls
...Это зависит от вас.
Обратите внимание, что, когда вы создаете папку в проекте, имя папки будет добавлено в пространство имен автоматически. Так что, если у вас есть проект под названием «MeormyCompany.TheApplication», вы можете добавить папки с именем «Данные», «Логика» и «презентация». В рамках «презентации» добавляют подпапки с именем «Основные», «диалоги», «элементы управления» или что-то еще, кажется подходящим для вас.
Вы также можете создавать отдельные проекты для трех уровней.
Пример:
Здесь класс в папке SVG будет автоматически иметь пространство имен
cysoft.slvision.diagrams.shapes.svg
.namespace CySoft.SLVision.Diagrams.Shapes.Svg { public class SvgLine : LineShape { private SvgShapeFactory _context; ... } ... }
в одном приложении, я обычно делаю что-то вроде:
<Company name>.<Application name>.<Tier name>
.
Где вместо имени вы также можете использовать аббревиатуру, если он содержит пробелы или если оно слишком длинное.
Я использую эту конвенцию именования для каждого проекта / сборки.
Мои обычно присутствующие ярусы / слои
DAL
- мой уровень доступа к данным (например, EF)
Business
- Моя бизнес-логика и объекты
Facade
- мой слой презентации, в котором я определяю логику приложений
UI
- фактический пользовательский интерфейс