Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
kol
24 / 10 / 5
Регистрация: 30.01.2015
Сообщений: 175
1

Архитектура сайта

11.06.2016, 21:19. Просмотров 352. Ответов 3
Метки нет (Все метки)

Задание тестовое. Предположим у нас есть две таблицы Потребители и Заказы. Наша задача при указание в строке браузера id(номер потребителя) вывести сумму его заказов, имя, и фамилия.
Создадим пустой проект, контроллер HomeController с функцией index, и в View шаблон index.cshtml. Концептуально правильным будет, если я правильно понял mvc, разместить эту функцию в model. Однако, poco классы, и DBContext я выношу в отдельный проект, к нему же прикручиваю EntityFramework. Этот проект компилируется в dll библиотеку. Дальше нам лишь надо указать ссылку(reference) к нами созданной dll. Дальше я решил достать наши таблицы уже из основного проекта, но при попытке, написать вроде db.Customers, выходит ошибка что отсутствует связь с EntityFramework, и его надо подключить.
Вопросов всего два:
1) как правильно организовать архитектуру, что бы наш класс не зависел от БД, ведь вместо MSSQL, может быть например, MySql.
2) Куда складывать функцию которая будет суммировать заказы?
3) Если функция суммирования заказов будет не в Models, то например какой функционал, или функции должны быть в Models?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2016, 21:19
Ответы с готовыми решениями:

Архитектура сайта на ASP
Господа, Подскажите наиболее выгодные стратегии для построения более-мение крупного сайта для...

Архитектура
Всем добрый вечер! Возник такой вопрос. Как лучше из одного класса получить данные другого класса....

Архитектура
Есть две библиотеки(EmployeeManagmentLibrary, DatabaseLibrary) DatabaseLibrary работает с классом...

Плагинная архитектура
Добрый день, поделитесь наработками, ресурсами, по теме, плиз.

3
kol
24 / 10 / 5
Регистрация: 30.01.2015
Сообщений: 175
13.06.2016, 20:58  [ТС] 2
Я совсем некорректно задал вопрос, да ещё и кучу ошибок наделал. Просто в голове начинает твориться каша, а я не могу найти внятную разжеванную информацию.
Мне необходим разделить Business layer(бизнес-логику) от Data Access layer(уровень доступа к данным). А именно DAL вынести в отдельный проект. Таким образом наш проект не будет зависеть от БД напрямую, в том числе и от EntityFramework, и в случае(хоть это и маловероятно) замены бд, нам не придется переписывать много кода. Может кто подсказать рабочий пример.
0
kol
24 / 10 / 5
Регистрация: 30.01.2015
Сообщений: 175
14.06.2016, 16:10  [ТС] 3
Функция которая вычисляет сумму всех заказов(сгруппированную по айди потребителя) лежит в репозитарии потребителей.
Вот так выглядит проект:
Архитектура сайта

Ну и сам проект(без дополнений)
0
Вложения
Тип файла: rar MyMvcApp.rar (5.67 Мб, 1 просмотров)
Cupko
521 / 501 / 138
Регистрация: 17.07.2012
Сообщений: 1,483
Записей в блоге: 1
Завершенные тесты: 2
14.06.2016, 17:19 4
1) Выносите все абстракции DALслоя в отдельную сборку/проект (интерфейсы репозиториев, DAO). Используете эту сборку в DAL и BL (Dependency Inversion Principle)
2) Оставляете интерфейсы в BL слое, и в BL слое работаете с данными через интерфейсы (Onion-архитектура)

Ну и IoC для резолва зависимостей.
0
14.06.2016, 17:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2016, 17:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

плагинная архитектура
здравствуйте. посоветуйте толковую книгу или ресурс (желательно на русском) по написанию...

Архитектура логирования
По всем правилам "хорошего тона" создания приложений добавление записей в журнал (логгирование)...

Архитектура графического компонента
C графикой вроде разобрался.Спасибо. Есть еще такой вопрос. По нажатию кнопки я добавляю этот...

Архитектура графического компонента
Всем привет. Делаю такой графический компонент (внизу) на С# WinForms. Как это всё нарисовать я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.