Re: Aggregates with dependencies

Greg Young <[email protected]>
Newsgroups gmane.comp.programming.domain-driven-design
Message-ID <CAC9RQtibupKqH3cXqTp19k5PFdPwPK7tEiVZLQF5DeNy0GjTLA@mail.gmail.com>
This sounds an awful lot the discussion of "how do I handle session for
hibernate"

On Fri, Feb 15, 2013 at 3:55 PM, Mauro Servienti <[email protected]> wrote:

> **
>
>
>  Technically speaking the problem is that ThreadStatic in a web
> application is a real pain. But I understood the concept and do not want to
> go OT.****
>
> ** **
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Willem van Gool
> *Sent:* venerdì 15 febbraio 2013 14.06
>
> *To:* [email protected]
> *Subject:* Re: [domaindrivendesign] Aggregates with dependencies****
>
>  ** **
>
>
>
> If you'd implement it that way, I'd start with making it ThreadStatic.
> That makes it must more testable, and enables you to make the
> UserContext-setter internal (and thus not accessbile to your domain,
> increasing encapsulation). If you want, you can even create an associated
> UserContextScope-class that is responsible for initializing a certain
> UserContext that works something like this:
>
> using (new UserContextScope(user))
> {
>     // UserContext.Current is now set to the specified user.
> }
>
> In your testcases, you can then create/dispose this scope in your
> setup/teardown methods of simply within a testmethod if the user must be
> altered for different cases.****
>
> On Fri, Feb 15, 2013 at 1:57 PM, Mauro Servienti <[email protected]> wrote:*
> ***
>
>    ****
>
> That is an option, but I hate the fact that it is “static” and thus hard
> to test.****
>
>  ****
>
> .m****
>
>  ****
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Willem van Gool
> *Sent:* venerdì 15 febbraio 2013 13.55****
>
>
> *To:* [email protected]
> *Subject:* Re: [domaindrivendesign] Aggregates with dependencies****
>
>
>
> Perhaps, assuming your User-entity represents something different than the
> current principal of your Thread, you could create your own UserContext in
> the command pipeline and then access UserContext.Current whereever you need
> it. That way, you can access it everywhere and keep your
> aggregates/domain model clean...would that be an option?****
>
> On Fri, Feb 15, 2013 at 1:35 PM, Mauro Servienti <[email protected]> wrote:*
> ***
>
>    ****
>
> I have something like:
>
> storeAggregate.Dosomething();
>
> And I do *not* want to have:
>
> storeAggregate.Dosomething( User onBehalfOf );
>
> .m****
>
>
> -----Original Message-----
> From: [email protected] [mailto:
> [email protected]] On Behalf Of Willem van Gool
> Sent: venerdì 15 febbraio 2013 08.24
> To: [email protected]
> Subject: Re: [domaindrivendesign] Aggregates with dependencies****
>
> Regarding your question, if an aggregat itself can depend on a service, id
> say no. It sounds like you're accessong the service in the wrong place. If
> you require realtime info from an external service for dag command,
> consider placing this logic in your handlers or as a behavior on your
> handlers and then forward this info to your aggregate where appropriate.
>
> On 2/15/13, Mauro Servienti [email protected]> wrote:
> > Hi all,
> >
> > In our domain, financial but does not really care for the topic of the
> > question, each aggregate raises a lot of events one of the key
> > information that the event must carry with it is the user, the
> > application user, that it currently managing the aggregate.
> > We have a security service that knows who the user is and is the only
> > source of truth we can rely on.
> >
> > Is it fine, from a ddd perspective, that an aggregate depends on a
> service?
> >
> > If not, how would you solve this scenario?
> >
> > .m
> >
> > Sent from my Yellow Lumia 920
> >****
>
> ------------------------------------
>
> Yahoo! Groups Links****
>
>
>
>
> ****
>
>
>
>
>
> ****
>
> ****
>
>   
>



-- 
Le doute n'est pas une condition agréable, mais la certitude est absurde.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.