powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по основам МВЦ
25 сообщений из 83, страница 2 из 4
Вопрос по основам МВЦ
    #37500779
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУ, если нужно только имя и адрес для модели представления, я не тяну в таком случае модель "Person", а только FirstName, Address
И я не тяну:
Код: plaintext
var person = ctx.Persons.Where(d => d.Id = [ИД]).SingleOrDefault(d => new { d.FirstName, d.Address });

Парамон, Вы чего, не выспались сегодня? :)
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500780
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Косячно линк-запрос написал от руки, ну идея понятна :)
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500795
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

я про тоже, но на прямую без автомепера
ctx.Persons.Where(d => d.Id == [ИД]).SingleOrDefault(d => new PersonView{ d.FirstName, d.Address });
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500802
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон, Вы не в теме :) Автомаппер маппит уже клиентские объекты.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500878
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

я в курсе, смысл его для меня был в ситуации когда делал выборку всей модели, а так мне удобней на прямую.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500900
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУ, я в курсе, смысл его для меня был в ситуации когда делал выборку всей модели, а так мне удобней на прямую.
Еще раз, из базы берется только то, что нужно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public ActionResult Details(int id)
{
    var item = Db.Employees.Where(d => d.EmployeeID == id).Select(d => new { d.Address, d.BirthDate }).SingleOrDefault();
    if (item == null)
    {
        throw new Exception("Сотрудник не найден");
    }
    >>>var view = DataMapper.Map<EmployeeModel>(item); // Намапится только то, что выбрали из БД!!! <<<
    return View(view);
}

Тут у нас есть кодогенерированная Employee и модель представления EmployeeModel. Ну ясно-то или всё еще нет? )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class EmployeeController : BaseController
{
    // ...
}

public class BaseController : Controller
{
    ...
    private DbRepository _db;
    public DbRepository Db
    {
        get
        {
            if (_db == null)
            {
                _db = new DbRepository();
            }
            return _db;
        }
    }
}
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500949
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

я про смысл его использования а не про технику )
эта строчка:
Код: plaintext
DataMapper.Map<EmployeeModel>(item); 
для меня лично лишняя, потому как делаю сразу

Код: plaintext
1.
var item = Db.Employees.Where(d => d.EmployeeID == id).Select(d => new EmployeeView{ d.Address, d.BirthDate }).SingleOrDefault();

но если
Код: plaintext
Db.Employees.Where(d => d.EmployeeID == id).SingleOrDefault();  // бывает ) 
тогда да оправданно его исползование.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37500976
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонно если
Код: plaintext
Db.Employees.Where(d => d.EmployeeID == id).SingleOrDefault();  // бывает ) 
тогда да оправданно его исползование.
Ага, именно так.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503025
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я так и ожидал, что начнется беседа об одном фреймворке - а их мульон и каждый будет казацца кашей в голове тому кто использует другой!

Давайте начнем с самого простого:
Есть модель Person
var Person.Model = {
personInfo: {
inn: '',
name: '',
lastName: '',
birthDay: 0,
address: ''
},

get: function(){...},
update: function(data){...},
create: function(data){...},
delete: function(inn){...}
};

Существует так же вид - форма.
Person.View.Form = {
formContent: '<div>...</div>',

show: function(){},
hide: function(){}
}

ВидФорма методом show с помощью шаблонов на основании переданной модели создает поля формы с надписями и заполняет их переданными в модели данными. Возможно в ВидФорма есть кнопочки Ok и Cancel. По их нажатию контроллер должен сохранить изменения или просто закрыть ВидФорма.
Тут возникает вопрос: модель вид и контроллер в идеале ничего не должны знать друг о друге - но тогда как ВидФорма знает что сказать контроллеру что пользователь нажал на кнопку и как контроллер должен подписываться на то не знаю что у вида?

Далее есть несколько видов грдивью:
- простой грид с полями филтрации над гридом по полям модели,
- вид гридвью "люди, которые носят костюм" с фильтром по полям размер костюма. цвет галстука (которых нет в модели)

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

ну для начала хватит вопросов...)
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503058
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spтут возникает еще больше вопросов :
- в модели нет кучи записей Persons, которые просматривает грид)

Код: plaintext
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="CoreUI.Views.ViewPageBase<CoreUI.Models.EmployeeViewList>" %>

ViewPageBase
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
namespace CoreUI.Views
{
    public class ViewPageBase<T> : ViewPage<T> where T : class
    {
        protected override void InitializeCulture()
        {
            base.InitializeCulture();
            Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;
            if (Thread.CurrentThread.CurrentCulture != null)
            {
                Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = ".";
                Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
            }
        }
    }
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
namespace CoreUI.Views
{
    public class ViewList<T>
    {
        public int TotalRecords { get; set; }
        public int PageSize { get; set; }
        public List<T> Items { get; set; }
    }
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
namespace CoreUI.Models
{
    public class EmployeeViewList : ViewList<EmployeeView>
    {

    }

