| {% extends "isis-template.html" %} |
| |
| {% block content %} |
| |
| <div class="homepage"> |
| |
| <div class="jumbotron"> |
| <div class="row"> |
| <div class="col-sm-6"> |
| <img class="logo" src="./images/isis-logo-568x286.png" alt="Apache Isis"/> |
| <h3 class="legend">Domain Driven Applications, Quickly</h3> |
| </div> |
| <div class="col-sm-6"> |
| <div class="carousel slide" data-ride="carousel" id="quote-carousel"> |
| |
| <ol class="carousel-indicators"> |
| <li data-target="#quote-carousel" data-slide-to="0" class="active"></li> |
| <li data-target="#quote-carousel" data-slide-to="1"></li> |
| <li data-target="#quote-carousel" data-slide-to="2"></li> |
| <li data-target="#quote-carousel" data-slide-to="3"></li> |
| <li data-target="#quote-carousel" data-slide-to="4"></li> |
| <li data-target="#quote-carousel" data-slide-to="5"></li> |
| <li data-target="#quote-carousel" data-slide-to="6"></li> |
| <li data-target="#quote-carousel" data-slide-to="7"></li> |
| <li data-target="#quote-carousel" data-slide-to="8"></li> |
| <li data-target="#quote-carousel" data-slide-to="9"></li> |
| </ol> |
| |
| <div class="carousel-inner"> |
| <div class="item active"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>I like the guidance Apache Isis gives me for structuring code along the lines of Domain Driven Design. My first web application in plain Java without writing a single line of DDL or HTML/*Script.</p> |
| <small>Joerg Rade</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>A fantastic framework! With Apache Isis we can prototype a deployable application in minutes rather than days.</p> |
| <small>Jeremy Branham</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>From a Sprint retrospective:</p> |
| <p>"We normally don't see anything at all for the first three months, and now you're showing me working screens after two weeks"</p> |
| <small>Project programme manager</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>Apache Isis enabled us to focus on the problem domain and data quality and - because the UI was generated for us by the framework - not get distracted by UI concerns. Identified security issues were quickly addressed by the Apache Isis committers.</p> |
| <small>Architect</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>Support from the Apache Isis community is excellent. I sense a love and dedication that is inspiring.</p> |
| <small>Johan Doornenbal</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>Isis provided us with a great starting point for our app; we simply took the todoapp archetype and used it as a template to help set up our integration tests and BDD specs. We were productive almost immediately</p> |
| <small>Vladimir Nisevic, A1 Telekom Austria</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>From a Sprint retrospective, having switched to using Isis:</p> |
| <p>"This is already looking better than anything we saw after six months of work in the first phase"</p> |
| <small>Project test manager</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>We use Isis because of its simple and fast user interface generation.</p> |
| <small>Andreas Lechner</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>Apache Isis is one of the best tools for hackathons. Given a 2 day hackathon challenge I have the perfect framework to create my prototype helping me to focus on business logic.</p> |
| <small>Sunand Padmanabhan</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| <div class="item"> |
| <blockquote> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <p>From a Sprint retrospective, the criticism of one lead developer sounded more like praise:</p> |
| <p>"The problem is that if we show this to the customer they will think that all the work is done."</p> |
| <small>provided by Ged Byrne</small> |
| </div> |
| </div> |
| </blockquote> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="row"> |
| <div class="col-sm-12 description"> |
| <p>Apache Isis™ is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or a RESTful API.</p> |
| |
| <p><a class="btn btn-primary btn-lg learn-more" href="./documentation.html" role="button">Learn more »</a></p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container"> |
| <div class="row"> |
| <div class="col-md-4"> |
| <h2>UI "for free"</h2> |
| <p>Isis dynamically builds a generic UI directly from the underlying domain objects. |
| This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development. |
| The UI can also be extended for specific use cases, and can be themed using <a href="http://getbootstrap.com">Bootstrap</a>.</p> |
| <p><a class="btn btn-default" href="./intro/elevator-pitch/isis-in-pictures.html" role="button">View details »</a></p> |
| </div> |
| <div class="col-md-4"> |
| <h2>Domain-Driven</h2> |
| <p>The core of an Isis application are the domain objects, either persisted entities or view models. |
| Business rules can be associated directly with domain objects, or can be factored out into separate |
| services. Isis performs dependency injection everywhere to ensure that the application remains decoupled.</p> |
| <p><a class="btn btn-default" href="./documentation.html" role="button">View details »</a></p> |
| </div> |
| <div class="col-md-4"> |
| <h2>Add-ons <small>(non ASF)</small></h2> |
| <p>Isis has a large number of github-hosted add-on modules for security, auditing, command profiling, mail merge and other cross-cutting concerns. It also has a number of UI extensions |
| for maps, calendars and so on. All are open source and designed for out-of-the-box use or to fork as you require.</p> |
| <p><a class="btn btn-default" href="http://www.isisaddons.org" role="button">View details »</a></p> |
| </div> |
| </div> |
| |
| <br/> |
| |
| <div class="row"> |
| <div class="col-md-12"> |
| <h4>A typical application built with Apache Isis. Like all Isis apps, the UI is dynamically built from the domain model.</h4> |
| |
| <img class="estatio" src="./intro/powered-by/images/estatio-1.png" style="width: 98%"/> |
| |
| <div class="center"> |
| <p>You can learn more about this particular application <a href="./intro/powered-by/powered-by.html">here</a>. |
| The app is also open source, so you can check out its source code on <a href="http://github.com/estatio/estatio">github</a>.</p> |
| </div> |
| </div> |
| </div> |
| |
| <br/> |
| |
| <div class="row"> |
| <div class="col-md-12"> |
| <h4>Start developing your own Isis application using our <a href="intro/getting-started/simpleapp-archetype.html">simpleapp archetype</a>:</h4> |
| </div> |
| </div> |
| <div class="row"> |
| <div class="col-md-8"> |
| <pre> |
| mvn archetype:generate \ |
| -D archetypeGroupId=org.apache.isis.archetype \ |
| -D archetypeArtifactId=simpleapp-archetype \ |
| -D archetypeVersion=1.8.0 \ |
| -D groupId=com.mycompany \ |
| -D artifactId=myapp \ |
| -D version=1.0-SNAPSHOT \ |
| -B</pre> |
| </div> |
| </div> |
| |
| <br/> |
| |
| <div class="row"> |
| <div class="col-md-12"> |
| <h4>... and this short tutorial should give you an idea as to how Apache Isis dynamically builds the UI:</h4> |
| </div> |
| <div class="col-md-12"> |
| |
| <div id="this-carousel-id" class="carousel slide"> |
| |
| <ol class="carousel-indicators"> |
| <li data-target="#this-carousel-id" data-slide-to="0" class="active"></li> |
| <li data-target="#this-carousel-id" data-slide-to="1"></li> |
| <li data-target="#this-carousel-id" data-slide-to="2"></li> |
| <li data-target="#this-carousel-id" data-slide-to="3"></li> |
| <li data-target="#this-carousel-id" data-slide-to="4"></li> |
| <li data-target="#this-carousel-id" data-slide-to="5"></li> |
| <li data-target="#this-carousel-id" data-slide-to="6"></li> |
| <li data-target="#this-carousel-id" data-slide-to="7"></li> |
| <li data-target="#this-carousel-id" data-slide-to="8"></li> |
| </ol> |
| |
| <div class="carousel-inner"> |
| <div class="item active"> |
| <a href="#"> |
| <img src="images/index-screenshots/010-sign-in.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/020-object-layout.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/030-declarative-business-rules.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/040-imperative-business-rules.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/050-action-with-args.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/060-action-with-args-autocomplete.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/070-jdo.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/080-rest-api.png"></img> |
| </a> |
| </div> |
| <div class="item"> |
| <a href="#"> |
| <img src="images/index-screenshots/090-integtesting.png"></img> |
| </a> |
| </div> |
| </div> |
| |
| <a class="carousel-control left" href="#this-carousel-id" data-slide="prev"><span class="icon-prev"></span></a> |
| <a class="carousel-control right" href="#this-carousel-id" data-slide="next"><span class="icon-next"></span></a> |
| </div>< |
| </div> |
| </div> |
| </div> |
| |
| </div> |
| |
| |
| <script> |
| $(document).ready(function(){ |
| |
| $('.carousel').carousel({ |
| pauseOnHover: true, |
| interval: 6000 |
| }); |
| |
| $('#quote-carousel').carousel({ |
| pauseOnHover: true, |
| interval: 6000 |
| }); |
| }); |
| </script> |
| |
| |
| {% endblock %} |