веб-разработка - MVC и его ограничения - PullRequest
0 голосов
/ 01 июля 2011

MVC устанавливает четкое различие между моделью, представлением и контроллером.

Для модели, в настоящее время, веб-фреймворки предоставляют возможность отображать модель непосредственно в объекты базы данных (ORM), которые, IMHO, заканчиваютсявызывая проблемы производительности во время выполнения из-за прямого ввода-вывода базы данных.

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

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

Ответы [ 3 ]

2 голосов
/ 01 июля 2011

Какой у тебя вопрос?

Хорошо ли использовать прямой доступ к БД с веб-страниц?

A: Нет.

Это хорошая идея использовать ORM?

A: Дискуссия: см. Как создать веб-приложение на Java без ORM и без встроенного SQL

Это хорошая идея дляиспользовать модель MVC?

A: Да - это не имеет никакого отношения к «прямому» доступу к базе данных - речь идет об отделении логики вашего приложения от вашей модели и вашего дисплея.(Проще говоря).

И причина того, что логика базы данных не помещается в веб-страницы, не имеет ничего общего с производительностью - она ​​связана с безопасностью / обслуживаемостью и т. Д.ORM, но это плохо, потому что прирост производительности незначителен, а недостатки существенны.

Что касается обходного пути: если вы имеете в виду, как вы подключаете базу данных к веб-приложению ...?

Самый простой способ - использовать что-то вроде Entity Frameworks или Linq-Sql с вашей моделью - в учебниках в Интернете есть множество примеров этого.

Лучший метод IMO - это иметь отдельный уровень служб (который может быть основан на WCF) и иметь весь доступ к базе данных внутри него, при этом DTO передает данные в ваше веб-приложение, которое имеет егособственная ViewModel.

0 голосов
/ 01 июля 2011

Я думаю, что @BonyT дал хороший ответ (и я голосовал за него :)), я бы просто добавил это:

"веб-фреймворки предоставляют возможность сопоставлять модель напрямую объектам базы данных (ORM), что, IMHO, приводит к проблемам с производительностью во время выполнения из-за прямого ввода-вывода базы данных"

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

0 голосов
/ 01 июля 2011

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

Другая часть решения для хорошего масштабирования заключается в реализации кэширования в элементе управления и возможности распределения нагрузки по нескольким экземплярам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...