powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как половчее управляться с ViewModel-ями?
216 сообщений из 216, показаны все 9 страниц
Как половчее управляться с ViewModel-ями?
    #39030448
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В прошлом проекте решил обойтись без них - в итоге сущности уровня БД превратились в какую-то невнятную кашу с полями помеченными [NotMapped] и прочая.. А во вьюхи местами передавались жуткие Tuple<>.

Так что решено - вьюмоделям быть.

Но сейчас решил отрефакторить свои 30 сущностей и чем дальше в лес...

Как правильней поступить?

Я в итоге сделал так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public abstract class _product
{
 //Тут всё определяется
}

public class productDB:_product{} //Этот класс "сидит в EF контексте"
public class productVM:_product
{

public productVM(productDB product)
 //Тут какие-то доп. поля, свойства, фукнции
}



Через наследование решил заморочить, чтобы не париться с "синхронизацией" полей между классами, обычно они нужны одинаковыми.
Это нормально? Смущает, что как-то дофига работы вылезло - кучу конструкторов создать, конвертеров из одного класса в другой...
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030453
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

Ужасно!

1. базовый класс для EF и для VM -- очень-очень-очень-очень-очень плохо
2. конструктор у VM -- плохо
3. пытаться равнять VM / EF-Entity -- плохо

что смущает в подходе независимых EF-Entity и VM ? которые друг о друге ничего не знают?

то, что оверхеда много? надо повторять поля там и там?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030464
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatique,

Ужасно!

1. базовый класс для EF и для VM -- очень-очень-очень-очень-очень плохо
2. конструктор у VM -- плохо
3. пытаться равнять VM / EF-Entity -- плохо

что смущает в подходе независимых EF-Entity и VM ? которые друг о друге ничего не знают?

то, что оверхеда много? надо повторять поля там и там?


1. Почему?
2. Почему? Гарантия того, что все поля у VM будут проиничены.
3. ??? Еще вчера сущность EF и являлась VM. А сегодня их равнять нельзя.

Наследование от абстрактного класса и единственный конструктор - даёт гарантию от того кейса, когда при добавлении одного поля - придётся носиться по всему коду - и искать - где я забыл проинитить новое поле.

Ну и то, что нужно вручную прописывать поля, да.. Они же реально должны быть одинаковыми, разве что в VM добавлена какая-то мишура для Вьюхи.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030476
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Monochromatique,


hVostt что смущает в подходе независимых EF-Entity и VM ? которые друг о друге ничего не знают?


Самый что не на есть правильный вариант! +1 к SOLID

hVostt то, что оверхеда много? надо повторять поля там и там?

Да нет уже такого оверхеда, как было раньше! Сейчас существует такое количество мапперов и Automapper'ов, что об оверхеде и речи вести не стоит! Так что вывод - "независимые Model и ViewModel - правильное решение!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030483
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Product
{
    // "Тут всё определяется"
}

public class ProductViewModel
{
    public Product Base;

    // "Тут какие-то доп. поля, свойства, фукнции"
}
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030484
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaДа нет уже такого оверхеда, как было раньше! Сейчас существует такое количество мапперов и Automapper'ов, что об оверхеде и речи вести не стоит! Так что вывод - "независимые Model и ViewModel - правильное решение!Чтобы при изменении структуры данных пришлось править её в двух местах без контроля компилятором? Решение для тех, кто любит боль и страдания.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030505
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Product
{
    // "Тут всё определяется"
}

public class ProductViewModel
{
    public Product Base;

    // "Тут какие-то доп. поля, свойства, фукнции"
}



Это лежит на поверхности, но не избавляет от необходимости повторять поля со всеми аннотациями. Не ссылаться же во вьюхах на модель ef, пусть и в составе vm. Да и архитектурно это решение выглядит странновато, типа vm для галочки.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030507
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaMonochromatique,


hVostt что смущает в подходе независимых EF-Entity и VM ? которые друг о друге ничего не знают?


Самый что не на есть правильный вариант! +1 к SOLID

hVostt то, что оверхеда много? надо повторять поля там и там?

Да нет уже такого оверхеда, как было раньше! Сейчас существует такое количество мапперов и Automapper'ов, что об оверхеде и речи вести не стоит! Так что вывод - "независимые Model и ViewModel - правильное решение!

Насколько я понимаю - мапперу все равно нужно задавать правила? Если так - то проще заюзать свой, ИМХО.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030509
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaMonochromatique,


hVostt что смущает в подходе независимых EF-Entity и VM ? которые друг о друге ничего не знают?


Самый что не на есть правильный вариант! +1 к SOLID



Так в случае наследования от единого абстрактного класса EF-entity и VM тоже ничего друг о друге "не знают".
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030512
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может быть еще и на входе контроллера собирать VM?? А не EF-Entity?

Как-то странно всё это выглядит.

Надо ваять кучу конвертеров, с ручным контролем. И как справедливо заметил Алексей - ошибки в рантайме - это вообще метатреш.

Может отделаться методами расширения к EF-сущности?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030513
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае использования отдельной VM придется использовать инит ВСЕХ полей, независимо от того - нужны они или нет. О ленивой загрузке от EF придется забыть. Тоже трешовенько.

Мне вообще может только название нужно, но я подтяну все связи вообще.

Сейчас методы расширения к EF кажутся самыми привлекательными.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030514
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueАлексей К
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Product
{
    // "Тут всё определяется"
}

public class ProductViewModel
{
    public Product Base;

    // "Тут какие-то доп. поля, свойства, фукнции"
}



Это лежит на поверхности, но не избавляет от необходимости повторять поля со всеми аннотациями.Инкапсуляция как раз и не требует дублирования структуры данных. А вот атрибуты на свойствах для View - это действительно создаёт проблемы, я бы не использовал их по этой причине.
MonochromatiqueНе ссылаться же во вьюхах на модель ef, пусть и в составе vm.Почему нет?
MonochromatiqueДа и архитектурно это решение выглядит странновато, типа vm для галочки.Нормально выглядит.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030713
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique1. Почему?

Жёсткая зависимость, которая будет неистово колотить по лбу всё время разработки.

Monochromatique2. Почему? Гарантия того, что все поля у VM будут проиничены.

Этого не нужно. А когда вдруг становится нужно, похоже пора заниматься рефакторингом. Вью-модели для ASP.NET MVC должны быть максимально тупые.

Monochromatique3. ??? Еще вчера сущность EF и являлась VM. А сегодня их равнять нельзя.

Никогда не являлась. Не было такого.

MonochromatiqueНаследование от абстрактного класса и единственный конструктор - даёт гарантию от того кейса, когда при добавлении одного поля - придётся носиться по всему коду - и искать - где я забыл проинитить новое поле.

Нет никакой гарантии. Что такое поле? Свойство класса? Ты слабо понимаешь что такое вью-модель. Например, одно поле ввода во вью-модели может разворачиваться в в итоге создание дополнительных объектов.

Если же ты делаешь тупой редактор базы данных (как phpMySql), а не бизнес-приложение, то возможно ты себе немного упростишь работу. Но ты определишь, что ты делаешь.

MonochromatiqueНу и то, что нужно вручную прописывать поля, да.. Они же реально должны быть одинаковыми, разве что в VM добавлена какая-то мишура для Вьюхи.

Странно всё это. Ну не делай вообще вью-моделей, тащи Entity из EF-контекса прям во вью. Получишь пару раз по лбу, тогда всё поймёшь. Видимо трудный путь обучения ты выбрал, через тернии
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030717
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueНасколько я понимаю - мапперу все равно нужно задавать правила? Если так - то проще заюзать свой, ИМХО.

Просто вью-модели понимаются не верно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030803
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueНасколько я понимаю - мапперу все равно нужно задавать правила? Если так - то проще заюзать свой, ИМХО.

Просто вью-модели понимаются не верно.

В WPF/SL/WP как-то понималось, а вот в ASP MVC - не понимается, ну да.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030811
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЭтого не нужно. А когда вдруг становится нужно, похоже пора заниматься рефакторингом. Вью-модели для ASP.NET MVC должны быть максимально тупые.

Не понимаю. Добавили в DBEntity еще одно поле. Также добавили его во вью-модель. Теперь надо обеспечить заполняемость этого поля во вью-модели.

В случае единственного конструктора - понятно что-делать - это пара нажатий.

В случае каких-то других способов создания - унылый отлов ошибок через runtime.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030815
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Никогда не являлась. Не было такого.

Я имею ввиду шаблоны и примеры из книг.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030819
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt тащи Entity из EF-контекса прям во вью. Получишь пару раз по лбу, тогда всё поймёшь.

А что получишь то? На поверхности только "сложность" кейса - когда к DBEntity нужны какая-то доп. информация.

А что еще?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030824
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueВ WPF/SL/WP как-то понималось, а вот в ASP MVC - не понимается, ну да.

Вью-модель ≠ entity.

При чём, «так набор полей же одинаааакавый» -- вообще какая-то глупость.

В entity свойство — это колонка в хранилище, обычно в БД. Колонка!

Во view model свойство — это информация для вывода или поле для ввода.

И они как по семантике, так и по использованию совершенно разные. Детский и наивных способ смотреть на вещи плоско, недалеко и не дальновидно. Чаще всего как раз ViewModel не имеет ничего общего с Entity из EF. По крайне мере в мире разразобки ПО для людей.

Если же вы делаете однобокое CRUD-приложение, аля редактор базы данных, то я даже не знаю как вам проблему свою решать
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030829
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueВ случае каких-то других способов создания - унылый отлов ошибок через runtime.

Бред какой-то. Добавил поле в базу -- это что автоматически означает, что появилось поле ввода во вью? Что за примитивную лабуду ты там делаешь?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030834
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueА что получишь то? На поверхности только "сложность" кейса - когда к DBEntity нужны какая-то доп. информация.

А что еще?

Пока не получишь, не узнаешь

Ладна ладна... Вью-модель отражает именно те данные ввода/вывода, которые нужны конкретно этой вью, а вью в свою очередь отражает именно ту бизнес-операцию, которая требуется.

Или ты тупо выводишь свои Entity и редактируешь их со всеми полями что есть? Что ты вообще делаешь? Может ну его нафик, хернёй страдать?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030871
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttаля редактор базы данных

В том или ином виде - любое приложение - редактор базы данных.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030872
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt Добавил поле в базу -- это что автоматически означает, что появилось поле ввода во вью?

В большинстве случаев - именно так. Я не в badoo работаю - мой кейс - унылый ентерпрайз.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030873
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiquehVosttаля редактор базы данных

В том или ином виде - любое приложение - редактор базы данных.
Но коментс
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030883
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttИли ты тупо выводишь свои Entity и редактируешь их со всеми полями что есть?

