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

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

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

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

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

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

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

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

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

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

Это да
МСУcolor=red

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

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

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

авторView Model - это реализация одноименного подхода (или паттерна) к передаче данных в представление, который используется не только в ASP.NET MVC, но и в других местах, например, в Silverlight или WPF. View Model отличается от Domain Model тем, что он предназначен не для представления предметной области, а лишь для передачи данных из контроллера в представление в удобной форме.
...
Рейтинг: 0 / 0
17.09.2012, 18:38
    #37961002
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где должна находиться бизнес логика в MVC?
ПарамонЭто может быть, но модель предметной области не может вернуть к примеру [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
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Где должна находиться бизнес логика в MVC? / 25 сообщений из 69, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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