Tag Info

New answers tagged

0

It clearly not a business transaction, as one would expect lineItemOrder.Order to be readily populated without needing to call separate method, With this approach not only it would be hard to debug, the domain model is not working as one expect it to work. When designing a domain model one should try to keep domain model clean from supporting frameworks ...


-1

Model Driven Software Development is highly driven by the Domain. In the beginning of the project you design a Domain Layer with the help of Domain Experts and by studying the Domain. This is the highest abstraction and should connect the Domain and Class diagram(If speaking in OO terms). The Domain Layer shall be understandable by booth developers and ...


2

Use a pub/sub framework like nServiceBus. The control panel can subscribe to update events on the domain model. The background process will emit the update events. When the control panel first starts up, it will send a command to the background process to tell it to send all the info it needs. Messages will contain serialized domain objects. The framework ...


1

If done correctly, separating business concerns into different databases (or at least different schemas) is a virtue. Please see Martin Fowler's description of the CQRS Pattern: As our needs become more sophisticated we steadily move away from [treating an information system like a CRUD datastore]... The change that CQRS introduces is to split that ...


1

Systems Analysis concerns itself with the design and behavior of the entire data processing system (including both computer hardware and software), whereas Domain Analysis concerns itself primarily with software design within the context of a business domain. Note the differences in analysis techniques cited in the Wikipedia articles I linked.


0

I to like DDD a lot, but it is tricky to apply it correctly and consistent. The cause of the difficulties you mention with ORM, OData and WCF is that these frameworks are almost considered part of the Domain, they know everything about the domain and have access to every part of it (data and logic). Most of the time this is not correct. Another problem is ...


-1

Here, MusicEvent is the can have many EventListings each EventListing could have multiple EventListingArtists However the EventListingArtist is linked to Artist as a reference When it comes to persisting, this should be good enough for your requirement, even if you have an event with large number of listings. Only trick is to use optimized queries when ...


4

Using native types (int, Guid, etc.) instead of types which express the intent (Price, ProductIdentifier, etc.) has two drawbacks: The type change is cascaded all over the code base, making it particularly painful. For instance, switching from smallint (short) to uniqueidentifier (Guid) is not only painful at database level (how do you transform ...


2

So lately I've been thinking that semantically the id is any unique identifier; the fact that it happens to be in the integer or the guid format is an implementation detail and exposing the fact in the type is a leaky abstraction. Thinking about it, exposing it as a string or a dedicated Identifier type has some advantages, it makes things easier to mock, ...


1

Service methods correlate with individual services. If the purpose of the service is to provide data for display in a UI, then you're also going to have a corresponding View Model. But that's not the only thing that a service method can provide.


1

If I may rephrase your question, you are asking "what happens to my system if something breaks?" Well, the short answer is that your system no longer functions properly. This happens all the time in complex systems. The degree to which you experience degraded functionality will depend upon what broke and how important it is. For example, when the space ...


2

Repositories are typically for Aggregate Roots only. No need for Repositories for non-root (what you call "child" ?) Entities because they are persisted and loaded automatically along with the Aggregate they belong to.


0

I have a similar situation, in that my domain model consists of a web of linked entities. I have solved it in this way: For each Entity type, I have a corresponding EntityRepository. The Entities are completely unaware of the existence of the repositories. Each EntityRepository type maintains a cache of the Entity instances that it knows about (those that ...


0

This may sound weird at first but try using "goal driven" names. So instead of "klicks checkout button" rephrase it as what the actor wants to achieve. Say Visitor "reviews checkout page". You may decide to implement this as an on screen button but that comes later. This simple trick of language stops you "implementing" too early in the design. "visitor ...


0

After you read Evans' book, you will see that DDD is a collection of concepts. The book was written over a decade ago. My opinion of it today is that it has good parts but is easily misunderstood and sometimes used inappropriately. In reality, some parts you may not need or may not be right for your application or chosen tools. As far as EF, I don't think ...


5

What is "eventual consistency"? How does it compare to "transactional consistency"? When does it happen? Consistency models describe how a system (nominally a distributed system) responds to change. In an eventually-consistent system, all nodes will eventually have a consistent view of the overall system state. However, there will be a period of time ...



Top 50 recent answers are included