Showing posts with label MVVM. Show all posts
Showing posts with label MVVM. Show all posts

Thinking DDD with Patterns - Part 2 -

In previous post, I described the architecture diagram of our project. In this post I will describe the architecture layers. As shown in the architecture diagram, our layers are based on the approach DDD (UI, Application, Domain and Infrastructure).

  1. User Interface (Presentation Layer): Responsible for presenting information to the user and interpreting user commands. As shown in the diagram above, this layer can be represented by one of the following interfaces:
    • Silverlight or WPF: In this part, you should use the pattern MVVM (Model-View-ViewModel). MVVM offers a flexible way to create applications Silverlight / WPF and allow to reusing of code, simplifying maintenance and testing. It is composed of :
      • View: XAML for WPF or silverlight screens
      • ViewModel: relation between the view and model
      • Model: represents the entities and the business code on the server side.

     

    • ASP.NET MVC: As its name implies, the pattern used here is the MVC (Model-View-Controller).
      • Controller: Allows you to manage user interaction, working with the model and, finally, select the view that will allow rendering the user interface.
      • View: display made ​​in ASP engine or Razor
      • Model: represents the entities and the business code on the server side.

     

    • ASP.NET Webform: It doesn't follow any pattern. It is the strong coupling between the view and the code behind. Additional work is needed from the entire team to reduce the maximum possible code behind.


       

  2. Application layer: This is a thin layer which coordinates the application activity. It doesn't contain business logic. It doesn't hold the state of the business objects, but it can hold the state of an application task progress..
  3. Domain layer: This layer contains the information about the domain. This is the heart of business software. The state of business objects is held here. Persistence of business objects and possibly their state is delegated to the infrastructure layer.
  4. Infrastructure Layer: This layer acts as a supporting library for all the other layers. It provides communication between layers, implements the persistence of business objects contains supporting libraries for UI layer.

Other than main layers, I added two needed libraries:

  • WCF service: exposes the necessary contracts for the UI layer.
  • UTILS: It is a utility containing common code for any generic solution.

In next post, I will describe components used and how to create our project with VS 2010…

Thinking DDD with Patterns - Part 1 -

In this post, I will describe how to create a project using DDD approach and few patterns such as MVVM, MVC and IoC. In future posts, I will describe how create other projects using CQRS (DDDD) architecture.

Our project is a simply scrum tool. For those who are new to Scrum, "Scrum in FiveMinutes - Executive Summary" serves as a canon useful introduction. The project is to manage Scrum Task Board. To understand the needs of the project, I invite you to take a look at this link. The project objective is not to replace cork board hung on the wall. It is rather to keep a copy of the daily scrum progress.

Starting by describe global architecture project :

Our architecture is based on the Domain Driven Design approach. DDD is an approach to software development for complex needs. Firstly, DDD does not a new concept: it is neither a method nor a technology. The Domain Driven Design is "thinking". It is a set of "best practices" to reconcile art and technology in the software design.

Indeed, in the DDD, the business (Domain) that will not drive but inspire development. The main concept of DDD is that, whatever the implementation, it must reflect the business (Customer Requirements).

รจ"It should be possible to read the code, understand the business".

In next post, I will describe the architecture layers…