What is it?

A software system – there is an idea – a way to formalize the idea – the model, and some resulting artifacts:

image

So what does CapableObjects do for you here:

image

The EA-Information tools of Modlr helps you describe the business – this is a description of the idea that runs the business. Read more

image

Modlr helps you to catch the model in UML. Read more

image

Having the model, Modlr derives the full domain layer for you to use – now you can fill in your specific c#, VB.NET or Delphi.NET code you could not or would not express in the model.

The domain layer is not just about the static types and their rules – you also have dynamic rules defined by state machines – and these can reduce both the code and the documentation you need to maintain.

Persistence is key and ECO derives it from the model:

image

Since the database scripts are derived from the model – we also offer the evolution scripts that are needed when your model changes – it will change – it always evolve over time.

Having the scripts derived enables you to switch database provider. ECO has an open api that makes it straight forward to implement your own persistence mapper. We offer SQLServer, Oracle, MySQL, SQLLite, Mimer, Nexus, Dbx, Sybase and Blackfish in the standard package.

You can also save to file, to disk or protected storage.

image

When it comes to Presentation you can databind the objects from the domain layer to all available UI techniques ASP.NET, WindowsForms, WPF and Silverlight (and this includes the windows phone). We also offer the definition of ViewModels already in the model. A viewmodel can be used to derive UI without coding – great for prototyping and non complex UI with standard controls.

Different Tiering , the same stuff

WindowsForms, WPF Browser applications, WPF forms applications and Silverlight is typically tiered this way

image

And ASP.NET and ASP MVC like this:

image

DRY

Do not Repeat Yourself. When using a Model Driven Framework like ECO there are a lot of things you can do generically – things that were not possible before.

We have discovered a few things – you will discover more. The ones we offer in the standard package – ready to use – are:

  • DomainLayer Undo Redo Stack – super easy to offer Undo and Redo for complex business applications.
  • Multi-client synchronization – when having cached domain  layers for each client you can either refresh everything (slow) or ask the server for what stuff have changed since last call and get these changes (efficient).
  • Domain layer serialization – when having complex ASP applications you may want to hold session state at the server to avoid saving before the user is done.
  • Cascading Delete – set up the rules for how your objects are destroyed in the model.
  • Model expressed derivations – express derived associations and attributes to reduce the need to repeating code.

Flexible

Since so much of a model driven system is derived, you are free to change your mind whenever you need to. At the very least you can try to work this way – if you do not like it you have not really lost anything – the idea and the model is were you invest the most of your time and the knowledge collected there is usable even if you choose to implement by traditional means.

This entry was posted in Strategies. Bookmark the permalink.

2 Responses to What is it?

  1. Throg says:

    How much of this can by done by non visual studio developers using AppComplete — given the description of AppComplete as being LIKE Eco etc (in the current Online Order page)?

    • Admin says:

      AppComplete can model just as much as ECO. AppComplete cannot generate code, and you cannot build multi user systems with AppComplete (yet). You can however import AppComplete models (.modlr) in ECO and VS, and you can work on models from ECO (.ecomdl + other file types) in AppComplete.

Add Comment Register



Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>