Ну зачастую, стараюсь, чтобы так и было. А что тебя так бомбит-то?

Часть полей прячется, часть добавляется (для информации).

Вот из-за этих добавляемых полей - и приходится делать выбор между трех огней.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39030895
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiquehVosttИли ты тупо выводишь свои Entity и редактируешь их со всеми полями что есть?

Ну зачастую, стараюсь, чтобы так и было. А что тебя так бомбит-то?

Часть полей прячется, часть добавляется (для информации).

Вот из-за этих добавляемых полей - и приходится делать выбор между трех огней.
Для этого существует понятие 'мягкое связывание', чтобы отвязать Presentation Layer от Data Access Layer.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39031692
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronКому-то выше пора в баню дня на три, очистить тело и душу, так сказать.Да, давайте-ка уберем накал страстей и переход на личности немедленно. Это предупреждение!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036031
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
интересно как решался вопрос когда надо во вью вытащить 2 таблицы из ef.


когда модель отделена от ef там понятно их "связь" происходит в контролере.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036036
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем Gинтересно как решался вопрос когда надо во вью вытащить 2 таблицы из ef.


когда модель отделена от ef там понятно их "связь" происходит в контролере.

JS на странице, дёргает 2 разных метода WebAPI и тащит данные для каждой таблицы, с фильтрами, сортировками, группировками, пейджингом. Вот так сейчас это решается, а не унылое запихивание во вью-модель кучи мусора, которую потом разгребать даже рука не поднимается.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036077
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАртем Gинтересно как решался вопрос когда надо во вью вытащить 2 таблицы из ef.


когда модель отделена от ef там понятно их "связь" происходит в контролере.

JS на странице, дёргает 2 разных метода WebAPI и тащит данные для каждой таблицы, с фильтрами, сортировками, группировками, пейджингом. Вот так сейчас это решается, а не унылое запихивание во вью-модель кучи мусора, которую потом разгребать даже рука не поднимается.

Ты сам-то придерживаешься своих же советов?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036078
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем Gинтересно как решался вопрос когда надо во вью вытащить 2 таблицы из ef.


когда модель отделена от ef там понятно их "связь" происходит в контролере.

Если надо вывести что-то, что не относится к VM - используй ViewBag.

Уж всяко проще, чем срываться в WebApi c яваскриптом.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036099
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttJS на странице, дёргает 2 разных метода WebAPI и тащит данные для каждой таблицы, с фильтрами, сортировками, группировками, пейджингом. Вот так сейчас это решается, а не унылое запихивание во вью-модель кучи мусора, которую потом разгребать даже рука не поднимается.
вот я б не стал бы категорично говорить, конкретный случай надо рассматривать + имхо дело вкуса никто не скажет что вот так правильно и только так.

MonochromatiqueЕсли надо вывести что-то, что не относится к VM - используй ViewBag.

vm это уже представление и я не понимаю почему ж оно не относится к нему. вы ж не домен прокидываете в представление или даже не энтити, если модель простая то конечно оно подойдет. я видел проект кищащий ViewBag и в одном экшне где то устанавливалось и потом выплевывалось в какой то паршил вью, это было ужас тихий, да и тестировать эту байду забавно - надо знать что там где то есть не типизированный ViewBag..я понимаю что там ящик пива и вечер решают вопрос, но так и печень можно посадить)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036113
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiquehVosttпропущено...


JS на странице, дёргает 2 разных метода WebAPI и тащит данные для каждой таблицы, с фильтрами, сортировками, группировками, пейджингом. Вот так сейчас это решается, а не унылое запихивание во вью-модель кучи мусора, которую потом разгребать даже рука не поднимается.

Ты сам-то придерживаешься своих же советов?нормальный совет...

Есть у тебя на странице два календаря: дата прямого перелета, дата обратного, - как при их пролистывании предлагаешь подтягивать информацию о квотах и отображать в ячейках дней?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036640
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuвот я б не стал бы категорично говорить, конкретный случай надо рассматривать + имхо дело вкуса никто не скажет что вот так правильно и только так.

ну незнай. чувак говорит про 2 таблицы, типа 2 разные таблицы, 2 разные модели. значит они слабо связаны. можно конечно затолкать в одно вьюху, но что делать, если понадобится обновить только одну? щас ведь так веб устроен, за постбеки с обновлением всей страницы чуть ли не морду бьют.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036643
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatiqueиспользуй ViewBag

расстрелять!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036672
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueиспользуй ViewBag

расстрелять!

Ах так...
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036682
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueиспользуй ViewBag

расстрелять!

hVosttА в чём ты видишь проблему? Я проблемы не вижу. Вьюбэг универсален. Но никто не заставляет, можешь во вью-модель впихнуть.

И нашим и вашим за рупь спляшем?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036694
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueИ нашим и вашим за рупь спляшем?

это не имеет значения, за использование вьюбэга -- расстрел, ето закон! а так да, если есть молоток, почему бы и не выстрелить им в ногу? это нормально.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036858
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MonochromatiqueАртем Gинтересно как решался вопрос когда надо во вью вытащить 2 таблицы из ef.


когда модель отделена от ef там понятно их "связь" происходит в контролере.

Если надо вывести что-то, что не относится к VM - используй ViewBag.

Уж всяко проще, чем срываться в WebApi c яваскриптом.

Можете подилиться примером на примере 2х EF таблиц: 1) OrderHeader 2) OrderDetails.

Задача: Нужно вывести обе в одной вьюхе.

Хотелось бы увидеть что в моделе и контролере...

Заранее спасибо.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036863
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GMonochromatiqueпропущено...


Если надо вывести что-то, что не относится к VM - используй ViewBag.

Уж всяко проще, чем срываться в WebApi c яваскриптом.

Можете подилиться примером на примере 2х EF таблиц: 1) OrderHeader 2) OrderDetails.

Задача: Нужно вывести обе в одной вьюхе.

Хотелось бы увидеть что в моделе и контролере...

Заранее спасибо.

O_O

Да уж в этом от примере Бог хотел и нам велел заюзать orderVM
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036864
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MonochromatiqueАртем Gпропущено...


Можете подилиться примером на примере 2х EF таблиц: 1) OrderHeader 2) OrderDetails.

Задача: Нужно вывести обе в одной вьюхе.

Хотелось бы увидеть что в моделе и контролере...

Заранее спасибо.

O_O

Да уж в этом от примере Бог хотел и нам велел заюзать orderVM

Ну так да,

вы тут о другом спорите?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036866
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем Gвы тут о другом спорите?

Ты внимания не обращай.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036873
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GХотелось бы увидеть что в моделе и контролере...

Код: c#
1.
2.
3.
4.
5.
public class OrderViewModel
{
    public OrderHeaderViewModel Header {get;set;}
    public OrderDetailsViewModel Details {get;set;}
}



и в чём проблемы-то?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39036879
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

или другой путь, предпочтительнее:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<div class="order">

   <div class="order-header">
         Ето номер заказа вот такой: @Model.Numer
         ...
   </div>

    <h3>Типа детали заказа:</h3>
    <div class="order-details">
         @Html.Action("Details", "Order", new { Model.Id})
    </div>
</div>



и не надо пихать во вью-модель две модели, каждая само по себе. и всё в одном запросе. разделяй блин, и влавствуй, слыхал о таком? сам Юлий Цезарь о таком говорил! это ещё до всяких сишарпов, прям как знал, что вопросы появятся
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037187
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну незнай. чувак говорит про 2 таблицы, типа 2 разные таблицы, 2 разные модели. значит они слабо связаны. можно конечно затолкать в одно вьюху, но что делать, если понадобится обновить только одну? щас ведь так веб устроен, за постбеки с обновлением всей страницы чуть ли не морду бьют.
согласен что надо с аяксом в твоем примере. но я хз мож лишнюю работу делаю, первый рендеринг стараюсь делать средствами асп, а потом обновление аяксом если надо, но конечно все зависит от задачи, можно и тому же ангуляру дать порисовать)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037234
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАртем GХотелось бы увидеть что в моделе и контролере...

Код: c#
1.
2.
3.
4.
5.
public class OrderViewModel
{
    public OrderHeaderViewModel Header {get;set;}
    public OrderDetailsViewModel Details {get;set;}
}



и в чём проблемы-то?Из-за обилия готовых паттернов, которые постоянно навязываются различными евангелистами, люди перестали иметь собственное мнение, основанное на базовых принципах ООП. Вот тебе типичный пример, а ты не верил. :-)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037369
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

что интересно - есть шапкаЗаказа, ДеталиЗаказа, а самого Заказа нет :)
ишаку ясно, что никакая шапка или никакие детали никакой вьюмодель не могут иметь, так как их без Заказ просто нет
а вот Заказу положено иметь вьюмоделей (представлений) столько сколько есть потребность, так как Заказ только и является модельным примитивом
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037370
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никакие это не паттерны, а лабуда голимая, профанация
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037374
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все слова уже испоганили, каждое УГ теперь называется "модель", тьььфу
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037437
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИз-за обилия готовых паттернов, которые постоянно навязываются различными евангелистами, люди перестали иметь собственное мнение, основанное на базовых принципах ООП. Вот тебе типичный пример, а ты не верил. :-)

Это как раз тебе пример того, как человек ищет готовые решения, обучается, двигается вперёд. А ты всё топчешься на одном месте со своими убеждениями. А когда заболеешь, ходи лучше к знахаркам, а не к дипломированным врачам, чо они умных из себя строют, начитались книжек, далдоны, понимаешь.

Ты старческим маразмом не заболел случайно? ))
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037441
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсе слова уже испоганили, каждое УГ теперь называется "модель", тьььфу

Вообще-то вью-модель :) Правильнее было бы говорить View DTO.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037506
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КИз-за обилия готовых паттернов, которые постоянно навязываются различными евангелистами, люди перестали иметь собственное мнение, основанное на базовых принципах ООП. Вот тебе типичный пример, а ты не верил. :-)

Это как раз тебе пример того, как человек ищет готовые решенияВ поисках готовых решений люди разучились писать программы. Эта проблема, как мне показалось, началась со времён Delphi, девиз которого: "где мне взять готовый компонентов", в котором разработка собственных компонентов удел избранных.
hVostt, обучается, двигается вперёд.Это движение назад.
hVosttА когда заболеешь, ходи лучше к знахаркам, а не к дипломированным врачам, чо они умных из себя строют, начитались книжек, далдоны, понимаешь. Давно не встречал качественных статей, из которых можно извлечь что-то новое и полезное.
hVosttТы старческим маразмом не заболел случайно? ))Не знаю, со стороны виднее. :-)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037597
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КДавно не встречал качественных статей, из которых можно извлечь что-то новое и полезное.А чем интересуешься? Какими направлениями, практиками, подходами?

