powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Где должна находиться бизнес логика в MVC?
69 сообщений из 69, показаны все 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
Где должна находиться бизнес логика в MVC?
    #37961019
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМодель. Она же DTO. Она же модель представления.

Это три совершенно разные вещи, причем у каждого своё предназначение. )

Сам ссылку дал :)
авторView Model отличается от Domain Model тем, что он предназначен не для представления предметной области, а лишь для передачи данных из контроллера в представление в удобной форме
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961024
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Место DTO - да в модели, либо делают отдельный слой.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961040
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУМодель. Она же DTO. Она же модель представления.

Это три совершенно разные вещи, причем у каждого своё предназначение. )
Это одно и тоже в концепции MVC.

ПарамонСам ссылку дал :)
авторView Model отличается от Domain Model тем, что он предназначен не для представления предметной области, а лишь для передачи данных из контроллера в представление в удобной форме
Ты опять меня не слушаешь и второй раз наступаешь на те же грабли :) Причем тут доменная модель ? Речь о доменном объекте . В концепции MVC: модель можно считать моделью представления == оно же DTO == оно же доменный объект.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961045
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MVC нет понятия модели представления. Эта абстракция позаимствована из MVVM. Чтобы было легко в будущем - используем вместо модели - модель представления. А в частном случае это будет одно и то же.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961050
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы опять меня не слушаешь и второй раз наступаешь на те же грабли :) Причем тут доменная модель? Речь о доменном объекте
Доменная модель кабэ содержит доменные объекты :)

МСУВ концепции MVC: модель можно считать моделью представления == оно же DTO == оно же доменный объект

В концепции MVC: шкаф не становится табуреткой :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961053
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУТы опять меня не слушаешь и второй раз наступаешь на те же грабли :) Причем тут доменная модель? Речь о доменном объекте
Доменная модель кабэ содержит доменные объекты :)
Вот именно, так причем тут какбэ модель представления? :) О ней речь.

ПарамонМСУВ концепции MVC: модель можно считать моделью представления == оно же DTO == оно же доменный объект

В концепции MVC: шкаф не становится табуреткой :)
Еще раз прочитай статью. Раз пять прочитаешь, начнешь понимать.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961068
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ концепции MVC: модель можно считать моделью представления == оно же DTO == оно же доменный объект.

конечно же нет модель это намного больше чем просто дэтэошка и больше чем просто конкретно взятый доменный объект

не надо спутывать понятия
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961075
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕще раз прочитай статью. Раз пять прочитаешь, начнешь понимать.

Тогда прокомментируй это:

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

ПарамонМСУЕще раз прочитай статью. Раз пять прочитаешь, начнешь понимать.

Тогда прокомментируй это:

авторView Model отличается от Domain Model тем, что он предназначен не для представления предметной области, а лишь для передачи данных из контроллера в представление в удобной форме
Еще раз, про доменную модель речи не идет. Сколько мне раз это нужно повторить? Модель представления и доменная модель - это как камень и гора.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961090
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМодель. Она же DTO. Она же модель представления.


МСУМодель представления и доменная модель - это как камень и гора.
Противоречие? :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961095
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алён'c анфан де ля Патрие.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961101
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУМодель. Она же DTO. Она же модель представления.


МСУМодель представления и доменная модель - это как камень и гора.
Противоречие? :)

нет :)

Модель <> Доменная модель
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961105
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе вижу принципиальных отличий. Ты видишь?
ы сам это придумал или вычитал где-то? DTO в общем случае не содержит да и не должно содержать никакой бизнес логики
МСУDTO - это точно такой же отвязанный слой. Модель представления - такой же отвязанный слой.
представление - это точно такой же отвязанный слой. DAL - такой же отвязанный слой. База данных - такой же отвязанный слой. Твоя тупая упёртость - это точно такой же отвязанный слой.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961114
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationМСУНе вижу принципиальных отличий. Ты видишь?
ы сам это придумал или вычитал где-то? DTO в общем случае не содержит да и не должно содержать никакой бизнес логики
DTO не должен содержать бизнес-логики, модель представления - может. Только в этом и отличие.
Для большинства случаем модель для представления также не содежит логики, тупой маппинг с БД. В чем тогда различие?
Для большинства случаев модель представления будет являться банальным DTO, о чем я и писал.

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

