|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
а на клиенте просто запрашиваешь сервис безотностительно к объектной модели? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:47 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ViPRosне врубаюсь Пиши на датасетах и не ипи мне моск :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:52 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ, не разговор не о датасетах и еще че то ОРМ означет для меня что 1. Есть Объектная модель ОМ (т.е. вся работа по проблемной области сконцентрирована тут) 2. Есть Хранилище Х( в данном случае РСУБД) 3. Есть Прозрачный маппинг элементов ОМ в элементы Х никаких других конструкцтий тут не должно быть а с твоих слов выходит что в ЕФ ОМ сам по себе а работа идет с вспомогательными конструкциями какими то концепция нарушена ладно бы метод объекта автоматом маппировалась в ИДатаСервис (прозрачно), нет как я понял эти сервисы надо вручную создавать, а методы их вызывающие воще не относятся к ОМ прально? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:11 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУПарамонпропущено... Покурю на досуге, пока не ясно ) Не кури, опять бредни Севы. OData в обсуждаемой теме никак не относится :) SeVaOData содержит метаинформацию, а это в купе с динамическими объектами позволяет сделать одну универсальную реализацию и не плодить сущности на каждый чих. Сдурел, что-ли? Ты бы еще рефлексию предложил в прикладном коде. Муся, ты чмошник, который должен только молча копать и отрабатывать свою пайку, а не рассуждать о том, что правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:29 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ViPRosМСУ, не разговор не о датасетах и еще че то ОРМ означет для меня что 1. Есть Объектная модель ОМ (т.е. вся работа по проблемной области сконцентрирована тут) 2. Есть Хранилище Х( в данном случае РСУБД) 3. Есть Прозрачный маппинг элементов ОМ в элементы Х никаких других конструкцтий тут не должно быть а с твоих слов выходит что в ЕФ ОМ сам по себе а работа идет с вспомогательными конструкциями какими то концепция нарушена ладно бы метод объекта автоматом маппировалась в ИДатаСервис (прозрачно), нет как я понял эти сервисы надо вручную создавать, а методы их вызывающие воще не относятся к ОМ прально? ViPRos, не ломай голову и не пытайся в этих детских гули-гули найти какой-то смысл. Детка делает первые шаги в ООП, но с полными подгузниками особо не разбежишься ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:31 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Не кури, опять бредни Севы. OData в обсуждаемой теме никак не относится :) пропущено... Сдурел, что-ли? Ты бы еще рефлексию предложил в прикладном коде. Муся, ты чмошник, который должен только молча копать и отрабатывать свою пайку, а не рассуждать о том, что правильно. Сева, ты опущенец, которого все кому не лень опускают на форуме. Так было, так есть, так будет. Свыкнись со своей кармой, неуч. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:51 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Не кури, опять бредни Севы. OData в обсуждаемой теме никак не относится :) пропущено... Сдурел, что-ли? Ты бы еще рефлексию предложил в прикладном коде. Муся, ты чмошник, который должен только молча копать и отрабатывать свою пайку, а не рассуждать о том, что правильно. Попробуй с помощью с своего говнодата сервиса и прочего бреда изобразить то, что достаточно легко делается с OData. Один контрол и несколько незамысловатых классов и больше нет проблемы с кучей DTO. OData Viewer Tool Только тужься у себя в туалете, а не как обычно, на форуме ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:52 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУSeVaпропущено... Муся, ты чмошник, который должен только молча копать и отрабатывать свою пайку, а не рассуждать о том, что правильно. Сева, ты опущенец, которого все кому не лень опускают на форуме. Так было, так есть, так будет. Свыкнись со своей кармой, неуч. Научись сначала угу-угу внятно бормотать, а когда подрастешь, может, и будут твое вяканье слушать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:55 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Сева, ты опущенец, которого все кому не лень опускают на форуме. Так было, так есть, так будет. Свыкнись со своей кармой, неуч. Научись сначала угу-угу внятно бормотать, а когда подрастешь, может, и будут твое вяканье слушать. Кухарка предлагает использовать динамику в прикладном коде? Давно ли кухарка наведывалась к доктору? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 17:59 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SeVa, ну сама модель ОДата такая ж фигня как и ЕФ и т.д. кроме Сущноси и Связи нет ничего при это Сущность понимается как таблица в БД нет понятия Схемы (именованный набор Связанных сущностей) вот говрим Накладная и подазумрваем как минимум 2 Сущности - Шапка и Строки и связь между ними(в Випросе это макротип) но в отдельности эти сущности нафиг никому не нужны кроме Мсушнего Идатасервис Связь между Ш и С сильная но тут же есть и слабыее связи - материал, ЕДИМ и т.д. при задании схемы (макротипа) надо в мета указать сильные и слабые связи, направление зависимости и т.д. а так из БД гоняете в БД фигня все это ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 18:50 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
Lord BritishДавайте все же вернемся к EF, UOW, REPO и потроллим друг-друга на тему надо/не надо. К сожалению, в тему заглянули только штатные тролли, поэтому развести дискуссию по существу будет напряжённо. :) Могу лишь изложить поподробнее своё мнение. Сам прошёл путь Stored Procedure -> NHibernate -> Repository over Nhibernate -> NHibernate -> NoSQL (в процессе). В общем, в процессе работы по принципу Repository over Nhibernate пришёл к пониманию, что мне просто не хватает возможностей, которые есть в NH, и я потихоньку привожу Repository к ISesson. В итоге просто выкинул ненужным мне слой. И чуть позже наткнулся на хорошие блоги по этой теме: раз , два , и (особенно для любителей SOLID'а) три . Сам я тоже любитель SOLID. Но кроме него, надо держать в голове и свой разум. Ибо видел совершенно "солидный", но абсолютно неподдерживаемый код. И вдогонку. Вся эта суета вокруг слоёв вообще, и репозитория в частности задумывалась ради одной цели - сделать код более поддерживаемым за счёт повышения его понятности. И еще повторного использования кода. На самом деле, обычно гораздо проще для поддерживаемсяости использовать не горизонтальное деление - слои, а вертикальное - разделы. При этом используя как можно меньше псевдоабстракций. С повторным использованием, всё еще проще - 90% кода повторно не используется. На практике это выглядит так: прямо в коде MVC-контроллера берём сессию, строим запрос, бросаме результат во ViewModel. Просто, понятно, быстро, тестируемо. Profit. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 19:02 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SolYUtorНа практике это выглядит так: прямо в коде MVC-контроллера берём сессию, строим запрос, бросаме результат во ViewModel. Просто, понятно, быстро, тестируемо. Profit. То есть весь BL в контроллере? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 19:25 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SolYUtorВ общем, в процессе работы по принципу Repository over Nhibernate пришёл к пониманию, что мне просто не хватает возможностей, которые есть в NH, и я потихоньку привожу Repository к ISesson. Не путай божий дар с яичницей. В NH ты в любом случае будешь строить свой репо, т.к. его нет. А EF уже и сразу автогенерит тебе его, бери и используй. Но находятся идиоты типа севы, которые этои репо еще разок обвязывают в свой репо. SolYUtorпрямо в коде MVC-контроллера берём сессию, строим запрос, бросаме результат во ViewModel. Просто, понятно, быстро, тестируемо. Profit. Жесть, причем убийственная... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 19:52 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонЭто из плюсов, а минусов тоже не мало. Pros and Cons of Data Transfer Objects Как на пример туева хуча дата шейпов, чуть ли не на каждый запрос. Да, ничего не поделаешь. Но не вижу особого ужаса в этом, просто грамотно по неймспейсам (каталогам) классифицируем "шейпы" в проекте и поддерживаем это добро. Зато какой порядок и чистота будет в BL, как легко будет поддерживать и развивать такую архитектуру. Мне кажется, с самого начала не стоит жмотиться DTO, и начинать сразу писать правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 19:55 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУпрямо в коде MVC-контроллера берём сессию, строим запрос, бросаме результат во ViewModel. Просто, понятно, быстро, тестируемо. Profit. Жесть, причем убийственная... А что тут убийственного? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 20:41 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
Где-то в степиА что тут убийственного? Чтение БД с логикой в контроллере... Действительно, а что тут убийственного? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 20:44 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУДа, ничего не поделаешь. Но не вижу особого ужаса в этом, просто грамотно по неймспейсам (каталогам) классифицируем "шейпы" в проекте и поддерживаем это добро. Зато какой порядок и чистота будет в BL, как легко будет поддерживать и развивать такую архитектуру. Мне кажется, с самого начала не стоит жмотиться DTO, и начинать сразу писать правильно. Ну это ладно, а скажем если я хочу добавить такую логику в модель: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
И передать куда то такой дто: Код: c# 1. 2. 3. 4. 5. 6.
Как бы такое провернуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 20:52 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУГде-то в степиА что тут убийственного? Чтение БД с логикой в контроллере... Действительно, а что тут убийственного? какая логика, вытащить модель из базы и размазать по контроллеру - все в returne что бы не пачкать тело метода? 50 проц основные нужды.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:06 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУГде-то в степиА что тут убийственного? Чтение БД с логикой в контроллере... Действительно, а что тут убийственного? какая логика, вытащить модель из базы и размазать по контроллеру вьюхе - все в returne что бы не пачкать тело метода? 50 проц основные нужды.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:06 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонТо есть весь BL в контроллере? МСУВ NH ты в любом случае будешь строить свой репо МСУЖесть, причем убийственная... Код: c# 1. 2. 3. 4. 5. 6.
Такой запрос использован один раз, прямо в контроллере. DAL, Repository и тд. уже есть в виде сессии, дополнительные обёртки не нужны. Логика в классе Order, а не в контроллере. Усложнять код, вводя новые слои, классы и т.д. не нужно. В реале есть пара Extension методов для постраничной выборки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:13 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ViPRosSeVa, ну сама модель ОДата такая ж фигня как и ЕФ и т.д. кроме Сущноси и Связи нет ничего при это Сущность понимается как таблица в БД нет понятия Схемы (именованный набор Связанных сущностей) вот говрим Накладная и подазумрваем как минимум 2 Сущности - Шапка и Строки и связь между ними(в Випросе это макротип) но в отдельности эти сущности нафиг никому не нужны кроме Мсушнего Идатасервис Связь между Ш и С сильная но тут же есть и слабыее связи - материал, ЕДИМ и т.д. при задании схемы (макротипа) надо в мета указать сильные и слабые связи, направление зависимости и т.д. а так из БД гоняете в БД фигня все это ViPRos, а не нужны никому эти жесткие связи и полное описание БД, тк смысл всех этих мультитков - уйти от зависимости структуры БД.Тк ООП и БД - две большие разницы. Помимо этого, нужны разные срезы данных(об этом говорилось в статье) Вместо с танцев с бубнами для описания можно спокойно содать view за пять минут, запустить кодогенратор, а дальше если есть нормальный фреймворк, то больше делать ничего не нужно, все и так подхватится. всесто БД - черный ящик, который предоставляет нужные интерфейсы. Помимо нее могут разные постащики данных(внешние сервисы, файлы, очереди сообщений, голубиная почта и тд). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:30 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SolYUtorLord BritishДавайте все же вернемся к EF, UOW, REPO и потроллим друг-друга на тему надо/не надо. К сожалению, в тему заглянули только штатные тролли, поэтому развести дискуссию по существу будет напряжённо. :) Могу лишь изложить поподробнее своё мнение. Сам прошёл путь Stored Procedure -> NHibernate -> Repository over Nhibernate -> NHibernate -> NoSQL (в процессе). В общем, в процессе работы по принципу Repository over Nhibernate пришёл к пониманию, что мне просто не хватает возможностей, которые есть в NH, и я потихоньку привожу Repository к ISesson. В итоге просто выкинул ненужным мне слой. И чуть позже наткнулся на хорошие блоги по этой теме: раз , два , и (особенно для любителей SOLID'а) три . Сам я тоже любитель SOLID. Но кроме него, надо держать в голове и свой разум. Ибо видел совершенно "солидный", но абсолютно неподдерживаемый код. И вдогонку. Вся эта суета вокруг слоёв вообще, и репозитория в частности задумывалась ради одной цели - сделать код более поддерживаемым за счёт повышения его понятности. И еще повторного использования кода. На самом деле, обычно гораздо проще для поддерживаемсяости использовать не горизонтальное деление - слои, а вертикальное - разделы. При этом используя как можно меньше псевдоабстракций. С повторным использованием, всё еще проще - 90% кода повторно не используется. На практике это выглядит так: прямо в коде MVC-контроллера берём сессию, строим запрос, бросаме результат во ViewModel. Просто, понятно, быстро, тестируемо. Profit. Пока ты это проходил и искал, я это давно прошел и давно говорил тебе, что не нужно писать кипятком от твоего хибернейта. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:33 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SolYUtorПарамонТо есть весь BL в контроллере? МСУВ NH ты в любом случае будешь строить свой репо МСУЖесть, причем убийственная... Код: c# 1. 2. 3. 4. 5. 6.
Такой запрос использован один раз, прямо в контроллере. DAL, Repository и тд. уже есть в виде сессии, дополнительные обёртки не нужны. Логика в классе Order, а не в контроллере. Усложнять код, вводя новые слои, классы и т.д. не нужно. В реале есть пара Extension методов для постраничной выборки. Если подобная логика в классе Order, то ты забрел не в ту степь. И здесь не соблюдается постоянно тобой цитируемый SOLID ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:37 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
Nhibernate LazyLoading в многослойном приложении Вот одна из типичных проблем при использовании всех ORM. Начинают лепить городухи для ленивой загрузки, а они рассчитаны только под чистый CRUD ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 21:46 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонКак бы такое провернуть? Не понял, а в чем проблема? Где-то в степиМСУЧтение БД с логикой в контроллере... Действительно, а что тут убийственного? какая логика, вытащить модель из базы и размазать по контроллеру - все в returne что бы не пачкать тело метода? 50 проц основные нужды.. Чтение БД - это не логика, это чтение БД. А вот дальше идет логика. И тому и другому не место в контроллере. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 22:01 |
|
|
start [/forum/topic.php?fid=17&msg=38108504&tid=1350110]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 246ms |
0 / 0 |