Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2018, 11:30   #1
oldsnowman
Участник клуба
 
Аватар для oldsnowman
 
Регистрация: 20.02.2015
Сообщений: 1,226
Вопрос C# MVVM где должна находиться логика приложения?

Я только начал изучать MVVM в C#.
У меня вопрос, где должна храниться логика приложения?
Во View располагается внешний вид приложения, во ViewModel находится взаимодействие вьюхи и модели, в Model находятся классы данных.
Вот в MVC, все понятно, внешний вид во вьюхе, класс работы с данными в модели, а в контроллере располагается логика взаимодействия данных и внешнего вида, там же и методы расчетов. В MVVM, я как-то запутался, где мне размещать логику(к примеру классы и методы пересчетов, и всяких расчетов). Вроде бы ViewModel - это для минимальной логики работы с View. Вот где размещать методы со сложными расчетами? в Model или ViewModel? И где вообще размещать технические классы которые высчитывают что-либо?
И можете скинуть проект на mvvm или ссылку для скачивание, где не простенький проект, а нормальный полный проект. Хочу разобраться, что к чему.
oldsnowman вне форума Ответить с цитированием
Старый 10.07.2018, 12:00   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Model это не просто данные, там и может. Еще часто бывают другие слои типа Service и т.п.

В контроллере в MVC как раз расчеты обычно не делают.

Ну и что значит "должна"? Надо понимать зачем вы что-то делаете, что вам это даст.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.07.2018, 12:52   #3
oldsnowman
Участник клуба
 
Аватар для oldsnowman
 
Регистрация: 20.02.2015
Сообщений: 1,226
По умолчанию

Цитата:
В контроллере в MVC как раз расчеты обычно не делают
Я делал, видимо не правильно делал...
Где тогда все-таки расчеты делать в Модели? Или Классы с расчетами вообще выносить в папку Common. Есть где про это почитать? а то везде простые примеры как биндить, а мне нужно больше инфы, и желательно на русском, но в данном случаи, и инглишем не побрезгую.
oldsnowman вне форума Ответить с цитированием
Старый 10.07.2018, 15:10   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так вы определитесь какую вы проблему решаете выносом куда-либо.

Например простые причины не делать расчеты в контроллерах могут быть такими:
  • Сложнее тестировать, придется делать запрос (если речь о HTTP) или как-то иначе имитировать инфраструктуру фреймворка нужную для вызова контроллера + может быть еще авторизация и т.п.
  • Нужно предоставить их где-то еще, придется копипастить
Цитата:
Сообщение от oldsnowman Посмотреть сообщение
а мне нужно больше инфы, и желательно на русском, но в данном случаи, и инглишем не побрезгую.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 10.07.2018 в 15:12.
Alex11223 вне форума Ответить с цитированием
Старый 11.07.2018, 08:51   #5
oldsnowman
Участник клуба
 
Аватар для oldsnowman
 
Регистрация: 20.02.2015
Сообщений: 1,226
По умолчанию

Alex11223, я так у гугла и спросил "Ну ка ГЮГль, скажи где ставить логику, и шоб быстро!", а он мне в ответ "Слющай, иди ка ты по тысячам фейковых ссылок, сц--ко!"
Alex11223, на твой взгляд, как поступить? Есть большущий класс с разными сложными расчетами. Мне его лучше в модель кинуть? А если модель другая будет, этот же класс в другую модель вставлять, или как?
oldsnowman вне форума Ответить с цитированием
Старый 11.07.2018, 10:32   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

хз где там фейковые, в основном стековерфлоу и другие подсайты, msdn.

MVVM, MVC и т.п. про GUI, они не описывают все остальное.
И никто нигде не говорит, что модель это просто тупые классы со свойствами.

Копипаста из первой попавшейся ссылки: "The Model encapsulates the business logic and data that is used by the application. The best way to think of the Model is everything that is not Presentation -- when using a layered application approach, it is everything below the presentation layer (which may include a business layer, service layer, data access layer, data storage layer, etc.)"

Еще на русском обсуждение про разные MVC: https://github.com/Hexlet/hexlet-sla...BD%D0%B8%D0%B9

А вообще про куда и что кидать, я ж сказал, в первую очередь зависит от решаемых проблем. Ну и всегда можно перекинуть
Не надо просто тупо следовать какому-то паттерну предложенному кем-то когда-то.
https://ru.wikipedia.org/wiki/%D0%9A...BB%D1%8C%D1%82

"модель другая будет" это как? Другое приложение что ли? Ну вместо копипаста может быть стоит выделить в библиотеку.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Архитектура приложения и MVVM Egoist42 Общие вопросы по программированию, компьютерный форум 1 25.08.2014 09:56
Где должны находиться координаты объекта который движется? pastuhdima Помощь студентам 2 03.11.2011 22:47
C#кнопка выход должна находиться в невидимом состоянии до 3 и после 5 кликов по картинкам jgosohbis Помощь студентам 2 30.09.2010 09:17
Определить где находиться курсор в ТстрингГрид IgorKr Компоненты Delphi 6 11.07.2008 00:48