Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
мсущкоДля такого класса Код: c# 1. 2. 3. 4. 5. Это разве не ViewModel? У Вас в BLL кастомный класс, который нужен конкретной реализации интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:03 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
skyANAT_STVпропущено... А зачем мне тянуть Категории если они мне например совсем не нужны.Выбрать имя категории подзапросом по её идентифкатору - это не проблема. Проблема когда от стороннего сервиса прилетает один идентификатор, а чтобы отобразить имя, то нужно посылать отдельный запрос этому сервису. Хотя и это не проблема: загружаем одним запросом справочники, кладём в кэш и дальше ничего тянуть не надо. T_STVА если там будет 100 ссылок на другие сущности?Вы сейчас на ходу придумываете, или у Вас реально в таблице 100 внешних ключей? На текущем проекте такого нет, но я встречал таблицы со 150ю полями. около сотни ссылочные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:04 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
что касается производительности. кейс №1. допустим, у нас есть объект Организация, которая характеризуется рядом полей, типа Название, Полное наименование ЮЛ, краткое наименование ЮЛ, всякие налоговые коды, и т.д. в одном месте нам понадобилось вывести список Названий организаций. в другом Название и Наименование ЮЛ, в третьем адреса и телефоны. и т.д. если делать запросы кортежами по логике "чего хочет вью", то получим десятки и сотни разных запросов по сути одного и того же. вместо того, чтобы СУБД, ОРМ и приложение могли закешировать всего лишь один срез данных, будет много бессмысленной грязи, в угоду наивной попытки сэкономить на объёме данных. обычные нагрузочные не показывают сколько нибудь значимой эффективности, однако нагрузка на СУБД в итоге только возрастает. кейс №2. сегодня во вью надо отобразить список названий организаций. для этого в BLL нарисовали специальный класс кортежа, и в запросе к СУБД получилось ID, Name. и тут заказчику, оказывается, надо ещё отобразить рядышком ОГРН. что делать? лезем в BLL, меняем кортеж. отыскиваем нужный вью и меняем там. все надо пересобирать, и все другие приложения использующие BLL тоже. короче, достанется абсолютно всем. круто! в ином случае, достаточно во ViewModel добавить злосчастное поле, и всё будет в ажуре. BLL трогать не пришлось. оно как возвращало коллекцию Организаций, так и продолжает её возвращать. естественно, бывают случаи и по сложнее. но зачем создавать себе лишние сложности там, где сразу можно их избежать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:05 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
ПарамонЕсли ViewModel приходит сразу из БЛ, что там ловить в контроллере и вью? во первых, весь проект с контроллером надо будет пересобрать. как минимум. во вью произвести изменения в соответствии с изменившимся классом. ты походу троллишь меня с изрядным удовольствием? очевидно, что такой подход полнейший идиотизм. писец, хренли тут ещё объяснять? среди продвинутых школьников и то можно обнаружить, тех кто это прекрасно понимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:17 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
T_STVмсущкоДля такого класса Код: c# 1. 2. 3. 4. 5. Это разве не ViewModel? У Вас в BLL кастомный класс, который нужен конкретной реализации интерфейса. Нет это доменный объект. Может содержать и логику. Учи матчасть и паттерны уже... Вот вьюмодель: public class ProductViewModel: IDataErrorInfo, IValidatableObject { [Required] [Display(Name = "Название")] public string Title { get; set; } [Required] [Display(Name = "Название")] [StringLength(100, ErrorMessage = "Длина значения поля \"Название продукта\" не должна первышать 100")] public string ProductName { get; set; } [Display(Name = "Выберите тип из списка")] public int? SelectedTypeId { get; set; } public IEnumerable<Types> ProductTypes { get; set; } // Обновить фото продукта [HiddenInput(DisplayValue = false)] public System.Web.HttpPostedFileBase File { get; set; } public string Error { get { return null; } } public string this[string columnName] { get { return null; } } public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { var results = new List<ValidationResult>(); if (SelectedTypeId.HasValue) { Validator.TryValidateProperty(SelectedTypeId, new ValidationContext(this, null, null) { MemberName = "SelectedTypeId" }, results); if (SelectedTypeId >= 100) { results.Add(new ValidationResult("Выбор такого типа заблокирован")); } } return results; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:21 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
T_STVмсущкоДля такого класса Код: c# 1. 2. 3. 4. 5. Это разве не ViewModel? У Вас в BLL кастомный класс, который нужен конкретной реализации интерфейса. Нет это доменный объект. Может содержать и логику. Вот вьюмодель: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:21 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
skyANAОт чего? От настроения? Через год спрашивают: почему тут такой подход, тут сякой, тут пятый, тут десятый? Ответ: нууу... настроение было такое. Тоже фантазировать начал? Есть конкретные соображения. ) Например повторное использование, или разргрузить логику, поднять уровень абстракции и тд. Трезвая критика кода в странице будет, или только пустой звук и куча вопросов? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 17:18 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
ПарамонskyANAОт чего? От настроения? Через год спрашивают: почему тут такой подход, тут сякой, тут пятый, тут десятый? Ответ: нууу... настроение было такое. Тоже фантазировать начал? Есть конкретные соображения. ) Например повторное использование, или разргрузить логику, поднять уровень абстракции и тд. Трезвая критика кода в странице будет, или только пустой звук и куча вопросов? )Сначала я хочу понять твою позицию, а потом уже будет критика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 17:26 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
Парамон...разргрузить логику...То есть встречаются страницы, где логика и доступ к данным в одном классе, в классе страницы, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 17:30 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
skyANAТо есть встречаются страницы, где логика и доступ к данным в одном классе, в классе страницы, так? Вот, критикуй :) SELECT * не трогать, hVostt сказал это нормуль. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 19:03 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
ПарамонskyANAТо есть встречаются страницы, где логика и доступ к данным в одном классе, в классе страницы, так? Вот, критикуй :) SELECT * не трогать, hVostt сказал это нормуль. )А, так Вы учебные примеры разрабатываете. Тут критика бесполезна, так как упрётся в "это учебный пример, тут этого не нужно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 23:08 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
hVostt... естественно, бывают случаи и по сложнее. но зачем создавать себе лишние сложности там, где сразу можно их избежать? Если у Вас несколько миллионов посетителей в день и сотни тысяч продаж то Вы каждое поле будете "вылизывать" и вдумчиво добавлять в кэш который как оказывается не резиновый и не очень хорошо масштабируется при таком объеме данных и скорости обработки... За последнее время позиция Microsoft сильно изменилась в этом вопросе - они уже никому не навязывают n-tier application. Уровней абстракций должно быть ровно столько, чтобы Ваш проект приносил прибыль, а не служил реализацией чьих-то идей, рожденных в bedrooms... Так что все мнения имеют право на жизнь и каждый зарабатывает себе на жизнь как умеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 00:52 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
Sergey ChЕсли у Вас несколько миллионов посетителей в день и сотни тысяч продаж то Вы каждое поле будете "вылизывать" и вдумчиво добавлять в кэш который как оказывается не резиновый и не очень хорошо масштабируется при таком объеме данных и скорости обработки... ой начинается, полезли примерчики из фантазий про фейсбук... если у ВАС там несколько миллионов посетителей в день и сотни тысяч продаж, то говнокодить вам никто не даст, сразу под зад и на биржу, наберут в штат грамотных архитекторов, программистов, дизайнеров, маркетолоков, поливальщиков цветов, а весь текущий тред туда не упирался ни одним местом. Sergey ChЗа последнее время позиция Microsoft сильно изменилась в этом вопросе - они уже никому не навязывают n-tier application. Уровней абстракций должно быть ровно столько, чтобы Ваш проект приносил прибыль, а не служил реализацией чьих-то идей, рожденных в bedrooms... высказывание ни о чём. хорошо когда хорошо. плохо когда плохо. Sergey ChТак что все мнения имеют право на жизнь и каждый зарабатывает себе на жизнь как умеет право на жизнь или ещё на что-то там не всегда реализуется, таковы законы природы и рынка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 02:45 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
ПарамонSELECT * не трогать, hVostt сказал это нормуль. ) забуть про SELECT * SELECT <весь набор полей> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 02:47 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
hVostt... если у ВАС там несколько миллионов посетителей в день и сотни тысяч продаж, то говнокодить вам никто не даст, сразу под зад и на биржу, наберут в штат грамотных архитекторов, программистов, дизайнеров, маркетолоков, поливальщиков цветов, а весь текущий тред туда не упирался ни одним местом... Как же Вы далеки от реальных проектов.... Улыбнуло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 11:30 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
Sergey ChhVostt... если у ВАС там несколько миллионов посетителей в день и сотни тысяч продаж, то говнокодить вам никто не даст, сразу под зад и на биржу, наберут в штат грамотных архитекторов, программистов, дизайнеров, маркетолоков, поливальщиков цветов, а весь текущий тред туда не упирался ни одним местом... Как же Вы далеки от реальных проектов.... Улыбнуло То есть в реальных проектах говнокодят, а не поля "вылизывают"? :) ТСу Вы что посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 11:58 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
Sergey ChКак же Вы далеки от реальных проектов.... Улыбнуло вЫ не представляете, на сколько! занят только на фанастически нереальных проектах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 12:13 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
hVosttSELECT <весь набор полей> Одна модель может выглядеть так, не вопрос ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 12:49 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
skyANAОт чего? От настроения? skyANAА, так Вы учебные примеры разрабатываете. skyANAТо есть в реальных проектах говнокодят, а не поля "вылизывают"? Шерлок Холмс отдыхает )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 12:49 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
Парамон, Вы смайлики везде добавляете и я иронизирую. Низзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 13:14 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
ПарамонОдна модель может выглядеть так, не вопрос ) справочники, справочники, справочники... де нормальная нормальзация? да, сорри за тофтоологию ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 13:23 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
hVosttсправочники, справочники, справочники... де нормальная нормальзация? да, сорри за тофтоологию ) Все нормализовано, в школе модели из трёх полей в основном? ) skyANAи я иронизирую. Низзя? Иронизировать можно, передергивать нет. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 14:17 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
Парамон, о чём это Вы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 14:21 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
ПарамонhVosttсправочники, справочники, справочники... де нормальная нормальзация? да, сорри за тофтоологию ) Все нормализовано, в школе модели из трёх полей в основном? ) Я бы поспорил на счёт этого. Картинка маленькая, видимо стыдно за архитектурный дизайн ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 14:46 |
|
||
|
BLL работает с Model или ViewModel?
|
|||
|---|---|---|---|
|
#18+
hVosttЯ бы поспорил на счёт этого. Картинка маленькая, видимо стыдно за архитектурный дизайн ;) Там ведь просто названия полей, которые я не хотел светить. Маленькая часть модели, типов нет, реальной картины не видно, что даст увеличение? ) Покажи может свою, я хоть гляну как у реальных парней? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 15:23 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38548750&tid=1357705]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 419ms |

| 0 / 0 |
