powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Где должна находиться бизнес логика в MVC?
25 сообщений из 69, страница 1 из 3
Где должна находиться бизнес логика в MVC?
    #37960001
tercat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где должна находиться бизнес логика в MVC ну например вызов веб сервисов? В контролерах или в моделе? Одни говорят одно другие другое, помогите разобраться.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960050
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tercat2В контролерах или в моделе.

Можно и там и там.
Логика разносится по мере роста проекта.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960088
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторые и в представление гвозди забивают.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960110
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tercat2Где должна находиться... ну например вызов веб сервисов? Gateway (Шлюз)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960145
Eugene22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tercat2, преимущественно на контроллере, специфичную для модели логику можно закладывать в модель или промежуточные модели.
В любом случае делайте так, чтобы вам было удобнее и понятнее и затем проще было осуществлять поддержку и обновление приложения
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960170
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tercat2Где должна находиться бизнес логика в MVC ну например вызов веб сервисов? В контролерах или в моделе? Одни говорят одно другие другое, помогите разобраться.

MVC предполагает как можно больше логики зашить модель, всё что туда не влазиет в контролер
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960172
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene22специфичную для модели логику можно закладывать в модель или промежуточные моделиинтересная мысль :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960182
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene22преимущественно на контроллере
Это почему?
В идеале котроллер вообще не должен содержать бизнес логику, а только осуществлять интеракцию между моделью и представлением.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960191
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationMVC предполагает как можно больше логики зашить модель...На мой взгляд все MV-паттерны это предполагают.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960232
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонВ идеале котроллер вообще не должен содержать бизнес логику, а только осуществлять интеракцию между моделью и представлением.
В идеале, да.

http://ru.wikipedia.org/wiki/Model-View-Controller Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от её визуализации (представления, вида).
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960240
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Многие использую модель как маппинг БД-объектов, это не правильно. Модель (модель представления) - это отдельный класс, отвечающий именно за логику.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960345
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модель - это слой логики, который может содержать классы маппинга, сервисы, репозиторий etc.

авторМодель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960375
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМодель - это слой логики, который может содержать классы маппинга, сервисы, репозиторий etc.

авторМодель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.
Может, но это негибко и не правильно. Проблемы начинаются тогда, когда нужно расширить модель под представление. Править кодогенерированные прокси нельзя. Другая задача, когда представление использует несколько маппинговых классов и еще доп. логику. Без «модели представления» не обойтись.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960561
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДругая задача, когда представление использует несколько маппинговых классов и еще доп. логику. Без «модели представления» не обойтись.

Это да, но такая модель не часть бизнес логики, бо ее не получится использовать с другим типом UI.
Я бы назвал это - интерфейсные вспомогательные классы, и основная модель о них знать не должна, она вообще про UI не знает.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960578
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЭто да, но такая модель не часть бизнес логики, бо ее не получится использовать с другим типом UI.
Почему? Такие классы можно использовать в любом UI.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960638
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПочему? Такие классы можно использовать в любом UI.
Если другой UI идентичный первому. Эти классы обычно делаются под конкретное представление. (это про тупой ViewModel)
Я говорил про класс, который может содержать логику представления.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960708
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЕсли другой UI идентичный первому. Эти классы обычно делаются под конкретное представление. (это про тупой ViewModel)
Да, именно об этом и речь.

ПарамонЯ говорил про класс, который может содержать логику представления.
Почему нельзя заложить логику в модель представления ? По сути модель представления и является "моделью" в терминологии MVC. Вот логике там и место.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960740
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПо сути модель представления и является "моделью" в терминологии MVC. Вот логике там и место.
Само слово "модель" там путает, к "Domain model" ViewModel не относится.
Модель не должна зависеть от представления, в этом весь смысл модели.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960890
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУПо сути модель представления и является "моделью" в терминологии MVC. Вот логике там и место.
Само слово "модель" там путает, к "Domain model" ViewModel не относится.
Модель не должна зависеть от представления, в этом весь смысл модели.
Не правильно. Доменный объект представляет и реализует бизнес-логику программы. Модель представления - это как-раз доменный объект , а не доменная модель :)

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

То есть мы имеем слой предметной области (другими словами).
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960893
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМодель не должна зависеть от представления, в этом весь смысл модели.
Разумеется. И она не зависит от представления.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960916
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Русским языком модели представления .
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960985
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУреальный сотрудник может иметь фамилию, имя, отчество, пол, возраст (модель предметной области)

Это да
МСУcolor=red

Это может быть, но модель предметной области не может вернуть к примеру [style="color:red;"], в то время как модель представления - да может.

Веб сайт и мобильная аппликация могут иметь общую модель предметной области, но разные модели представления, бо у них разный UI, а к нему привязанны модели представления.
Model-View-ControllerРяд разработчиков специализируется только в одной из областей: либо разрабатывают графический интерфейс , либо разрабатывают бизнес-логику . Поэтому возможно добиться того, что программисты, занимающиеся разработкой бизнес-логики (модели), вообще не будут осведомлены о том, какое представление будет использоваться.
Модель представления в виде ViewModel - это просто типизация конкретного вью.

Model-View-ControlleВажно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления , ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления , а также создавать несколько различных представлений для одной модели.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960992
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРусским языком модели представления .
Мнение блогеров не совсем интересно но:
авторСамые внимательные уже наверно увидели сходство паттерна View Model с DTO (Data Transfer Object). И сходство действительно есть, причем значительное. И там, и там - проекции данных для передачи куда-то. Только, в отличие от DTO, которые могут передаваться как угодно далеко, хоть на деревню дедушке, View Model объекты передаются всего лишь по соседству в представление.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37960997
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРусским языком модели представления .

авторView Model - это реализация одноименного подхода (или паттерна) к передаче данных в представление, который используется не только в ASP.NET MVC, но и в других местах, например, в Silverlight или WPF. View Model отличается от Domain Model тем, что он предназначен не для представления предметной области, а лишь для передачи данных из контроллера в представление в удобной форме.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961002
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЭто может быть, но модель предметной области не может вернуть к примеру [style="color:red;"], в то время как модель представления - да может.
А не надо возвращать [style="color:red;"]. Сделай отдельное свойство типа Color и возвращай Color.Red. А в представлении конструируй нужный стиль на основе нормального типизированного члена модели представления. Не стоит настолько глубоко заколачиваться к представлению.
Тогда и UI, о котором ты говорил ранее, можно будет сменить.

ПарамонМодель представления в виде ViewModel - это просто типизация конкретного вью.
Модель представления в виде ViewModel - это модель со всеми вытекающими. Там место логике. В MVC в качестве модели многие подпихивают отображение БД, что не верно.

Итак, что имеем в ASP.NET MVC:

DAL (контекст / репозиторий) с автогенеренными отображениями объектов БД на классы (таблицы, вьюхи, хранимые процедуры, функции)

Контроллер. Тут всё понятно.

Представление. Тут всё понятно.

Модель. Она же DTO. Она же модель представления. Место для логики и прочим плюшкам. Может объединять в себе сложную логику с Master-Detail-Detail-...-Detail связками и прочее прочее. Те же Color свойства, да что угодно.

P.S. Не нужно путать автогенеренные классы контекста с моделью. Это разные вещи.
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Где должна находиться бизнес логика в MVC?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]