ZK (ZKOSS) Framework adalah salah satu framework populer Java Web berbasis Server Side/Server Centric, dengan dukungan fitur dan komponennya yang sangat lengkap. Saya pribadi telah mengunakan ZK Framework sejak versi 3 (sekitar tahun 2009), dan digunakan pada hampir setiap project Java Web saya. Saat ini versi yang saya gunakan sudah versi 7 (7.0.8).
Pada kesempatan ini saya men-sharingkan contoh program ZK dengan style Model View ViewModel (MVVM), sebagai informasi selain style MVVM, ZK juga mendukung style sebelumnya yaitu Model View Controller (MVC). Contoh ini telah lengkap dengan fitur transaksi data Create Read Update Delete, dengan model transaksi OneToMany (Head Detail) sebagai contohnya. Silakan cek dan clone GitHub saya berikut ini.
Informasi mengenai Change Logs/Perubahan, cara instalasi, serta teknologi yang digunakan dan versinya dapat dibaca di README project-nya.
Project ini merupakan prototype & Proof of Concept (POC) dari beberapa hal yang ingin dicoba, sbb:
Mengunakan Spring Framework di Business Layer, serta Hibernate di Persistent Layer.
Mengunakan MAVEN sebagai Dependency Manager & Build System.
Mengunakan konfigurasi Spring Framework via Java, ketimbang cara konvensional via file XML. Saya ingin mencoba menkonversi parameter-parameter & config yang selama ini saya pakai di XML dianalogikan ke Java Config.
Mengunakan Hibernate Validator di Entity Class sebagai standard Bean Validator (JSR-303), konfigurasi Hibernate Validator ini nantinya akan diteruskan (diintegrasi) sebagai Form field validator ZK (UI Layer).
Mengunakan Bidirectional Association Mapping pada Entity Class One To May, nantinya akan diteruskan ke ZK sebagai Collection View Model Binding. Hal memberikan akan mempermudah code di UI Layer nantinya.
Mengunakan Spring Data JPA sebagai Data Access Object (DAO). Spring Data JPA adalah teknologi yang cukup unik, karena mengunakan Naming Convension pada Method sebagai Logic Query yang akan dihasilkan. Jadi untuk kasus umum, kita tidak perlu lagi menuliskan method DAO yang sering digunakan.
Mengunakan hanya style MVVM pada ZK (UI Layer). Sebagai informasi kita juga bisa kombinasi mengunakan MVVM bersamaan dengan MVC.
Transaksi Create Read Update Delete (CRUD) di Form ZK dilengkapi dengan Form Logic dan Field Validator.
Mengunakan komponen Grid ZK untuk Direct Inline Editing. Inline Editing merupakan salah satu pendekatan perancangan UI yang lebih memudahkan dalam penginputan data. Biasanya pendekatan ini lebih banyak digunakan pada Desktop base.
Testing Performance dari komponen Grid ZK untuk menampilkan > 20 kolom dan > 100 baris data untuk Inline Editing.
Mengunakan ZK ListModelList untuk meningkatkan performance Add, Update, Delete pada komponen Grid ZK.