Tutorial
In this tutorial you will learn how to build a full-featured, professional desktop application using the Tentackle framework. For a realistic impression of Tentackle's power and how it can boost your productivity, the tutorial describes the development process of an invoicing application, that covers the typical requirements of real-life projects, such as:- database persistence
- performance issues, transactions, locking and caching
- security and authentication
- multi-tier architecture
- professional Swing-based GUI
- printing and reporting
- scalability, replication and distribution
- multitenancy
- and many more...
The Requirements
In order to keep the tutorial as compact as possible, we will not go into too much detail regarding the design phase, i.e. use cases, class diagrams and so on. The model is not too complicated and we assume that you basically know what comprises a simple invoicing application.Nevertheless, we have to describe at least in a few words what the application should do:
- The user logs into the application.
- The user creates a new invoice with an invoice date and a unique number.
- The user either selects an already predefined customer or creates a new one. The customer determines the invoice's address.
- The user enters the invoice details in a table. Each detail line contains the product, description of the product, amount and price.
- When the invoice is complete, the user saves the invoice.
- The user prints the invoice. The first printing timestamp is stored in the invoice.
- At any time, the user can browse through the invoices, products and customers and can inspect and modify them.
- Preferences, like the tax rate, can be changed by the user as well.
The Data Model
To implement the requirements, we need at least the following entities and attributes:- invoice (transaction data): invoice number, invoice date, customer ID, address, tax and totals, printing date.
- invoice line (transaction data): invoice ID, line index, product ID, description, amount, price.
- customer (master data): customer number, name and address.
- product (master data): code, description, price.
- preferences (system data): key/value pairs in a hierarchical structure.