Я вот регулярно натыкаюсь на полезные статьи :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037608
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей КДавно не встречал качественных статей, из которых можно извлечь что-то новое и полезное.А чем интересуешься? Какими направлениями, практиками, подходами?

Я вот регулярно натыкаюсь на полезные статьи :)
Тогда вот почитай.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037640
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ поисках готовых решений люди разучились писать программы. Эта проблема, как мне показалось, началась со времён Delphi, девиз которого: "где мне взять готовый компонентов", в котором разработка собственных компонентов удел избранных.

И какие же конкретно люди разучились писать программы? Ты знаешь таких? Которые раньше умели, а потом разучились? Сколько их? Кто они? Чем они щас занимаются, раз не пишут программы? Давай обсудим это.

Как можно было шаблон проектирования спутать с компонентом? Это первое.

Второе, изначально программирование пропагандирует идею: сделай один раз, используй много раз. Ты что же, предлагаешь отказаться от этой тупой идеи, ведь писать всегда всё с нуля, забив на компоненты, на практики и шаблоны проектирования ээ.. интересней? Платят больше? Что? Почему? Твой удел каждый день изобретать велосипеды?

Сколько читаю твоё бесконечное брюзжание, но ни сути, ни смысла не вижу. Ты чем-то явно недоволен. А чем конкретно, не ясно. Может тебе просто найти собутыльника, напиться и излить ему душу?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037645
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КДавно не встречал качественных статей, из которых можно извлечь что-то новое и полезное.

А ты попробуй книжку купить. Я вот приобрёл недавно книжку http://www.piter.com/product?product_id=39684273 Сергея Теплякова. Очень толковая книга, годная. И другие книги периодически покупаю в эл. виде, многие на английском. А ты где ищешь статьи? Уж не говори, что на хабре, нахалявку?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037663
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, может проблема в этом:

автор
Большинство разработчиков ПО склоняются к мысли, что паттерны проектиро-
вания — вещь интересная, но далеко не всегда полезная. Почему так вышло?
Когда молодой разработчик сталкивается с новым инструментом, он изо всех
сил старается воспользоваться им по максимуму. В результате инструмент про-
ходит определенные стадии развития, которые для паттернов проектирования
выглядят так.

1. Ух ты, ух ты, ух ты! Я узнал, что такое паттерны! Класс! Когда и где я смогу ими
воспользоваться?

2. Ух ты! Я отрефакторил1 старый код и вместо десяти строк кода воспользовался
семью паттернами! Вот как здорово!

3. Ух ты. Ну, паттерны — это классная штука, но через пару месяцев сделанный
мной рефакторинг не кажется таким уж полезным. Что-то я и сам начал путать-
ся со всеми этими абстрактными фасадированными декораторами, завернуты-
ми в синглтон.

4. Паттерны — это хорошо, но нужно отталкиваться не от них, а от решаемой за-
дачи и, уже исходя из проблемы, выбирать подходящие решения. Паттерны — хо-
рошо, но своя голова лучше!



Из книги про паттерны программирования.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037665
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей, может проблема в этом:

авторБольшинство разработчиков ПО склоняются к мысли, что паттерны проектиро-
вания — вещь интересная, но далеко не всегда полезная. Почему так вышло?
Когда молодой разработчик сталкивается с новым инструментом, он изо всех
сил старается воспользоваться им по максимуму. В результате инструмент про-
ходит определенные стадии развития, которые для паттернов проектирования
выглядят так.

1. Ух ты, ух ты, ух ты! Я узнал, что такое паттерны! Класс! Когда и где я смогу ими
воспользоваться?

2. Ух ты! Я отрефакторил1 старый код и вместо десяти строк кода воспользовался
семью паттернами! Вот как здорово!

3. Ух ты. Ну, паттерны — это классная штука, но через пару месяцев сделанный
мной рефакторинг не кажется таким уж полезным. Что-то я и сам начал путать-
ся со всеми этими абстрактными фасадированными декораторами, завернуты-
ми в синглтон.

4. Паттерны — это хорошо, но нужно отталкиваться не от них, а от решаемой за-
дачи и, уже исходя из проблемы, выбирать подходящие решения. Паттерны — хо-
рошо, но своя голова лучше!



Из книги про паттерны программирования.
Ты сейчас на какой стадии находишься? :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037691
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КДавно не встречал качественных статей, из которых можно извлечь что-то новое и полезное.

А ты попробуй книжку купить. Я вот приобрёл недавно книжку http://www.piter.com/product?product_id=39684273 Сергея Теплякова. Очень толковая книга, годная. И другие книги периодически покупаю в эл. виде, многие на английском. А ты где ищешь статьи? Уж не говори, что на хабре, нахалявку? Ну и что тут такого? Пишет нормально, но для меня ничего нового.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037692
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей, может проблема в этом:

авторБольшинство разработчиков ПО склоняются к мысли, что паттерны проектиро-
вания — вещь интересная, но далеко не всегда полезная. Почему так вышло?
Когда молодой разработчик сталкивается с новым инструментом, он изо всех
сил старается воспользоваться им по максимуму. В результате инструмент про-
ходит определенные стадии развития, которые для паттернов проектирования
выглядят так.

1. Ух ты, ух ты, ух ты! Я узнал, что такое паттерны! Класс! Когда и где я смогу ими
воспользоваться?

2. Ух ты! Я отрефакторил1 старый код и вместо десяти строк кода воспользовался
семью паттернами! Вот как здорово!

3. Ух ты. Ну, паттерны — это классная штука, но через пару месяцев сделанный
мной рефакторинг не кажется таким уж полезным. Что-то я и сам начал путать-
ся со всеми этими абстрактными фасадированными декораторами, завернуты-
ми в синглтон.

4. Паттерны — это хорошо, но нужно отталкиваться не от них, а от решаемой за-
дачи и, уже исходя из проблемы, выбирать подходящие решения. Паттерны — хо-
рошо, но своя голова лучше!



Из книги про паттерны программирования.Ну я тебе про 4-й пункт и говорю.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037695
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу я тебе про 4-й пункт и говорю.
А hVostt пока где-то между 1-м м 3-м заблудился :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037706
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу я тебе про 4-й пункт и говорю.

Так ты на 4-ом пункте похоже и застрял, ведь есть и продолжение
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037708
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronА hVostt пока где-то между 1-м м 3-м заблудился :)

Ой, а чой-то ты вмешиваешься в чужой разговор? Или в своём глазу бревна уже не замечаем?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037709
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronТы сейчас на какой стадии находишься? :)

Я достиг просветления
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037710
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronА hVostt пока где-то между 1-м м 3-м заблудился :)

Ой, а чой-то ты вмешиваешься в чужой разговор? Или в своём глазу бревна уже не замечаем?
Здесь не частный разговор, а публичное место (C hVostt)!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037711
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronТы сейчас на какой стадии находишься? :)

Я достиг просветления
В смысле? Уже оклемался после вчерашнего злоупотребления?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037731
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronЗдесь не частный разговор, а публичное место (C hVostt)!

Мда.. тяжёлый случай
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037733
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronЗдесь не частный разговор, а публичное место (C hVostt)!

Мда.. тяжёлый случай
Аргементируй
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037734
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronВ смысле? Уже оклемался после вчерашнего злоупотребления?

Сначала надо слетать в прошлое и злоупотребить, чтобы ответить на этот вопрос
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037737
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronВ смысле? Уже оклемался после вчерашнего злоупотребления?

Сначала надо слетать в прошлое и злоупотребить, чтобы ответить на этот вопрос
Не знаю, по-моему вас с Аной колбасило не по-детски :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037740
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronАргементируй

Ты ж вот вчера тока меня упрекал, что типа я вмешиваюсь в разговор, а сам на следующий день так же делаешь. Я-то свою позицию объяснил, а ты чего моей прикрываешься?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037741
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronНе знаю, по-моему вас с Аной колбасило не по-детски :)

Типа запалили, что ты фигню городишь? ))) Ну да, ну да ))))
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037744
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronНе знаю, по-моему вас с Аной колбасило не по-детски :)

Типа запалили, что ты фигню городишь? ))) Ну да, ну да ))))
Один раз всего - потом требовали признать, что один раз из 10 я сморозил чушь. А то что Ана 3 страницы перед этим морозил - это норма :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037748
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronОдин раз всего - потом требовали признать, что один раз из 10 я сморозил чушь. А то что Ана 3 страницы перед этим морозил - это норма :)

Я вообще не понял о чём вы трепались, так что хз. Мне был интересен технический аспект, а там кот наплакал.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037750
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЯ вообще не понял о чём вы трепались, так что хз. Мне был интересен технический аспект, а там кот наплакал.
Так я и говорю, что ты влез в наш разговор, так и не поняв о чем там речь. Просто вклинился с тем, почему медленно сайт грузится. Да ясен пень почему. Я был не совсем трезв, чтобы сразу объяснить почему.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037751
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМне был интересен технический аспект, а там кот наплакал.
Технический аспект чего?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037775
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronТак я и говорю, что ты влез в наш разговор, так и не поняв о чем там речь. Просто вклинился с тем, почему медленно сайт грузится. Да ясен пень почему. Я был не совсем трезв, чтобы сразу объяснить почему.

Да ты и сейчас не сможешь объяснить Вот кто бухой был оказывается, а ещё с больной головы на здоровую перекладываешь. Хорош, хорош...
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037776
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronhVosttМне был интересен технический аспект, а там кот наплакал.
Технический аспект чего?

Технический аспект обсуждения. Я не знаю с какого перепугу ты решил, что знаешь о чём думают инвесторы, но наезд на сайт изначально был глупый, бестолковый, неумный, и не аргументированный. Ну а я надеялся на аргументацию, но получил какой-то лепет.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037782
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronТак я и говорю, что ты влез в наш разговор, так и не поняв о чем там речь. Просто вклинился с тем, почему медленно сайт грузится. Да ясен пень почему. Я был не совсем трезв, чтобы сразу объяснить почему.

Да ты и сейчас не сможешь объяснить Вот кто бухой был оказывается, а ещё с больной головы на здоровую перекладываешь. Хорош, хорош...
Сейчас могу - пока еще на работе, но не буду. Все равно не поймешь. У тебя одни паттерны в голове жеж!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037783
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТехнический аспект обсуждения. Я не знаю с какого перепугу ты решил, что знаешь о чём думают инвесторы, но наезд на сайт изначально был глупый, бестолковый, неумный, и не аргументированный.
Тише, тише, не буянь. Ты что инвестированием занимаешься, чтобы это утверждать?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037802
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronСейчас могу - пока еще на работе, но не буду. Все равно не поймешь. У тебя одни паттерны в голове жеж!

