|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Суть такая. Стараюсь держать логику в отдельных классах-сервисах. Однако пока не знаю как реализовать одну задумку. В этом сервисе есть такой метод: Код: c# 1.
Вариант с Task<MyResult> я отбросил, т.к. такой формат не позволяет сервису возвращать различные статусы, типа NotFound - придется делать какие-то оберточные классы имитирующие данный класс, а в контроллере их разворачивать в настоящий NotFound: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Думаю так слишком неудобно. Поэтому решил, что сервис должен сразу сам возвращать ActionResult<MyResult>. Однако возник следующий вопрос. В контроллере имеются виртуальные методы Код: c# 1. 2.
Вот их мне бы и хотелось задействовать в сервисе. Но как ? Неужели придется в каждом методе предусматривать параметр для передачи ссылки на контроллер ? Код: c# 1. 2. 3. 4. 5. 6. 7.
Не красиво получается. Можно ли в класс-сервис заинжектить контроллер, который обрабатывает текущий запрос, чтобы сделать код сервиса чище ? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:21 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Тащить контроллер в сервис - спагетти, забудь. ActionResult возвращать тоже не очень хорошо. Не забывай, контроллер ты можешь унаследовать от своего базового контроллера и делай там какие хочешь универсальные хелперы, которые обрабатывают результат, возвращаемый сервисом ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:36 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCore Код: c# 1.
кроме того, смотри Код: c# 1. 2. 3. 4.
Код: c# 1. 2. 3. 4. 5. 6. 7.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
И вот ради этого ты хочешь нагородить херни с протаскиванием контроллера? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:41 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Так как вы предлагаете решить проблему ? Вы все таки склоняетесь к этой не-менее-спагетти-хрени ? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Можно конечно в базовом контроллере сделать методы-хэлперы, куда и перенести код: Код: c# 1. 2. 3. 4.
Но что-то мне так не нравится. Придется создать кучу всех этих прослоечных классов: Код: c# 1. 2.
много тоже левого кода выйдет. Я уж лучше буду передавать в каждый метод сервиса параметр-контроллер. Просто чуть чуть не красиво. Но почище, чем создание десятка прослоечных классов и распарсивание их в контроллере. Я бы вообще может попробовал сам создавать эти NotFoundObjectResult и NotFoundResult. Но, полагаю, это не возможно. Скорее всего контроллер туда подставляет много чего, например заголовки запроса и прочее. Поэтому без контроллера явно не обойтись. Самое лучшее, конечно, тут было бы получить доступ к текущему контроллеру через DI. Или может если бы к ControllerBase был бы статически метод Current... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:48 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Shocker.ProИ вот ради этого ты хочешь нагородить херни с протаскиванием контроллера? Мне думалось, что там все гораздо сложнее. Как минимум должны вставляться какие-то флаги от запроса. Поэтому я хочу обязательно задействовать методы текущего контроллера. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:50 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
ну а чего такого страшного в протаскивании контроллера ? Возьмите вон методы расширения какого нибудь Linq. Там вон протаскивается IEnumerable везде и ничего :) Мне придется протащить контроллер в параметр, но вот думаю, может это меньшее из зол. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:51 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreВариант с Task<MyResult> я отбросил, т.к. такой формат не позволяет сервису возвращать различные статусы, типа NotFound - придется делать какие-то оберточные классы имитирующие данный класс, а в контроллере их разворачивать в настоящий NotFound:На самом деле нормальный вариант - возвращай Task<ServiceResult<MyResult>>. В оболочке ServiceResult можешь себе наделать универсальных полей, типа сообщений об ошибках, статусов всяких и т.п., а на стороне контроллера спокойно анализировать результат каким-то универсальным методом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:51 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreСкорее всего контроллер туда подставляет много чего, например заголовки запроса и прочее. Поэтому без контроллера явно не обойтись.Я привел тебе код контроллера. Там НИЧЕГО нет, это просто медод-хелпер. Никаких флагов, ничего. WaspNewCoreМожно конечно в базовом контроллере сделать методы-хэлперы, куда и перенести код:Это нормально WaspNewCoreНо что-то мне так не нравится. Придется создать кучу всех этих прослоечных классов:Зачем? Все это NotFound и NoContent - всего лишь статусы. Не нужно создавать никаких классов, или можно использовать готовые. WaspNewCoreну а чего такого страшного в протаскивании контроллера ?Если не понимаешь, что такое спагетти, тогда дерзай. Через годик поймешь на собственных шишках. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:56 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
эм. ну тут явно я не вижу спагетти-кода. Контроллер вызывает сервис и передает ссылку на себя, но не для того, чтобы сервис работал как-то с контроллером. Вот если бы он как-то активно его использовал, может вызывал даже какие-то его методы, и потом возвращал все это назад самому же контрллеру, то да, это был бы спагетти код. Но тут контроллер будет передаваться исключительно для того, чтобы задействовать его хэлпер-методы, для создания различных видов результата. Я думаю это не спагетти :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:00 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreВы все таки склоняетесь к этой не-менее-спагетти-хрени ?тут нет никакого спагетти, контроллер зависит от сервиса, сервис не зависит от контроллера. Спагетти - это когда у тебя всё зависит от всего В идеале слой сервиса не должен зависеть от ASP.NET вообще и находиться в другой сборке ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:00 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreэм. ну тут явно я не вижу спагетти-кода. Контроллер вызывает сервис и передает ссылку на себяВот именно это и есть спагетти. Взаимная ссылка двух классов друг на друга - один из смертных грехов )) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:01 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreВозьмите вон методы расширения какого нибудь Linq. Там вон протаскивается IEnumerable везде и ничего :)Linq-метод зависит от IEnumerable, IEnumerable не зависит от Linq, понимаешь??? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:03 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreЯ уж лучше буду передавать в каждый метод сервиса параметр-контроллер ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:03 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Shocker.ProВ идеале слой сервиса не должен зависеть от ASP.NET вообще и находиться в другой сборке+1 ТС, сервис это бизнес логика и чисто шарп код. А контроллер может быть в библиотеках вебСервера Х. Или Y. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:06 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Если подумать, то может даже и нет тут спагетти. Какие тут у нас зависимости по сути ? MyController -> BaseController MyService -> BaseController Обе сущности зависят от BaseController а не друг от друга. Сервис будет использовать не методы MyController, а методы BaseController. Тут нет цикличных ссылок. Я думаю это принципиально. К тому же, этот контроллер будет использоваться совсем немножно. Просто как маленький хэлпер :) А предложенное решение с ServiceResult мне, все же, не нравится. Нужно будет многое учесть и накодить. Боюсь может получится слишком переусложненно. И все это можно решить простой передачей ссылки на базовый контроллер. Я бы, все же, предпочел инжектить контроллер в сервис. Получилось бы аспектное программирование некое. Но раз такого нет, то предпочту передавать ссылку на контроллер. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:19 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreНо раз такого нет, то предпочту передавать ссылку на контроллер.Упорный. Ну ладно, своих шишек набить полезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:24 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Зато ваше решение попахивает огромным дублированием кода :) https://refactoring.guru/ru/smells/duplicate-code ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:35 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дублирования никакого не вижу. Будут вызываться те же методы контроллера, только не сервисом, а самим контроллером. Я же не предлагаю повторять методы контроллера в сервисе - это как раз вредно, потому что методы работают в контексте запроса/ответа/контроллера и т.п., а сервис, как я сказал выше, в идеале не должен зависеть вообще от ASP.NET. Лень на начальном этапе написать десяток дополнительных строчек впоследствии оборачивается тысячами лишних строк или неделями рефакторинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:43 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreЗато ваше решение попахивает огромным дублированием кода :) https://refactoring.guru/ru/smells/duplicate-code показал бы. Или лень? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:54 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, что показал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:58 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123, что показал ?дублирование на 2 страницы ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 16:59 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, ServiceResult, в моей интерпретации приведенной изначально, это некий прослоечный класс. Я думал сделать их кучу, а Shocker.Pro предлагает просто объединить в один класс, но с кучей свойств, как я понимаю, собранных со всех классов типа NotFoundResult, OkResult. Затем возвращать их из сервиса в контроллер, где некий метод будет анализировать этот объект и, в зависимости от заполнения свойств, создавать уже реальные Result'ы. Ну вот все это какое-то завуализованное и усложненное дублирование получается. Т.к. появится логика по парсингу ServiceResult с последующим созданием соответствующих result'ов. Уж лучше тогда как я предлагал, насоздавать MyNotFoundResult, MyOkResult и просто их преобразовывать в классы из Aspnet. Мне не нравится это решение. Я лучше при своем останусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 17:03 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCore, Можно и так: // добавляем контекст MobileContext в качестве сервиса в приложение services.AddDbContext<MobileContext>(options => options.UseSqlServer(connection)); ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 17:11 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCore, И будет EF контроллере и сервисный слой не нужен)) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 17:12 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
ТС ты путаешь причинно следственные связи, дублирования нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 21:45 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 23:08 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123, ServiceResult, в моей интерпретации приведенной изначально, это некий прослоечный класс. Я думал сделать их кучу, а Shocker.Pro предлагает просто объединить в один класс, но с кучей свойств, как я понимаю, собранных со всех классов типа NotFoundResult, OkResult. Затем возвращать их из сервиса в контроллер, где некий метод будет анализировать этот объект и, в зависимости от заполнения свойств, создавать уже реальные Result'ы. Ну вот все это какое-то завуализованное и усложненное дублирование получается. Т.к. появится логика по парсингу ServiceResult с последующим созданием соответствующих result'ов. Уж лучше тогда как я предлагал, насоздавать MyNotFoundResult, MyOkResult и просто их преобразовывать в классы из Aspnet. Мне не нравится это решение. Я лучше при своем останусь.Многие пользуются (различные широкоиспользуемые библиотеки), а ему видите-ли не нравится. Ну не нравится - делай свой велосипед, отговаривать что-ли теперь? :) А так-то всё просто: Код: 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. 46. 47. 48. 49. 50. 51. 52. 53.
Код: 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.
Это разве куча свойств? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 22:10 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Простейшая конвертация: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 22:18 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
И метод контроллера превращается в две строки: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 22:23 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Масло масляное. В таком виде нет никаких причин не таскать через все слои asp.net-овские классы ActionResult, что уже наводит на определённые не весёлые мысли. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 01:39 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCoreВариант с Task<MyResult> я отбросил, т.к. такой формат не позволяет сервису возвращать различные статусы В вашем выбранном подходе УЖЕ WaspNewCoreНе красиво получается. Отсюда любые попытки решить ЭТО выглядит как поиск наилучшего способа поедания гнилого фрукта -- факт прогнилости никакой способ не изменит. Возвращать из внутренней логики статусы, которые нужны только для взаимодействия с клиентом по определённому протоколу, это уже шит, зашквар и... выбирайте абсолютно любой способ, так как всё равно получится фигня. Работать будет и ладно. Запушьте, залейте на прод и спите себе спокойно, одним г-кодом больше, какая разница :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 01:45 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий Мух, Масло масляное. В таком виде нет никаких причин не таскать через все слои asp.net-овские классы ActionResult, что уже наводит на определённые не весёлые мысли. Какие такие asp.net-овские классы? Это не попытка таскать ActionResult. _myService же слой некой бизнес логики, где есть некие бизнес-операции, чаще всего успешные, но не всегда. Это классы бизнес-логики, доменной модели. Использоваться могут не только в asp.net. Вообще давайте всё в контроллер запихнём, следуя твоим рассуждениям. В нём же уже есть метод GetData. Зачем выделять какой-то сервис ещё с одним методом GetData? Масло масляное ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 08:50 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Кстати легко заметить, что Код: c# 1.
просто оформляется как расширение Код: c# 1.
Легко покрывается тестами. И мы получам простую чепочку вызовов. Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 09:05 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Мне одному кажется, что в шарпе модно все топики сводить к волшебному Result или MyResult? В прошлый раз 17 страниц обсуждали))). Или без Result писать не умеем? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 12:17 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, да, функциональный подход в C# всё больше входит в моду... передаёшь параметры в метод и гарантированно получаешь результат определённого типа ни null, ни исключение, а Result чистые функции, читсый код без ветвлений и трай-кетчей, тестируемый, читабельный ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 14:18 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, передаёшь параметры в метод и гарантированно получаешь результат определённого типа ----- Все гораздо хуже. Наблюдается даже отход от ООП. Я тут как-то оценил затраты на создание полной модели данных для производства вполне определенного продукта. По результатам получилось около 2-х лет. Потом выкинул нафиг все ООП и нарисовал за неделю нужный результат элементарно получая нужные данные по месту/времени. Работало не эффективно, оптимизировать там разумеется ничего невозможно, но одна неделя вс два года... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 15:33 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, https://docs.microsoft.com/ru-ru/aspnet/core/web-api/?view=aspnetcore-2.2 ---- Уже был анонс 3.0: https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-3/ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 15:35 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCat, +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 15:38 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухКакие такие asp.net-овские классы? Это не попытка таскать ActionResult. А что, по-твоему, такое ActionResult? Даже в названии видно, что это результат выполнения операции, который транслируется в ответ, это не сам ответ, в качестве которого выступает HttpResponseMessage. И чем он отличается от OperationResult в той интерпретации, которую ты привёл? Дмитрий Мух_myService же слой некой бизнес логики, где есть некие бизнес-операции, чаще всего успешные, но не всегда. Это классы бизнес-логики, доменной модели. Использоваться могут не только в asp.net. Спору нет, но всё сильно зависит от операции, от логики. Попытка свести все действия контроллеров в нечто подобное: Код: c# 1. 2. 3. 4. 5.
это диаметрально противоположный случай крайности размещения логики в контроллерах. И такой же фиговый, так как выражается в странных и бессмысленных действиях по принципу, чтобы человек не мог сломать себе ноги, давай их сразу отрежем и посадим на коляску. Дмитрий МухВообще давайте всё в контроллер запихнём, следуя твоим рассуждениям. В нём же уже есть метод GetData. Зачем выделять какой-то сервис ещё с одним методом GetData? Масло масляное Нет. Контроллеры должны быть тупыми, на не настолько, чтобы быть в них совершенно не было смысла. У них есть смысл, и это явно не конвертирование OperationResult в ActionResult. Это совершенно безумная крайность. Что тут тестировать? Правильно ли конвертится одно в другое? Это вообще обыкновенный маппинг и решается на другом уровне, с тестированием и самоконтролем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 17:42 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мухда, функциональный подход в C# всё больше входит в моду... передаёшь параметры в метод и гарантированно получаешь результат определённого типа ни null, ни исключение, а Result чистые функции, читсый код без ветвлений и трай-кетчей, тестируемый, читабельный ФП хорошо. Эффективные практики из ФП брать -- хорошо. ФП головного мозга, как впрочем и остальное -- плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 17:43 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухКстати легко заметить, что Код: c# 1.
просто оформляется как расширение Код: c# 1.
Легко покрывается тестами. И мы получам простую чепочку вызовов. Код: c# 1. 2. 3. 4.
Я хз что тут покрывать. Маппинг? Если весь код такой, то в контроллерах вообще нет смысла, это обыкновенный оверхед. Функции контроллера перенесены в сервисы. Сервисы стали деревянными, и заточенными чисто под общение через конкретный протокол. Что касается "не зависит от...", ещё как зависит. Похоже всё идёт по очередному кругу и мы получаем очередную реинкарнацию RPC. Плохого в этом ничего нет, но наблюдается большой оверхед на то, что это впихивается в Web API. Хотя он уже нафиг тут не нужен, пишем декларативную обвязку в собсвтенном middleware. От OperationResult отпочковываем всякие CacheableOperationResult и т.д. и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 17:49 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCatДмитрий Мух, передаёшь параметры в метод и гарантированно получаешь результат определённого типа ----- Все гораздо хуже. Наблюдается даже отход от ООП. Где и в какую сторону? Поясните? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 18:15 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухКстати легко заметить, что Код: c# 1.
просто оформляется как расширение Код: c# 1.
Легко покрывается тестами. И мы получам простую чепочку вызовов. Код: c# 1. 2. 3. 4.
Я хз что тут покрывать. Маппинг? Если весь код такой, то в контроллерах вообще нет смысла, это обыкновенный оверхед. Функции контроллера перенесены в сервисы. Сервисы стали деревянными, и заточенными чисто под общение через конкретный протокол. Что касается "не зависит от...", ещё как зависит. Похоже всё идёт по очередному кругу и мы получаем очередную реинкарнацию RPC. Плохого в этом ничего нет, но наблюдается большой оверхед на то, что это впихивается в Web API. Хотя он уже нафиг тут не нужен, пишем декларативную обвязку в собсвтенном middleware. От OperationResult отпочковываем всякие CacheableOperationResult и т.д. и т.п. Нет, всё совершенно не так. Никакие функции контроллера не перенесены в сервисы, о слова совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 18:18 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
На мой взгляд намечается очередной бессмысленный и беспощадный спор. Хотелось бы увидеть какие-то конкретные и конструктивные примеры. Какие именно функции контроллера перенесены в сервис? В чём конкретно отход от ООП? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 18:22 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухНет, всё совершенно не так. Никакие функции контроллера не перенесены в сервисы, о слова совсем. Именно так это и выглядит. Если действие контроллера === действие сервиса, которое мапится из OperationResult в ActionResult, это действительно так. Совершенно так. По всем понятиям. Ибо если, тебе вдруг в контроллере надо будет вызвать несколько действий сервисов (т.е. это уже означает, что у контроллеров есть логика АПИ), то уже ToActionResult тут не обойдёшься, так как тебе нужно каскадно проверить все результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 18:22 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухНа мой взгляд намечается очередной бессмысленный и беспощадный спор. Хотелось бы увидеть какие-то конкретные и конструктивные примеры. Какие именно функции контроллера перенесены в сервис? В чём конкретно отход от ООП? Хз насчёт ООП, я об этом не заикался. Я говорю о конкретных приведённых примерах. В частности о волшебном расширении ToActionResult. Нет, это не выглядит "круто, удобно, тестируемо,бла-бла-бла". Это выглядит глупо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 18:24 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухНа мой взгляд намечается очередной бессмысленный и беспощадный спор. Спор не о том, хорошо или плохо OperationResult. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 18:25 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Где и в какую сторону? ----- В сторону процедурной парадигмы. По профилю - работа с разными базами как источниками информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:02 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухНет, всё совершенно не так. Никакие функции контроллера не перенесены в сервисы, о слова совсем. Именно так это и выглядит. Если действие контроллера === действие сервиса, которое мапится из OperationResult в ActionResult, это действительно так. Совершенно так. По всем понятиям. Действие сервиса было и осталось дейтсвием сервиса, просто результат этого действия не тупо TValue, а OperationResult<TValue>. У тебя есть метод сервис Код: c# 1.
и Код: c# 1.
Внезапно последний перестал быть действием сервиса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:46 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCatДмитрий Мух, Где и в какую сторону? ----- В сторону процедурной парадигмы. По профилю - работа с разными базами как источниками информации. А, это вы про что-то своё. Вы хоть процитируйте пост, к которому относятся ваши выводы. Возврат не пермитивного типа, или TValue из метода DoSomething, OperationResult<TValue> тут при чём? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:49 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttИбо если, тебе вдруг в контроллере надо будет вызвать несколько действий сервисов (т.е. это уже означает, что у контроллеров есть логика АПИ), то уже ToActionResult тут не обойдёшься, так как тебе нужно каскадно проверить все результаты. Да не обойдёшься, но в итоге будет ToActionResult, при чём не важно на каком их нескольких действий сервисов прервётся цепочка. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:52 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухНа мой взгляд намечается очередной бессмысленный и беспощадный спор. Хотелось бы увидеть какие-то конкретные и конструктивные примеры. Какие именно функции контроллера перенесены в сервис? В чём конкретно отход от ООП? Хз насчёт ООП, я об этом не заикался. Я говорю о конкретных приведённых примерах. В частности о волшебном расширении ToActionResult. Нет, это не выглядит "круто, удобно, тестируемо,бла-бла-бла". Это выглядит глупо. Что конкретно глупо? Можешь быть конструктивным, а не бла-бла-бла? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:53 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухНа мой взгляд намечается очередной бессмысленный и беспощадный спор. Спор не о том, хорошо или плохо OperationResult. Не вижу конструктивной критики. То есть когда не тупо говорят: "Это выглядит глупо". А аргументируют, почему на их взгляд это выглядит глупо, и предлагают свой вариант решения, который нивелирует проблемы предложенного мною. А раз нет конструктива, то для меня это очередной бессмысленный и беспощадный спор. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:59 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, А, это вы про что-то своё. ----- Разумеется. тут при чём? ----- Так это... тяпница же... да еще и 8-е... и конец рабочего дня... А долбанная XmlSchema все еще не компилируется... Только-только начала собираться из кусков... надо "циркулар референце" победить... А в предлагаемых решениях - только ручное исправление схем и такая же ручная сборка результатов... Нее, без стакана не разобраться... и OperationResult не поможет... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:04 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCat, Да, не понятно написал... устал уже... В общем - надо мне схему забросить на сервис и на сервисе она должна компилироваться во что-то что сможет десериализовать соответствующий схеме ХМЛ. Мне без разницы какой именно будет ответ от сервиса - сервису в любом случае надо построить хранилище по переданной схеме. Ну а у мелкомягких как всегда нихрена не пашет - циркулар референце - да, она там есть - и надо ее победить... Как-то так... устал... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:12 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Вообще это всё шаг в торону так называемого Railway oriented programming. И когда "вдруг в контроллере надо будет вызвать несколько действий сервисов", то легко можно будет к этому прийти. А можно и забить, чтобы в "ФП головного мозга" не обвиняли ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:15 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCatКак-то так... устал... Обычно в этом случае перерыв и отдых помогает. Утро вечера мудренее. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:17 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Обычно в этом случае перерыв и отдых помогает. ----- Да, только у меня он называется retirement... пора, скоро... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:31 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
А для упоротых курс Applying Functional Principles in C# от Microsoft MVP. You will see how to make parts of the domain model immutable, how to refactor away from using exceptions to control the program flow, get rid of primitive obsession, deal with nulls, and apply railway-oriented programming. You will also see how to save your domain model to a data store, namely how to convert value objects into primitives and Maybe type instances to nulls when you do that. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:41 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
WaspNewCore, ты судя по всему думаешь как сделать WebApi контроллеры? может подойдет тебе вот такой интерфейс для твоего ответа IHttpActionResult - возвращай объект, реализующий этот интерфейс ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2019, 13:46 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
monstrU, Для этого ссылка на интерфейс XXXX-HTTP-XXXXдолжна быть в слое сервисном и бизнес логике. Оно там надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2019, 14:10 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
monstrUWaspNewCore, ты судя по всему думаешь как сделать WebApi контроллеры? может подойдет тебе вот такой интерфейс для твоего ответа IHttpActionResult - возвращай объект, реализующий этот интерфейс Вообще-то в заголовке написано ASP.NET Core, а IHttpActionResult относится к System.Web.Http. Да и тащить зависимость от System.Web, или от Microsoft.AspNetCore.Mvc в слой бизнес-логики - та ещё идея :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 08:24 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухА аргументируют, почему на их взгляд это выглядит глупо, и предлагают свой вариант решения, который нивелирует проблемы предложенного мною. Дублирование это в большинстве случаев глупо. Использовать функционал фреймворка не по назначению в большинстве случаев глупо. Какие ещё аргументы нужны? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 12:57 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухИ когда "вдруг в контроллере надо будет вызвать несколько действий сервисов", то легко можно будет к этому прийти. Серьёзно? Сначала оверинженирим, затем выдумываем как это обойти )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 12:58 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухА можно и забить, чтобы в "ФП головного мозга" не обвиняли Между "эффективное решение" и "ФП-решение" многие ставят знак тройного равенства. Это ни что иное, как ФП головного мозга, сорян ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 12:59 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухДа и тащить зависимость от System.Web, или от Microsoft.AspNetCore.Mvc в слой бизнес-логики - та ещё идея :) Если ты полностью дублируешь функционал IActionResult, то в чём ущербность идеи? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:00 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухИ когда "вдруг в контроллере надо будет вызвать несколько действий сервисов", то легко можно будет к этому прийти. Серьёзно? Сначала оверинженирим, затем выдумываем как это обойти )) Выдумываем как обойти что? Давай конкретный пример уже :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:35 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухДа и тащить зависимость от System.Web, или от Microsoft.AspNetCore.Mvc в слой бизнес-логики - та ещё идея :) Если ты полностью дублируешь функционал IActionResult, то в чём ущербность идеи? :) IActionResult - это во первых интерфейс. Какой такой его функционал и кто полностью дублирует? У него туева хуча наследников, где ты увидел полное их дублирование? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:38 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAВыдумываем как обойти что? Давай конкретный пример уже :) Несколько твоих OperationResult, которые уже не какие-то там Success(true/false), а целый фарш из HTTP-like статусов. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:43 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAIActionResult - это во первых интерфейс. Какой такой его функционал и кто полностью дублирует? Интерфейс это контракт для реализации функционала. OperationResult чем отличается от IActionResult, если он у тебя Http-like и поэтому так просто траснлируется в IActionResult? skyANAУ него туева хуча наследников, где ты увидел полное их дублирование? :) Дублирование функционала. Я ещё понимаю, откуда могут ноги расти. Ты просто получаешь данные из другого REST-сервиса, полученный ответ мапится в OeprationResult, а потом также в обратку -- в IActionResult. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:46 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttskyANAВыдумываем как обойти что? Давай конкретный пример уже :) Несколько твоих OperationResult, которые уже не какие-то там Success(true/false), а целый фарш из HTTP-like статусов. Где ты увидел несколько OperationResult? В топике ровно один такой класс. И нет там HTTP-like статусов. То что множество A однозначно отображается на B не значит, что A есть B-like :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:48 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttskyANAIActionResult - это во первых интерфейс. Какой такой его функционал и кто полностью дублирует? Интерфейс это контракт для реализации функционала. OperationResult чем отличается от IActionResult, если он у тебя Http-like и поэтому так просто траснлируется в IActionResult? Где ты увидел в IActionResult сл. свойства: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:52 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttskyANAУ него туева хуча наследников, где ты увидел полное их дублирование? :) Дублирование функционала. Покажи мне тот кусок кода, где дублируется какой-то функционал? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:53 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAГде ты увидел в IActionResult сл. свойства: Вот здесь: Код: 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.
а вот один из базовых классов реализации IActionResult Код: 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. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
Ну скажи мне, что ObjectResult.StatusCode и OperationResult.Status суть разные вещи, давай Почему я говорю про IActionResult? Добавь реализацию интерфейса IActionResult в OperationResult, и тебе даже не понадобится метод расширения ToActionResult. Оверинжиниринг ин экшен. Можно сделать GetSomeResult().ToActionResult() -- как няшно и ФП-шно ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 15:49 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
"Дали дураку хрустальный х...й" (с) Встроили в Core DI из коробки - ждем теперь массовой инжекции клиентского JavaScript в базу данных и тому подобного. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 16:16 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat"Дали дураку хрустальный х...й" (с) Встроили в Core DI из коробки - ждем теперь массовой инжекции клиентского JavaScript в базу данных и тому подобного. эм будто до кор нет никто не инжектил ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 16:45 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttНу скажи мне, что ObjectResult.StatusCode и OperationResult.Status суть разные вещи, давай Разные конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 20:23 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
К примеру: "404 Not Found - The server can not find requested resource. In the browser, this means the URL is not recognized." Какой на фиг на уровне сервиса "URL is not recognized"? На уровне сервиса NotFound - это уже другое :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 20:39 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухК примеру: "404 Not Found - The server can not find requested resource. In the browser, this means the URL is not recognized." Какой на фиг на уровне сервиса "URL is not recognized"? На уровне сервиса NotFound - это уже другое :) а вот тут я не соглашусь. текст про 404 старой версии в которой до сих пор все думают а вот по новому как звучит 6.5.4. 404 Not Found The 404 (Not Found) status code indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. A 404 status code does not indicate whether this lack of representation is temporary or permanent; the 410 (Gone) status code is preferred over 404 if the origin server knows, presumably through some configurable means, that the condition is likely to be permanent. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 08:14 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuДмитрий МухК примеру: "404 Not Found - The server can not find requested resource. In the browser, this means the URL is not recognized." Какой на фиг на уровне сервиса "URL is not recognized"? На уровне сервиса NotFound - это уже другое :) а вот тут я не соглашусь. текст про 404 старой версии в которой до сих пор все думают а вот по новому как звучит 6.5.4. 404 Not Found The 404 (Not Found) status code indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. A 404 status code does not indicate whether this lack of representation is temporary or permanent; the 410 (Gone) status code is preferred over 404 if the origin server knows, presumably through some configurable means, that the condition is likely to be permanent. И с чем же вы не согласны? Что такое "текущее представление целевого ресурса" на уровне бизнес-логики? - Вась, дай ключ на двадцать! - Текущее представление целевого ресурса не найдено. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 08:47 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, с тем как ты трактуешь код httpcode 404 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 09:31 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuДмитрий Мух, с тем как ты трактуешь код httpcode 404 Моя мысль в том, что возврат результата со статусом NotFound из _myService.GetData(parameters) - это никакое не дублирование httpcode 404, как последний не трактуй. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:07 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAhandmadeFromRuДмитрий Мух, с тем как ты трактуешь код httpcode 404 Моя мысль в том, что возврат результата со статусом NotFound из _myService.GetData(parameters) - это никакое не дублирование httpcode 404, как последний не трактуй. а на это я скажу что это велик бесполезный. бл не должен тебе говорить статусы, статус добавляет тебе точка входа в случае реста это контролер. а если точка входа декстопном приложение или фоновый сервис ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:20 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANAпропущено... Моя мысль в том, что возврат результата со статусом NotFound из _myService.GetData(parameters) - это никакое не дублирование httpcode 404, как последний не трактуй. а на это я скажу что это велик бесполезный. бл не должен тебе говорить статусы, статус добавляет тебе точка входа в случае реста это контролер. а если точка входа декстопном приложение или фоновый сервис ? А что должна говорить бл? Вот приходишь ты к туроператору и ищет он тебе по своей базе размещение в отеле в своём десктоп приложении. И HotelAccomodationService возвращает OperationResult со статусом Success и в качестве Value список подходящих под твой запрос размещений. Или возвращает OperationResult со статусом NotFound и в качестве Value ничего, так как ничего подходящего под заданные тобой параметры не нашлось. В чём тут бесполезность? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:27 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, я же написал что за вывод клиенту отвечает точка входа. что тут не понятного? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:30 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
А ищешь ты к примеру размещение для троих в одноместном номере и бл тебе отвечает NotSupported и Message: "Чувак, как бы троих в одноместный не запихнуть". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:31 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANA, я же написал что за вывод клиенту отвечает точка входа. что тут не понятного? Ну да, точка входа посмотрит на OperationResult, интерпретирует и отобразит как надо. Причём интерпретирует NotFound не как "текущее представление целевого ресурса не найдено", а именно "подходящее размещение не найдено, попробуйте изменить параметры поиска". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:33 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, бесполезность в том что ты потом будешь все равно транслировать свой статус в статус конкретной точки входа. зачем? можно вернуть чистую сущность уровня бл в случае успеха ..вернуть null если не нашли ..выкинуть ошибку в случае ошибки бл и это все завернуть в красивую обертку в каждой точке входа по своему, которая как то покажет уже клиенту приложения что произошло ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:33 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANA, бесполезность в том что ты потом будешь все равно транслировать свой статус в статус конкретной точки входа. зачем? можно вернуть чистую сущность уровня бл в случае успеха ..вернуть null если не нашли ..выкинуть ошибку в случае ошибки бл и это все завернуть в красивую обертку в каждой точке входа по своему, которая как то покажет уже клиенту приложения что произошло Ну да, if-ы, try catch-и вместо одной чистой цепочки... Они же так полезны :) Вот только не пойму, что мешает "завернуть в красивую обертку в каждой точке входа по своему" OperationResult? Ведь и проще, и короче, и читабельней. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:40 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, конечно мы напишем оверхед кода потому что так красивее.сарказм. у тебя в любом случаем на примере реста будет на контролере в "красивом методе" будет try чтоб вывалить клиенту 500 с месагом адекватным. а помимо этого у нас в бл появляется мета объект с полями которые мало относятся к самой логике, а чисто нужны для отображения или к примеру у тебя по бл ошибка ты делаешь статус ..и потом в коде везде проверяешь если статус ок продолжаем если нет то выходим...в случае выкидывания ошибки бл я сразу верну на точку входа без последующих проверок дальше по коду так как они уже не нужны будут. так что я бы поспорил где проще ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 10:51 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuконечно мы напишем оверхед кода потому что так красивее.сарказм. Дык вообще всю логику в контроллер запихни, выделять какие-то слои, классы проектировать - это же такой оверхед :) handmadeFromRuу тебя в любом случаем на примере реста будет на контролере в "красивом методе" будет try чтоб вывалить клиенту 500 с месагом адекватным Не будет. handmadeFromRuили к примеру у тебя по бл ошибка ты делаешь статус ..и потом в коде везде проверяешь если статус ок продолжаем если нет то выходим...в случае выкидывания ошибки бл я сразу верну на точку входа без последующих проверок дальше по коду так как они уже не нужны будут О да, логика построенная на исключениях - это же так прекрасно. И ведь никакого оверхеда :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:13 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuзачем? можно вернуть чистую сущность уровня бл в случае успеха ..вернуть null если не нашли ..выкинуть ошибку в случае ошибки бл и это все завернуть в красивую обертку в каждой точке входа по своему, которая как то покажет уже клиенту приложения что произошло+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:20 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дублируем топик: Исключения или коды возврата. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:24 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAДык вообще всю логику в контроллер запихни, выделять какие-то слои, классы проектировать - это же такой оверхед :) такой плохой пример что будто слился. skyANAhandmadeFromRuу тебя в любом случаем на примере реста будет на контролере в "красивом методе" будет try чтоб вывалить клиенту 500 с месагом адекватным Не будет. слабое утверждение без примера к примеру на кор нет или к примеру если у тебя будет фоновая служба. где ж ты там словишь к примеру разрыв соединения с бд без try skyANAО да, логика построенная на исключениях - это же так прекрасно. И ведь никакого оверхеда :) и? вот прям из твоих ссылок https://mattwarren.org/2016/12/20/Why-Exceptions-should-be-Exceptional/ кароче скиан не мути воду ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:28 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANAДык вообще всю логику в контроллер запихни, выделять какие-то слои, классы проектировать - это же такой оверхед :) такой плохой пример что будто слился. skyANAпропущено... Не будет. слабое утверждение без примера к примеру на кор нет или к примеру если у тебя будет фоновая служба. где ж ты там словишь к примеру разрыв соединения с бд без try Ну вот тебе пример метода контроллера: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Много if-ов, try-catch-ей видишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:35 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, так где ответ на мой вопрос по разрыву соединения? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:42 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANAО да, логика построенная на исключениях - это же так прекрасно. И ведь никакого оверхеда :) и? вот прям из твоих ссылок https://mattwarren.org/2016/12/20/Why-Exceptions-should-be-Exceptional/ кароче скиан не мути воду Что и? Там прямые выводы, что исключения надо кидать редко и желательно действительно в исключительных ситуациях. Тогда не будет оверхеда по производительности. Цитирую: Rare or Exceptional exceptions are not hugely expensive. Перевожу: Редкие или действительно исключительные исключения не очень дороги. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:43 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, Here we can see that as long as you follow the guidance and ‘DO NOT use exceptions for the normal flow of control’ then they are actually not that costly. I mean yes, they’re 15 times slower than using error codes, but we’re only talking about 22 nanoseconds, i.e. 22 billionths of a second, you have to be throwing exceptions frequently for it to be noticeable да да да ты наверное думаешь я там сру ошибки постоянно и вся работа моего кода это сплошные ошибки ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:47 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANA, так где ответ на мой вопрос по разрыву соединения? А по коду ( 21827758 ) не ясно? Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:51 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANA, Here we can see that as long as you follow the guidance and ‘DO NOT use exceptions for the normal flow of control’ then they are actually not that costly. I mean yes, they’re 15 times slower than using error codes, but we’re only talking about 22 nanoseconds, i.e. 22 billionths of a second, you have to be throwing exceptions frequently for it to be noticeable да да да ты наверное думаешь я там сру ошибки постоянно и вся работа моего кода это сплошные ошибки ))) Я думаю, что ты как и многие кидаешь исключения там, где можно и без них обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 11:55 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAЯ думаю, что ты как и многие кидаешь исключения там, где можно и без них обойтись. Я думаю, что не следует стараться любой ценой обойтись без исключений. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 12:02 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Hexag0vskyANAЯ думаю, что ты как и многие кидаешь исключения там, где можно и без них обойтись. Я думаю, что не следует стараться любой ценой обойтись без исключений. Согласен. Но я это и не предлагаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 12:06 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAhandmadeFromRuskyANA, так где ответ на мой вопрос по разрыву соединения? А по коду ( 21827758 ) не ясно? Код: c# 1. 2. 3. 4.
нет, это всего поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 12:19 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANAпропущено... А по коду ( 21827758 ) не ясно? Код: c# 1. 2. 3. 4.
нет, это всего поле. Поле с комментариями :) А вообще приведи конкретный пример, что только я это делаю? Вот есть у тебя фоновый процесс, что он делает? Как надо обрабатывать разрыв соединения с бд? Сircuit breaker, Retry, весь твой фоновый процесс должен повеситься вплоть до перезагрузки сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 12:32 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAПоле с комментариями :) А вообще приведи конкретный пример, что только я это делаю? Вот есть у тебя фоновый процесс, что он делает? Как надо обрабатывать разрыв соединения с бд? Сircuit breaker, Retry, весь твой фоновый процесс должен повеситься вплоть до перезагрузки сервера? да Сircuit breaker, Retry и try чтоб сервис не лежал мертво. ну про нотификацию мы не рассматриваем вопросы. так к чему мой код если я тебе говорил что я общаюсь между слоями моделями без статусов и 1 try на точке входа. по моему тут все простенько ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 12:39 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, но почему я спросил то..ты ж где то также ловишь ошибку чтоб в поле прокинуть..так почему бы эт не сделать в 1 месте и будет сквозь все твои слои ..куда уж проще ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 12:40 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANA, но почему я спросил то..ты ж где то также ловишь ошибку чтоб в поле прокинуть..так почему бы эт не сделать в 1 месте и будет сквозь все твои слои ..куда уж проще Да, ловлю конечно, если библиотека кидает исключения, а не результат возвращает. В одном месте - это каком? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 13:50 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAВ одном месте - это каком? в методе который преобразует модель сервиса в ответ клиенту хотя я лукавлю что там 500 обрабатываю, для 500 у меня мидлвар ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 16:45 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANAВ одном месте - это каком? в методе который преобразует модель сервиса в ответ клиенту хотя я лукавлю что там 500 обрабатываю, для 500 у меня мидлвар Погоди, речь уже про фоновый процесс пошла. Какой ещё ответ клиенту? В фоновом процессе это что такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 17:22 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA, в фоновом еще проще - просто try с логикой нотификации и формирования ответа уже команде разработки, по факту все теже сопли что и в ресте только уже не аля return SomeResponce(BlObject) где как ты говоришь у меня пара If и try. конечно тут можно на AppDomain.CurrentDomain.UnhandledException подписаться еще но эту штуку я держу опять как 500 в ресте. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:21 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRu, что с процессом-то при этом происходит? падает до реакции команды разработки? бежит дальше и не важно какое исключение? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:23 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
"try с логикой нотификации и формирования ответа уже команде разработки" - это конечно пять :) Про отдельные хелчеки, мониторинг, алертинг не слышали? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:26 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухhandmadeFromRu, что с процессом-то при этом происходит? падает до реакции команды разработки? бежит дальше и не важно какое исключение? дальше работает Дмитрий Мух"try с логикой нотификации и формирования ответа уже команде разработки" - это конечно пять :) Про отдельные хелчеки, мониторинг, алертинг не слышали? ну а кто вам сказал что ответ эт не лог из елка с нотификаций через бота в телеге к примеру? или какой нить ролбар или детипейдж...да что угодно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:58 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuДмитрий МухhandmadeFromRu, что с процессом-то при этом происходит? падает до реакции команды разработки? бежит дальше и не важно какое исключение? дальше работает Работает и при разрыве соединения с бд? Есть у вас деление на fatal и не fatal исключения? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 09:46 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuДмитрий Мух"try с логикой нотификации и формирования ответа уже команде разработки" - это конечно пять :) Про отдельные хелчеки, мониторинг, алертинг не слышали? ну а кто вам сказал что ответ эт не лог из елка с нотификаций через бота в телеге к примеру? или какой нить ролбар или детипейдж...да что угодно Написано: "try с логикой нотификации". Что читается как логика нотификации пишется прямо в коде, а не ботом по логу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 09:48 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAРаботает и при разрыве соединения с бд? Есть у вас деление на fatal и не fatal исключения? конечно. мы ж выше говорил что есть ошибки в бл, а есть анхедл если ретри политика не сработала. я не могу сказать что лучше тут останавливать сервис или нет. мы пока не стопорим а херачим в елк. конечно ж если там аутофмемори то такое не ловиться. тока из ивентов системы если забирать skyANAНаписано: "try с логикой нотификации". Что читается как логика нотификации пишется прямо в коде, а не ботом по логу. ну тут по чесноку у меня были разные варианты. наверное я поэтому сумбурно выразился. пробовали писал в лог ошибку и отправлял через "очередь\шину" сформированный кодом ответ и пробовали по логу формировать, но там снова парсинг строки лога что не очень нравиться. вообщем наверное я еще в поисках, может мне в провинции не хватает знаний и я мыслю не правильно и зря что то доказываю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 10:07 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuskyANAРаботает и при разрыве соединения с бд? Есть у вас деление на fatal и не fatal исключения? конечно. мы ж выше говорил что есть ошибки в бл, а есть анхедл если ретри политика не сработала. я не могу сказать что лучше тут останавливать сервис или нет. мы пока не стопорим а херачим в елк. конечно ж если там аутофмемори то такое не ловиться. тока из ивентов системы если забирать Я всё пытаюсь понять, где же то одно место... Ретрай политика тоже на уровне того единственного try, что содержит логику нотификации и формирования ответа? Как этот try отличает ошибки и решает, когда ретрай, а когда нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 10:16 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAЯ всё пытаюсь понять, где же то одно место... для реста эт хелпметод что ловит ошибки бл, для анхедл мидлваре для вин службы эт вызов кода службы через метод что может понять ошибки бл + подписка на анхедлд ок 2 места. я заврался skyANAРетрай политика тоже на уровне того единственного try, что содержит логику нотификации и формирования ответа? Как этот try отличает ошибки и решает, когда ретрай, а когда нет? ну политика по месту.. вызов из бд обтягиваю метод политикой, для реквестов на внешние службы по месту вызова. ну в политике конечно ж будет доп try без этого никуда если ты уж решил к этому докопаться но и в твоем варианте от этого не уйти. хотя может какой нить джун тебе сказал что https://github.com/App-vNext/Polly используй но там ж внутри также try ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 10:25 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRu, Кстати. У вас там core 2.2? на IAction... или Action...? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 11:46 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123handmadeFromRu, Кстати. У вас там core 2.2? на IAction... или Action...? о чем речь? о ответе? то IActionResult есть сервис новый на коре, а так старый добрый фреймворк..даже больше скажу есть проект на формах до сих пор делающий свою работу ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 12:18 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuо чем речь? о ответе? то IActionResultда. Спасибо. А то смотрю, 5 страниц, и об интерфейсе только hVostt) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 12:50 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
да тут в коре то особо другое и не вернешь) п.с. подход скиана мне нравиться как выглядит. но меня смущает что сквозь слои я гоняю мета объект знающий о статусе. может поэтому я сопротивляюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 13:07 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuп.с. подход скиана мне нравиться как выглядит. но меня смущает что сквозь слои я гоняю мета объект знающий о статусе. может поэтому я сопротивляюсьты код с интерфейсом приведи. И все увидишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 13:49 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuда тут в коре то особо другое и не вернешь)верно. Тогда зачем мне сервис ограничивать возвратом? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 13:50 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123handmadeFromRuда тут в коре то особо другое и не вернешь)верно. Тогда зачем мне сервис ограничивать возвратом? я не понимаю хода мыслей. в чем я ограничиваю сервис? тем что я прокидываю чистую модель? хи ну ок если это ограничение ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 14:44 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRu, Да не вы. У вас все логично. Не логично из сервиса возвращать код возврата Это же не http канал между двумя гетерогенными средами. Логично? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:07 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuда тут в коре то особо другое и не вернешь) п.с. подход скиана мне нравиться как выглядит. но меня смущает что сквозь слои я гоняю мета объект знающий о статусе. может поэтому я сопротивляюсь Через какие слои? И это не мета объект, знающий о статусе :) Это результат операции. Просто не примитивный. Fighting Primitive Obsession, погугли :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:20 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123handmadeFromRu, Да не вы. У вас все логично. Не логично из сервиса возвращать код возврата Это же не http канал между двумя гетерогенными средами. Логично? А это не код возврата - это результат операции. Метод, выполняющий операцию, возвращает результат этой операции. Метод, выполняющий асинхронную операцию, вызывает внезапно Task<TResult>. У которого внезапно есть и Status, и Exception, и Result. Тоже может не логично? Тоже смахивает на коды возврата? :) Это всё не я придумал. И никто не заставляет никого этим пользоваться. Как собственно и async, await. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:25 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
handmadeFromRuхотя может какой нить джун тебе сказал что https://github.com/App-vNext/Polly используй Почему джун? :) На Polly я смотрел, но в результате Circuit Breaker написал свой. Его там писать-то не долго. Да и Couchbase.Net client не выкидывает исключения :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:33 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAhandmadeFromRuхотя может какой нить джун тебе сказал что https://github.com/App-vNext/Polly используй Почему джун? :) На Polly я смотрел, но в результате Circuit Breaker написал свой. Его там писать-то не долго. Да и Couchbase.Net client не выкидывает исключения :) ну тут посыл что человек мало понимает что стоит за повтором. у меня раньше тоже было свой ..а потом решил взять поли потому что погибче оказалось ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:37 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAА это не код возврата - это результат операции. А код возврата это что? Не результат операции? Не я всё понимаю, но это ппц... Давайте хотя бы с логикой дружить? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 16:17 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухК примеру: "404 Not Found - The server can not find requested resource. In the browser, this means the URL is not recognized." Какой на фиг на уровне сервиса "URL is not recognized"? На уровне сервиса NotFound - это уже другое :) Так и не понял при чём тут уровень. URL это идентификатор ресурса, если его нет, значит его нет. Ты ещё возвращай информацию, дескать маршрут найден, сущность найдена, но она удалена. Зачем это клиенту? А что насчёт ИБ? Да и какая разница. Если чего-то нет, то пофигу почему, URL у тебя кривой, сущности такой нет, или она удалена, или ещё +100500 причин. Результат один. Поэтому. Не гони :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 16:22 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttА код возврата это что? Не результат операции?Код возврата (англ. Exit status) программы, - это целочисленное значение, которое дочерний процесс возвращает родительскому процессу в момент завершения. hVosttНе я всё понимаю, но это ппц... Давайте хотя бы с логикой дружить? ))Давай, попробуй :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 16:23 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухК примеру: "404 Not Found - The server can not find requested resource. In the browser, this means the URL is not recognized." Какой на фиг на уровне сервиса "URL is not recognized"? На уровне сервиса NotFound - это уже другое :) Так и не понял при чём тут уровень. URL это идентификатор ресурса, если его нет, значит его нет. Ты ещё возвращай информацию, дескать маршрут найден, сущность найдена, но она удалена. Зачем это клиенту? А что насчёт ИБ? Да и какая разница. Если чего-то нет, то пофигу почему, URL у тебя кривой, сущности такой нет, или она удалена, или ещё +100500 причин. Результат один. Поэтому. Не гони :)Когда ты ищешь подходящее размещение в отеле тебе тоже по фигу? А потом жене говоришь: - Нету - Почему? - Да какая разница? Нету и по фигу. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 16:28 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухhVosttА код возврата это что? Не результат операции?Код возврата (англ. Exit status) программы, - это целочисленное значение, которое дочерний процесс возвращает родительскому процессу в момент завершения. А твой enum это что? не целочисленное значение из справочника? Дмитрий МухКогда ты ищешь подходящее размещение в отеле тебе тоже по фигу? Угу, добавляешь товар в корзину, а тебе NotFound. Что за фигня? Товара такого нет? Товар на складе кончился? Или разработчик ошибся и не тот ИД передал, не тот URL вызвал? Какая пользователю разница? )) Или давай так. Ты оформляешь перемещение товара со склада на другой склад, а тебе NotFound. Что? Товара такого нет? Исходного склада нет? Целевого склада нет? И не надо пыль в глаза пускать, тут всё понятно для чего эти все enum-ы у тебя. Ты дёргаешь REST и передаёшь его через свой слой OperationResult. Зачем выдумывать какие-то высокие материи? По мне подход имеет право на жизнь, но гордиться тут совершенно не чем, очередные нагромождения костылей, и не способность спроектировать нормальный слой логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 16:56 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий Мухпропущено... Код возврата (англ. Exit status) программы, - это целочисленное значение, которое дочерний процесс возвращает родительскому процессу в момент завершения. А твой enum это что? не целочисленное значение из справочника? От этого он не становится кодом возврата. До абсурда-то зачем скатываться? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 17:26 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухКогда ты ищешь подходящее размещение в отеле тебе тоже по фигу? Угу, добавляешь товар в корзину, а тебе NotFound. Что за фигня? Товара такого нет? Товар на складе кончился? Или разработчик ошибся и не тот ИД передал, не тот URL вызвал? Какая пользователю разница? )) Или давай так. Ты оформляешь перемещение товара со склада на другой склад, а тебе NotFound. Что? Товара такого нет? Исходного склада нет? Целевого склада нет? И не надо пыль в глаза пускать, тут всё понятно для чего эти все enum-ы у тебя. Ты дёргаешь REST и передаёшь его через свой слой OperationResult. Зачем выдумывать какие-то высокие материи? По мне подход имеет право на жизнь, но гордиться тут совершенно не чем, очередные нагромождения костылей, и не способность спроектировать нормальный слой логики. Ты чушь какую-то понаписал. Нормальные аргументы у тебя есть? А не очередное: "Хвост считает, что это говно и точка"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 17:32 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
The Task<TResult> class represents a single operation that returns a value and that usually executes asynchronously. Task<TResult> objects are one of the central components of the task-based asynchronous pattern first introduced in the .NET Framework 4. Because the work performed by a Task<TResult> object typically executes asynchronously on a thread pool thread rather than synchronously on the main application thread, you can use the Status property, as well as the IsCanceled , IsCompleted , and IsFaulted properties, to determine the state of a task. Most commonly, a lambda expression is used to specify the work that the task is to perform. Какие-то костыли классом описывать результат операции. Со статусом в виде перечисления, значения в виде свойства, возможного исключением в виде другого свойства... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 17:46 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2019, 17:55 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухОт этого он не становится кодом возврата. До абсурда-то зачем скатываться? :) Свой оверхед ты абсурдом не считаешь ) Дмитрий МухТы чушь какую-то понаписал. Нормальные аргументы у тебя есть? А не очередное: "Хвост считает, что это говно и точка"? :) Нет конечно, откуда... Дмитрий МухКакие-то костыли классом описывать результат операции. Со статусом в виде перечисления, значения в виде свойства, возможного исключением в виде другого свойства... Ты передёргиваешь. Твоё перечисление и сам результат это конкретно, в упор, результат выполнения HTTP метода. Точка. Все эти обвесы в виде енамов и расширений, это какие-то костыли с непонятным назначением. Насчёт тасков, тут свой типа результата под конкретную логику управления задачами. А у тебя один под любую, да и ещё явный HTTP-like, что прямо говорит о том, что абстракция высосана из корявого пальца. Решение как решение, очередное нагромождение костылей ) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 02:42 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух https://vimeo.com/97344498 очередное волшебство паттерн матчинга. осталось только понять как сопровождать это уг, когда ты понятия не имеешь, какие паттерны тебе вернуться и какие вообще жизнеспособны. писать весело, безусловно. поддерживать? нафиг такое надо... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 02:47 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVostt, нет никакого оверхеда, никаких костылей, никакого HTTP-like просто тебе тупо не нравится ну не нравится, так не нравится, не используй, делов-то ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 11:09 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVosttосталось только понять как сопровождать И какие сложности ты видишь в сопровождении? Конструктив будет, или только бессмысленный и бесполезный скепсис? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 11:11 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 11:25 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANAнет никакого оверхеда, никаких костылей, никакого HTTP-like просто тебе тупо не нравится ну не нравится, так не нравится, не используй, делов-то ну это из разряда "не доросли вы ещё до моей музыки" :) skyANAИ какие сложности ты видишь в сопровождении? очевидные. обсуждалось уже и не раз. skyANAКонструктив будет, или только бессмысленный и бесполезный скепсис? какой смысл мне повторяться? я уже примеры выше приводил, и мог бы ещё аргументировать и дискутировать, если бы ты с совершенно неуместной миной "гуру" не игнорил мои аргументы :) видос с рельсами тут вообще не в тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 11:00 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
hVostt, ладно, продолжу-ка я использовать данный подход, пока сам не доберусь до "очевидных" проблем в сопровождении пока не добрался ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 11:39 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий Мух- Да какая разница? Нету и по фигу. А, если честно, то какая разница? Я иду в магаз за молоком а там его нету - меня если честно вообще не волнует почему - корова у них не подоилась, или машина, которая привозит сломалась - что мне за печаль до этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 12:29 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Дмитрий МухКогда ты ищешь подходящее размещение в отеле fkthatЯ иду в магаз за молоком Действительно, какая в принципе разница... Всё это HTTP-like ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 12:38 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
- Жена, молока там нету - Где там? - Да какая разница? Нету ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 12:41 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
skyANA- Жена, молока там нету - Где там? - Да какая разница? Нету "Где там?" это как раз 404. Т.ч. все норм. А вот "Почему" это был бы ну очень странный вопрос. А вы, наверное, когда нужной еды в магазине не находите, то устраиваете расследованиие по всей его цепочке от поля/фермы и до магазина? Завидую тем, у кого столько свободного времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 13:26 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatskyANA- Жена, молока там нету - Где там? - Да какая разница? Нету "Где там?" это как раз 404. Т.ч. все норм. А вот "Почему" это был бы ну очень странный вопрос. А вы, наверное, когда нужной еды в магазине не находите, то устраиваете расследованиие по всей его цепочке от поля/фермы и до магазина? Завидую тем, у кого столько свободного времени. Я когда не нахожу то, что мне надо в одном магазине, то иду в другой, а не домой. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 13:30 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat, Странное обсуждаем. 404 это исключительная ситуация. Это exe вызывает dll, а метода давно нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 14:02 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, Это exe вызывает dll, а метода давно нету ---- Это - 500... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 14:03 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCat, ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 14:22 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCat, У тебя +500 или http.error=500 ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 14:24 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123fkthat, Странное обсуждаем. 404 это исключительная ситуация. Это exe вызывает dll, а метода давно нету. Чо? Какое ДЛЛ, какое ЕКЗЕ. Вбил криворукий руками урл в адресной строке несуществующий - что же тут исключительного. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 15:00 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat, Вбил криворукий руками урл в адресной строке несуществующий ----- Не-не, не так - вот сервис сформировал урлу и получил... 404. Всегда было - данные, а сегодня - 404... А всего-то тупорылый админ перересайзил пулл динамических ипов... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 15:15 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
PinkCatfkthat, Вбил криворукий руками урл в адресной строке несуществующий ----- Не-не, не так - вот сервис сформировал урлу и получил... 404. Всегда было - данные, а сегодня - 404... А всего-то тупорылый админ перересайзил пулл динамических ипов... Тогда вообще будет иксепшен - не будет ни 404 ни 100500. Потому что не будет коннекта к серверу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 15:32 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Вообще, если это так нужно, то всегда можно в боди ответа 404 писать что угодно в любом формате. Это полностью в рамках рфц. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 15:35 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat, Потому что не будет коннекта к серверу. ----- А кто сказал что на новом месте нет сервера? Они же по дефаулту ставятся... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:03 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatPetro123fkthat, Странное обсуждаем. 404 это исключительная ситуация. Это exe вызывает dll, а метода давно нету. Чо? Какое ДЛЛ, какое ЕКЗЕ. Вбил криворукий руками урл в адресной строке несуществующий - что же тут исключительного. Урл в веб это поолный аналог названий методов с параметрами после знака вопроса. Веб API. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:23 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatВбил криворукий руками урл впрооще - сохранил на рабочий стол и через год кликнул. А api ака методы уже не те. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:24 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123Урл в веб это поолный аналог названий методов с параметрами после знака вопроса. Веб API. Нет, скорее, урл - это ид некоторой сущности, или коллекции сущностей, а параметры запроса - некоторые опции представления этой сущности или коллекции. Так более по РЕСТ. А то, что вы описали - это чисто РПЦ подход, что диаметрально. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:31 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatэто ид некоторой сущностида. Строковое id это как раз символьное id метода. URI. Контракт между клиентом и сервером. Я остаюсь при своем имхо) Главное что 404 это исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:37 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, РЕСТ он и хорош, что очень простой и интуитивно понятный. В тех же статусах ответа, например: GET /orders/4269?blabla=bla 200 - все ок - получай, смотри 404 - заказа 4269 вообще в природе нет 403 - заказ такой есть, но хрен тебе можно его смотреть 400 - вроде все нормально, но, ты, чувак, после вопроса какую-то херню написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:39 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatпараметры запроса - некоторые опции представления этой сущности или коллекции.кстати, на POST какое там представление View? Как раз таки методы). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:40 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat404 - заказа 4269 вообще в природе нетну, мы же ASP рассматриваем. А ты взял пример ангуляра и логики на клиенте. При ASP не ходят 404 на клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:42 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat, На sql.ru создай 404. Исключительная ситуация. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:45 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123fkthatпараметры запроса - некоторые опции представления этой сущности или коллекции.кстати, на POST какое там представление View? Как раз таки методы). POST - cоздание новой сущности-ресурса, представление (данные) которого при этом передаются в теле запроса. Аналогично PUT (PATCH) - обновление ресурса, соответствующего урлу запроса данными из тела запроса, DELETE - удаление ресурса, e.g. DELETE /orders/4269 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:47 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123, В общем-то достаточно общая тема, когда реально нужен РПЦ, но хочеться чистый РЕСТ, но, в принципе, можно решить просто как бы начав думать немного по-другому, типа, что "все что угодно есть ресурс" и рассматривать сам вызов команды, как ресурс. Например: POST /rpc Content-type: application/json { "command": "MoneyTransfer", "params": { "from": "bla-bla", "to": "bla-bla-bla", "amount": 100500 } } Тут вопрос просто в том, насколько хочется оставаться в рамках "чистого РЕСТ". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:53 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatPOST - cоздание новой сущности-ресурса,убери слово сущность и будет как у меня - это команды серверу или методы))) Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:57 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthatрамках "чистого РЕСТ".чистого никогда нет. Это как коммунизм(мечта) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:58 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123fkthatPOST - cоздание новой сущности-ресурса,убери слово сущность и будет как у меня - это команды серверу или методы))) Удачи! Вот блин, ну нет в РЕСТе такого как "команда серверу или метод". Вот, смотри, если провести параллель с БД, то, вот, вызов хранимки - это РПЦ , а СRUD - это РЕСТ. Вот, посоветую книгу, хотя она немного старенькая, т.ч. её по дигонали читать стоит, но, стоящая, тем не менее: https://goo.gl/SCjCw6 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 17:31 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat, Мы не про РЕСТ же тут. А про аналогии. Про URI, контракты. Это шире чем рест. ... https://www.sql.ru/имя_приложения/показать?id=123 Не видно аналогию URI с API ака методами и параметрами? Согласен что ошибка в синтаксисе выйдет в ошибку так же как и при вызове dll? Да, я тут натянул сову на глобус, но аналогии всегда натяжка. Имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 17:57 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123fkthat, Мы не про РЕСТ же тут. А про аналогии. Про URI, контракты. Это шире чем рест. ... https://www.sql.ru/имя_приложения/показать?id=123 Не видно аналогию URI с API ака методами и параметрами? Согласен что ошибка в синтаксисе выйдет в ошибку так же как и при вызове dll? Да, я тут натянул сову на глобус, но аналогии всегда натяжка. Имхо. Ну, скуль, как бы и не заявляет, что он РЕСТ АПИ. Хотя, строго говоря, нет такого как "REST - не REST". Формально, все что использует HTTP это REST. Есть, просто некая модель "REST maturity level", где градации (по-моему от 1 до 5) по тому, насколько АПИ системы использует возможности HTTP. SOAP, например, там низший, из касты неприкасаемых Там тупой POST на один урл, вся инфа в боди запроса в ХМЛ. Но, дальше уже начинается подъем из днища ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 18:11 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
fkthat, Да. Рест, там 5 или 7 принципов. Многие стремятся но до конца не выгодно. Это как нормализация базы. Тоже до конца не выгодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 18:23 |
|
AspNet Core. Как заинжектить текущий контроллер в класс-сервис ?
|
|||
---|---|---|---|
#18+
Petro123fkthat, Да. Рест, там 5 или 7 принципов. Многие стремятся но до конца не выгодно. Это как нормализация базы. Тоже до конца не выгодно. Ну, спрашиваешь, просто, у него, чем 3НФ отличается от НФБК (и, главное, еще пример, чтобы было в 3НФ, но не было в НФБК), и все :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 22:16 |
|
|
start [/forum/topic.php?all=1&fid=18&tid=1355022]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
128ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
167ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 356ms |
0 / 0 |