Fellas, congrats on the best IoC container I've seen. I've played with Avalon, XWork and Pico/Nano and the latter is the best I have used. ( link). Mathias Bogaert (25th June 2003)
paul_hammant: While it is fresh. Could
you write a couple of paragraphs on you intial reaction and why you
warmed to Pico ?
m_bogaert: sure m_bogaert: I'll put it on email paul_hammant: I'll put on the propaganda page paul_hammant: please also don't hold back on how much of a hard time you gave Aslak m_bogaert: I do realize that I can moan about stupid naming stuff m_bogaert: but that's me, the perfectionist paul_hammant: no dude, from a couple of days ago... paul_hammant: not the rename stuff paul_hammant: when you were fonder of type2 paul_hammant: the intial YIM chat story you had with aslak m_bogaert: ah ok m_bogaert: yep I still have it...rereading to see how I evolved paul_hammant: we can direct "instant objecters" to it in future to save time m_bogaert: so aslak stated that I was bitching? hehe m_bogaert: or giving a hard time? paul_hammant: I was sitting next to him dude paul_hammant: he did not say you were bitching paul_hammant: it was clear though that he had an uphill struggle convincing you paul_hammant: if it was some one he did not like, he might have given up and we would have made an enemy paul_hammant: best to get the "user story" now to save time in future m_bogaert: hehe m_bogaert: ok sent Here is what you asked for, my initial reaction on Type3 IOC: When I started out with XWork IOC (type 2), I really liked the clean enabler interfaces, and the fact that you could switch implementations and scopes by defining it in an XML file. Also the integration with XWork, the fact that I had my own little Actions implement eg. ConfigurationManager was so neat and clean. I was in love. Then came along Type 3 IOC. My initial reaction was 'aaarg where would my nice enabler interfaces fit?', because ForgotPasswordAction implements UserManagerAware looked so sexy. So I ignored it for a while and kept on converting my components into type 2 IOC. Converting. Converting. Damn, soooo many blahAware interfaces. Then I started thinking again. A component should manage itself. A component should enforce their dependencies. A component should not live without context (other components set on it). Type 2 IOC doesn't support this all, AND makes me write 2 classes for each component (the component and the enabler). After a chat with Aslak, I saw the light, and the next day it struck me...type 3 was a better solution then type 2. |