http://merle-amber.blogspot.com/2009/04/aspnet-mvc.html Самые внимательные уже наверно увидели сходство паттерна View Model с DTO (Data Transfer Object). И сходство действительно есть, причем значительное. И там, и там - проекции данных для передачи куда-то. Только, в отличие от DTO, которые могут передаваться как угодно далеко, хоть на деревню дедушке, View Model объекты передаются всего лишь по соседству в представление. Так что можете пользоваться этой аналогией, если вам так будет проще понять смысл View Model и его назначение.

Так что можешь потихоньку начинать убивать себя об стену, так же как и с Action.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961126
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУDTO не должен содержать бизнес-логики, модель представления - может. Только в этом и отличие.
это основное принципиальное отличие, тем более в разрезе этого топа.

МСУДля большинства случаем модель для представления также не содежит логики, тупой маппинг с БД. В чем тогда различие?
Для большинства случаев модель представления будет являться банальным DTO, о чем я и писал.
я думал ты программы пишешь, для HelloWord вообще нет смысла связыватся с MVC
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961127
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

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

http://merle-amber.blogspot.com/2009/04/aspnet-mvc.html Самые внимательные уже наверно увидели сходство паттерна View Model с DTO (Data Transfer Object). И сходство действительно есть, причем значительное. И там, и там - проекции данных для передачи куда-то. Только, в отличие от DTO, которые могут передаваться как угодно далеко, хоть на деревню дедушке, View Model объекты передаются всего лишь по соседству в представление. Так что можете пользоваться этой аналогией, если вам так будет проще понять смысл View Model и его назначение.

Это всего лишь частное упрощённое субъективное суждение блоггера


МСУТак что можешь потихоньку начинать убивать себя об стену, так же как и с Action.
Заканчивай уже рефлексировать по этому поводу=))
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961133
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationэто основное принципиальное отличие, тем более в разрезе этого топа.
Я про частные случаи, коих сплошь и рядом.

pationя думал ты программы пишешь, для HelloWord вообще нет смысла связыватся с MVC
Ситуации разные бывают. Я принципиально назвал модель представления = DTO, и ничего тут сверхужасного нет. Ты прицепился к словам и начал полемику про то, какое небо голубое.

ShSergeМСУ, Давай договоримся раз и навсегда. Таких придурков, типа тынц , чтобы здесь и не пахло. Понял?
1. Почему он "придурок", поясни? Человек свободными словами описывает своё понимание.
2. Почему запрещено давать ссылку на блог? Объясни.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961136
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationЭто всего лишь частное упрощённое субъективное суждение блоггера
Разумеется, и я с этим суждением солидарен. Ничего большего.

pationЗаканчивай уже рефлексировать по этому поводу=))
Это я так, чтоб к словам не цеплялся. А то начал менять троллить по DTO :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961139
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ про частные случаи, коих сплошь и рядом.
нельзя рассматривать общую концепцию в разрезе частных случаев
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961141
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationМСУЯ про частные случаи, коих сплошь и рядом.
нельзя рассматривать общую концепцию в разрезе частных случаев
Всё в мире относительно, можно и так, можно и эдак.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961207
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМодель <> Доменная модель
В MVC модель - это именно доменная модель.


ASP.NET MVC Overview

MicrosoftModels. Model objects are the parts of the application that implement the logic for the application s data domain
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961224
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУМодель <> Доменная модель
В MVC модель - это именно доменная модель.


ASP.NET MVC Overview

MicrosoftModels. Model objects are the parts of the application that implement the logic for the application s data domain

Тогда какую логику может содержать автогенеренный класс контекста? Никакую. Что и требовалось доказать.

