Domain Driven Design Framework - Plugger

Plugger is an open source DDD (Domain Driven Design) Framework written in java that helps people to implement and understand DDD.

It uses Hibernate for the persistence infrastructure and JGoodies Binding to bind the entities to the presentation.

Plugger is primary separated in two parts, the domain and the presentation.

The Domain part helps to build all the Entities, its rules and repositories.

The presentation bind the entities with the view. It implements the PresentationModel pattern using JGoodies Binding and some helper abstract classes.

Download Getting Started Example Application Api

The Correct Way

When a developer starts, he founds different obstacles, like how a program should be programmed and then he starts looking for different solutions. This solution are not always the best ones and can consume too much time and effort. Software development is very complex and this solutions can affect other parts of the code, this puts programmers into constant changes in their programming way until they can create a good and stable code, but with the cost of moving away from their goal, which is to create the business logic.
To correct this problem, an experienced developer, has to create secure ways to perform this tasks, in time, this ways have been perfected and documented in books and have become standard patterns to solve specific tasks.
One such model is the DDD Domain Driven Design, which is a development methodology which abstracts anything not related to the domain and leaves to the developer the task of developing the business logic in a safe way.

Domain Driven Design?

Over the last decade or two, a philosophy has developed as an undercurrent in the object community. The premise of domain-driven design is two-fold:

For most software projects, the primary focus should be on the domain and domain logic; and Complex domain designs should be based on a model.

Domain-driven design is not a technology or a methodology. It is a way of thinking and a set of priorities, aimed at accelerating software projects that have to deal with complicated domains.

To accomplish that goal, teams need an extensive set of design practices, techniques and principles. Refining and applying these techniques will be the subject of discussion for this site, generally starting from the language of patterns laid out in Domain-Driven Design, by Eric Evans.