You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Kevin Meyer - KMZ <ke...@kmz.co.za> on 2013/09/08 13:35:28 UTC

What is Apache Isis? Answer by analogy

Folks: Our website is rather "dry" when it comes to describing "What 
is Isis". I want to add a section somewhere (possibly starting with my 
own blog, with something like the following). Any suggestions for 
improvement / correcting mistakes are welcome!


I was trying to describe Isis to some scientist colleagues the other 
night with mixed success. A little later (in the shower, as is so often 
the case), I realised quite a neat analogy: LaTeX [1]

In brief: To write a document (e.g. a PhD thesis) using LaTeX, all you 
(typically) have to do is write the words of the content. There is a 
syntax for "programming" mathematical formula and including 
graphics, etc.
As the author, you care only about "sectioning" - the proper use of 
"chapter", "section", "subsection" tags, you don't worry about "styling" 
(bold, 20pt, courier, etc).

Once you have your content, the final (styled) document is generated 
using your sources and styling rules (your chosen style templates).

The result is a beautifully typeset document. Table of contents, index, 
gloassary, bibliography, these all come for free if you obey some 
simple rules and include the right "syntax" in your document "text".

The alternative is Word (or any other WYSIWYG word processor) - 
you have complete control, but you can waste a lot of time with 
fiddling the layout and the formatting. Not to mention the painful user 
inteface workflow for defining and referencing bookmarks, references, 
cross-references, etc.



Isis is a bit like LaTeX but for application development. You create 
POJO's that are internally self-consistent (they enforce their own 
rules) and Isis renders them to the user (and the repository, etc). 
(With annotations you get "Word-like" control).
For any property (e.g. Name) methods like "getName" and "setName" 
support standard CRUD behaviour.
But Isis goes way beyond CRUD by providing an extra metalanguage 
for things like validation "validateName", visibility "visibleName", 
editability "disableName" and many others (choicesName, 
defaultName, etc).
All the required logic is in the POJO itself.

The alternative is a GUI framework where you manually create 
buttons, labels and fields. You probably even have to place (x,y 
location) and size (length) them. Then you have code that binds them 
to class properties... Think Visual Basic or Delphi[2]. Then have the 
option of putting (validation, for example) all over the place (e.g. in 
the GUI componet event handler, and the database interface code, or 
in a Controller class) - talk about a maintenance nightmare!

So what is Isis?
Isis is a framework that lets developers write self-contained code to 
represent a (business) case. Isis examines that code, with its implied 
rules, and automatically renders a UI and handles persistence - at 
runtime. It can also expose the same business case to other services 
while preserving all the encoded business rules (via a REST 
interface), provide Authentication (login control) and Authorisation (is 
this user allowed to do that?).



[1] http://en.wikipedia.org/wiki/LaTeX
[2] http://en.wikipedia.org/wiki/Embarcadero_Delphi


Re: What is Apache Isis? Answer by analogy

Posted by GESCONSULTOR <o....@gesconsultor.com>.
Yes. That's a good analogy.

Working with Isis your focus is on the domain nearly always. 

When the UI will be fully customizable on later iterations the focus will be also there.




El 08/09/2013, a las 13:35, "Kevin Meyer - KMZ" <ke...@kmz.co.za> escribió:

> Folks: Our website is rather "dry" when it comes to describing "What 
> is Isis". I want to add a section somewhere (possibly starting with my 
> own blog, with something like the following). Any suggestions for 
> improvement / correcting mistakes are welcome!
> 
> 
> I was trying to describe Isis to some scientist colleagues the other 
> night with mixed success. A little later (in the shower, as is so often 
> the case), I realised quite a neat analogy: LaTeX [1]
> 
> In brief: To write a document (e.g. a PhD thesis) using LaTeX, all you 
> (typically) have to do is write the words of the content. There is a 
> syntax for "programming" mathematical formula and including 
> graphics, etc.
> As the author, you care only about "sectioning" - the proper use of 
> "chapter", "section", "subsection" tags, you don't worry about "styling" 
> (bold, 20pt, courier, etc).
> 
> Once you have your content, the final (styled) document is generated 
> using your sources and styling rules (your chosen style templates).
> 
> The result is a beautifully typeset document. Table of contents, index, 
> gloassary, bibliography, these all come for free if you obey some 
> simple rules and include the right "syntax" in your document "text".
> 
> The alternative is Word (or any other WYSIWYG word processor) - 
> you have complete control, but you can waste a lot of time with 
> fiddling the layout and the formatting. Not to mention the painful user 
> inteface workflow for defining and referencing bookmarks, references, 
> cross-references, etc.
> 
> 
> 
> Isis is a bit like LaTeX but for application development. You create 
> POJO's that are internally self-consistent (they enforce their own 
> rules) and Isis renders them to the user (and the repository, etc). 
> (With annotations you get "Word-like" control).
> For any property (e.g. Name) methods like "getName" and "setName" 
> support standard CRUD behaviour.
> But Isis goes way beyond CRUD by providing an extra metalanguage 
> for things like validation "validateName", visibility "visibleName", 
> editability "disableName" and many others (choicesName, 
> defaultName, etc).
> All the required logic is in the POJO itself.
> 
> The alternative is a GUI framework where you manually create 
> buttons, labels and fields. You probably even have to place (x,y 
> location) and size (length) them. Then you have code that binds them 
> to class properties... Think Visual Basic or Delphi[2]. Then have the 
> option of putting (validation, for example) all over the place (e.g. in 
> the GUI componet event handler, and the database interface code, or 
> in a Controller class) - talk about a maintenance nightmare!
> 
> So what is Isis?
> Isis is a framework that lets developers write self-contained code to 
> represent a (business) case. Isis examines that code, with its implied 
> rules, and automatically renders a UI and handles persistence - at 
> runtime. It can also expose the same business case to other services 
> while preserving all the encoded business rules (via a REST 
> interface), provide Authentication (login control) and Authorisation (is 
> this user allowed to do that?).
> 
> 
> 
> [1] http://en.wikipedia.org/wiki/LaTeX
> [2] http://en.wikipedia.org/wiki/Embarcadero_Delphi
> 

