|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
Кстати, я так понимаю, что тогда этот контекст надо создавать в методе контроллера, который вызывается пользователем, и затем передавать УЖЕ СОЗДАННЫЙ В КОНТРОЛЛЕРЕ контекст в модели (и дальше по иерархии моделей)? Да? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 10:23 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320, ну так ради бога, если нет жестких требований к производительности и если нет в контексте разделяемых между пользователями ресурсов, то генерируйте и убивайте контекст при каждом запросе... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 10:23 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320Кстати, я так понимаю, что тогда этот контекст надо создавать в методе контроллера, который вызывается пользователем, и затем передавать УЖЕ СОЗДАННЫЙ В КОНТРОЛЛЕРЕ контекст в модели (и дальше по иерархии моделей)? Да?Обычно всю работу с DbContext инкапсулируют внутри конкретной реализации репозитория. Репозиторий используют внутри класса-сервиса, что реализует бизнес-логику. Сами бизнес-объекты при этом остаются чистыми и ничего не знают о том, что для их отображения (mapping) используется EF и DbContext. При таком подходе проще поддерживать, тестировать и развивать приложение. Также повторно использовать код, оптимизировать его, декорировать, рефакторить и прочее. Если Вам надо иначе, то пишите иначе. Только учтите, что велика вероятность, что в дальнейшем столкнётесь с проблемами и код придётся переписать. У Вас вон уже переход от трёх отдельных запросов к join вызывает трудности. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 10:49 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320, Добрый день.. автортяжелая инициализация в конструкторе, гораздо прагматичней инициализация по требованию что я имел ввидУ Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
в контектсте ваших высказываний, что вы моделью будете пользоваться в разных вьюхах проще сделать отложенную инициализацию ( поле в какой то вьюхе при каких то условиях может и не понадобиться, а конструктор все равно сработает тынц , некоторые контейнеры умеют это исполнять. запятая что это? z => z.x == c.x, это же связь по внешнему полю, у вас не полно смапилась сущность, или не раскрыты все связи в базе данных - это уже большие вопросы запятая ib = db.II.First(); безусловно будет браться из кеша, можно оптимизировать.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 10:56 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
Где-то в степи, конечно об этом говрить можно много, но с моей точки зрения, нужно поработать с базой, или денормализовать ее, накинуть связи там в общем то тремя запросами не пахнет, там куда больше ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 11:05 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
skyANAОбычно всю работу с DbContext инкапсулируют внутри конкретной реализации репозитория. Репозиторий используют внутри класса-сервиса, что реализует бизнес-логику. Сами бизнес-объекты при этом остаются чистыми и ничего не знают о том, что для их отображения (mapping) используется EF и DbContext. При таком подходе проще поддерживать, тестировать и развивать приложение. Также повторно использовать код, оптимизировать его, декорировать, рефакторить и прочее. Остается только добавить, что если приложение не сложное, то все это лишняя головная боль ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 11:19 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAОбычно всю работу с DbContext инкапсулируют внутри конкретной реализации репозитория. Репозиторий используют внутри класса-сервиса, что реализует бизнес-логику. Сами бизнес-объекты при этом остаются чистыми и ничего не знают о том, что для их отображения (mapping) используется EF и DbContext. При таком подходе проще поддерживать, тестировать и развивать приложение. Также повторно использовать код, оптимизировать его, декорировать, рефакторить и прочее. Остается только добавить, что если приложение не сложное, то все это лишняя головная боль Глупость. Если приложение не сложное, то и все его части по отдельности не сложные. Я бы сказал иначе: если не планируется развивать и тиражировать приложение, если это разовый и мелкий заказ, - то да, можно и в стиле Smart UI выполнить, не заморачиваясь. Быстрее же Вот только ТС что-то там развивать собрался и при подходе "а репозиторий мне пока не нужен и производительность мне не важна сейчас" велика вероятность наступить не на одни грабли. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 11:47 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
авторчто это? z => z.x == c.x и прочее подобное. Это и вообще почти все нагромождения в моём коде - чтобы просто показать, что я там что-то делаю, как-то выбираю данные и прочее. Основной вопрос - чего делать с контекстом БД в случае, когда много конструкторов одиз из другого вызываются. авторОстается только добавить, что если приложение не сложное, то все это лишняя головная боль Во-во. Если я напишу репозиторий и выложу свою поделку сюда, набегут критики, которые будут говорить, что конкуренции не обработаны, что нет защиты от дурака, что не предусмотрено аварийное отключение электроэнергии и пр. Уже обсуждали недавно в одной теме, где человек тоже про репозиторий спрашивал. Вроде, пришли в основном ко мнению, что либо делать хорошо, реализуя вот все эти хреновины с конкуренциями и пр., либо пользоваться ORM от EF как репозиторием напрямую. автортяжелая инициализация в конструкторе, гораздо прагматичней инициализация по требованию А, понял. Т. е. мне надо убрать все эти ToList() и просто пройтись тем же foreach'ем по IEnumerable (или IQuerable) в предсталении. Тогда непосредственно запрос из БД будет только на этапе создания представления, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 12:39 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
авторВот только ТС что-то там развивать собрался и при подходе "а репозиторий мне пока не нужен и производительность мне не важна сейчас" велика вероятность наступить не на одни грабли. Приложение, скорее всего, будут развивать. Только здесь и сейчас просят в сжатые сроки, в которые я им нормальный репозиторий не выдам. Значит, будут переписывать потом нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 12:41 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
Где-то в степиГде-то в степи, конечно об этом говрить можно много, но с моей точки зрения, нужно поработать с базой, или денормализовать ее, накинуть связи там в общем то тремя запросами не пахнет, там куда больше Я тут подумал. Наверное, джойнами можно будет. БД нормальная, и связей там может даже больше, чем надо. Просто я с джойнами не очень дружу. Мне проще три простых запроса и потом из их результатов создать сложную модель. Ну, я посмотрю, что там у меня можно с джойнами сделать. Ещё раз говорю, что код, что я написал - от балды, лишь бы показать, что конструкторы не пустые и что-то делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 12:44 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320, да че вы стремаетесь, всему свое время, и вопросы ваши даже очень уместны и пральны для этого форума. зы вон тетенька с форума выше долбит всех вопросами про комбики и гриды, хотя все это есть в справке, терпят же все.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 13:13 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320Во-во. Если я напишу репозиторий и выложу свою поделку сюда, набегут критики, которые будут говорить, что конкуренции не обработаны, что нет защиты от дурака, что не предусмотрено аварийное отключение электроэнергии и пр. Уже обсуждали недавно в одной теме, где человек тоже про репозиторий спрашивал. Вроде, пришли в основном ко мнению, что либо делать хорошо, реализуя вот все эти хреновины с конкуренциями и пр., либо пользоваться ORM от EF как репозиторием напрямую. Ой чую сча и на меня набросятся Но все же, набившись головой апстену с этими проблемами, забили нафиг на всякие репозитории, EF и иже с ним и вернулись к старому доброму T-SQL и довольны как слоны Пусть разработчики скуля борятся с конкуренциями и думают как данные сохранить когда суицидная крыса кабель питания сервака перегрызла ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 13:28 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, да че нет то, если все пацаны в команде согласны.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 13:34 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320авторВот только ТС что-то там развивать собрался и при подходе "а репозиторий мне пока не нужен и производительность мне не важна сейчас" велика вероятность наступить не на одни грабли. Приложение, скорее всего, будут развивать. Только здесь и сейчас просят в сжатые сроки, в которые я им нормальный репозиторий не выдам. Значит, будут переписывать потом нормально.Вы только предупредите о такой вероятности тех, кто просит, чтобы они потом не удивлялись, что новые требования вызывают следующую реакцию: "Чёрт, это надо всё переписывать". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 14:50 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIuser7320Во-во. Если я напишу репозиторий и выложу свою поделку сюда, набегут критики, которые будут говорить, что конкуренции не обработаны, что нет защиты от дурака, что не предусмотрено аварийное отключение электроэнергии и пр. Уже обсуждали недавно в одной теме, где человек тоже про репозиторий спрашивал. Вроде, пришли в основном ко мнению, что либо делать хорошо, реализуя вот все эти хреновины с конкуренциями и пр., либо пользоваться ORM от EF как репозиторием напрямую. Ой чую сча и на меня набросятся Но все же, набившись головой апстену с этими проблемами, забили нафиг на всякие репозитории, EF и иже с ним и вернулись к старому доброму T-SQL и довольны как слоны А за что тут набрасываться-то? Пишите как хотите, главное чтобы внезапно так не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 15:01 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
skyANAглавное чтобы внезапно так не получилось. Почитал... бла-бла-бла... ниачом. Два каких-то куска говнокода и сразу вывод - логика на T-SQL гумно шарп рулит... Про невозможность модульного тестирования хранимок ваще поцталом. А то что два кодера за месяц налабали всю логику которую на T-SQL несколько лет писали ваще убило! Я так и не понял, с какими конкретно сложностями внедрения столкнулись? Приведенный кусок говнокода не смогли переписать или что? И главное: Сейчас система готовится к выходу на новый объект для внедрения. Ну вот когда внедрят тогда и будут понтами брызгать... короче ваще ниачом... Вывод - херню можно создать на чем угодно, но на T-SQL что бы создать херню, нужно очень сильно постараться. ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 16:10 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAглавное чтобы внезапно так не получилось. Почитал... бла-бла-бла... ниачом. Два каких-то куска говнокода и сразу вывод - логика на T-SQL гумно шарп рулит... Про невозможность модульного тестирования хранимок ваще поцталом. А то что два кодера за месяц налабали всю логику которую на T-SQL несколько лет писали ваще убило! Я так и не понял, с какими конкретно сложностями внедрения столкнулись? Приведенный кусок говнокода не смогли переписать или что? И главное: Сейчас система готовится к выходу на новый объект для внедрения. Ну вот когда внедрят тогда и будут понтами брызгать... короче ваще ниачом... Вывод - херню можно создать на чем угодно, но на T-SQL что бы создать херню, нужно очень сильно постараться. ИМХО.Тро-ло-ло. Ты каким местом читал? Где там про гумно, где про невозможность модульного тестирования хранимок? Тебя если попросить систему, написанную на T-SQL, внедрить под Oracle, у тебя сложности не возникнут? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 16:29 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
skyANAро-ло-ло. Ты каким местом читал? Где там про гумно, где про невозможность модульного тестирования хранимок? Отсутствие модульных тестов: в C# коде сильная связанность и зависимость от внешних ресурсов, а на хранимые процедуры сложно писать модульные тесты skyANAТебя если попросить систему, написанную на T-SQL, внедрить под Oracle, у тебя сложности не возникнут? Без понятия, PL/SQL знаю крайне посредственно. Но с таким же успехом могу спросить - тебя если попросить систему, написанную на C#, внедрить на Java, у тебя сложности не возникнут? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 16:36 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAро-ло-ло. Ты каким местом читал? Где там про гумно, где про невозможность модульного тестирования хранимок? Отсутствие модульных тестов: в C# коде сильная связанность и зависимость от внешних ресурсов, а на хранимые процедуры сложно писать модульные тестыВыдели ту часть, где про гумно и про невозможность модульного тестирования хранимок. Или сложно - это синоним невозможности для тебя? EDUARD SAPOTSKIskyANAТебя если попросить систему, написанную на T-SQL, внедрить под Oracle, у тебя сложности не возникнут? Без понятия, PL/SQL знаю крайне посредственно. Но с таким же успехом могу спросить - тебя если попросить систему, написанную на C#, внедрить на Java, у тебя сложности не возникнут?Возникнут. Как они и у тех парней возникли. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 16:41 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
skyANAВыдели ту часть, где про гумно и про невозможность модульного тестирования хранимок. Или сложно - это синоним невозможности для тебя? Ну уговорил, про невозможность тестов немного преувеличил А про гумно - весь смысл повествования - вынесли логику из хранимок - все зашибись, логически - хранимки гумно Угадай, если бы Заказчик попросил клиента переписать на Java и оставить оракл, где бы вся логика оказалась? skyANAВозникнут. Как они и у тех парней возникли. Ну так о чем спич? И ваще это проблемы Заказчика, хочет T-SQL вместо PL/SQL или Java вместо C# пусть платит деньги. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 16:52 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, ты понаписал предвзятых глупостей, а теперь пытаешься стрелки перевести. Описан реальный случай, где решили реальные проблемы (один из способ проектирования приложения со своими плюсами и минусами), при чём тут твои "а если"? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 17:19 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIУгадай, если бы Заказчик попросил клиента переписать на Java и оставить оракл, где бы вся логика оказалась? - Дублирование в Java коде - Дублирование в PL\SQL-коде - Дублирование между Java и SQL-кодом - Бизнес-логика во всех слоях приложения Угадал? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 17:28 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Приложение, скорее всего, будут развивать. Только здесь и сейчас просят в сжатые сроки, в которые я им нормальный репозиторий не выдам. Значит, будут переписывать потом нормально.Вы только предупредите о такой вероятности тех, кто просит, чтобы они потом не удивлялись, что новые требования вызывают следующую реакцию: "Чёрт, это надо всё переписывать". На этом всё серьёзное мировое ПО стоит. Я тут даже боюсь соваться со своими нововведениями. Лучше сделаю как все, пока сам крутым не стал и не получил значимость и мировую известность. Потом создам свой шаблон проектирования. Какой-нибудь "со мной переписывать некогда не надо". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 13:54 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
Где-то в степиuser7320, не нравится 1 тяжелая инициализация в конструкторе , гораздо прагматичней инициализация по требованию 2 куча запросов бомбит сервер имхо не осмысленно. проще сделать наследование c:ZZ и вытащить все одним джойном,( ну тут надо смотреть структуру) 3 не желание применять фабрику и инжекции Да и вообще все не нравится вплоть до названий полей и классов Я уже понял, что вы имели ввиду. Уже сделал проще. Типа такого . Там строка ur => new UseRecommendationModel() и далее данные передаются там. А в UseRecommendationModel свой подзапрос может быть. В результате всё в пределах одного запроса и контекст БД никуда в конструкторы не передаётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 13:57 |
|
Передача data context по иерархии конструкторов - надо, нет?
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Вы только предупредите о такой вероятности тех, кто просит, чтобы они потом не удивлялись, что новые требования вызывают следующую реакцию: "Чёрт, это надо всё переписывать". На этом всё серьёзное мировое ПО стоит. Я тут даже боюсь соваться со своими нововведениями. Лучше сделаю как все, пока сам крутым не стал и не получил значимость и мировую известность. Потом создам свой шаблон проектирования. Какой-нибудь "со мной переписывать некогда не надо".Философию не учили? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 14:10 |
|
|
start [/forum/topic.php?fid=17&msg=38408461&tid=1349921]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 408ms |
0 / 0 |