powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / BLL работает с Model или ViewModel?
25 сообщений из 109, страница 3 из 5
BLL работает с Model или ViewModel?
    #38548320
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкотоже самое, я беру из базы только 2 поля, намаплимаю на свою расширенную модель ProductInfo и отдаю в выхлоп.

public class ProductInfo
{
public Product Product {get;set;}
public Category Category {get;set;}
}

Будут заполнены только ProductInfo.Product.Name и ProductInfo.Category.Name

Можно пример кода как Вы достаёте только нужные поля?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548324
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STVмсущкотоже самое, я беру из базы только 2 поля, намаплимаю на свою расширенную модель ProductInfo и отдаю в выхлоп.

public class ProductInfo
{
public Product Product {get;set;}
public Category Category {get;set;}
}

Будут заполнены только ProductInfo.Product.Name и ProductInfo.Category.Name

Можно пример кода как Вы достаёте только нужные поля?За него это ORM делает :)
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548328
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STV, а какие проблемы получить одним запросом данные для объекта сл. типа:
Код: c#
1.
2.
3.
4.
5.
6.
public class Product
{
    public int ID {get;set;}
    public string Name {get;set;}
    public Category Category {get;set;}
}

?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548389
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAT_STV, а какие проблемы получить одним запросом данные для объекта сл. типа:
Код: c#
1.
2.
3.
4.
5.
6.
public class Product
{
    public int ID {get;set;}
    public string Name {get;set;}
    public Category Category {get;set;}
}

?
А зачем мне тянуть Категории если они мне например совсем не нужны. А если там будет 100 ссылок на другие сущности?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548398
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА как данными заполняется? Напрямую из БД, минуя BLL и DAL?
DAL у меня это EF.
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548519
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонСлезь с броневичка, не на митинге )
Нахватался умных слов, которые не совсем понимаешь.
Что такое Domain модель в твоем понимании, какие у нее цели?

объектная модель, объединящая данные и поведение.

и вообще

говоришь умные вещи -- "нахватался умных слов"

говоришь глупости -- "иди четай что умные люди пишут"

при чем тут броневичок. просто аргументы "производительность" и "меньше кода" -- очевидная глупость.
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548523
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STVА зачем мне тянуть Категории если они мне например совсем не нужны. А если там будет 100 ссылок на другие сущности?

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

* .. слово virtual
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548547
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttT_STVА зачем мне тянуть Категории если они мне например совсем не нужны. А если там будет 100 ссылок на другие сущности?

добавьте после слова public и не парьте мозги. ваши категории будут подтягиваться только тогда, когда вы к ним обратитесь. есть и другие способы контроллировать количество получаемой информации. кроме того, на счёт этого особенно беспокоиться не нужно. откуда конкретный метод контроллера знает, что категории не нужны? это его не должно вообще парить.
BLL у нас будет возвращать IEnumerable, а не IQueryable. Что значит будут подтягиваться когда нужны? А контроллер я пишу для конкретного View и я знаю что надо во вью а что нет (по крайней мере на текущий момент). А нафига я буду вытаскивать сотни сущностей, если они не используются?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548551
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T_STVмсущкотоже самое, я беру из базы только 2 поля, намаплимаю на свою расширенную модель ProductInfo и отдаю в выхлоп.

public class ProductInfo
{
public Product Product {get;set;}
public Category Category {get;set;}
}

Будут заполнены только ProductInfo.Product.Name и ProductInfo.Category.Name

Можно пример кода как Вы достаёте только нужные поля?

Для такого класса

Код: c#
1.
2.
3.
4.
5.
public class ProductInfo
{
    public string ProductName { get; set; }
    public string CategoryName { get; set; }
}



Код: c#
1.
2.
IEnumerable<ProductInfo> list = ctx.Products.Join(ctx.Categories, p => p.CategoryId, c => c.CategoryId, (p, c) => 
    new ProductInfo { ProductName = p.Name, CategoryName = c.Name }).ToList();



Для такого класса

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class ProductInfo
{
    public ProductInfo(string productName, string categoryName)
    {
        Product = new Product { Name = productName };
        Category = new Category { Name = categoryName };
    }

    public Product Product { get; set; }
    public Category Category { get; set; }
}



Код: c#
1.
2.
IEnumerable<ProductInfo> list = ctx.Products.Join(ctx.Categories, p => p.CategoryId, c => c.CategoryId, (p, c) =>
               new { ProductName = p.Name, CategoryName = c.Name }).ToList().Select(x => new ProductInfo(x.ProductName, x.CategoryName));
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548572
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STVBLL у нас будет возвращать IEnumerable, а не IQueryable. Что значит будут подтягиваться когда нужны? А контроллер я пишу для конкретного View и я знаю что надо во вью а что нет (по крайней мере на текущий момент). А нафига я буду вытаскивать сотни сущностей, если они не используются?

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

