konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

`Piotr Sowa edytował(a) ten post dnia 12.02.12 o godzinie 15:51

konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

Piotr Sowa:
Odpowiednie narzędzia można znaleźć w zamkowych projektach.
Castle Projects

Nie wiem czemu ale tych Castli nie lubię. Wolę Enterprise Library który ma swojego IUnityContainer, który istnieje również dla Silverlight! Uczę się raz i wykorzystują w każdym projekcie (oczywiście w SL nie ma konfiguracji przez plik konfiguracyjny)

Od samego początku używam IUnityContainer w ASP.NET MVC ustawiając własny ControllerBuilder.Current.SetControllerFactory. Przy okazji w MVC2 jest breaking change w DefaultControllerFactory

konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

`Piotr Sowa edytował(a) ten post dnia 12.02.12 o godzinie 15:52

konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

Witam.

Jeśli mogę...

Sam IUnityContainer ani DI nie przypadło mi do gustu, w projekcie w którym uczestniczę, generuje za dużo szumu.

Poza tym kilka krotnie zdarzyło się tak że ObjectBuilder2 zbudował źle kod i w losowym miejscu np: (string a = "hello") aplikacja po prostu się posypała z nic nie mówiącym wyjątkiem (casting error???), ponieważ kod Il pomieszał się z inną metodą.

ObjectBuilder2 mimo ze to już jego drugie wydanie potrafi nieźle namieszać.

Obecnie sam pracuje nad podobna biblioteką.. no przesadziłem bardziej nad aspektową częścią niż DI. więc zanim którejkolwiek bym użył radze sprawdzić jak produkuje obiekty.

To Wszystko ;)

Pozdrawiam.

konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

Tutaj mówimy o wadze ciężkiej. A ja proponowałbym przyjrzeć się jeszcze bibliotece linFu.

Link: http://www.codeproject.com/KB/cs/LinFuPart1.aspx

Jedną z jej obszarów jest IoC. Jest bardzo lekka i szybka.

Jeśli Bartoszu piszesz coś takiego to tym bardziej warto zajrzeć. Może wpadnie Ci do głowy kilka pomysłów.

IoC jest opisane w IV części:
http://www.codeproject.com/KB/cs/LinFuPart4.aspxKrzysztof Drelczuk edytował(a) ten post dnia 24.11.09 o godzinie 09:44

konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

Ja również korzystam z Unity (czasami StructureMap i przymierzam się do przetestowania AutoFac). Większych problemów z budowaniem obiektów nie miałem. Po okresie niezdrowej fascynacji tego typu rozwiązaniami nie staram się już wszędzie wpychać kontenerów IoC. Wracam do starych dobrych fabryk (programowanie "AltEnter" w Resharperze ;). Nie używam kontenerów jako ServiceLocatorów. Jakiś czas temu znalazłem całkiem fajne przemyślenia na blogu:

http://blog.vuscode.com/malovicn/archive/tags/Architec...

(Posty z serii Design for testability).

konto usunięte

Temat: Podyskutujmy o Windsor Container: IoC, DI ;)

Krzysztof Drelczuk:
Tutaj mówimy o wadze ciężkiej. A ja proponowałbym przyjrzeć się jeszcze bibliotece linFu.

Link: http://www.codeproject.com/KB/cs/LinFuPart1.aspx

Jedną z jej obszarów jest IoC. Jest bardzo lekka i szybka.

Jeśli Bartoszu piszesz coś takiego to tym bardziej warto zajrzeć. Może wpadnie Ci do głowy kilka pomysłów.

IoC jest opisane w IV części:
http://www.codeproject.com/KB/cs/LinFuPart4.aspxKrzysztof Drelczuk edytował(a) ten post dnia 24.11.09 o godzinie 09:44


Krzysztof, Dzięki bardzo za link :),

Obecnie wzoruje się na Springu, PostSharp, Castle itp. Gdyż w zamyśle mojej biblioteki jest bardziej meta programowanie, ale skoro już i tak buduje obiekty to mogę tez zrobić DI z niewielkim nakładem pracy. (Wystarczy odpowiednio zbudować konstruktor i analizując go powołać odpowiednie typy)

Swoja drogą interesuje się ktoś CIlem? :D.

Gdyż w DI i CodeInjection można zrobić jeszcze coś ciekawszego.

popełnię pewny off topic: ale nadal w duchu DI

Wiele instrukcji VM Neta jest nie wykorzystywanych obecnie ze względu ze dawniej ich nie było, są one szybsze od tradycyjnych. (Zawijanie pętli). (Tailng Call). Teoretycznie taki object builder mógł by budować obiekt właśnie na tych instrukcjach, co zaowocowało by większą wydajnością. Lecz czynnikiem Hamującym jest dokumentacja (brak) więc należy to zrobić metodą prób i błędów (C++ wykorzystuje niektóre z nich, wiec dekompilacja C++ odpowie na pewne pytania.)



Wyślij zaproszenie do