Изучаю mvc 5 на metanit. Добрался до пункта архитектура приложений. И тут возникло много вопросов. Изучаю конкретно onion архитектуру и принцип UnitOfWork. И в связи с этими пунктами у меня появилось несколько вопросов.
Во первых: В примере на metanit есть вот такой вот конструктор контроллера
IBookRepository repo;
IOrder order;
public HomeController(IBookRepository r, IOrder o)
{
repo = r;
order = o;
}
И если запустить этот код без ninject, тогда вылетит ошибка, что для контроллера отсутствует базовый конструктор без параметров. И первый вопрос получается в том, как ninject делает так что такой конструктор уже не требуется? Как работает контейнер зависимостей Ninject?
Во вторых: Если я буду использовать принцип UnitOfWork мне уже не придётся создавать конструктор с параметрами. И получается всё уже работает без Ninject и суть второго вопроса почти похожа на первый. Зачем тогда вообще нужно внедрение зависимостей с помощью Ninject.
В третьих: В выше приведённом мной коде с metanit Для того что бы создать репозиторий используется экземпляр интерфейса, но ведь можно вместо этого написать экземпляр самого репозитория а не его интерфейса. Как как раз и делается в примере со следующей главы UnitOfWork
private OrderContext db = new OrderContext();
private BookRepository bookRepository;
private OrderRepository orderRepository;
public BookRepository Books
{
get
{
if (bookRepository == null)
bookRepository = new BookRepository(db);
return bookRepository;
}
}
В чём разница между этими способами? Я так понимаю в обоих случаях что если мы сразу делаем экземпляр класса репозитория или если мы это делаем через интерфейс? Всё равно создаться экземпляр репозитория?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть TabControl с ItemsSource и биндингом к TabItem с ViewModelКак мне передать в TabItem ViewModel TabItem View?
Требуется разделить товары на категории, на странице товаров - чтобы шёл заголовок категории, по центру, а дальше товары из неё, как на блок-схеме...
Есть php код который вернёт true или false можно ли через json encode получить это значение? Конвертировать для js
Столкнулся с проблемойБыл код , решил добавить защиту от инъекций , но добавление в базу перестало работать