> -----Original Message----- > From: Berin Loritsch [mailto:[EMAIL PROTECTED] > Sent: Wednesday, July 30, 2003 9:14 AM > To: Avalon Developers List > Subject: Re: ROLE & Lifecycles in C# > > Geer, Christopher S wrote: > >>If there is already a IDisposable.Dispose(), then why not use it? > > > > What > > > >>context is it used with? I see no sense in reinventing the wheel. > > > > > > I agree we should use the provided interface if we can. > > > > > >>Short list is: > >> > >>Configurable > >>LookupEnabled > >>Initializable > >>Disposable > > > > > > I'm assuming that you mean to role start() and stop() into Initializable > > or something? Also, what about Suspendable, Reconfiguration and the > > other Re's? Personally I beleive that those are very important > > interfaces to support. While you could just role those into the list > > above that would almost require everyone support them, which would mean > > if someone didn't want them they would just have empty methods, giving > > someone a false belief that the compoenent actually supported them. > > > All the Re's should be removed until we decide what to do with them. > Noone has come up with a good idea for any of the Re's or how to support > them. They are legacy interfaces that in hindsight would have been better > to nix back when we made the Avalon 4.0 baseline.
Getting rid of these for now doesn't really bother me too much. > > In the future, when we have a requirement for something along these lines > we can discuss how to do it, what the contracts should be, and then expand > the framework. > > As to Startable [start() and stop()], it seems redundant when we have > Initializable and Disposable. Again, Suspendable is one of those things > that loses any kind of usefulness if there is no reason to temporarily > suspend a component (reconfiguration, etc.). I disagree. I think Startable is an absolutely necessary interface. There are perfectly valid cases where components may not need to be "initialized" but do need to be started and stopped. Also, stop() and dispose() have two different functions also, in my opinion. For example (and this might not be the best example but...) if you were building a web server, you might want to stop the web server from taking requests and then collect metrics from the server (while its not changing) before disposing of it. While you could wrap the start() method into the Initializable interface if we reuse the .NET IDisposable interface we won't be able to wrap the stop() method into it. > > For the short term, we can say that any reconfiguration, etc. would be > done by disposing of a component, and then reinitializing it with the new > information. For simplicity sake early on I don't really have a problem with this but I don't think this is a long term solution. I think there needs to be a way to modify a components configuration without disposing of it and loosing its state information. > > > > > > >>The LookupEnabled would merge the ServiceManager and Context concepts > > > > into > > > >>one, with a LookupManager. If there is a .NET equivalent for that, it > > > > would > > > >>be useful to know. > > > > > > I don't think there is a .NET equivilant. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > -- > > "They that give up essential liberty to obtain a little temporary safety > deserve neither liberty nor safety." > - Benjamin Franklin > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