а все эти поигрушки с заменой IQueryable и IEnumerable действительно бессмысленные (ооо! я спрятал DAL и его IQueryable за IEnumerable... даже не смешно). хотите коллекцию? дайте честную коллекцию вида IReadOnlyCollection/ICollection/IList/etc.
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548573
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STVskyANAT_STV, а какие проблемы получить одним запросом данные для объекта сл. типа:
Код: c#
1.
2.
3.
4.
5.
6.
public class Product
{
    public int ID {get;set;}
    public string Name {get;set;}
    public Category Category {get;set;}
}

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

T_STVА если там будет 100 ссылок на другие сущности?Вы сейчас на ходу придумываете, или у Вас реально в таблице 100 внешних ключей?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548580
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

это из области "нафига казе баян?". использовать ОРМ, чтобы потом всеми силами бороться с ним
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548581
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, интерфейс IReadOnlyCollection появился в .Net Framework 4.5 :)
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548583
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttобъектная модель, объединящая данные и поведение

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

hVosttпросто аргументы "производительность" и "меньше кода" -- очевидная глупость.
Вопросов больше нет )
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548586
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA,

это из области "нафига казе баян?". использовать ОРМ, чтобы потом всеми силами бороться с ним А кто и где использует ОРМ?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548589
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонskyANAА как данными заполняется? Напрямую из БД, минуя BLL и DAL?
DAL у меня это EF.EF напрямую дёргается в контроллере (в коде страницы)?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548608
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, интерфейс IReadOnlyCollection появился в .Net Framework 4.5 :)

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

ПарамонЗаучивание предложений из букваря конечно полезно, но хорошо бы и понимание включать. )

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

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

если же ваш командный опыт показывает обратное, ну чтож... дело сугубо ваше. но я лично так рассуждал года 3 назад.
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548622
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAEF напрямую дёргается в контроллере (в коде страницы)?
Бывает в контроллере, бывает выношу в отдельные классы или сборки, зависит от.
Какую проблематичность в этом наблюдаете?
Начнем с кода страницы. )
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548638
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПарамонskyANAEF напрямую дёргается в контроллере (в коде страницы)?
Бывает в контроллере, бывает выношу в отдельные классы или сборки, зависит от.
Какую проблематичность в этом наблюдаете?
Начнем с кода страницы. )
Пецдетс... Друх, яд стоит на полке. Как можно писать код с такой кашей в голове, как у тебя?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548649
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttразрабатывать и дорабатывать вью можно полностью независимо от BLL.
Что значит разрабатывать и дорабатывать вью и какие проблемы возникают без DDD подхода?

hVosttиз BLL во вью не попадают технические поля, и данные которые там просто не нужны. только то, что нужно для отображения. каждая вью берёт своё. а из BLL берётся модель. целиком

Что случится если во вью попадут эти данные?
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548658
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоПецдетс... Друх, яд стоит на полке. Как можно писать код с такой кашей в голове, как у тебя?
Вы меня вразумите, объясните что да почему, яд и каша это не метод )
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548670
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЧто значит разрабатывать и дорабатывать вью и какие проблемы возникают без DDD подхода?

это значит, что изменения в BLL придётся ловить сначало в контроллерах, потом во вью. спрашивается. оно вам надо?

ПарамонЧто случится если во вью попадут эти данные?

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

это значит, что изменения в BLL придётся ловить сначало в контроллерах, потом во вью. спрашивается. оно вам надо?

Если ViewModel приходит сразу из БЛ, что там ловить в контроллере и вью?

hVosttможет случиться, что они могут быть отображены, а также могут быть испорчены, при возврате из вью.
Неубедительно. Отображено может быть только то что я хотел показать, испортить можно и в БЛ.
...
Рейтинг: 0 / 0
BLL работает с Model или ViewModel?
    #38548713
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонskyANAEF напрямую дёргается в контроллере (в коде страницы)?
Бывает в контроллере, бывает выношу в отдельные классы или сборки, зависит от.От чего? От настроения?

Через год спрашивают: почему тут такой подход, тут сякой, тут пятый, тут десятый?
Ответ: нууу... настроение было такое.
...
Рейтинг: 0 / 0
25 сообщений из 109, страница 3 из 5
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / BLL работает с Model или ViewModel?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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