Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 3.65 KB

guide-client-layer.asciidoc

File metadata and controls

47 lines (33 loc) · 3.65 KB

Client Layer

There are various technical approaches to building GUI clients. The devonfw proposes rich clients that connect to the server via data-oriented services (e.g. using REST with JSON). In general, we have to distinguish among the following types of clients:

  • web clients

  • native desktop clients

  • (native) mobile clients

Our main focus is on web-clients. In our sample application my-thai-star we offer a responsive web-client based on Angular following devon4ng that integrates seamlessly with the back ends of my-thai-star available for Java using devon4j as well as .NET/C# using devon4net. For building angular clients read the separate devon4ng guide.

JavaScript for Java Developers

In order to get started with client development as a Java developer we give you some hints to get started. Also if you are an experienced JavaScript developer and want to learn Java this can be helpful. First, you need to understand that the JavaScript ecosystem is as large as the Java ecosystem and developing a modern web client requires a lot of knowledge. The following table helps you as experienced developer to get an overview of the tools, configuration-files, and other related aspects from the new world to learn. Also it helps you to map concepts between the ecosystems. Please note that we list the tools recommended by devonfw here (and we know that there are alternatives not listed here such as gradle, grunt, bower, etc.).

Table 1. Aspects in JavaScript and Java ecosystem
Topic Aspect JavaScript Java

Programming

Language

TypeScript (extends JavaScript)

Java

Runtime

VM

nodejs (or web-browser)

jvm

Build- & Dependency-Management

Tool

npm or yarn

maven

Config

package.json

pom.xml

Repository

npm repo

maven central (repo search)

Build cmd

ng build or npm run build (goals are not standardized in npm)

mvn install (see lifecycle)

Test cmd

ng test

mvn test

Testing

Test-Tool

jasmine

junit

Test-Runner

karma

junit / surefire

E2E Testing

Protractor

Selenium

Code Analysis

Code Coverage

ng test --no-watch --code-coverage

JaCoCo

Development

IDE

MS VS Code or IntelliJ

Eclipse or IntelliJ

Framework

Angular (etc.)

Spring or Quarkus