Re: What is Apache Isis? Answer by analogy

Posted by Kevin Meyer - KMZ <ke...@kmz.co.za>.
On 9 Sep 2013 at 8:18, Dan Haywood wrote:

> > I was trying to describe Isis to some scientist colleagues the other
> > night with mixed success. A little later (in the shower, as is so often
> > the case), I realised quite a neat analogy: LaTeX [1]
> >
> It's a good analogy, though I don't know how many devs today will have know
> LaTeX.

Ah, well, there is that.. I'll just have to rely on the description to make 
it clear what LaTeX is doing / how it's used! ;)

Don't forget, a lot of scientist types (who use / have used LaTeX) also 
do development work in their labs. If we can get them to start using 
Isis instead of python (etc)....

> > So what is Isis?
> > Isis is a framework that lets developers write self-contained code to
> > represent a (business) case. Isis examines that code, with its implied
> > rules, and automatically renders a UI and handles persistence - at
> > runtime. It can also expose the same business case to other services
> > while preserving all the encoded business rules (via a REST
> > interface), provide Authentication (login control) and Authorisation (is
> > this user allowed to do that?).
> >
> >
> Just comparing that with our current "hero" text on [3]
> 
> *Apache IsisTM software is a framework for rapidly developing domain-driven
> apps in Java. Write your business logic in entities, domain services and
> repositories, and the framework dynamically generates a representation of
> that domain model as a webapp or a RESTful API. For prototyping or
> production.
> *
> 
> I'm not sure there's a lot of difference there...

Oh, there needn't be any / much difference. I'm just using my own 
words. I would like everyone to write their own description of what Isis 
is, in their own words, to get many different statements. Someone out 
there might find one persons description closer to their needs and use 
Isis..

Basically, I'd like to create a page on the Isis documentation site titled 
something like "in their own words" and the list of (at least all) 
committers and other users...
 

 [1] http://en.wikipedia.org/wiki/LaTeX
 [2] http://en.wikipedia.org/wiki/Embarcadero_Delphi
 [3] http://isis.apache.org/


Re: What is Apache Isis? Answer by analogy

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
On 8 September 2013 12:35, Kevin Meyer - KMZ <ke...@kmz.co.za> wrote:

> Folks: Our website is rather "dry" when it comes to describing "What
> is Isis". I want to add a section somewhere...


Please do!  Would be very happy for someone else to also start adding to
the documentation....



>
>

> I was trying to describe Isis to some scientist colleagues the other
> night with mixed success. A little later (in the shower, as is so often
> the case), I realised quite a neat analogy: LaTeX [1]
>
>
It's a good analogy, though I don't know how many devs today will have know
LaTeX.


> So what is Isis?
> Isis is a framework that lets developers write self-contained code to
> represent a (business) case. Isis examines that code, with its implied
> rules, and automatically renders a UI and handles persistence - at
> runtime. It can also expose the same business case to other services
> while preserving all the encoded business rules (via a REST
> interface), provide Authentication (login control) and Authorisation (is
> this user allowed to do that?).
>
>
Just comparing that with our current "hero" text on [3]

*Apache Isis™ software is a framework for rapidly developing domain-driven
apps in Java. Write your business logic in entities, domain services and
repositories, and the framework dynamically generates a representation of
that domain model as a webapp or a RESTful API. For prototyping or
production.
*

I'm not sure there's a lot of difference there...

Dan


>
>
> [1] http://en.wikipedia.org/wiki/LaTeX
> [2] http://en.wikipedia.org/wiki/Embarcadero_Delphi
> [3] http://isis.apache.org/