    public class EmployeeView : IDataErrorInfo, IValidatableObject
    {
...


sp- в каждом гридвью есть куча действий, специфичных только для данного вью - как их выносить в контроллер и как потом эту лапшу контролировать
Обыкновенно выносить. Всем рулит контроллер. Лапшу не вижу.

sp- в гридвью появляются поля не являющиеся частью модели - что делать с ними? как их обрабатывать?
ну для начала хватит вопросов...)
Такого не должно быть. Модель должна полностью описывать представление. Пример привел выше.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503082
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУза код спасибо - чуть просветлело :)


МСУsp- в каждом гридвью есть куча действий, специфичных только для данного вью - как их выносить в контроллер и как потом эту лапшу контролировать
Обыкновенно выносить. Всем рулит контроллер. Лапшу не вижу.

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


МСУsp- в гридвью появляются поля не являющиеся частью модели - что делать с ними? как их обрабатывать?
ну для начала хватит вопросов...)
Такого не должно быть. Модель должна полностью описывать представление. Пример привел выше.

Такое встречается сплошь и рядом -синтетические модели
Посмотрите в MS CRM - там в грид можно добавлять поля из связанных с моделью сущностей, а также поля фильтра, несуществующие в модели
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503124
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spМСУза код спасибо - чуть просветлело :)

Я этого не говорил :)

[quot МСУ]пропущено...

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

spоткуда контроллер занет как привязаться к этому барахлу в конкретном вью? откуда вью знает что нужно отдать контроллеру на контроль??
Контроллер не то, что знает, а он обязан знать, какое вью нужно отдать.

spТакое встречается сплошь и рядом -синтетические модели
Посмотрите в MS CRM - там в грид можно добавлять поля из связанных с моделью сущностей, а также поля фильтра, несуществующие в модели
Забудьте про синтетические модели. MS CRM тут вообще не причем. Есть модель, вью и контроллер. Всё.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503136
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУspв разных вью есть куча кнопок нв тулбаре со своими действиями (и не всегда это действия с моделью), есть куча менюшек и т.п. - все это барахло сваливать в один контроллер?
Да.
И как в контроллере разбираться какому вью что нужно цеплять??

МСУspоткуда контроллер занет как привязаться к этому барахлу в конкретном вью? откуда вью знает что нужно отдать контроллеру на контроль??
Контроллер не то, что знает, а он обязан знать, какое вью нужно отдать.

Про какую модель отдать речи не шло - речь шла о том откуда контроллер занет об внутреннем устройстве вью, чтобы привязать конкретные обработчики к конкретным элементам вью??

МСУspТакое встречается сплошь и рядом -синтетические модели
Посмотрите в MS CRM - там в грид можно добавлять поля из связанных с моделью сущностей, а также поля фильтра, несуществующие в модели
Забудьте про синтетические модели. MS CRM тут вообще не причем. Есть модель, вью и контроллер. Всё.

Неет, такое забыть невозможно - нам такое же надо реализовывать:)
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503238
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да еще бывают комбинированные вью - ВьюЛицоЗаказы - в котором на кроме информации о Person отображается вью OrderList и вью OrderItems - это контроллер Person должен инстанциировать OrderList и OrderItems и вставить их во вью ВьюЛицоЗаказы??
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503278
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503318
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

А может в сложных вью было бы прощще с MVP вместо MVC?
(после прочтения статья на хабре )
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503380
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spМСУ,

А может в сложных вью было бы прощще с MVP вместо MVC?
(после прочтения статья на хабре )

а может с MVVM, на сравнение паттернов можно еще пару топиков открыть. )
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503419
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spМСУ,

А может в сложных вью было бы прощще с MVP вместо MVC?
(после прочтения статья на хабре )
Не, лучше MVVM + MVC. Недавно с Парамоном тёрли.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37503552
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУspМСУ,

А может в сложных вью было бы прощще с MVP вместо MVC?
(после прочтения статья на хабре )
Не, лучше MVVM + MVC. Недавно с Парамоном тёрли.

надо почитать, подумать...)
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37546595
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ

А как тогда реализуется логика как в Microsoft CRM: создается grid view в дизайнере, но там есть возможность формировать запрос визуально и выводить в грид не только поля основной сущности(модели), но и поля , связанных с данной сущностью сущностей??
Это уже не MVVM или MVC?
Причем вся эта хрень точно у них называется view!
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37546613
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или таки получается, по-вашему, что такой функционал не достижим для MVC или MVVM!?
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37546813
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp, у Вас каша в голове. Представление в динамикс црм никоим образом не коррелирует с паттернами проектирования.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37546928
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУsp, у Вас каша в голове. Представление в динамикс црм никоим образом не коррелирует с паттернами проектирования.
Это официальная информация от майкрософт??
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37546932
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spЭто официальная информация от майкрософт??
Да, я только что разговаривал по телефону со Стивом Балмером.
...
Рейтинг: 0 / 0
Вопрос по основам МВЦ
    #37546934
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

т.е. другими словами - функционал в MS CRM никак не коррелирует с шаблонами MVC и MVVM??
т.е. если мы хотим так - то нафиг эти шаблоны???
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 2 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по основам МВЦ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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