Unity - .NET Framework

1

Pytanie do kogoś kto stosował to w swoich projektach. Może ktoś mi pokazać jakąś "ideę" tego rozwiązania? Tzn. w czym ona ulepsza/usprawnia/ułatwia modyfikacje itp naszego kodu? Bo jakoś na razie tego nie "czuję". Więc jak by ktoś miał chwilkę i miał chęć to prosił bym o ujawnienie tej głównej idei :)

PS. http://msdn.microsoft.com/en-us/library/ff663144.aspx Czy to najlepsze źródło informacji na ten temat? Czy może APress coś na ten temat napisało? Bo nie mogę znaleźć nigdzie zbyt wiele informacji na ten temat.

0

Tu coś można znaleźć
http://unity.codeplex.com/discussions

1

Przeczytaj sobie ogolnie artykuly o decoupling (rozdzielanie zaleznosci) i Inversion of Control. Kontener DI (np. Unity wlasnie) to sposob implementacji IoC. Ogolnie chodzi o to, ze definiujesz sobie zaleznosci danej klasy, np. w konstruktorze (czyli wstrzykiwanie przez konstruktor) w stosunku do jakichs tam interfejsow. Klase interesuje tylko tyle, ze do jej dzialania potrzeba interfejsu IInterfejs1 IInterfejs2, itp. To jakie beda implementacje tych interfejsow jest juz nieistotne, wazne, zeby spelnialy dany kontrakt (np. implementowaly metody i zwracaly oczekiwane wyniki a nie np. rzucaly NotImplementedException).

Konfigurujesz kontener, zeby wiedzial jak rozwiazywac dane zaleznosci (IInterfejs1 implementuje klasa Implementacja1, IInterfejs2 klasa Implementacja2, itp.) Kontener zajmuje sie inicjalizacja zadanych obiektow wedlug konfiguracji. W ten sposob nie musisz sie martwic o przekazywanie obiektow wglab, o ich tworzenie i co najwazniejsze nie ma zaleznosci, ze Implementacja1 korzysta zawsze z Implementacji2, bo sama w konstruktorze tworzy obiekt tej klasy. I jak trzeba cos zmienic, to trzeba pozmieniac wszedzie tworzenie nowego obiektu na inny. A jak jeszcze implementacja jest w innym assembly to musimy stworzyc referencje, pozniej pewnie inne referencje, i zaczyna sie robic syf.

Ja osobiscie wole StructureMap, Unity uzywalem tylko chwile, ciekawe jest rowniez NInject (wstrzykiwanie kontekstowe, ale tylko o tym czytalem). Generalnie wiekszosc kontenerow ma podobne mozliwosci.

1 użytkowników online, w tym zalogowanych: 0, gości: 1