Вопрос

Я хочу создать мультимерный проект с 3 слоями (или ярусами? В чем разница?)

Теперь, как я должен назвать каждый слой (уровень)?

Я видел это описание в Википедии:

Wikipedia Трехвременная архитектура

Но я не могу просто назвать мои слои "Презентационный уровень", "Логический уровень" и "Данные уровня", Могу ли я?

Это не будет соответствовать в пространствах имен.

Любые идеи для именования?

Это было полезно?

Решение

Уровень и слой иногда используются взаимосвязанно, но есть тонкое различие.Ярусы физические и слои логичны.Подробнее: В чем разница между «слоями» и «ярусами»?

Что касается именования, это зависит от того, на каком проекте вы работаете, и на какой тип архитектуры вы собираетесь.

Например, у меня есть веб-проект под названием 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 - фактический пользовательский интерфейс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top