Вернуть модель просмотра напрямую из DAL для повышения производительности в MVC?

Шаблон, который я всегда вижу в MVC, состоит в том, чтобы загрузить модель домена (или хранилище) из базы данных, а затем сопоставить ее с моделью представления.

У меня есть вопрос по этому шаблону - когда у вас есть ситуация, когда модель представления содержит только несколько свойств из большого объекта модели домена. И поскольку это веб-сайт, который может получать большой трафик, кажется, что это не является окончательным решением с точки зрения производительности, это все равно что делать SELECT * FROM TABLEвместо того, чтобы просто выбрать необходимые столбцы.

Альтернатива, о которой я мог бы подумать, состоит в том, что DAL будет возвращать модель представления вместо модели предметной области, но я никогда не видел, чтобы подобный шаблон использовался ранее, это плохой шаблон для принятия? Есть ли другой шаблон? Или я должен просто игнорировать эту нагрузку при загрузке модели большого домена, хотя мне нужно только несколько свойств из нее?

1 ответ

Решение

Это действительно вопрос, основанный на мнении, но я был на конференции HighLoad++, где Марко Чеккони, один из разработчиков Stack Exchange, представил свою презентацию Stack Overflow - все дело в производительности!,

Как вы знаете, stackru был написан с использованием ASP.NET MVC, и Марко сказал, что SO-проект имеет простые запросы ADO прямо в контроллере. И они пишут это так из-за исполнения. С C# GC возникают проблемы, когда у вас много запросов и вы создаете много промежуточных объектов (модель DAL, модель BL, ViewModel и т. Д.).

Так что, если они делают это ради производительности, почему вы не можете сделать это?

Другие вопросы по тегам