Wicket và Play là hai loại khung công tác rất khác nhau.
Phát là khung MVC mà bạn có thể sẽ cảm thấy quen thuộc khi đến từ Django. Giống như Django, nó cung cấp nhiều hơn chỉ là các bit web và cung cấp một khung công tác dựa trên JPA dựa trên ORM, các công cụ giàn giáo và có thể nhiều hơn nữa (tôi không có kinh nghiệm thực tế với nó). Họ có một hướng dẫn tuyệt vời trên trang web của họ, và bạn có thể sẽ thấy những điểm tương đồng của Django ở đó.
Wicket là một khung định hướng thành phần (như JSF và Tapestry) và tập trung nhiều vào thiết kế hướng đối tượng. Nó cũng là MVC, mỗi trang, nhưng các trang thường được xây dựng bằng cách soạn các thành phần khép kín và có thể tái sử dụng (View and Controller, pluggable Models). Các thành phần này có thể được mở rộng bằng cách thừa kế và thành phần tiêu chuẩn và đánh dấu rất tách biệt với mã và dễ dàng sửa đổi.
Wicket có thể quản lý cuộc gọi lại sự kiện và tự động nêu, để bạn không có để suy nghĩ về url, bất kể trang của bạn phức tạp đến mức nào. Một ví dụ nhanh chóng cho một nút bấm mà đi một đi khi được nhấp vào (rất hữu ích):
// In a page constructor
add(new Link("link") {
public void onClick() {
setVisible(false);
}
});
Tôi muốn nhấn mạnh rằng bạn không cần phải sử dụng trạng thái server-side, và rằng nó hoàn toàn có thể sử dụng Wicket là một khung MVC "bình thường" nếu bạn muốn (và có, thật dễ dàng để có được các url khá).
Dự án Wicket chỉ tập trung vào khung web cốt lõi và không có thêm "niceties" như hỗ trợ ORM đặc biệt hoặc giàn giáo.Cá nhân tôi đồng ý với triết lý của dự án Wicket ở đây, nhưng đối với các nhà phát triển mới tham gia vào khuôn khổ, việc thực hiện các công cụ "đơn giản" như bảng có thể sắp xếp và có thể sắp xếp có thể hơi khó khăn vì các thành phần được xây dựng trước hơi khan hiếm. Đường cong học tập và năng suất cho Wicket có thể hơi dốc, nhưng ngược lại là khi bạn đã tạo thành phần (và "hành vi" - câu chuyện dài hơn) phù hợp với nhu cầu của bạn, chúng cực kỳ có thể tái sử dụng được.
Mặc dù cá nhân tôi yêu Wicket, tôi có linh cảm mà bạn có thể sẽ thích hợp nhất với Play. Câu hỏi của bạn chỉ ra rằng bạn muốn có một "Django" với quyền truy cập vào các thư viện Java, và trong trường hợp đó tôi nghĩ Play (hoặc một số Java MVC khác) là sự lựa chọn an toàn. Mặt khác, có thể bạn đã sử dụng Django vì bạn không biết Wicket mạnh mẽ đến mức nào. ;) Nếu bạn cung cấp thêm một số thông tin về dự án của mình, chúng tôi sẽ có thể cung cấp phản hồi có chất lượng hơn.
Là một nút phụ: Vì Play không phải là rất chính thống (ít nhất là bây giờ), tôi cũng xem xét Grails có sự ủng hộ thương mại mạnh mẽ và thậm chí nhiều mô-đun out-of-the-box.
Yêu cầu của bạn là gì? – Mot