Entity Framework - мнение о необходимости бизнес-уровня - PullRequest
2 голосов
/ 12 августа 2011

На данный момент на моем сайте есть шаблон репозитория с шаблоном спецификации. Я могу получить данные с моей страницы .aspx всего несколькими строками кода, например:

private IRepository repository;

    protected void Page_Load(object sender, EventArgs e)
    {
        repository = new GenericRepository();

        Specification<Book> specification = new Specification<Book>(b => b.Year == 1988);
        lvBooks.DataSource = repository.GetAll<Book>(specification);
        lvBooks.DataBind();
    }

Теперь мой вопрос: нужен ли мне бизнес-уровень на моем веб-сайте, и если ваш ответ - да, почему? На данный момент, из-за шаблона спецификации, мне не нужен бизнес-уровень, который находится между страницей и хранилищем.

Спасибо за ваше мнение.

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

Ответ зависит от того, насколько велико это приложение, насколько оно будет расти и насколько оно может измениться.

Единственная реальная точка любого слоя - это изоляция функциональности.В небольшом приложении вы можете с радостью получать вызовы в хранилище, разбросанные по всему коду пользовательского интерфейса.

Но что, если вы затем измените что-то в структуре хранилища?Вам нужно будет найти и изменить все эти ссылки.

Однако, если вы написали весь свой код доступа к хранилищу на бизнес-уровне, который предоставляет методы более высокого уровня для пользовательского интерфейса, тогда у вас будет гораздо меньше работыэтот момент.

Могут быть конкретные соображения безопасности.Например, если ваш пользовательский интерфейс не имеет доступа к хранилищу, вы можете сосредоточить всю проверку безопасности на общедоступном API бизнес-уровня.Если у вас есть 200-страничное веб-приложение, в котором доступ к хранилищу можно получить из любого места - конечно, это может быть безопасно - но насколько вы можете быть уверены?

Тогда есть модульное тестирование ...... в основном естьнет правильного пути - но если ваше приложение маленькое, у вас все хорошо ... если ваше приложение большое, вы, вероятно, пожалеете об этом дизайне в какой-то момент.

1 голос
/ 12 августа 2011

Из вашего кода кажется, что вам не нужен бизнес-уровень. Как кажется, все дело в извлечении данных с использованием простой спецификации или, возможно, вставки данных. BL требуется, когда у вас есть некоторые бизнес-правила для этих объектов, например: удаление объекта должно проверять некоторые конкретные условия перед удалением объекта и т. Д.

...