MVC с использованием существующих данных и бизнес-уровня

#asp.net-mvc-3 #entity-framework-4 #business-lo&ic-layer #data-layers

#asp.net-mvc-3 #entity-framework-4 #уровень бизнес-логики #уровни данных

Вопрос:

У меня есть существующее приложение с уровнем данных (основной EF4), бизнес-уровнем (пользовательский код) и приложением Windows — теперь я хочу создать веб-приложение, используя ASP.NET MVC, но я не уверен точно, что делать, особенно в моих моделях.

Когда мои данные и бизнес-логика уже существуют, как я должен структурировать свои модели и контроллеры по сравнению с referenceproject, таким как MVC Music Store v2.0 (http://mvcmusicstore.codeplex.com /)? Все мои объекты хранятся в моем datalayer, а все мои методы и логика хранятся в моем businesslayer, поэтому я предполагаю, что мне не нужны модели (если только мне не нужны конкретные веб-модели), и я предполагаю, что моим контроллерам нужно будет вызывать методы в моем businesslayer только так, как я бы делал в обычном приложении webform?

Другой вопрос, если мне нужно отобразить 2 списка с данными из 2 разных объектов на 1 странице, я предполагаю, что мне нужно создать модель af с 2 свойствами (по одному для каждого объекта)?

Последнее на данный момент, если по какой-либо причине, например, метод Get из моего бизнес-уровня возвращает исключение, как это должно обрабатываться в моем контроллере / представлении?

Ответ №1:

Это зависит от сложности вашего приложения. Я бы, по крайней мере, ввел ViewModels для каждого представления, чтобы вы могли предоставить представлению требуемые данные. Если ваше приложение имеет небольшой вес, возможно, было бы неплохо использовать ваш бизнес-уровень в контроллере. Однако вы можете захотеть внедрить уровень обслуживания, который взаимодействует с вашим бизнес-уровнем, просто чтобы сохранить контроллеры тонкими.

Что касается обработки исключений, возможно, вам захочется изучить атрибут HandleError.

Комментарии:

1. Сложность варьируется от проекта к проекту — тот, что сейчас, довольно прост, поэтому я думаю, что выберу решение без нового уровня. Что такое ViewModel (теперь я понимаю, что такое модель, представление и контроллер — но ViewModel)?