А вот все модели представлений можно назвать доменной моделью.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961225
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо, смешали все - mvc, ddd, модели и вью-модели, dto и пр.
Mvc - шаблон реализации ui. Не имеет отношения он к домену. вообще. просто в простенькой хрени, то что в нем называется моделью, а по сути является моделью представления, можно посчитать и доменной моделью. все зависит от масштаба...
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961227
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУМодель <> Доменная модель
В MVC модель - это именно доменная модель.


ASP.NET MVC Overview

MicrosoftModels. Model objects are the parts of the application that implement the logic for the application s data domain
Во-вторых, я таки не увидел тут domain model.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961229
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вооще, домен несомненно это bl в самом чистом виде...
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961231
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeevА вооще, домен несомненно это bl в самом чистом виде...
Доменная модель, если говорить нормальным языком.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961242
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТогда какую логику может содержать автогенеренный класс контекста? Никакую. Что и требовалось доказать.

Автогенеренный класс расширяют - partial class или extensions methods. Можно использовать Service Layer.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961251
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУТогда какую логику может содержать автогенеренный класс контекста? Никакую. Что и требовалось доказать.

Автогенеренный класс расширяют - partial class или extensions methods. Можно использовать Service Layer.
Очень плохая практика. Особенно, когда при работе с БД дернешь свойство/метод кастомного частичного класса, а оно не сможет оттранслироваться в SQL. Получается, одни члены транслируются, другие нет, каша. Далее, возникают проблемы при транспорте такого класса куда-нибудь через сервис. Не все типы автогенеренного класса можно прогнать через SOAP, яркий тому пример тип Binary. Начинается мышиная возня, чтобы поменять в дизайнере контекса этот тип на массив байт. Половина кода из-за этого съедет. Через extensions methods это вообще песня - извращение размазывать логику по всему приложению. Service Layer тут вообще как кобыле пятое колесо.
Нормальный человеческий выход - использовать чистые нормальные классы под логику и не заниматься садомазохизмом с автогенеренными классами.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961270
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНормальный человеческий выход - использовать чистые нормальные классы под логику и не заниматься садомазохизмом с автогенеренными классами.
На самом деле в большинстве случаев так бывает, но это не - ViewModels а нормальные модели домейна, созданные из одного или нескольких классов. Те что содержат UI логику я отделяю.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961277
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУНормальный человеческий выход - использовать чистые нормальные классы под логику и не заниматься садомазохизмом с автогенеренными классами.
На самом деле в большинстве случаев так бывает, но это не - ViewModels а нормальные модели домейна , созданные из одного или нескольких классов.
Ну почему это не вьюмодели? Они готовятся под представление, там и оседают до лучших времен. Их всегда если что можно расширить, причем расширить чисто под вью, можно заколотить свойство типа твоего стися с красным колором и прочее. Это и есть вью-модель. Это и есть доменный объект с логикой. О чем я и тылдычу уже бытый час
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961301
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНу почему это не вьюмодели?
ViewModel это модель без логики, для типизации вью, в частности для вью состоящего из нескольких моделей.
Пример:
Код: c#
1.
2.
3.
4.
5.
6.
public class ViewModel
{
   public List<Model1> {get; set;}
   public List<Model2> {get; set;}
   public List<Model3> {get; set;}
}
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961309
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
типа )

Код: c#
1.
public List<Model1> ModelsList1  {get; set;}
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961310
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонViewModel это модель без логики, для типизации вью
Несусветные глупости.

http://msdn.microsoft.com/ru-ru/magazine/dd419663.aspx Если логика взаимодействия приложения находится в наборе классов модели представления, легко написать тестирующий ее код. В каком-то смысле представления и модульные тесты — разные типы потребителей модели представления. Набор тестов для модели представленияs приложения обеспечивает свободное и быстрое регрессионное тестирование, уменьшающее стоимость поддержки приложения в будущем.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961317
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПарамонViewModel это модель без логики, для типизации вью
Несусветные глупости.