Какие-то жидкие отмазики... Только подтверждает твою необразованность :)

AxeleronТише, тише, не буянь. Ты что инвестированием занимаешься, чтобы это утверждать?

А надо ли заниматься инвестированием, чтобы понять твои очевидные заблуждения?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037871
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКакие-то жидкие отмазики... Только подтверждает твою необразованность :)
Твои предположения - это твои же проблемы по Фрейду )))

hVosttА надо ли заниматься инвестированием, чтобы понять твои очевидные заблуждения?
Какие именно?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037874
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Вот ты ни фига абсолютно в сфере инвестирования не понимаешь. И зачем ты споришь? Ты думаешь, это тебя сделает теб умнее? А про сайть их - да, он говно. Или ты считаешь его образцом сайтостроения в РФ?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037876
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, и еще пойми одну важную вещь. Твои дезайн паттерны никому не нужны кроме тебя самого, если сайт, который ты разрабатываешь - УГ. Немного грубо, но правда.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037907
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronТвои предположения - это твои же проблемы по Фрейду )))

Напомни мне, эт с какого момента твои детские отмазы стали моими проблемами? Я такого чот не помню. И дядьку Фрейда зачем приплёл? Умнее от этого всё равно не выглядишь

AxeleronКакие именно?

Твои заблуждения насчёт того, что твои антисимпатии к какому-то сайту говорят об уровне заинтересованности каких-то там инвесторов, которых ты в глаза не видел, и не увидишь в своей жизни никогда. Фантазёр
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037910
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Ты бредишь, иди спать - раз выпил :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037917
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronhVostt,
Вот ты ни фига абсолютно в сфере инвестирования не понимаешь. И зачем ты споришь? Ты думаешь, это тебя сделает теб умнее? А про сайть их - да, он говно. Или ты считаешь его образцом сайтостроения в РФ?

Я чёт до сих пор не вижу аргументов в пользу «говно». Ещё раз, либ ты тупая бландинка, публично оценивающая предметы по своему настроению, или даёшь вменяемую аргументацию, как разумный человек.

AxeleronhVostt, и еще пойми одну важную вещь. Твои дезайн паттерны никому не нужны кроме тебя самого, если сайт, который ты разрабатываешь - УГ. Немного грубо, но правда.

Ну и кто УГ-шность будет оценивать? Бландинка Axeleron? Нравится-ненравится, спи моя красавица
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037919
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronhVostt,
Ты бредишь, иди спать - раз выпил :)

Ясно, по существу в очередной раз ответить нечем. Всё понятно, чё.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037921
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronhVostt,
Вот ты ни фига абсолютно в сфере инвестирования не понимаешь. И зачем ты споришь? Ты думаешь, это тебя сделает теб умнее? А про сайть их - да, он говно. Или ты считаешь его образцом сайтостроения в РФ?

Я чёт до сих пор не вижу аргументов в пользу «говно». Ещё раз, либ ты тупая бландинка, публично оценивающая предметы по своему настроению, или даёшь вменяемую аргументацию, как разумный человек.

AxeleronhVostt, и еще пойми одну важную вещь. Твои дезайн паттерны никому не нужны кроме тебя самого, если сайт, который ты разрабатываешь - УГ. Немного грубо, но правда.

Ну и кто УГ-шность будет оценивать? Бландинка Axeleron? Нравится-ненравится, спи моя красавица
Сайт - говно, если ты этого не видишь, я тебе ничем не могу помочь. Иди изучай дезайн паттерны свои - может быть поможет быть
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037922
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, и не тупи. Глупо выглядишь. Если для тебя из сайт - это эталон, я тебе очень сочувствую. Если ты не понимаешь элементарных вещей, например, как должен выглядеть корпоративный веб сайт. Наверное, ты коленные поделки только клепаешь, но в чем я то виноват? Сам виноват...
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037923
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronСайт - говно, если ты этого не видишь, я тебе ничем не могу помочь.

Не вижу. А ты действительно ничем не можешь помочь, по причине неспособности выдать хоть одну умную мысль кроме школярского "сайт - говно". Уныло как-то.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037924
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronСайт - говно, если ты этого не видишь, я тебе ничем не могу помочь.

Не вижу. А ты действительно ничем не можешь помочь, по причине неспособности выдать хоть одну умную мысль кроме школярского "сайт - говно". Уныло как-то.
См выше.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037925
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronhVostt, и не тупи. Глупо выглядишь. Если для тебя из сайт - это эталон, я тебе очень сочувствую. Если ты не понимаешь элементарных вещей, например, как должен выглядеть корпоративный веб сайт. Наверное, ты коленные поделки только клепаешь, но в чем я то виноват? Сам виноват...

У меня ощущение, что Незнайку с тебя писали.
Лан, всё. Твой тупняй надоел, будь здоров!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037926
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronhVostt, и не тупи. Глупо выглядишь. Если для тебя из сайт - это эталон, я тебе очень сочувствую. Если ты не понимаешь элементарных вещей, например, как должен выглядеть корпоративный веб сайт. Наверное, ты коленные поделки только клепаешь, но в чем я то виноват? Сам виноват...

У меня ощущение, что Незнайку с тебя писали.
Лан, всё. Твой тупняй надоел, будь здоров!
Если ты туп и слеп, я не виноват. Если для тебя сайт Нанотех - это эталон корпоративного сайта, это твои проблемы, и ты просто не знаешь как это в мире делается. Живи в своем колхозе и наслаждайся запохом дезодоранта - запахом навоза, ведь другого ты не знаешь, увы...
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037927
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronЕсли ты туп и слеп, я не виноват. Если для тебя сайт Нанотех - это эталон корпоративного сайта, это твои проблемы, и ты просто не знаешь как это в мире делается. Живи в своем колхозе и наслаждайся запохом дезодоранта - запахом навоза, ведь другого ты не знаешь, увы...

блондиночка, успокойся уже, иди спать.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037928
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronЕсли ты туп и слеп, я не виноват. Если для тебя сайт Нанотех - это эталон корпоративного сайта, это твои проблемы, и ты просто не знаешь как это в мире делается. Живи в своем колхозе и наслаждайся запохом дезодоранта - запахом навоза, ведь другого ты не знаешь, увы...

блондиночка, успокойся уже, иди спать.
Блондинко - это ты, судя по твоим высказываниям и интелекту :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037930
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Успагойся уже, ну ноль ты в инвестировании и понимании как должен корпоративный сайт выглядеть. Что ты так завелся? Признай факт и спи спокойно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037931
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronhVostt,
Успагойся уже, ну ноль ты в инвестировании и понимании как должен корпоративный сайт выглядеть. Что ты так завелся? Признай факт и спи спокойно.

угу, ты главное не забудь обсудить это со своими подруженциями, когда пойдёшь на маникюр
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037934
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleronhVostt,
Успагойся уже, ну ноль ты в инвестировании и понимании как должен корпоративный сайт выглядеть. Что ты так завелся? Признай факт и спи спокойно.

угу, ты главное не забудь обсудить это со своими подруженциями, когда пойдёшь на маникюр
Я маникюр не делаю, но ты знаешь что это и что такое педикюр - тоже. Так что иди спать, девчока, и не хнычь - раз по конкретике вопроса сказать нечего :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037935
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, а то очень тупо выглядишь. Скучно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037944
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

это ты че то уперся
вот сайт сбера фиговый, но я инвестировал в баксовый кошелек сбера и в начале года снял 2 лимона как с куста, тут же добавил 6 из хеджа и купил квартиру
сайт пытался мешать но не смог :):):)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037946
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в инвестициях главное - уметь ждать :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037948
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosв инвестициях главное - уметь ждать :)
Тут речь о двух персонажах, которых я уважаю как ИТ специалистов (Аннушка и Хвостун), но которые упорото борются со мной по части понимания инвестиций :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037949
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвот сайт сбера фиговый, но я инвестировал в баксовый кошелек сбера и в начале года снял 2 лимона как с куста, тут же добавил 6 из хеджа и купил квартиру
Небось в баксах держал спиртовал годами? :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037955
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

почему годами? ну 2 года лежали
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037956
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бум говорить не лежали, а просто излишек от зп ежемесячно туда скидовал :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037957
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosAxeleron,

почему годами? ну 2 года лежали
Уже не плохо. Но... Ты знал! :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037958
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
110 % чистой прибыли, как уж сбер противился их обналичить :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037959
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я и счас знаю, но свободных денег мало, а на "мало" не люблю играть, слишком азарт большой становится
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037960
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos110 % чистой прибыли, как уж сбер противился их обналичить :)
Пичаль. Но обрублил же в итоге?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037961
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosя и счас знаю, но свободных денег мало, а на "мало" не люблю играть, слишком азарт большой становится
Нефть упадет, рубль упадет - вопрос пары месяцев.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037962
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

все у ни выдрал до копейки
вот в новая убийцу проджект манаджмент счас инвестируюсь, таааакую фигню сделаю! вощем на пенсии она меня должна кормить до смерти
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037963
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39037975
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвот в новая убийцу проджект манаджмент счас инвестируюсь, таааакую фигню сделаю! вощем на пенсии она меня должна кормить до смерти

веб версия будет?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39038545
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

веб всегда в планах, но пока никто эти планы не оплачивает
думаю веб появится тогда, когда начну продавать публично
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39038611
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД -> Domain -> DTO -> Model (-> js Model)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062416
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите пожалуйста вот читаю и сталкивался со следующим утверждением в mvc

Для каждой вью нужно создать свою модель только с теми свойствами которые будут использоваться в данной вью


Задача: во вью нужно получить список.
Скафолдинг автоматически генерит от EF модели следующий контролер: View (db.Peoples.Tolist)

Ок. Создаю в папке модели папку Peoples и в ней создаю Модель: Class ListModel: List <People>

Далее в контроле List создаю вот эту запись

dynamic model = new ListModel();
model = db.People.ToList; < --- ошибка выскакивает вот здесь
View(model)

Unable to cast object of type 'System.Collections.Generic.List`1[мойкласс]' to type '...'.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062464
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

1. для чего Вы создали тип ListModel? Чтобы формально следовать утверждению, что "Для каждой вью нужно создать свою модель только с теми свойствами которые будут использоваться в данной вью"?
Право, Вы погорячились :)

2. но если таки хотите использовать свой ListModel так как написано в коде, то надо бы определить в нём неявное преобразование из типа List<People> ( преобразование типов в .NET Framework ).
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062476
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot skyANA]Артем G,

