They probably just have an IQuery and an ICommand ;p

On Monday, 18 July 2016, Paul Glavich <[email protected]> wrote:

> It would seem to be the case, CQRS and repository are not mutually
> exclusive patterns, far from it actually. They are quite often used
> together. I would say CQRS is  far broader pattern than the repository
> which is simply to abstract the data store mechanism whereas CQRS is a
> functionally more complex pattern. I would be curious how they are storing
> commands and interacting with the query engine though.
>
>
>
> -          Glav
>
>
>
> *From:* [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');> [mailto:
> [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>] *On
> Behalf Of *Nathan Schultz
> *Sent:* Thursday, 14 July 2016 5:13 PM
> *To:* ozDotNet <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>>
> *Subject:* Re: Command and Query Responsibility Segregation Pattern (CQRS)
>
>
>
> Hi Tony,
>
>
>
> Yeah, it seems strange to me too.
>
>
>
> Often CQRS is sometimes used in conjunction with Event Sourcing (i.e. an
> append only data-store). So maybe he's thinking of the Repository Pattern
> as a traditional CRUD interface, and it's that which they're not using?
>
>
>
> Regards,
>
>
>
> Nathan.
>
>
>
> On 14 July 2016 at 14:03, Tom Rutter <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
> Hey Tony, I too am confused by the developer's comment. My understanding
> is the same as yours it seems.
>
>
>
>
>
> On Wed, Jul 13, 2016 at 8:12 PM, Tony Wright <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
> Hi all,
>
>
>
> I had a discussion the other day with an experienced developer who told me
> that "instead of using the repository pattern, they just use CQRS these
> days."
>
>
>
> I am somewhat puzzled with that statement, because it is my understanding
> that the two are almost completely independent of each other.
>
>
>
> In simple terms, CQRS is used to separate requests from responses, so data
> received from a database use different classes from the ones used to submit
> updates. e.g. PersonCreateInputDto, which might contain just the fields
> used to create a new person in the database, and PersonOutputDto, which
> might contain just the fields needed to display a list of Person records.
> You don't use the same object for both types of transaction, just the bare
> minimum in each.
>
>
>
> Repository, on the other hand, is used for dependency injection. By
> changing the dependency provider, I can switch a set of runtime classes
> with a set of testing classes. The dependency provider injects the
> dependent objects that are desired at the time, which could be either
> runtime objects, or mock testing objects, so it is predominantly used to
> enable better testing.
>
>
>
> I got the impression that the person was somehow using CQSR to perform
> their testing instead. Is there something that I'm missing here?
>
>
>
> Regards,
>
> Tony
>
>
>
>
>

Reply via email to