Yes, getting insight into the container is as I plan one of the main themes for Windsor 3, so I'm happy that you guys approve and like that direction.

Mauricio, I try to make the classes I use for analysis decoupled from the debugger itself (as much as possible, since the mechanism itself is very rigid) but have a look at the tests I committed along with the feature.
It's only a sketch, but it should give you an idea.


On 19/09/2010 3:55 PM, Mauricio Scheffer wrote:
Spike is here: http://bit.ly/90RO7B (it's VERY rough)

2010/9/19 Mauricio Scheffer <[email protected] <mailto:[email protected]>>

    I started spiking something about this a couple of days ago... I
    was thinking about semi-static analyses (i.e. without actually
    resolving any components) to find common problems like cyclic
    dependencies, lifestyle issues, missing dependencies, and also
    visualizing the dependency graph.
    I know lots of scenarios can't be analyzed like this, but it's
    still better than nothing, as long as we don't have false positives.
    These analyses would be then run as tests, their only input would
    be the constructed IWindsorContainer instance.
    Debugger visualizers are nice to have, but IMHO debugging and
    stepping is the last resource. It's just better to have assertable
    tests, or at least something that generates some sort of report
    over the whole graph.

    --
    Mauricio


    2010/9/18 Krzysztof Koźmic <[email protected]
    <mailto:[email protected]>>

        hehe,

        We'll do that also via logging in v3, but that requires adding
        loggin throughout the entire framework and big changes is
        something I wanted to avoid for .5 release.

        This provides best (cost*risk)/benefit ratio. And it has
        proven very valuable to me on several ocasions already :)
        And not just me: http://mookid.dk/oncode/archives/1553

        cheers,

        Any other feedback?


        On 19/09/2010 11:28 AM, John Simons wrote:
        I think the idea of reporting such mismatches is great +1 but
        reporting them through visual debugger -1.
        Sorry mate.

        Cheers, John

        On 19/09/2010, at 11:09, Krzysztof Koźmic
        <[email protected]
        <mailto:[email protected]>> wrote:

        Windsor has no internal logging as of yet.

        I consider adding it for v3 but adding logging, or adding
        debugger visualizer is much more work.
        This works only if you start your app with attached debugger
        and break into the code where the container is in scope.

        Krzysztof

        On 19/09/2010 11:06 AM, John Simons wrote:
        So is this warning only available/visible in debug attached
        mode?
        Or can I also see it in my logs?
        I guess what I'm trying to say is that imho this would be
        more beneficial in the log then in the debugger visualiser.

        Cheers, John

        On 19/09/2010, at 9:47, Krzysztof Koźmic
        <[email protected]
        <mailto:[email protected]>> wrote:

        Hi,

        I've been working on a new addition for Windsor 2.5.1 in
        its debugger views support.
        The goal is to detect and report Singletons depending on
        Transients or PerWebRequest components (directly or
        indirectly) and report it.

        Here's how it looks like in action:
        <VS_live.png>

        I call it "Potential Lifestyle Mismatches", because there
        are some cases when what it reports is valid case.
        At the top level menu I show the number of such
        dependencies (sounds like the most reasonable thing to me).

        One level in I show each such (direct or indirect)
        dependency as "Depender" DependersLifestyle -> "Dependee"
        DependeesLifestyle
        Idea was to show enough information here, so that you
        don't need to go deeper to fix the issue.

        If you do want to go one level deeper though you get a
        descriptive message of the issue and list of all
        components in the dependency chain in question.

        So you can see that C (singleton) depends on B (singleton)
        which depends on A (Transient)

        The description message looks like this:

        <message.png>


        *So now I want your feedback here - am I showing the right
        information, is everything clear and intuitive?*
        The code is not yet pushed, I need to do some cleanup and
        testing first, which will take me an hour or two.

        cheers,
        Krzysztof

-- You received this message because you are subscribed to
        the Google Groups "Castle Project Development List" group.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/castle-project-devel?hl=en.
-- You received this message because you are subscribed to the
        Google Groups "Castle Project Development List" group.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/castle-project-devel?hl=en.

-- You received this message because you are subscribed to the
        Google Groups "Castle Project Development List" group.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/castle-project-devel?hl=en.
-- You received this message because you are subscribed to the
        Google Groups "Castle Project Development List" group.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/castle-project-devel?hl=en.

-- You received this message because you are subscribed to the
        Google Groups "Castle Project Development List" group.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:castle-project-devel%[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/castle-project-devel?hl=en.



--
You received this message because you are subscribed to the Google Groups "Castle Project Development List" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-devel?hl=en.

--
You received this message because you are subscribed to the Google Groups "Castle 
Project Development List" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-devel?hl=en.

Reply via email to