> -----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]

Reply via email to