know. So many times you thought that applications were quite similar.
You're right! Technologies are horizontal and you can use the same ones
in very different contexts. What really changes is the Domain. The Domain is the real value of your application, because you've analyzed it, studied it and shared it with the client.
Roma lets you focus on the domain and treat the rest as a minor detail. It's a pure DDD (Domain Driven Design) approach.
How does it work ?
start off by defining the entities/classes of your domain. You can
write them by using an IDE of choice or you could have your preferred
UML tool do the class generating for you.
your model is well documented, let Roma worry about the rest. I'm
talking about the presentation, the persistence of your objects, the
internationalization, etc. They can all be auto-determined figured
out by analyzing your domain model.
Java language syntax is not enough to represent the complexity of your
domain (think of all kinds of relationships) you could have the need to
enrich your model by adding same details using Annotations. Annotation can be under the form of Java Annotation (introduced with Java version 5) or Xml Annotation.
using annotations you can tell Roma to hide a field in your form or to
render it in a different way, to express the kind of relationship
between two entities, and much more.
you're you're not coupling your application to any specific technology
and your domain is defined as a collection of POJO's,
you can generate a fully featured web application in a short time and
without writing one single line of HTML or SQL. Aspect implementations
will deal with it. But remember you always own great powerful in
customization if you need.
This greatly reduces development time and allows your team to focus on the domain, without them having to be skilled up on every single technology you're using.
Roma is the framework of choice of hundreds of developers who employ it, as we speak, to build very complex applications in a fraction of the time in comparison to conventional technologies.