Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
PavluhaНо тогда получается надо абстрагироваться от определенных репозиторий и передавать, например, IRepository, и уже в контроллере приводить его к типу IUserRepository. этого точно делать не нужно. но можно сделать так: Код: c# 1. 2. 3. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. PavluhaПравильный ли данный подход или надо было не городить огород, а просто использовать абстрактную фабрику и все? можно и так, но думаю приведение типов -- не лучший вариант использования возможностей DI. тем более такого, как Autofac. этот зверь много чего умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 15:26 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVostt, Немного запутался... ((( Как мне тогда работать с шаблоном фабрики В данном случае все понятно Код: c# 1. 2. 3. 4. но есть и такое: Код: c# 1. 2. 3. 4. Фабрика не работает в таком случае, массив надо передавать или переписывать и дублировать методы репозиторий Самый простой вариант это дублировать методы репозиторий (Их не очень много) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 15:49 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
И еще вопрос по поводу этого: Код: c# 1. На вход тогда пойдет IRepository<>? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 15:55 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
Нашел пример для фабрики Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Почему contr.ControllerContext = null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 16:14 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
PavluhaФабрика не работает в таком случае, массив надо передавать или переписывать и дублировать методы репозиторий Самый простой вариант это дублировать методы репозиторий (Их не очень много) почему не работает? PavluhaНашел пример для фабрики если используете Autofac, то не надо реализовывать свою фабрику контроллеров: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. вот и всё в принципе, что нужно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 16:18 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVostt, Видимо я уже не догоняю. Как контроллер на входе получит тогда ModelContext? Если мы ничего и нигде не указали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 16:33 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
Pavluha, почитай пожалуйста https://code.google.com/p/autofac/wiki/MvcIntegration там всё написано про интеграцию Autofac в ASP.NET MVC. лишних телодвижений совершать не нужно. просто регистрируй свои сервисы, об остальном уже позаботились :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 16:35 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVostt, Основную идею я понял, но это частный случай. И если я все правильно понял и у меня 2 фабрики: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. и как вы пишите, что их не надо так добавлять То тогда при конфигурировании я сам должен решить какая фабрика будет, а этим этого уже не решить Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 16:53 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
PavluhaТо тогда при конфигурировании я сам должен решить какая фабрика будет, а этим этого уже не решить блин, дак в этом и вся суть! в одном конкретном месте вы регистрируете нужные вам компоненты. если поизучаете Autofac, то найдёте способы очень гибко конфигурировать создание объектов в момент их запроса на уровне регистрации компонентов. сама возможность создавать фабрики контроллеров в MVC сделана для тестирования. никакого смысла создавать разные фабрики по какому-то условию нет. но и даже такой вариант использования можно провернуть в Autofac, не ковыряя фабрики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 17:03 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVostt, Допустимо ли такое или это жесть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 13:03 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
PavluhaДопустимо ли такое или это жесть: жесть :) наверное стоит Activator.CreateInstance заменить на резолвинг с помощью DI. а вообще, можно поинтересоваться, зачем вам понадобился свой GetControllerInstance? просто изучаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 13:07 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVostt, Есть 2 фабрики ControllerFactory, в зависимости от определенных условий, при старте системы подсовывается та или другая: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 13:11 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
PavluhaЕсть 2 фабрики ControllerFactory, в зависимости от определенных условий, при старте системы подсовывается та или другая: было бы конечно очень любопытно узнать для чего это всё. какие условия. и да, в зависимости от этих условий можно регистрировать разные фабрики в DI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 13:51 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVosttбыло бы конечно очень любопытно узнать для чего это всё. какие условия. В зависимости от списка доступных модулей подключается или нет та или иная фабрика контроллеров hVosttи да, в зависимости от этих условий можно регистрировать разные фабрики в DI. А можно пример? Просто отказаться от них пока нет возможности, в них есть доп проверки на доступность тех или иных контроллеров от установленных настроек в системе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 14:17 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 14:23 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
Все беды из-за того что не должно быть некого всеобъемлющего DataManager'а, сборной солянки из всех репозиториев. Обычная практика - создавать типы, отвечающие за определенный род деятельности и предоставляющие необходимое API. Например UserManager или UserService, который будет оперировать IUserRepository и IAuditRepository. Дальше к примеру операция создания юзера должна дернуть юзер репозиторий и записать это событие в аудит журнал. Все зависимости инжектить через конструктор без всяких там паблик свойств, т.е. юзер менеджер не должен давать доступ к своим репозиториям, он должен лишь иметь методы типа CreateUser, LoadUsers и т.д. Почитай про onion architecture, например тут http://www.develop.com/onionarchitecture ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2014, 16:50 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
PavluhahVostt, Немного запутался... ((( Как мне тогда работать с шаблоном фабрики В данном случае все понятно Код: c# 1. 2. 3. 4. но есть и такое: Код: c# 1. 2. 3. 4. Фабрика не работает в таком случае, массив надо передавать или переписывать и дублировать методы репозиторий Самый простой вариант это дублировать методы репозиторий (Их не очень много) Контроллер не должен оперировать репозиториями. Репозиторий должен тупо выполнять CRUD операции надо определенным типом сущности. Дальше должен быть сервис или менеджер типа UserService, который дергает нужные ему репозитории и содержит бизнес логику, транзакционные методы, батч операции и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2014, 16:59 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
Евгений З, А он и не оперирует у меня сейчас. Каждый контроллер получает на входе IDatamanager. IDataManager имеет доступ к I....Repository, которая в свою очередь уже работает с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2014, 17:14 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
Подскажите, как лучше сделать "инъекцию" в UserProvider Сейчас все выглядит так: Код: c# 1. 2. 3. Как теперь настроить builder? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 11:26 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
Pavluha Код: c# 1. зачем оно вам? мсу наслушались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 11:42 |
|
||
|
IoC. Постепенный перевод проекта. Возможно ли
|
|||
|---|---|---|---|
|
#18+
hVostt, У меня form-аутентификация с разными плюшками, поэтому и реализовал провайдер пользователей и ролей тоже. МСУ тут ни при чем Я вроде решил проблему таким способом: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 11:51 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38630110&tid=1357367]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 405ms |

| 0 / 0 |
