Have a look at ElasticSearch as well, since it already provides powerful
expressions and a nice API. Feed it with data as if it's a projection.
Den , skrev Ryan Barrett [email protected] [domaindrivendesign]:
> I'd strongly recommend using expressions for search, they can be
> implemented generically, meaning that you don't have to implement
> potentially 100s of "QueryFilter" objects and can provide more
> powerful capabilities to the end user..
>
> --
>
> Ryan
>
> On 30 May 2014 07:51, Wim van Gool [email protected]
> [domaindrivendesign] <[email protected]> wrote:
>
>> By the way, the query-side has by definition nothing to do with
>> 'business logic'. Business logic is what relates to code that alters
>> the business data based on certain actions and business rules. That
>> is something what you design your Domain Model for. The Query-Side
>> does not contain business logic - no matter how complex some queries
>> may get. So you don't have to worry about guidelines telling you
>> where to put that query-logic.
>>
>> Having said that, when applying DDD, it's a general guideline to
>> implement all business logic in your Domain Layer / Domain Model,
>> and change only one aggregate per transaction. This design keeps the
>> Application Layer very thin and straightforward. There are
>> exceptions to this rule though: sometimes you just cannot avoid
>> having some coordination logic (thus business logic) in your
>> Application Layer, possibly hitting two aggregates in one
>> transaction.
>>
>> On Fri, May 30, 2014 at 7:46 AM, Wim van Gool <[email protected]>
>> wrote:
>>
>> If you apply DDD with CQRS, which l always recommend, then this
>> means that you will apply DDD only for the command-side of your
>> application. As far as I see it, you are then free to design and
>> implement the query-side as you like. So, if you have a page with
>> lots of search filters, just construct a QueryRequest-message that
>> contains all those filters (presumable with a lot of optional
>> fields) and implement a method/service in your back-end that handles
>> this query and returns the appropriate QueryResponse.
>>
>> Conceptually, the service(s) that handle your queries can be thought
>> of being part of the same Api-layer where the commands arrive, but
>> physically you can separate them completely if you want to.
>>
>> Where exactly the SQL is implemented is also entirely up to you.
>> Vernon has chosen to put the SQL into the application-code (the
>> QueryService), but you may also just call a stored procedure or
>> something.
>>
>> Does this answer your question?
>>
>> On Fri, May 30, 2014 at 1:01 AM, [email protected]
>> [domaindrivendesign] <[email protected]> wrote:
>>
>>
>>
>> Any ideas anyone?
>
>
>
> Links:
> ------
> [1]
> https://groups.yahoo.com/neo/groups/domaindrivendesign/conversations/messages/24423;_ylc=X3oDMTJxbXVjYm4wBF9TAzk3MzU5NzE0BGdycElkAzgxMTY5MjMEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzI0NDIzBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTQwMTQzMjQ1Mg--?act=reply&messageNum=24423
> [2]
> https://groups.yahoo.com/neo/groups/domaindrivendesign/conversations/newtopic;_ylc=X3oDMTJlZTV1OG9xBF9TAzk3MzU5NzE0BGdycElkAzgxMTY5MjMEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTQwMTQzMjQ1Mg--
> [3]
> https://groups.yahoo.com/neo/groups/domaindrivendesign/conversations/topics/24413;_ylc=X3oDMTM2N2ZsZXI4BF9TAzk3MzU5NzE0BGdycElkAzgxMTY5MjMEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzI0NDIzBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTQwMTQzMjQ1MgR0cGNJZAMyNDQxMw--
> [4]
> https://groups.yahoo.com/neo/groups/domaindrivendesign/info;_ylc=X3oDMTJlczl1Y25zBF9TAzk3MzU5NzE0BGdycElkAzgxMTY5MjMEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQwMTQzMjQ1Mg--
> [5]
> https://groups.yahoo.com/neo/groups/domaindrivendesign/members/all;_ylc=X3oDMTJmdmoyMmFyBF9TAzk3MzU5NzE0BGdycElkAzgxMTY5MjMEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzE0MDE0MzI0NTI-
> [6]
> https://groups.yahoo.com/neo;_ylc=X3oDMTJkZGRydnM4BF9TAzk3NDc2NTkwBGdycElkAzgxMTY5MjMEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDAxNDMyNDUy
> [7] https://info.yahoo.com/privacy/us/yahoo/groups/details.html
> [8] https://info.yahoo.com/legal/us/yahoo/utos/terms/
------------------------------------
Posted by: Thomas Presthus <[email protected]>
------------------------------------
Yahoo Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/domaindrivendesign/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/domaindrivendesign/join
(Yahoo! ID required)
<*> To change settings via email:
[email protected][email protected]
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo Groups is subject to:
https://info.yahoo.com/legal/us/yahoo/utos/terms/
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.