Tôi nghĩ điều đó thực sự phụ thuộc vào loại trang web bạn muốn tạo.
GWT có lẽ phù hợp nhất cho cái gọi là SOUI (Giao diện người dùng định hướng dịch vụ) và SOFEA (Kiến trúc kết thúc hướng dịch vụ).
Trong các ứng dụng web GWT, bạn có một trang lưu trữ HTML được cung cấp bởi chương trình phụ trợ của bạn và tất cả luồng công việc UI và flow synchronisation được thực hiện ở phía máy khách bởi GWT. Vì vậy, trong trường hợp bạn muốn đạt được một máy tính để bàn như ứng dụng GWT có lẽ là lựa chọn tốt nhất của bạn bởi vì nó là một bộ công cụ tuyệt vời cho phép phát triển các ứng dụng phức tạp như máy tính và cung cấp tất cả các ưu điểm của phát triển JAVA (thử nghiệm, tái cấu trúc, vv).
Đối với trang web "truyền thống" Các trang web 2.0T GWT có thể không phải là lựa chọn tốt nhất bởi vì nó có đường cong học tập lớn hơn các khung công tác JS (jQuery, dojo, v.v ...).
Hơn nữa, các trang web này có nhiều trang và Javascript được sử dụng cho các cải tiến giao diện người dùng chứ không phải để hoàn toàn đồng bộ hóa luồng nhưng chỉ làm cho trang tương tác hơn. Đối với các trang web này, bạn thường có một chương trình phụ trợ tốt (Grails, Spring MVC) để quản lý đồng bộ hóa luồng và khung công tác JS chỉ chịu trách nhiệm làm cho giao diện người dùng tương tác hơn và cho một số thay đổi giao diện người dùng.
Ví dụ về loại trang web này là lưu lượng truy cập stackoverflow. Nếu bạn nhấp vào một liên kết, nó sẽ tải một trang HTML mới. Nếu bạn nhấp vào liên kết hộp thư đến của bạn, nó sẽ sử dụng jQuery để mở cửa sổ bật lên và truy xuất thông báo của bạn và hiển thị chúng.
Google Closure có thể gần gũi hơn với jQuery so với GWT. Tôi nghĩ điểm bán hàng lớn nhất của Google Closure là các mẫu HTML phía máy khách và phía máy chủ. Tôi không có nhiều kinh nghiệm với Google Closure nhưng nó được Google sử dụng rất nhiều cho các ứng dụng web của họ.
Bởi vì tôi đã làm việc chủ yếu với GWT đây là danh sách các lợi thế và dis-lợi thế tôi có thể nghĩ về GWT:
Ưu:
- toolkit mạnh mẽ
- công cụ phát triển (kiểm tra, tái cấu trúc, nhật thực, gỡ lỗi trực tiếp)
- Khả năng tương thích của trình duyệt chéo ngoài hộp (với một số cảnh báo)
- Tính khả dụng của thư viện của bên thứ ba (DTO serialization, MVP frameworks, vv)
- Chỉ mã được sử dụng được tải xuống máy khách (với khung công tác JS bạn tải toàn bộ khuôn khổ ngay cả khi bạn chỉ sử dụng một chức năng cụ thể)
- GWT -RPC và RequestFactory để giao tiếp với một chương trình phụ trợ JAVA (không cần serialize hoặc de-serialize chính mình).
Nhược:
- Bigger đường cong học tập
- Có thể không được phù hợp với cải tiến giao diện người dùng nhỏ
- Compilation có thể mất một thời gian nếu cơ sở mã là lớn và khác nhau của trình duyệt và các ngôn ngữ phải được hỗ trợ
- Javascript được tạo có thể trở nên lớn trong các ứng dụng phức tạp (giải pháp: tách mã)
Là một lưu ý phụ: với mỗi phiên bản GWT mới, các nhược điểm trở nên ít vấn đề hơn vì mỗi phiên bản GWT mới được cải thiện trong thời gian biên dịch và kích thước mã. GWT 2.5 được cho là có một số cải tiến thực sự tốt trong lĩnh vực này.
Để tóm tắt: nếu bạn muốn phát triển một máy tính để bàn như ứng dụng web tương tác, tôi nghĩ GWT có lẽ là lựa chọn tốt nhất của bạn.
Tuy nhiên, nếu bạn muốn phát triển trang web jQuery/Google đóng cửa "web 2.0ish" truyền thống có thể là giải pháp tốt hơn.
Nguồn
2011-12-10 16:56:00
hoàn hảo..rất giải thích.thanks – Peeyush
"với các khuôn khổ JS bạn tải xuống toàn bộ khung công tác ..." Lưu ý: đây không phải là trường hợp với Đóng. Nó "biên dịch" Javascript để làm xáo trộn nó, nén nó và chỉ bao gồm những gì bạn đang sử dụng. –
+1 cho liên kết đến thông tin GWT 2.5. :) – Justin