http://msdn.microsoft.com/ru-ru/magazine/dd419663.aspx Если логика взаимодействия приложения находится в наборе классов модели представления, легко написать тестирующий ее код. В каком-то смысле представления и модульные тесты — разные типы потребителей модели представления. Набор тестов для модели представленияs приложения обеспечивает свободное и быстрое регрессионное тестирование, уменьшающее стоимость поддержки приложения в будущем.


Это - Приложения WPF с шаблоном проектирования модель-представление-модель представления.
Мы про MVC однако :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961320
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЭто - Приложения WPF с шаблоном проектирования модель-представление-модель представления.
Мы про MVC однако :)
Там речь о модели представления, однако мы о ней и говорим. В MVC нет понятия ViewModel, поэтому обращаемся к первоисточнику.
В модели представления априори должна быть логика. Назовем это "DTO", но только с логикой :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961333
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ MVC нет понятия ViewModel, поэтому обращаемся к первоисточнику.
Поэтому, это совсем не та ViewModel что в - MVVM.
Я уже давно наблюдаю желание, сделать MVVM из MVC :)
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961371
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУВ MVC нет понятия ViewModel, поэтому обращаемся к первоисточнику.
Поэтому, это совсем не та ViewModel что в - MVVM.
Это с какого перепугу она "не та"? Вью модель везде одна :)

ПарамонЯ уже давно наблюдаю желание, сделать MVVM из MVC :)
Не надо, MVC вполне самодостаточен и гениален. Просто чтоб было совсем вкусно, нужно раздетять дата-модель (кодогенерированный контекст) от доменной модели. И будет щастье.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961422
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть модель - доменный объект с простыми геттерами и сеттерами, который есть отображение строки в БД и который можно сериализовать

есть прокси-объект, DTO, который оперирует доменным объектом и в котором находится вся логика

имхо, так правильно
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961804
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. предположим, что к mvc-приложению, используемому как ui, нужно добавить десктопное приложение. что будет, если логика включена в модели представлений? Дублировать? а если еще и workflow заюзаны?
Чтобы этого не было и выносят ее в доменную модель по максимуму, плюс в некие сервисы еще. Все это дело потом выносится в отденые библиотеки классов. а само mvc-application - не более чем ui. По идее даже сквозная функциональнось, такая как валидация, должна делаться не там.
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961821
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонтипа )

Код: c#
1.
public List<Model1> ModelsList1  {get; set;}

ну вот типа, если мы добавим конструктор к этой модели, в котором будут листы создаваться, то получим уже ddd-подход и вынесем некую логику в модель. не так ли? И не удобнее ли это будет?
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37961984
Eugene22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то действительно все смешалось. View Model в MVC и ViewModel в MVVM - это совершенно разные понятия, не имеющие ничего общего. Смотрите соответствующий материал здесь - http://unmail22.narod.ru/Books/ASPNET_MVC3/3.4.html - из книги Галлоувея и т.д. по ASP NET MVC 3. там есть фраза:
обратите внимание, что в данном случае понятие "модель представления" ("view model") не имеет ничего общего с паттерном "Модель - Представление - Модель представления" ("Model View ViewModel", MVVM).
...
Рейтинг: 0 / 0
Где должна находиться бизнес логика в MVC?
    #37962112
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeev ну вот типа, если мы добавим конструктор к этой модели, в котором будут листы создаваться, то получим уже ddd-подход и вынесем некую логику в модель. не так ли? И не удобнее ли это будет?

А если будет еще несколько моделей, которые содержат такие же листы и еще пару других пропертей?
Дублирование кода не так ли?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class ViewModel1
{
   public List<Model1> ModelsList1  {get; set;}
   public List<Model2> ModelsList2  {get; set;}
   public List<Model3> ModelsList3  {get; set;}
   public decimal SomeValue {get;set;}
}

public class ViewModel2
{
   public string UserName {get; set;}
   public int Age {get; set;}
   public List<Model1> ModelsList1  {get; set;}
   public List<Model2> ModelsList2  {get; set;}
}
...
Рейтинг: 0 / 0
69 сообщений из 69, показаны все 3 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Где должна находиться бизнес логика в MVC?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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