1. для чего Вы создали тип ListModel? Чтобы формально следовать утверждению, что "Для каждой вью нужно создать свою модель только с теми свойствами которые будут использоваться в данной вью"?
Право, Вы погорячились :)

Принято :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062482
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G, чисто из любопытсва: а о чём сайт? О различных народах?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062523
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GОк. Создаю в папке модели папку Peoples и в ней создаю Модель: Class ListModel: List <People>

не ок.

List<People> уже отвечает необходимым требованиям.

с другой стороны, вам скорее всего понадобится вью типа:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class PeopleListViewModel
{
     public List<PeopleListItemViewModel> Peoples { get; set; }

     // тут что-то ещё, нужное для отображения списка и действий, связанных со списком,
     // например, foreign коллекции для фильтров, дропдаунов и для отображения в списке
     // мало ли что короче...

}
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062526
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

блин, я не прав

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class PeopleListViewModel
{
     public IReadOnlyCollection<PeopleListItemViewModel> Peoples { get; set; }

     // тут что-то ещё, нужное для отображения списка и действий, связанных со списком,
     // например, foreign коллекции для фильтров, дропдаунов и для отображения в списке
     // мало ли что короче...

}


во! никаких List в публичных интерфейсах!!! :-Q
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062534
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

короче, в идеале суть такая: для каждого Вью -- своя модель. даже если тебе надо передать всего лишь коллекцию, лучше зафигачить модель, содержащую одно свойство -- коллекцию. будет потом очень удобно и просто добавить полей, чем все переделывать.

называешь вью модели вот так:

<Имя контроллера><Имя действия>ViewModel

Для коллекций создаешь ещё специальное вью:

<Имя элемента>ItemViewModel

Коллекции передаешь по интерфейсам IReadOnlyCollection<> или IReadOnlyList<>

Можешь следовать такому соглашению. Или придумай своё. Главное, чтобы соглашение соблюдалось. Тогда не надо будет отвлекаться и думать над тем, надо ли создавать модель, как назвать модель и т.п. Используя соглашения можно написать свои генераторы кода, что весьма удобно. Сопровождать удобно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062546
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA2. но если таки хотите использовать свой ListModel так как написано в коде, то надо бы определить в нём неявное преобразование из типа List<People> ( преобразование типов в .NET Framework ).

он просто хочет разобраться :)
вообще, учитывая количество сложностей у новичков с MVC, я бы сказал, что архитектура ASP.NET MVC — мягко говоря не совершенна. не до конца понятна роль вью-моделей. это должно быть чистое DTO, или может обладать логикой? вообще-то может, как минимум может нести «на себе» валидацию.. ну программер может туда зафигачить кода, наследования, абстракций и прочего говна, которого я уже повидал достаточно — реально жесть. никакого понимания что такое вью-модели, какими они должны быть, как их называть, как их делать, и когда надо остановиться нет. всё ложится на плечи опыта программиста, его лени и его бредовых фантазий. вот так.

и с контроллерами тоже всё не просто так. особенно новичков в ступор загоняет, что М (модель) это не вью-модели, это что-то другое, чего в ASP.NET MVC нет, и программер должен его туда добавать. от того М тупо проваливается куда-то в небытие, остаётся какой-то куцый репо или вовсе прямые обращения к БД через юзинг в контроллерах и получаем толстый тупой контроллер. тоже нет чёткого описания, как использовать контроллер, что такое Модель, где и откуда она должна браться и т.д.

в архитектуре прослеживается намёк на то, что MVC заточен на работу с анемичной моделью, но как? где? чего делать? для новичков непонятно. более того, нифига не новички, а даже мастадонты такого умудряются нафигарить, что волосы дыбом. это писец. как это сопровождать? как с этим работать? как это тестировать? ну а чо, реально, архитектура неудачная я считаю. идея крутая, реализация так себе.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062572
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну а чо, реально, архитектура неудачная я считаю. идея крутая, реализация так себе

это типа такая шутка?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062579
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawhVosttну а чо, реально, архитектура неудачная я считаю. идея крутая, реализация так себе

это типа такая шутка?

нет, не шутка. факт.

хорошая качественная архитектура означает следующее: ты берёшь её и решаешь непосредственно свои задачи.

но в данном случае всё несколько иначе. куда не ткнись — вопросы. конечно же, опытный программист уже давно всё для себя решил, выработал свою технику поверх этой архитектуры, но и он ответить новичку не сможет на все вопросы, по сути ему придётся вникать в детали задачи и всё сведётся к: ну-ка отойди, дай-ка я сам.

это говорит о плохой, неудачной реализации архитектуры. дающей больше вопросов, чем ответов.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062581
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Огромное спасибо.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062587
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAАртем G, чисто из любопытсва: а о чём сайт? О различных народах?

Да нет конечно :) просто пример с people. Сайт нужен по закрытию месяца для бухгалтерии.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062597
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще вопросец. Незнаю насколько он в тему. По поводу транзакций для приложения в котором будут работать более 1го человека.

Есть ли смысл их использовать на чтение?

Если смысл использовать когда изменение только в 1 таблице?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062603
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA2. но если таки хотите использовать свой ListModel так как написано в коде, то надо бы определить в нём неявное преобразование из типа List<People> ( преобразование типов в .NET Framework ).

он просто хочет разобраться :)
вообще, учитывая количество сложностей у новичков с MVC, я бы сказал, что архитектура ASP.NET MVC — мягко говоря не совершенна. не до конца понятна роль вью-моделей. это должно быть чистое DTO, или может обладать логикой? вообще-то может, как минимум может нести «на себе» валидацию.. ну программер может туда зафигачить кода, наследования, абстракций и прочего говна, которого я уже повидал достаточно — реально жесть. никакого понимания что такое вью-модели, какими они должны быть, как их называть, как их делать, и когда надо остановиться нет. всё ложится на плечи опыта программиста, его лени и его бредовых фантазий. вот так.

и с контроллерами тоже всё не просто так. особенно новичков в ступор загоняет, что М (модель) это не вью-модели, это что-то другое, чего в ASP.NET MVC нет, и программер должен его туда добавать. от того М тупо проваливается куда-то в небытие, остаётся какой-то куцый репо или вовсе прямые обращения к БД через юзинг в контроллерах и получаем толстый тупой контроллер. тоже нет чёткого описания, как использовать контроллер, что такое Модель, где и откуда она должна браться и т.д.

в архитектуре прослеживается намёк на то, что MVC заточен на работу с анемичной моделью, но как? где? чего делать? для новичков непонятно. более того, нифига не новички, а даже мастадонты такого умудряются нафигарить, что волосы дыбом. это писец. как это сопровождать? как с этим работать? как это тестировать? ну а чо, реально, архитектура неудачная я считаю. идея крутая, реализация так себе.
растешь прямо на глазах :) приятно
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062611
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttАртем G,
<Имя элемента>ItemViewModel


А как правильно оформить эту модель? унаследовать от той что в базе? Задублировать свойства?

Заранее спасибо.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062618
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GhVosttАртем G,
<Имя элемента>ItemViewModel


А как правильно оформить эту модель? унаследовать от той что в базе? Задублировать свойства?

Заранее спасибо.

нет, ни в коем случае. в идеале, опять же, вью-модели должны быть stand alone, т.е. ни от чего ни наследоваться, и ни от чего не зависеть. это тупорылый класс для передачи данных во вью.

рассматривай это как типизированный способ доставки данных во вью вместо ViewBag, не более того.

многие (видел и часто), начинают стряпать иерархию, типа базовая вью-модель, фабрики вью-моделей и прочее ушлёпство. не совершай таких ошибок. вью-модель это класс, который гуляет сам по себе, от контроллера во вью. всё. никто о нём больше не знает, и знать не должен.

почему так? просто ограждаю тебя от большого количества шишек, если хочешь.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062619
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosрастешь прямо на глазах :) приятно

да сам фигею :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062623
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosрастешь прямо на глазах :) приятно

да сам фигею :)
у тебя критическая масса набралась, начался процесс перехода количества в качество
ты еще будешь от себя офигевать - типа блин я этому не учился, но ЗНАЮ!!! и ЗНАЮ окончательно и бесповоротно!!!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062632
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosу тебя критическая масса набралась, начался процесс перехода количества в качество
ты еще будешь от себя офигевать - типа блин я этому не учился, но ЗНАЮ!!! и ЗНАЮ окончательно и бесповоротно!!!

надеюсь, нет :) мне нравится познавать и двигаться далее вперёд, ощущая это движение мозжечком.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062646
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
Function Create(<Bind(Include:="Id, etc")> ByVal efmodel As People) As ActionResult
db.People.Add(efmodel)



А в Create нужно указывать EF модель или PeopleViewModel?


Код: vbnet
1.
2.
        Function Details(ByVal id As Long?) As ActionResult
                    Dim model As PeopleDetailsViewModel = db.Steps.Find(id)   < --- а как здесь должно быть?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062653
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GА в Create нужно указывать EF модель или PeopleViewModel?

PeopleViewModel

чтобы перенести данные из/в модель EF, используй AutoMapper
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062665
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttАртем GА в Create нужно указывать EF модель или PeopleViewModel?

PeopleViewModel

чтобы перенести данные из/в модель EF, используй AutoMapper

Руки не доходят разобраться в устанавливаемых по умолчанию Nugets
Про AutoMapper слышал но не понимал его смысла ... вот и прешла его очередь.

Спасибо.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062674
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GА еще вопросец. Незнаю насколько он в тему. По поводу транзакций для приложения в котором будут работать более 1го человека.

Есть ли смысл их использовать на чтение?

Если смысл использовать когда изменение только в 1 таблице?Транзакция на чтение - это Вы о чём? Может речь о блокировках?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062676
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GskyANAАртем G, чисто из любопытсва: а о чём сайт? О различных народах?

Да нет конечно :) просто пример с people. Сайт нужен по закрытию месяца для бухгалтерии.People переводится как люди. Peoples - народы.

Таки о чём Ваш пример? :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062677
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPeople переводится как люди. Peoples - народы.

Таки о чём Ваш пример? :)

народная бухгалтерия
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062683
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAPeople переводится как люди. Peoples - народы.

Таки о чём Ваш пример? :)

народная бухгалтерия Тестовое задание для сюда :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062706
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТестовое задание для сюда :)

NoSQL (MongoDB, CouchDb, Redis, Memcached, Cassandra)

чёта мало так, хде равен? негодую!
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062712
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot skyANA]Артем Gпропущено...

People переводится как люди. Peoples - народы.

Таки о чём Ваш пример? :)

