Sekilas Play!
Play ! framework merupakan salah satu framework open source yang ditulis dalam bahasa pemrograman Scala dan Java , yang memiliki pola arsitektur model-view-controller (MVC) untuk mengoptimalkan produktivitas/kinerja pengembang(developer) dengan menggunakan konvensi di atas konfigurasi (coding by convention) , reload kode dan tampilan kesalahan dalam browser. Atau dengan kata lain, memanfaatkan browser (back, reload and as console ) hingga terlihat penekanan kinerjanya pada HTTP.
Play! diciptakan oleh Bapak Guillaume Bort, saat dia bekerja di Zenexity tahun 2007. Yang pre-release versi projectnya disediakan untuk didownload di situs Zenexity.
Play! terinspirasi oleh RoR (Ruby on Rails) dan Django serta beberapa framework sekelas nya seperti Spring. Kemudian di rilislah versi 1.0 penuh pada bulan Oktober 2009. Versi 1.1 dirilis pada November 2010 setelah pindah dari Launchpad ke GitHub dan juga migrasi dari Apache MINA ke JBoss Netty, dengan dukungan Scala, GlassFish kontainer, asynchronous web service library, OAuth, HTTPS dan fitur lainnya. Kemudian versi 1.2 dirilis pada April 2011( yang masih tergantung Apache Ivy) untuk mendukung WebSocket dan model database H2 dan fitur lainnya. Dan bulan Maret kemarin , di rilislah versi 2.0 yang dikaitkan dengan Typesafe Stack 2.0.
Secara garis besar, metode yang di pakai Play! hampir sama dengan metode yang diterapkan oleh Spring Roo, yang menganut DDD (Domain Driven Design) dimana Model / Entity tidak hanya dumb class sebagai representasi dari table database, tetapi juga mempunyai kapabilitas untuk melakukan operasi terhadap dirinya sendiri. Misalnya ada Entity Orang, maka akan ada method Orang.save(), Orang.delete(), Orang.update() dan seterusnya. Dengan DDD, DAO pattern secara otomatis menjadi tidak berguna, karena operasi terhadap Entity dilakukan di dalam Entity itu sendiri, tidak di dalam DAO.
Nanti akan saya jelaskan lagi lebih detail , kalo ingat
Why to using Play! ? some of them are;
Fix the bug and hit Reload
Simple stateless MVC architecture
HTTP-to-code mapping
Efficient template engine
Combination with JPA
Test driven development
Full-stack application framework
RESTfull
Etc