|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КhVosttНу проще и понятнее было бы логику обособлять в отдельном модуле (или в модулях), для многократного использования в различном применении.Браво! Нобелевскую! Ты первый, кто до этого додумался! Алексей КМне надоело упражняться в красноречии, я лучше пойду. Удачи! Упражняться надо не в красноречии, а в разработке, изучать тему, повышать профессионализм. Если тебе это не надо, зачем тогда лезть в дискуссии с нелепыми и глупыми высказываниями, без единой аргументации? Красноречие не поможет, увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 10:24 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAhVostt, как обзывать классы, инкапсулирующие бизнес-логику, и в какие модули выносить - это отдельный вопрос. Давай вернёмся к ТС: "Зачем вообще слой Service? Такое ощущение что вместо сервиса можно использовать сразу репозиторий в клиенте". Тут как в присказке: сказал А, говори Б. Надо сначала разобраться что понимается под «слоем Service». Прикладной код не должен иметь прямого доступа к репозиторию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 10:26 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, как обзывать классы, инкапсулирующие бизнес-логику, и в какие модули выносить - это отдельный вопрос. Давай вернёмся к ТС: "Зачем вообще слой Service? Такое ощущение что вместо сервиса можно использовать сразу репозиторий в клиенте". Надо сначала разобраться что понимается под «слоем Service». Для этого было в начале выложен примеры кода - клиента, сервиса и репозитория, которые гуляют по интернету. Всем спасибо. Много интересных коментариев. По поводу выноса логики из вью, контроллеров итд ... с этим понятно. И с тем что нет условно одного правильного решения для всех случаев жизни. И вопрос не как правильно, а как правильнее ... Ну и да, смотря на пример выше я нивижу сервис каким то "пустым" чтоли... но как объяснили выше он может содержать в себе более 2х репозиториев, транзакции итд... И тут у меня возникает еще один вопрос. Сервис имеет в себе репозиторий UserRepository с методом GetUser. Я получаю User'a и его Roles. Правильнее будет отключить LazyLoadingEnabled ? и добавить в сервис RoleRepository? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 11:06 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GПравильнее будет отключить LazyLoadingEnabled ? и добавить в сервис RoleRepository? это чисто прикладное решение которое полностью за вами. можно и так и сяк ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 11:57 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GИ тут у меня возникает еще один вопрос. Сервис имеет в себе репозиторий UserRepository с методом GetUser. Я получаю User'a и его Roles. Правильнее будет отключить LazyLoadingEnabled ? и добавить в сервис RoleRepository? Правильнее так, lazy load это фишка EF, а по сути ни что иное, как костыль! Сейчас тебе понадобилась просто ленивая загрузка данных через навигационные поля. А потом тебе понадобится фильтрация этих данных... и начались проблемы. В общем, тяни данные только непосредственно из репозитория, навигационные поля используй для проекции и для записи/сохранения. Этим ты убережёшь себя и других разработчиков от огромной кучи проблем на будущее. И это правильно. Обязательно разберись с проекциями, это мощнейший инструмент, я не перестаю повторять об этом здесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 13:34 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttОбязательно разберись с проекциями, это мощнейший инструмент, я не перестаю повторять об этом здесь. хм, новое слово ... это вот об этом идет речь? https://msdn.microsoft.com/ru-ru/library/bb386978(v=vs.100).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 14:17 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем G Код: c# 1. 2. 3. 4. 5. 6.
Господа, я дико извиняюсь, но кто такой viewModelGadgets? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 14:49 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
ЕвгенийВГоспода, я дико извиняюсь, но кто такой viewModel Gadgets? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 14:50 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Владимир Путин-Ленин, Где определение выше по коду? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 15:02 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
ЕвгенийВВладимир Путин-Ленин, Где определение выше по коду? ну оно не в коде выше, видно в другом месте. если честно, не совсем вопрос понял ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 15:04 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Владимир Путин-Ленин, Смотри первый вопрос! По идее он должен пихнуть был modelCategoryViewModel, иначе какой смысл получать эту мутоту? А пихает неопознанный viewModelGadgets! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 15:26 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GhVosttпропущено... Надо сначала разобраться что понимается под «слоем Service». Для этого было в начале выложен примеры кода - клиента, сервиса и репозитория, которые гуляют по интернету. В интернете подробно расписано, что такое репозиторий, зачем появился, как использовать, как не использовать... А Вы притащили сюда какой-то кривой пример, фиг знает кем писаный. Вы лучше о своём проекте расскажите подробнее, будут более конкретные советы по его архитектуре. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 15:30 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
ЕвгенийВВладимир Путин-Ленин, Смотри первый вопрос! По идее он должен пихнуть был modelCategoryViewModel, иначе какой смысл получать эту мутоту? А пихает неопознанный viewModelGadgets! ну, наверное опечатка ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 15:30 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Владимир Путин-ЛенинЕвгенийВВладимир Путин-Ленин, Смотри первый вопрос! По идее он должен пихнуть был modelCategoryViewModel, иначе какой смысл получать эту мутоту? А пихает неопознанный viewModelGadgets! ну, наверное опечатка Опечатка. Код был взять из проекта с GitHube и редактировался на форуме ... убиралось лишнее. оставлял только суть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 19:34 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAВы лучше о своём проекте расскажите подробнее, будут более конкретные советы по его архитектуре. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 22:21 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
кто вообще сказал, что сервис должен работать с репозиторием? сервис может работать с чем угодно и с репозиторием в том числе ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 22:53 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Roman Mejtesкто вообще сказал, что сервис должен работать с репозиторием? сервис может работать с чем угодно и с репозиторием в том числе а к этому "чем угодно" он будет обращаться прямо? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 22:56 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Roman Mejtesкто вообще сказал, что сервис должен работать с репозиторием? сервис может работать с чем угодно и с репозиторием в том числе Вообще не должен. Сервис это некая универсальная концепция некой инкапсулированной работы, выраженная в дотнете интерфейсом и его реализующим классом, а в тестах подделкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 22:58 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Иммануил КантRoman Mejtesкто вообще сказал, что сервис должен работать с репозиторием? сервис может работать с чем угодно и с репозиторием в том числе а к этому "чем угодно" он будет обращаться прямо? Просто сервис может работать с данными, которые ему дадут вместо извлечения их из репозитория. Например, он может получать query handler. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 22:59 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttИммануил Кантпропущено... а к этому "чем угодно" он будет обращаться прямо? Просто сервис может работать с данными, которые ему дадут вместо извлечения их из репозитория. Например, он может получать query handler. если выделили этот слой. то данные только из репо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 23:01 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Иммануил КантhVosttпропущено... Просто сервис может работать с данными, которые ему дадут вместо извлечения их из репозитория. Например, он может получать query handler. если выделили этот слой. то данные только из репо. или ты имеешь ввиду некоторый "вход"? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 23:02 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
типа Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 23:05 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttОбязательно разберись с проекциями, это мощнейший инструмент, я не перестаю повторять об этом здесь. Продублирую еще раз вопрос, так как видно потерялся :) хм, новое слово ... это вот об этом идет речь? https://msdn.microsoft.com/ru-ru/library/bb386978(v=vs.100).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2016, 22:36 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GhVosttОбязательно разберись с проекциями, это мощнейший инструмент, я не перестаю повторять об этом здесь. Продублирую еще раз вопрос, так как видно потерялся :) хм, новое слово ... это вот об этом идет речь? https://msdn.microsoft.com/ru-ru/library/bb386978(v=vs.100).aspx Да, об этом. Ещё можно воспользоваться вот этим: https://github.com/AutoMapper/AutoMapper/wiki/Projection ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2016, 23:11 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Просмотрел кучу инет страниц об UnitOfWork. Оказалась каждый делает как ему в голову стукнет. Вариантов с десяток. И появилось еще несколько вопросов ... как будет правильнее / лучше ... 1. Передав UnitOfWork в сервис (пример в спойлере), нужно ли передовать еще и Репозиторий IApplicationRepository? Видел вариант где в конструктор Сервиса передавался и IApplicationRepository и UnitOfWork. Запросы делались через IApplicationRepository а у UnitOfWork использовался только метод SaveChanges. Но мне кажется что передавать еще и IApplicationRepository излишне. 2. Видел вариант где в Сервисе в конструкторе передается IReposritory<Application> а не IApplicationRepository, а ApplicationRepository и его методы статичны и расширяют IReposritory<Application>. Это нормально? или Правильно? Сейчас у меня в IUnitOfWork IApplicationRepository, а не IReposritory<Application> можно увидет в примере ниже, иначе я не имею доступ к методу GetApplications(Blocked: blocked), который в IApplicationRepository. 3. Транзакции делаются в Сервисе через TransactionScope? или есть другие варианты? для примера с DbContextTransaction? Помниться у меня был какой-то негативный опыт с TransactionScope. Какой, не помню. Пример ApplicationService Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Пример UnitOfWork Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2016, 03:06 |
|
|
start [/forum/topic.php?fid=20&msg=39186008&tid=1400730]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 439ms |
0 / 0 |