Как мы знаем английские слова не одназначны people в значение люди уже во множественом числе.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062715
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот тут нашел про Automapper на примере CRUD операций. может кому еще полезно будет.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062721
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GКак мы знаем английские слова не одназначны people в значение люди уже во множественом числе.Таки о каком значении речь?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062749
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAАртем GКак мы знаем английские слова не одназначны people в значение люди уже во множественом числе.Таки о каком значении речь?

не скажу )

PS.

мдя, вроде бы вот счастье ... AutoMapper, но не все так просто в той части где нужно проигнорировать свойства (
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062762
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем Gвроде бы вот счастье ... AutoMapper

не ищите серебряных пуль. большого профита от AutoMapper вы не поимеете, DTO - это, как правило, более развесистые структуры, по сравнению в Entity - простого взаимооднозначного соответствия между ними нет. в свою очередь, ViewModel - это некоторая композиция DTO + еще всякие дополнительные свойства, так что тут еще одна трансформация.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062770
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawбольшого профита от AutoMapper вы не поимеете

как раз таки смысл в автомаппере в поимении большого профита, иначе он не нужен нафиг. просто конфигурации для наполнения моделей могут быть конскими. однако можно использовать проекции, а это мощь в квадрате — чистейший профит.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062965
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttАртем Gпропущено...
А как правильно оформить эту модель? унаследовать от той что в базе? Задублировать свойства?
Заранее спасибо.
нет, ни в коем случае. в идеале, опять же, вью-модели должны быть stand alone, т.е. ни от чего ни наследоваться, и ни от чего не зависеть. это тупорылый класс для передачи данных во вью.


Вопрос с моделями для каждой вью как бы и не возникал ни когда. Всегда понимал что это правильно.
Но вопрос почему нельзя наследовать от ef модели до сих пор открыт.

Почему так делать не правильно? в чем зло? :)


Вроде получается быстрее же ... не нужно копировать свойства и их атрибуты.
Унаследовал + добавил дополнительных свойств.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062968
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAАртем GА еще вопросец. Незнаю насколько он в тему. По поводу транзакций для приложения в котором будут работать более 1го человека.

Есть ли смысл их использовать на чтение?

Если смысл использовать когда изменение только в 1 таблице?Транзакция на чтение - это Вы о чём? Может речь о блокировках?

Да о них. тема раскрыта как то слабо. или я не нашел приличных примеров.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39062978
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще созрел 1 вопрос. Хорошей пратикой будет создание CreateMap в каждом ActionResult или создать отдельно класс в App_Start где это единожды сконфигурируется?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063018
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GНо вопрос почему нельзя наследовать от ef модели до сих пор открыт.

У этих классов разные задачи, разная ответственность, разное применение.

Артем GПочему так делать не правильно? в чем зло? :)

Ну как бы тебе объяснить... Объясни, в чём зло разливать суп совковой лопатой, а копать грядки половником.

Артем GВроде получается быстрее же ... не нужно копировать свойства и их атрибуты.

«Быстрее» получается только в начале разработки, затем это стремительно перерастает в геморрой. Ты хочешь сэкономить? Создавай отдельные вью-модели, не связанные физически с классами EF.

Артем GУнаследовал + добавил дополнительных свойств.

Там не только свойства, но ещё и атрибуты мета-модели, а также ты получаешь жесткую зависимость от классов EF. Скоро потребуется что-то менять и дорабатывать, и в случае с разделением, ты чуть поправил маппинг и проекцию, вместо некомпилируемого и нерабочего кода.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063064
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самая главная фраза - эта:hVostt«Быстрее» получается только в начале разработки, затем это стремительно перерастает в геморрой.
Так что есть два пути:
- поверить на слово профессионалам, потратить больше времени сейчас и на порядки больше сэкономить времени потом
- пройти самому по этим граблям и в итоге все равно придти к первому пункту самостоятельно

Это касается, в общем-то работы с любыми паттернами. Просто второй путь обиднее
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063175
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GskyANAпропущено...
Транзакция на чтение - это Вы о чём? Может речь о блокировках?

Да о них. тема раскрыта как то слабо. или я не нашел приличных примеров.Конечно имеет. Writer же должен знать, что кто-то в данный момент ещё читает данные.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063182
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАртем Gпропущено...


Да о них. тема раскрыта как то слабо. или я не нашел приличных примеров.Конечно имеет. Writer же должен знать, что кто-то в данный момент ещё читает данные.Но для Вас это уже на уровне СУБД реализовали. Ведь у Вас же SQL Server?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063222
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GhVosttпропущено...

нет, ни в коем случае. в идеале, опять же, вью-модели должны быть stand alone, т.е. ни от чего ни наследоваться, и ни от чего не зависеть. это тупорылый класс для передачи данных во вью.


Вопрос с моделями для каждой вью как бы и не возникал ни когда. Всегда понимал что это правильно.
Но вопрос почему нельзя наследовать от ef модели до сих пор открыт.

Почему так делать не правильно? в чем зло? :)


Вроде получается быстрее же ... не нужно копировать свойства и их атрибуты.
Унаследовал + добавил дополнительных свойств.
ничерта все не так

модель одна, а вью (представление модели) много
то что вы называете моделью не модель, а внутренные структуры представления, которые воще то должны быть полностью скрыты ото всех, кроме контроллера
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063362
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри за долгую дисскусию. На грабли наступать не хочу. Спасибо огромное.

Есть несколько вопросов по построению ViewModel. Все они касаются правильности работы с моделью
Вот пример ниже с выпадающим списком. Насколько правильно сделано выделенное красным?

PS. Выделить жирным красным не получилось. Указал стрелочками.

ModelView

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class StepEditModel
{

	public long Id { get; set; }

	public long TaskId { get; set; }

	[Required(), StringLength(150)]
	[DisplayName("Step Title")]
	public string Title { get; set; }

	[DataType(DataType.MultilineText)]
	public string Description { get; set; }

	[color=red]public IEnumerable<SelectListItem> TaskSelectList { get; set; }[/color]    <--- Вот здесь

}



Controller

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public ActionResult Edit(long? id)
{
	if ((id == null)) {
		return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
	}
	try {
		Mapper.CreateMap<Step, StepEditModel>();

		IEnumerable<Step> source = db.Steps.Find(id);

		if ((source == null)) 
                {
			return HttpNotFound();
		}

		dynamic model = Mapper.Map<Step, StepEditModel>(source);
		[color=red]model.TaskSelectList = new SelectList(db.Tasks, "Id", "Title");[/color]   < --- И вот здесь

		return View(model);
	} 
                catch (Exception ex) 
        {
		return View("Error");
	}
}
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063391
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

SelectList создавай исключительно in View. На вход к нему может поступить любая коллекция.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063409
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueАртем G,

SelectList создавай исключительно in View. На вход к нему может поступить любая коллекция.

да пофигу вообще... SelectList так-то вообще УГ. сколько сталкивался с ним, никогда не нравился, туповатая коллекцию, вбивающая новичков в ступор. ни кому не оставляет шансов пройти лёгкой походкой мимо. граната замедленного действия пля. вот уж кто-то стебанулся так стебанулся.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063411
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueАртем G,

SelectList создавай исключительно in View. На вход к нему может поступить любая коллекция.

да пофигу вообще...

Безотносительно остального ())))))))))) не пофигу.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063413
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

ну фиговенько, но для начала сойдёт. норм. передал же данные для выпадашки? передал. с задачей справился. не заморачивайся на этом.

а вот dynamic зачем ты применил, я конечно не понял. защему так?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063421
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GPS. Выделить жирным красным не получилось. Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063426
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАртем G,
норм. передал же данные для выпадашки? передал.

А выбранное значение?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063432
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАртем Gпропущено...


Вопрос с моделями для каждой вью как бы и не возникал ни когда. Всегда понимал что это правильно.
Но вопрос почему нельзя наследовать от ef модели до сих пор открыт.

Почему так делать не правильно? в чем зло? :)


Вроде получается быстрее же ... не нужно копировать свойства и их атрибуты.
Унаследовал + добавил дополнительных свойств.
ничерта все не так

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

ну так ТС не утверждает обратного. он осторожно спрашивает
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063435
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiquehVosttАртем G,
норм. передал же данные для выпадашки? передал.

А выбранное значение?



а где оно по-твоему должно быть? в селект-листе?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063442
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueпропущено...


А выбранное значение?



а где оно по-твоему должно быть? в селект-листе?

Для тебя это сюрприз?

Походу, не долго ты тусил около СелектЛиста))))))))
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063447
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueпропущено...


А выбранное значение?



а где оно по-твоему должно быть? в селект-листе?

Пока ты судорожно елозишь по гуглу - сообщаю - что после создания SelectList-а, присвоить ему выбранное значение несколько...

Проблемно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063468
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063477
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОбъясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а?

Ну... Вероятно в определение пары text/value. Иначе всё можно спрятать в хелпер
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063485
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОбъясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а?

назначение, лупить со стандартной для грабли скоростью прям по лобешникам, по ним

одно из самых наитупейших изобретений в среде ASP.NET MVC / Razor
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063486
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueДля тебя это сюрприз?

ну я бы не рекомендовал юзать селектлист, да и вообще стандартные контролы для дропдаунов... это печалька, но можно и поржать
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063487
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttда и вообще стандартные контролы для дропдаунов...

Ты хотел сказать - стандратные хелперы?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063500
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiquehVosttда и вообще стандартные контролы для дропдаунов...

Ты хотел сказать - стандратные хелперы?

ну остальное как-то ещё приемлимо. решать можно. да и дропдаун после пары шишек тоже можно в строй.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063502
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAОбъясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а?

Ну... Вероятно в определение пары text/value. Иначе всё можно спрятать в хелперИ на кой мне эти пары?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063503
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


Ну... Вероятно в определение пары text/value. Иначе всё можно спрятать в хелперИ на кой мне эти пары?

SelectList равно как и MultiSelectList используется для хелперов, которые генерят разметку для дропдаунов.

Вопрос "на кой" еще остался?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063504
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
И на кой мне эти пары?

SelectList равно как и MultiSelectList используется для хелперов, которые генерят разметку для дропдаунов.

Вопрос "на кой" еще остался?То есть SelectList равно как и MultiSelectList на фиг не нужен. Так я и думал.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063509
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


SelectList равно как и MultiSelectList используется для хелперов, которые генерят разметку для дропдаунов.

Вопрос "на кой" еще остался?То есть SelectList равно как и MultiSelectList на фиг не нужен. Так я и думал.

Ну если ты доходишь до конечного результата без них - то это как бы очевидно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063514
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
То есть SelectList равно как и MultiSelectList на фиг не нужен. Так я и думал.

