Привет!
У меня нет большого знания о платформах МОК/DI в платформе .NET. Кто-либо может дать мне ссылки, который экс-планирует МОК/DI подробно с немногими пример в C#? Я хочу, проходят его и получают больше идеи об этих платформах.
Так, чтобы я мог получить знание, где и Как я могу использовать эти платформы, полезны в реализации проекта.
nrk
Ваша лучшая ставка - слишком заглянуть на один из веб-сайтов МОК/ДИ
Spring.net. http://www.springframework.net/
Виндзорский замок. http://www.castleproject.org/container/index.html
Карта структуры http://structuremap.sourceforge.net/Default.htm
Хорошие статьи о сравнении МОК
http://blog.ashmind.com/index.php/2008/08/19/comparing-net-di-ioc-frameworks-part-1/
http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx
Надеюсь, это поможет. Я лично пользовался Spring.Net и замком Виндзор - последний, наверное, легче понять и использовать.
Взгляните и на этот вопрос. Примеры контейнеров IoC
Существует только один способ эффективно диагностировать проблемы - удаленные отладки.
Получите 2-й ПК. Установите msvsmon на нем. Добавьте Post Build Step или Utility Project, который копирует продукты Build на удаленный ПК.
Теперь вы должны иметь возможность размещать точки останова в обработчиках WM_Paint, обработчики WM_SIZE и так и на самом деле проследить свой диалог, поскольку он выполняет размер и RedRaw. Если вы загружаете символы с серверов MS Symbol, вы сможете увидеть полные стеки вызовов.
Некоторые хорошо размещенные точки останова - в вашем WM_PAINT, WM_ERAGEBKGND обработчики, и вы должны иметь хорошее представление о том, почему ваше окно синхронно перекрашено рано во время цикла WM_SIZE.
Есть много окон в системе, состоящую из родительского окна со слоистыми детскими элементами управления - Windows Explorer осложнится панелями предварительного просмотра ListViews и т. Д. Исследователь не имеет проблем с мерцанием на измесу, поэтому это Можно получить мерцание свободного размера родительских окон: - То, что вам нужно сделать, это поймать перекраску, выяснить, что их вызвало, и, хорошо, убедитесь, что причина удалена.
-121--2078029-Для общего введения в концепцию Di, включая всеобъемлющие примеры в C #, вы можете захотеть прочитать мою книгу впрыск зависимости в .NET .
Цель Kai упомянула некоторые очень хорошие ресурсы по конкретным реализациям контейнера IOC и соответствующих учебных пособий, однако они узко сосредоточены на дистанционном бане IOC, обсуждали и меньшее из общего введения / учебника.
Это все о свободной муфте.
Представьте себе, что у вас есть класс FO, который зависит от класса BAR
public class Foo
{
public Foo(Bar bar)
{
}
}
здесь, мы должны пройти экземпляр бар в класс для создания его. Что произойдет, если мы хотим иметь два разных реализация бара, один для взаимодействия с БД и один для тестирования?
Ну, мы бы создаем и интерфейс IBAR и используем это вместо этого, то мы можем использовать две конкретные реализации.
Теперь считают, что у нас много сложных зависимостей в много классов, которые называются множеством мест, если мы хотели изменить реализацию, мы должны были бы изменить код в каждом месте, что создается объект, реализованный IBAR, Это может быть много работы.
Вместо этого мы можем использовать инъекцию зависимости такой.
IUnityContainer myContainer = new UnityContainer();
myContainer.RegisterType<IBar, Bar>();
Foo foo = myContainer.Resolve<Foo>();
Здесь структура Unity вставила объект BAR в конструктор FOO, если вы изменили регистрацию типа в одном месте, вы измените, как объекты Foo будут решены по всему месту.
Когда у вас есть сложные зависимости, которые могут измениться, DI имеет важное значение!