kami berada dalam tahap perencanaan untuk memigrasikan situs web besar yang dibangun di atas kerangka kerja mvc yang dikembangkan khusus ke kerangka web berbasis java yang menyediakan dukungan bawaan untuk ajax, konten media kaya, mashup, tata letak berbasis template, validasi, html maksimum / pemisahan kode java. Grails terlihat seperti pilihan yang baik, namun, kami tidak ingin menggunakan bahasa skrip. Kami ingin terus menggunakan java. Tata letak berbasis template adalah perhatian utama karena kami bermaksud untuk menggunakan aplikasi web ini dengan beberapa situs web dengan fungsi yang sama tetapi tampilan dan nuansa yang sangat berbeda.
Apakah solusi berbasis portal cocok untuk masalah ini?
Wawasan apa pun tentang menggunakan "Spring Roo" atau "Play" akan sangat membantu.
Saya memang menemukan posting serupa seperti ini , tetapi sudah lebih dari setahun. Banyak hal pasti telah berubah dalam waktu yang bersamaan!
EDIT 1: Terima kasih atas jawaban yang bagus! Situs ini berubah menjadi sumber tunggal terbaik untuk info programmer dalam parit. Namun, saya mengharapkan lebih banyak informasi tentang menggunakan duo portal-cms. Jahia mencari barang. Adakah yang serupa?
sumber
Jawaban:
Secara pribadi, saya akan tinggal jauh dari solusi Portal gemuk besar (mereka sering pembunuh produktivitas). Saya telah mendengar hal-hal baik tentang Gatein tetapi saya tidak memiliki pengalaman nyata dengannya.
Tentang Spring Roo, saya sudah membaca jawaban sebelumnya seperti Spring roo Vs (Wicket dan Spring) dan hal-hal lain melalui Internet tapi saya masih tidak yakin (mungkin saya tidak mengerti), saya tidak yakin akan jatuh tempo. , dan, yang lebih penting, saya benar-benar bertanya-tanya apa yang dilakukan SpringSource dengan Grails dan Roo (tidak, Grails vs Roo - mengapa SpringSource mendorong dua teknologi yang sangat mirip? tidak meyakinkan saya bahwa mereka berdua akan bertahan hidup).
Saya tidak bisa bicara banyak tentang Play. Saya telah melihat demo seperti semua orang tetapi saya ingin membaca umpan balik kehidupan nyata. Sampai saat itu, saya akan menunggu.
Ya dan tidak :) Tapi mari kita masuk neraka kerangka presentasi: tidak ada jawaban tunggal untuk pertanyaan Anda (seperti satu tahun yang lalu), ada selusin kerangka kerja di sana dan tidak ada pemenang yang jelas. Hanya mengutip beberapa:
Sebenarnya, saya sarankan untuk melihat presentasi Matt Raible , dia benar-benar melakukan pekerjaan yang hebat dalam membandingkan kerangka kerja web, menunjukkan kekuatan dan kelemahan mereka, mengumpulkan fakta dan angka, menunjukkan tren ... Saya sarankan:
Sungguh, lihat presentasi ini, mereka akan membantu Anda menemukan kerangka kerja yang sesuai (tidak ada jawaban yang unik tetapi Anda dapat membatasi pilihan dengan menghilangkan) dan mungkin mengubah sudut pandang Anda.
sumber
Saya telah menggunakan Spring 3 dan Jquery untuk sementara waktu tetapi mendengar tentang Play dan mencobanya. Saya sangat suka itu, Play sangat cocok antara sesuatu seperti PHP dan kerangka kerja Java yang berat seperti Spring.
Hal yang paling saya sukai dari bermain adalah:
Hal yang saya tidak suka tentang Play
sumber
Pilihan utama bagi saya adalah Wicket . Hapus pemisahan markup dan kode java. Sangat mudah untuk menulis dan menggunakan komponen. Mudah digunakan Ajax, testability. Anda dapat men-debug langsung ke halaman / komponen Anda dan tidak mendapatkan pesan kesalahan samar dari implementasi JSF Anda;)
Ada juga gawang perbandingan yang bagus <--> JSF dalam hal kinerja
sumber
Tiga pilihan teratas bagi saya adalah (menurut abjad):
Mereka:
sumber
Play sangat mirip dengan ROR, versi ROR di java
sumber
Berbeda dengan jawaban lain, saya ingin menyoroti kelemahan (IMHO) dari kerangka kerja web populer:
JSF2 - Dirilis dan sudah tua. Masih hanya beberapa berita / artikel / posting blog / pengalaman keluar. Saya skeptis. Masih menunggu rilis utama berikutnya dari Richfaces / Icefaces yang sepenuhnya mendukung jsf 2 - saat ini hanya alpha build yang dapat diunduh.
Struts 2 - Tampaknya hanya hal yang baik jika Anda masih mengandalkan struts dan ingin memperbaiki sebagian besar kode Anda. Kalau tidak, jangan.
GWT - Saya tidak suka satu halaman dan pendekatan javascript java->. Saya tidak yakin apakah satu sesi - beberapa tampilan / jendela dapat dengan mudah dicapai. Bagi saya, kerangka kerja ini harus digunakan untuk aplikasi internet kaya satu-jendela pengguna besar.
Gawang - Pendekatan yang bagus, tetapi sedikit bertele-tele dan dokumentasi yang tersedia terlalu sedikit (kecuali gawang yang bagus dalam buku aksi, tetapi ini hanya mencakup 1,3). Juga, bagi saya tidak ada proyek besar yang dibangun di atasnya. Dan saya saat ini tidak dapat melihat di mana jalan gawang bepergian atau apakah sudah didorong ke jalan buntu.
Spring MVC - Belum mencoba ini, tetapi Anda harus memasukkan banyak toples (kekacauan musim semi) di classpath Anda untuk bekerja dengan framework ini dengan benar. Dan itu bergantung pada JSP (di sebagian besar proyek), yang saya anggap sudah mati. Dan Anda hanya mendapatkan kerangka kerja MVC murni - semua hal lain (ajax dan lainnya) harus diimplementasikan / diintegrasikan.
Stripes - Kerangka kerja MVC yang dirancang kecil dan bagus, tapi terlalu sedikit dokumentasi, terlalu sedikit komit / komuter, terlalu sedikit rilis, terlalu sedikit dukungan industri, terlalu sedikit aktivitas milis.
Saya juga ingin tahu apakah saya melewatkan kerangka utama di luar sana (saya sengaja meninggalkan permadani) yang mungkin menjadi pilihan bagi Anda (dan juga bagi saya juga).
sumber
Saya telah sukses besar dengan JAX-RS . Ini adalah satu-satunya Java Web Framework yang memiliki semacam spesifikasi JSR dan beberapa implementasi selain dari servlet dan portlet spec (walaupun ini bisa menjadi hal yang buruk).
Satu hal yang buruk dan bagus tentang Java adalah Anda dapat memilih dan mencocokkan kerangka kerja (python juga memiliki fitur / masalah ini). Sangat menyenangkan karena Anda tidak harus meletakkan semua telur dalam satu keranjang.
Berikut ini adalah resep umum Java Web Application Stack:
Javascript / Flash + Permintaan / Penanganan respons + Injeksi Ketergantungan + Kegigihan
Javascript: JQuery, Prototype, Dojo
Permintaan / Tanggapan: Spring MVC, Stripes, dan JAX-RS favorit saya (Jersey, Apache CXF)
Ketergantungan Injeksi: Musim Semi, Guice
Kegigihan: JPA (Hibernate, penyimpanan Google App), Hibernate, JDO, dan lainnya.
Saya juga telah sukses besar dalam menggunakan AspectJ untuk membuat Java "kurang menyedot". Dengan menggunakan Spring's @Configurable dan ITD mixins AspectJ Anda bisa mendapatkan Rails seperti objek Domain (ini benar apa yang Roo lakukan tetapi Anda tidak perlu Roo untuk melakukan ini).
sumber
Saya telah menemukan garis - garis menjadi sangat efektif dan mengejutkan ringan .... ini bertujuan untuk menjadi lebih ringan daripada struts . Saya telah mendengar dari teman-teman yang merupakan pengembang web penuh waktu bahwa JSF tidak layak untuk diganggu, meskipun saya tidak memiliki pengalaman langsung, dan tidak dapat mendukungnya dengan contoh (!).
sumber
Lihatlah RESThub , yang mengikuti prinsip yang sama dengan Play! tetapi diimplementasikan dengan menggunakan kembali beberapa kerangka / alat kelas perusahaan seperti Maven 3 / Spring 3 / Jersey / jQuery.
RESThub sangat mengganggu dibandingkan dengan kerangka kerja lain karena ini adalah toolkit tumpukan penuh, tetapi tanpa server berbasis MVC atau kerangka kerja berbasis servlet. Sebagai gantinya, ia menggunakan GUI berbasis jQuery UI yang menggunakan layanan web JAX-RS (REST) dan sistem templating Javascript berdasarkan embeddedJs.
Server tidak memiliki kewarganegaraan, dan kami menggunakan HTML5 sessionStorage untuk menjaga sesi di sisi klien. Pendekatan ini dirancang untuk RIA dan skalabilitas.
Beberapa aplikasi demo disediakan (bahkan jika sedang dibangun).
sumber
JSF adalah framewrok yang bagus, tetapi JSF 1.2 tidak memiliki visi selama bertahun-tahun yang akan datang dari rilisnya. JSF 2.0 terlihat menjanjikan dan memiliki banyak hal baru yang ditambahkan dari JSF 1.2 seperti dukungan ajax, facelet, dukungan Annotation, dan konvensi default (kurang XML), pembuatan komponen lebih mudah dari 1.2.
Ini terintegrasi dengan baik dengan Spring juga, jika Anda peduli untuk dukungan DI.
sumber
Saya akan merekomendasikan kedua rekomendasi Spring. Saya bukan penggemar berat GWT, saya pikir Java -> Javascript crosscompiler belum ada. Saya bekerja pada aplikasi AJAX yang menggunakan pegas di server dan jQuery di klien. Meskipun secara teknis tidak ada dukungan "out-of-the-box" untuk jQuery, mengimplementasikan pegas-MVC AjaxView sudah sangat sederhana dan membutuhkan sekitar 25 baris kode.
sumber
Mungkin sedikit terlambat ke pertunjukan, tetapi saya harus menyebutkan Vaadin . Pemrograman dilakukan di Jawa secara eksklusif, dengan pendekatan berbasis komponen. Komunikasi Client-Server lebih tentang interaksi pengguna daripada transportasi data, semua logika bisnis berada di server.
sumber
Ext GWT + Spring
sumber
Saya pikir apa yang Anda cari adalah sesuatu yang dekat dengan Jahia. Ini mendukung GWT, Mashups, Konten Media dll.
http://www.jahia.org/cms/lang/en/home/Jahiapedia/Jahia_Templates http://www.jahia.net/downloads/jahia/jahia6.0.0/readme/index.html
sumber
PERANGKAT LUNAK PORTAL
Beberapa tahun yang lalu telah menggunakan perangkat lunak portal " Backbase " ini tidak terlalu matang. Tapi itu bagus dan mudah untuk dikembangkan.
sumber
Lihatlah ItsNat
ItsNat pada dasarnya adalah browser Java W3C di server, luar biasa sederhana (DHTML di server), mempromosikan aplikasi Antarmuka Halaman Tunggal intensif AJAX
sumber
Sesuatu yang layak lebih dari sekedar peluru adalah kerangka kerja RIA berbasis pemain. Ex. Adobe Flex + Java (Tentu saja ini agak bergantung pada apakah "situs" Anda benar-benar "situs" atau lebih seperti "aplikasi", Anda tidak akan membuat situs blog di Flex.)
Dalam AJAX-as-a-buzzword sense, Flex biasanya menggunakan AMF (protokol biner yang lebih efisien daripada protokol yang digunakan oleh aplikasi AJAX), meskipun Anda juga dapat melakukan hal-hal AJAX ketat dengan Flex juga. Jadi Flex mendukung AJAX, tetapi juga mendukung "lebih baik daripada AJAX".
Karena Flex berjalan pada platform 'mesin virtual' Flash, saya pikir sedikit yang perlu ditambahkan.
Tidak yakin apa maksudnya ini, tetapi kedengarannya seperti Flex mxml.
Didukung tentu saja, meskipun Anda dapat memutuskan untuk melakukan beberapa hal khusus jika Anda ingin mendapatkan kemewahan. (Bukan berarti Anda harus.) Yang menyenangkan adalah Anda bisa mendapatkan secanggih yang Anda inginkan - atau tidak.
Anda tidak dapat dipisahkan dengan menggunakan pendekatan pengembangan 'mesin virtual' seperti Flex / Silverlight / JavaFX. Ini tidak hanya memungkinkan Anda untuk menjaga kode presentasi Anda terpisah dari logika sisi-server dan lapisan akses data Anda - itu memastikan bahwa mereka terpisah. 'Virtualisasi' lingkungan pengembangan Anda memberi Anda kompatibilitas lintas-peramban, platform target yang konsisten, tidak ada kekhawatiran tentang peramban baru atau peramban baru yang merusak aplikasi Anda, kemampuan debugging terbaik seperti java, dan produk akhir yang lebih profesional / mengesankan. .
sumber