Ну если ты доходишь до конечного результата без них - то это как бы очевидно.Повторю вопрос: Объясните мне, как человеку, что не использует Razor и хелперы , в чём смысл SelectList-а? :)

То есть тебе должно было быть очевидно, что я дохожу "до конечного результата без них". А ты про пары какие-то начал затирать.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063519
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


Ну если ты доходишь до конечного результата без них - то это как бы очевидно.Повторю вопрос: Объясните мне, как человеку, что не использует Razor и хелперы , в чём смысл SelectList-а? :)

То есть тебе должно было быть очевидно, что я дохожу "до конечного результата без них". А ты про пары какие-то начал затирать.

Теперь у меня вопрос - а почему из тебя говно лезет? Я ж не знаю, почему ты не используешь SL, может не догоняешь чего-то, вот я объяснил. А ты начал черта включать. В следующий раз нахер пошлют - вот и все разговоры.

Это для тебя не очевидно?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063525
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
Повторю вопрос: Объясните мне, как человеку, что не использует Razor и хелперы , в чём смысл SelectList-а? :)

То есть тебе должно было быть очевидно, что я дохожу "до конечного результата без них". А ты про пары какие-то начал затирать.

Теперь у меня вопрос - а почему из тебя говно лезет? Я ж не знаю, почему ты не используешь SL, может не догоняешь чего-то, вот я объяснил. А ты начал черта включать. В следующий раз нахер пошлют - вот и все разговоры.

Это для тебя не очевидно?Извини, но говно полезло из тебя.

Видимо просто ты не прочитал изначально, что я выше выделил болдом, и начал мне втирать про хелперы.
А мог бы просто ответить, что вне Razor и хелперов, SelectList не имеет смысла.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063532
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИзвини, но говно полезло из тебя.

Видимо просто ты не прочитал изначально, что я выше выделил болдом, и начал мне втирать про хелперы.
А мог бы просто ответить, что вне Razor и хелперов, SelectList не имеет смысла.

Не извиню. Кесарю - кесарево.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063540
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAИзвини, но говно полезло из тебя.

Видимо просто ты не прочитал изначально, что я выше выделил болдом, и начал мне втирать про хелперы.
А мог бы просто ответить, что вне Razor и хелперов, SelectList не имеет смысла.

Не извиню. Кесарю - кесарево.Какой серъёзный молодой человек :)

А что в сухом остатке? SelectList получается прибивает гвоздями вашу ViewModel к хелперам.

Ничего конечно страшного, вряд-ли большинству понадобиться свой движок представления, со своей компонентной моделью.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063559
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


Ну если ты доходишь до конечного результата без них - то это как бы очевидно.Повторю вопрос: Объясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а? :)

То есть тебе должно было быть очевидно, что я дохожу "до конечного результата без них". А ты про пары какие-то начал затирать.

skyANA, а что используешь, и почему, если не секрет?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063618
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kmawskyANAпропущено...
Повторю вопрос: Объясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а? :)

То есть тебе должно было быть очевидно, что я дохожу "до конечного результата без них". А ты про пары какие-то начал затирать.

skyANA, а что используешь, и почему, если не секрет?

Присоединяюсь к вопросу.

Почему SelectList в моем примере так потому что я в MVC около полугода + сейчас пишу первый не тестовый проект.
В интернете на 100 примеров 1 best way. Приходиться собирать все по крупицам. Убивает просто тучу вермени.
Если использовать Scaffolding то он генерит SelectList.

Сейчас как бы вонуют вопроса:
- как подтянуть словарь лучшим способом (вот оказалось что Select List не феншуй. учел. погуглю буду смотреть как делают другие)
- как создавать организовывать вьюмодели для связей: один к одному, один ко многим, много ко многим. так же как в ef моделях?

почему возникает 2ой вопрос так потому что видел в интернетах для связи один ко многим таблица деталей была создана как подкласс к классу основной таблицы, а не отдельно.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063621
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttАртем G,
ну фиговенько, но для начала сойдёт. норм. передал же данные для выпадашки? передал. с задачей справился. не заморачивайся на этом.
а вот dynamic зачем ты применил, я конечно не понял. защему так?

на динамик не обращайте внимания ... это просто пример
предположу что вместо селект создается модель
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063634
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawskyANAпропущено...
Повторю вопрос: Объясните мне, как человеку, что не использует Razor и хелперы, в чём смысл SelectList-а? :)

То есть тебе должно было быть очевидно, что я дохожу "до конечного результата без них". А ты про пары какие-то начал затирать.

skyANA, а что используешь, и почему, если не секрет?
StringTemplate view engine:

Lightweight. No page classes are created.

Fast. Templates are written to the Response Output stream.

Cached. Templates are cached for a specified amount of time (when in release mode).

Dynamic. Templates can be generated on the fly in code.

Flexible. Templates can be nested to any level.

In line with MVC principles. Promotes separation of UI and Business Logic. All data is created ahead of time, and passed down to the template.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063639
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G- как создавать организовывать вьюмодели для связей: один к одному, один ко многим, много ко многим. так же как в ef моделях?

почему возникает 2ой вопрос так потому что видел в интернетах для связи один ко многим таблица деталей была создана как подкласс к классу основной таблицы, а не отдельно.Какие ещё связи, какие таблицы? :) Думайте объектами, а не тем, как оно маппится на реляционную схему.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063731
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА что в сухом остатке? SelectList получается прибивает гвоздями вашу ViewModel к хелперам.

Ну вообще ViewModel создаются исключительно для View, и ни для чего другого. И хелперы создаются исключительно для использования во View. Так что ничего дурного нет.

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

Другое дело, если ты пилишь какие-то общие компоненты, которые будут юзаться в разных системах, библиотеки какие-то, фреймворки, киты... Ну там и совсем другие подходы к разработке.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063740
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALightweight. No page classes are created.


Движок Разора тоже может работать таким образом.

skyANAFast. Templates are written to the Response Output stream.


Странное обоснование „Fast“ конечно, ну пишут сразу в вывод, Разор тоже так делает.

skyANACached. Templates are cached for a specified amount of time (when in release mode).


Разор вообще полностью построен на механизмах кеширования, кешируется всё. В том числе шаблоны компилируются и работают со скоростью кода, без синтаксического разбора вообще.

skyANADynamic. Templates can be generated on the fly in code.


Ценность этого сомнительна, и конечно сводит на нет кеширование. Ну и на Разоре можно генерить темлейты, ничего особенного.

skyANAFlexible. Templates can be nested to any level.


В Разоре тож самое, более того, они ещё могут наследоваться.

skyANAIn line with MVC principles. Promotes separation of UI and Business Logic. All data is created ahead of time, and passed down to the template.


Видна рука Капитана Очевидность :)


В общем, выбирая между StringTemplate и Razor, я бы выбрал Razor. А последние тенденции в его развитии мне вообще по душе.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063760
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAА что в сухом остатке? SelectList получается прибивает гвоздями вашу ViewModel к хелперам.

Ну вообще ViewModel создаются исключительно для View, и ни для чего другого. И хелперы создаются исключительно для использования во View. Так что ничего дурного нет.

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

Другое дело, если ты пилишь какие-то общие компоненты, которые будут юзаться в разных системах, библиотеки какие-то, фреймворки, киты... Ну там и совсем другие подходы к разработке.Мы пишем движок, что используется как нашими верстальщиками, так и нашими клиентами. Ни те, ни другие ничего особо не знают про C# и MVC :)

Так же используем StringTemplate для шаблонов писем, 12 миллионов которых наши пользователи отправляют в месяц.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063761
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAFlexible. Templates can be nested to any level.


В Разоре тож самое, более того, они ещё могут наследоваться.Пример кода можешь привести, как это будет выглядеть?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063772
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПример кода можешь привести, как это будет выглядеть?

Код: html
1.
2.
3.
@{
      Layout = "../Shared/BaseLayout.cshtml";
}
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063779
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМы пишем движок, что используется как нашими верстальщиками, так и нашими клиентами. Ни те, ни другие ничего особо не знают про C# и MVC :)

Т.е. у вашего движка нет никакого синтаксиса? Верстальщики даже не знают, что пишут шаблоны для движка?

Как, например, вставить значение из модели в шаблон без синтаксиса?

Типа верстальщик разрабатывает шаблон письма:

Код: html
1.
<p>Привет, дорогой ИмяПользователя!<p> ...



А шаблонизатор такой умный, что догадывается, что вместо ИмяПользователя надо подставить значение :) Да ещё в нужном падеже!

А числа? Ну как в шаблоне верстальщик скажет «у вас 1 пис ьмо , 5 сообщен ий и 2 нов ых подписчи ка »?

В разоре это сделать как 2 пальца об стол, и не надо ничего специально в модели готовить, эти задачи можно решить в шаблоне. И многие другие. Я бы сказал, любые в принципе.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063784
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТак же используем StringTemplate для шаблонов писем, 12 миллионов которых наши пользователи отправляют в месяц.

Ну ок. Я только хотел сказать, что если стоять перед таким выбором, то нет ни одной причины в выборе StringTemplate вместо Razor. Точнее я таких причин не знаю. Вот и всё, что я хотел сказать :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063785
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

что ты так нервничаешь?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063786
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAПример кода можешь привести, как это будет выглядеть?

Код: html
1.
2.
3.
@{
      Layout = "../Shared/BaseLayout.cshtml";
}

Нет, это не про "Templates can be nested to any level".

В StringTemplate так...

Default.tpl
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>
  <body>
    <$ Layout() $>
  </body>
</html>



Layout.tpl
Код: html
1.
2.
3.
<$ Header() $>
<p>La la la</p>
<$ Footer() $>



Header.tpl
Код: html
1.
<h1>Hello Vasya!</h1>



Footer.tpl
Код: html
1.
<div>© Petya, 2015</div>
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063793
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНет, это не про "Templates can be nested to any level".

А я про наследование говорил.

Вставить шаблон в шаблон очень просто, на любом уровне: @Html.Partial("OtherTemplate")

боле того, можно не просто вставить какой-то шаблон, а целый результат действия @Html.Action("MyAction")
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063794
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилhVostt,

что ты так нервничаешь?

Что!!? Тааак заметна!* Noooooooooooooooooooooooooooooo;;;;;.........
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063800
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Код: html
1.
<$ Header() $>



Ну и не вижу разницы, не знают верстальщики язык C#, но им приходится знать язык StringTemplate, который рядом не валялся с C#. Есть разница, на каком количестве языков разговаривает команда, и с точки зрения банальной продуктивности, это количество желательно сокращать. Верстальщику без разницы:

<$ MyValue $>

или

@Model.MyValue
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063819
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНет, это не про "Templates can be nested to any level".

