<commit_before>= Apache Isis in Pictures

:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

// TODO: v2: NICE-TO-HAVE: these screenshots should be updated, but first need to port the todoapp over first (which also means the various modules from incode-platform)

On this page we want to show you what an Apache Isis application looks like, running on the xref:vw:ROOT:about.adoc[Wicket viewer].
The screenshots below are taken from a "Todo" application.

NOTE: these screenshots are based on an app running against v1.13  and v1.10 of the framework.
There have been a number of UI improvements since these releases.

== Basics

Let's start with the basics...

=== Sign-in

Apache Isis integrates with http://shiro.apache.org[Apache Shiro].
The core framework supports file-based realms, while the xref:security:ROOT:about.adoc[SecMan extension] provides a well-features subdomain of users, roles and permissions against features derived from the Apache Isis metamodel.



image::what-is-apache-isis/isis-in-pictures/010-login.png[width="800px"]

=== Install Fixtures

Apache Isis has lots of features to help you prototype and then fully test your application.
One such are fixture scripts, which allow pre-canned data to be installed in the running application.
This is great to act as the starting point for identifying new stories; later on when the feature is being implemented, the same fixture script can be re-used within that feature's integration tests.
(More on tests later).


image::what-is-apache-isis/isis-in-pictures/020-install-fixtures.png[width="800px"]

=== Dashboard and View Models

Most of the time the end-user interacts with representations of persistent domain entities, but Apache Isis also supports view models which can aggregate data from multiple sources.
The todoapp example uses a "dashboard" view model to list todo items not yet done vs those completed.

image::what-is-apache-isis/isis-in-pictures/030-dashboard-view-model.png[width="800px"]

In general we recommend to initially focus only on domain entities; this will help drive out a good domain model.
Later on view models can be introduced in support of specific use cases.
<commit_msg>ISIS-2444: updates notes on security<commit_after>= Apache Isis in Pictures

:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

// TODO: v2: NICE-TO-HAVE: these screenshots should be updated, but first need to port the todoapp over first (which also means the various modules from incode-platform)

On this page we want to show you what an Apache Isis application looks like, running on the xref:vw:ROOT:about.adoc[Wicket viewer].
The screenshots below are taken from a "Todo" application.

NOTE: these screenshots are based on an app running against v1.13  and v1.10 of the framework.
There have been a number of UI improvements since these releases.

== Basics

Let's start with the basics...

=== Sign-in

Apache Isis integrates with a variety of authentication mechanisms, including link:http://shiro.apache.org[Apache Shiro], link:https://spring.io/projects/spring-security[Spring Security] and link:https://www.keycloak.org/[Keycloak].

The xref:security:ROOT:about.adoc[SecMan extension] provides a well-features subdomain of users, roles and permissions against features derived from the Apache Isis metamodel.



image::what-is-apache-isis/isis-in-pictures/010-login.png[width="800px"]

=== Install Fixtures

Apache Isis has lots of features to help you prototype and then fully test your application.
One such are fixture scripts, which allow pre-canned data to be installed in the running application.
This is great to act as the starting point for identifying new stories; later on when the feature is being implemented, the same fixture script can be re-used within that feature's integration tests.
(More on tests later).


image::what-is-apache-isis/isis-in-pictures/020-install-fixtures.png[width="800px"]

=== Dashboard and View Models

Most of the time the end-user interacts with representations of persistent domain entities, but Apache Isis also supports view models which can aggregate data from multiple sources.
The todoapp example uses a "dashboard" view model to list todo items not yet done vs those completed.

image::what-is-apache-isis/isis-in-pictures/030-dashboard-view-model.png[width="800px"]

In general we recommend to initially focus only on domain entities; this will help drive out a good domain model.
Later on view models can be introduced in support of specific use cases.

{'fraction_non_alphanumeric': 0.06122103838998816, 'fraction_numerical': 0.010485371215964823, 'mean_word_length': 4.752918287937743, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 3, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4363072', 'n_tokens_mistral': 1534, 'n_tokens_neox': 1458, 'n_words': 797}