А я про наследование говорил.А написано про то, что шаблон может быть вложен :)

hVosttВставить шаблон в шаблон очень просто, на любом уровне: @Html.Partial("OtherTemplate")Вот тут уже начинается сложный для верстальщика и пользователя синтаксис. Особенно когда нужно передать модель, не тупо как model , а
Код: html
1.
2.
<$ Hello(name="Vasya") $>
<$ Hello(name="Petya") $>


Плюс Html.Partial - это зависимость от System.Web.Mvc. Тестировать не удобно.

Hello.tpl
Код: html
1.
<h1>Hello, <$ name $>!</h1>



hVosttболе того, можно не просто вставить какой-то шаблон, а целый результат действия @Html.Action("MyAction")А это на фиг не нужно :)
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063825
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA
Код: html
1.
<$ Header() $>



Ну и не вижу разницы, не знают верстальщики язык C#, но им приходится знать язык StringTemplate, который рядом не валялся с C#.Ни верстальщику, ни пользователю C# на фиг не упёрся. А вот возможность использовать готовые компоненты + быстро создавать свои, да.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063851
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПлюс Html.Partial - это зависимость от System.Web.Mvc. Тестировать не удобно.

Да всё удобно, мы тестируем.

skyANAА написано про то, что шаблон может быть вложен :)

Ну он может быть вложен и может быть отнаследован.

skyANAhVosttболе того, можно не просто вставить какой-то шаблон, а целый результат действия @Html.Action("MyAction")А это на фиг не нужно :)

Не согласен.

@Html.Action("SomeWidget") — вот здесь, например, верстальщику важно вставить этот виджет, а виджет это не голый шаблон, это логика+шаблон, на которые в этом месте верстальщку по барабану, ему надо вставить и всё. так что ты не прав :)

или, например, вот так:

@Html.Action("Feedback") — форма обратной связи, это шаблон и серверная логика вывода, более того, действие может вывести вообще разные данные в зависимости от прав пользователя, например. и очень просто, вставил вызов и пошёл дальше. мы этим часто пользуемся, очень удобно. и тестированию поддаётся как нельзя лучше.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063852
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Код: html
1.
2.
<$ Hello(name="Vasya") $>
<$ Hello(name="Petya") $>



Какие-то магические строки. Плохо :)

@Html.Partial("SomeSubTemplate", Model.Persona)

кул!

или вообще вот так:

@Html.DisplayFor(p => p.Persona)

и с верстальщиками проблем пока не возникало. синтаксис простой, программную C# логику никто не пишет в шаблонах, а необходимый для верстальщика минимум осилит даже обезьяна.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063860
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНи верстальщику, ни пользователю C# на фиг не упёрся. А вот возможность использовать готовые компоненты + быстро создавать свои, да.

если пользователь может стряпать свои шаблоны, то тут придётся с тобой согласиться, ему Razor будет вреден.

а для верстальщика параллельно. мы работаем с ними и никаких проблем не возникало ни разу. более того, некоторые освоили C# и пишут качественные темплейты и тесты под них. это круто.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063861
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНе согласен.

@Html.Action("SomeWidget") — вот здесь, например, верстальщику важно вставить этот виджет, а виджет это не голый шаблон, это логика+шаблон, на которые в этом месте верстальщку по барабану, ему надо вставить и всё. так что ты не прав :)Не нужно :) У нас CMS есть, где пользователь сам вставит нужный ему виджет (гаджет) мышкой и права настроит, если их есть для конкретного виджета (гаджета).
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39063867
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНе нужно :) У нас CMS есть, где пользователь сам вставит нужный ему виджет (гаджет) мышкой и права настроит, если их есть для конкретного виджета (гаджета).

ну ок, это уже топ левел. мы CMS-ок не пишем, нам это не нужно.

хотя CMS-ок, которые используют Razor и именно такой подход — хватает, и никого пока это не напрягало
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138701
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не стал создавать отдельную ветку, спрошу здесь.

Какие данные нужно хранить во ViewModel-и, а какие лучше в ViewBag-е?
К примеру, на странице отображения списка сущностей, в модели я храню только список. Все остальное - имя текущего пользователя, ссылку на его профиль, данные для хлебных крошек навигации, список связанных сущностей (наподобие "с этим товаром чаще всего покупают") - беру из ViewBag. На странице редактирования сущности - аналогично, в модели храню только поля формы.

Насколько оправдан такой подход? Может, лучше и правильнее все данные, отображаемые на странице, держать в модели?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138733
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysauxКакие данные нужно хранить во ViewModel-и, а какие лучше в ViewBag-е?

ViewModel — 1 к 1 данные, которые нужно отображать во View и принимать обратно методом POST, т.е. не больше и не меньше. Лишние поля — плохо, потому что: 1) вводят в заблуждение программистов, которые будут сопровождать и поддерживать ПО; 2) мешают при юнит-тестировании и портят карту покрытия тестами (например, dotCover будет показывать, что эти поля не используются, а если используются, то.. где? почему?). Недостаток полей приводит к кривым костылям для извлечения данных ч/з ViewBag или бог знает ещё как.

ViewBag — удобно и вполне легально использовать для:

1) данных для выпадающих списков (DropDown), например по соглашению: ViewBag.ИмяПоля_Data
2) данных для настройки вложенных PartialViews и Display/EditorTeplates, например, CSS-стили и атрибуты
3) обобщённых данных, использующихся в несвязанных View, например, сообщений, алертов, т.е. частей, которые могут использоваться на любых страницах и глупо эти данные пихать во все ViewModel.
4) другие крайне специфичные вещи, которые выходят за рамки Одно Действие → Одно или несколько Представлений.

Использование ViewBag не даёт контроль типов, и делает невозможным проверку на этапе компиляции, отсутствие IntelliSense усложняет сопровождение и разработку, поэтому их надо использовать совместно с жёстко заданными соглашениями на уровне компонентов (контролов) и атрибутов, т.е. желательно за рамками прикладной логики.

В целом же всегда надо отдавать предпочтение строго типизированным ViewModel-ям, при чём не желательно использовать одну ViewModel в разных Views, т.е. грубо говоря одному View должна соответствовать одна ViewModel, что даёт следующее соглашение по наименованию ViewModel: КонтроллерПредставлениеViewModel.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public class EmployeeController
{
    public ActionResult Index()
    {
        var model = new EmployeeIndexViewModel { ... };
        return View(model);
    }
}
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138737
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysauxВсе остальное - имя текущего пользователя, ссылку на его профиль, данные для хлебных крошек навигации, список связанных сущностей (наподобие "с этим товаром чаще всего покупают") - беру из ViewBag. На странице редактирования сущности - аналогично, в модели храню только поля формы.

Всё правильно, эти данные выходят за рамки конкретного действия контроллера. Но в таком случае надо оформлять это таким образом, чтобы было понятно какие данные лежат ViewBag-е (мы называем его багажником). Придумывайте строгие правила для таких ситуаций.

Если на странице есть независимые от действия (точнее от его результата) части: блок логина и блок хлебных крошек, то кто заполняет эти данные?

Есть два удобных подхода:

1) Данные заполняет глобальный фильтр и передаёт так: ViewBag.НаименованиеЧастичногоПредставленияModel, в Layout-е, вставляется так: @Html.Partial("НаименованиеЧастичногоПредставления", ViewBag.НаименованиеЧастичногоПредставленияModel)

2) (более корректный на мой взгляд и лишённый проблемы хранения и передачи данных через ViewBag) Вставлять независимые блоки в Layout-е вот так:

@Html.Action("LoginWidget", "Account")

, где действие LoginWidget контроллера Account возвращает частичное представление.

Преимущества второго подхода очевидны: полный контроль типов, возможность полноценного юнит-тестирования, законченный независимый компонент, который может использовать в процессе вёрстки, как плейсхолдер.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138738
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКакие данные нужно хранить во ViewModel-и, а какие лучше в ViewBag-е?

ViewModel — 1 к 1 данные, которые нужно отображать во View и принимать обратно методом POST, т.е. не больше и не меньше.

hVosttИспользование ViewBag не даёт контроль типов, и делает невозможным проверку на этапе компиляции, отсутствие IntelliSense усложняет сопровождение и разработку, поэтому их надо использовать совместно с жёстко заданными соглашениями на уровне компонентов (контролов) и атрибутов, т.е. желательно за рамками прикладной логики.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138740
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysaux,

?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138741
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, рано отправил.
1 цитата - то есть я все делал правильно))).

2 цитата - вот как раз отсутствие контроля типов и послужила причиной моего вопроса. Часто в процессе доработок в коде контроллера заносишь во ViewBag много данных, которые используешь потом в отображении. Затем, что-то удаляешь из отображения - и конечно, забываешь удалить занесение этих данных во ViewBag в коде контроллера. Чтобы не было такой каши в коде, что можно предпринять - только конвенция "считаем объекты занесенные в ViewBag в контроллере, и объекты из ViewBag используемые в отображении"?
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138742
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* "считаем количество объектов в контроллере и сравниваем с количеством в отображении"
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39138757
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysauxЗатем, что-то удаляешь из отображения - и конечно, забываешь удалить занесение этих данных во ViewBag в коде контроллера. Чтобы не было такой каши в коде, что можно предпринять - только конвенция "считаем объекты занесенные в ViewBag в контроллере, и объекты из ViewBag используемые в отображении"?

Ну незнаю, желательно избегать ViewBag, или программировать так, чтобы заведомо во ViewBag не попадали лишние неиспользуемые данные, которые легко можно упустить из виду, а также наоборот, чтобы требуемые данные попадали. Это можно сделать на уровне компонентов и атрибутов (фильтров).

Т.е. в самих действиях контроллеров лучше вообще не запихивать в ViewBag ничего, иначе каша наступит неизбежно и никакие конвенции не помогут.
...
Рейтинг: 0 / 0
Как половчее управляться с ViewModel-ями?
    #39139383
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНу незнаю, желательно избегать ViewBag, или программировать так, чтобы заведомо во ViewBag не попадали лишние неиспользуемые данные, которые легко можно упустить из виду, а также наоборот, чтобы требуемые данные попадали. Это можно сделать на уровне компонентов и атрибутов (фильтров).

Т.е. в самих действиях контроллеров лучше вообще не запихивать в ViewBag ничего, иначе каша наступит неизбежно и никакие конвенции не помогут.

А можно пример, как можно передать через атрибут или компонент (?) к примеру, наименование страницы, имя текущего пользователя, данные для хлебные крошек breadcrumbs и т.п.?
...
Рейтинг: 0 / 0
216 сообщений из 216, показаны все 9 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как половчее управляться с ViewModel-ями?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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