2012-01-05 33 views
11

Trong hầu hết các ứng dụng web trên máy tính để bàn mà tôi từng làm việc, bạn cần một khung công tác web phía máy chủ. Khung công tác web phía máy chủ (Struts, Spring MVC, vv) có một số loại bộ điều khiển để xử lý các yêu cầu và sau đó là một công cụ tạo khuôn mẫu (Velocity, JSP, vv) để tạo ra nội dung động.Kiến trúc phía máy chủ cho các ứng dụng web di động

Bây giờ tôi bắt đầu làm việc trên các ứng dụng web di động và tất cả các cuộc thảo luận mà tôi thấy xoay quanh việc chọn một khung giao diện người dùng (jQuery Mobile, jQTouch, Sencha Touch, v.v ..) nhưng tôi không thấy bất kỳ thảo luận nào về những gì đang xảy ra phía máy chủ thực sự xử lý các yêu cầu HTTP hoặc để tạo HTML, CSS và JavaScript. Điều này có nghĩa là hầu hết các ứng dụng web di động không sử dụng khung công tác web phía máy chủ ... có nghĩa là máy chủ phục vụ nội dung tĩnh, phần lớn hành vi tương tác được mã hóa bằng JavaScript và mã phía máy chủ duy nhất là Dịch vụ REST mà trình khách JavaScript tải?

Nếu tôi muốn sử dụng khung công tác web phía máy chủ thì đó có phải là ý tưởng tồi không? Tôi sẽ gặp phải vấn đề gì? Có ai có một đề nghị về khuôn khổ web mà sẽ là một nền tảng sản xuất và không "nhận được trong cách" của khuôn khổ giao diện người dùng di động như jQuery điện thoại di động?

LƯU Ý: Các nhà phát triển tôi làm việc chủ yếu đến từ nền Java của doanh nghiệp, tuy nhiên, tôi sẽ không giới hạn nó chỉ với các trang web dựa trên Java framoworks. Có các khung công tác khác ngoài đó có nguồn gốc trong Java có thể được xem xét (Grails, Lift, vv).

Trả lời

13

Câu hỏi hay và chắc chắn tôi sẽ trả lời theo cách này. Xu hướng hiện tại là xây dựng rất nhiều tương tác vào giao diện người dùng. Cái này có một vài nguyên nhân. Một số làm điều đó bởi vì đó là điều mới để làm, những người khác làm điều đó bởi vì họ đang cố gắng để nhân rộng kinh nghiệm máy tính để bàn. Cuối cùng, chỉ có một mục tiêu cho bất kỳ dự án web cụ thể nào và đó là tạo ra trải nghiệm người dùng tốt nhất và bền vững nhất.

Điều đó đang được nói, sẽ có các công nghệ phía máy chủ để tránh và đó sẽ là bất kỳ công cụ nào tạo ra giao diện người dùng cho bạn nhưng không sử dụng jQuery. Hơn 45% của tất cả các trang web ngày nay sử dụng jQuery và nếu bạn chọn một cái gì đó khác, bạn sẽ ngay lập tức ở tỷ lệ cược với các khuôn khổ di động hiện hành. (GWT, IceFaces, tôi đang nhìn bạn).

Có lẽ cách an toàn nhất và linh hoạt nhất để đi hoặc là sử dụng triển khai dựa trên Spring hoặc Prime Faces. Spring Mobile đáng xem. Prime Faces thực sự triển khai jQuery Mobile và có thể sử dụng Theme Roller.

Nói chung, nó thực sự không quan trọng khung phụ trợ (nếu có) mà bạn sử dụng miễn là bạn đang đẩy đánh dấu tốt. Trình duyệt không quan tâm và điều duy nhất mà người dùng quan tâm là trải nghiệm tốt. Vì vậy, chọn bất cứ điều gì sẽ làm cho devs của bạn hạnh phúc cho các phụ trợ miễn là nó không nhận được trong cách.

Đối với khung kết thúc trước, có, mức độ phổ biến của chúng ngày càng tăng vì chúng có xu hướng tiêu chuẩn hóa một số phương pháp hay nhất trong thiết bị di động. Có rất nhiều so sánh của jQuery Mobile vs Sencha vs jQTouch. Tôi sẽ để các bạn tìm ra cái nào tốt nhất cho dự án của bạn nhưng chắc chắn sẽ sử dụng jQuery Mobile hoặc Sencha vì cộng đồng hỗ trợ xung quanh chúng rất lớn và bạn ít có khả năng trông giống như nhiều trang web di động tồi tàn cố gắng làm điều đó từ đầu khi họ không có kinh nghiệm để kéo nó đi. Thật là buồn. Đề xuất cá nhân của tôi là jQuery Mobile bởi vì nó bao gồm một loạt các thiết bị và (miễn là bạn gắn bó với mô hình trang theo từng trang) sẽ làm suy giảm một cách duyên dáng ngay cả khi điện thoại tính năng yếu đuối và vẫn hoạt động nhưng trông tuyệt vời trên điện thoại thông minh.

Đối với câu hỏi của bạn chỉ bằng cách sử dụng thiết kế RESTful với JavaScript tải mọi thứ và quản lý trạng thái. Có rất nhiều người đang làm điều đó và nó chắc chắn là một kinh nghiệm linh hoạt nhưng bạn sẽ ngay lập tức hạn chế ai có thể sử dụng nó cho những người có trình duyệt di động hỗ trợ JavaScript tốt. Bạn sẽ chỉ xem xét hỗ trợ iOS, Android 2.2+, BlackBerry 6+ và Windows Phone 7+. Tất cả những người khác có thể sẽ gặp khó khăn đáng kể khi xem trang web của bạn. Cẩn thận xem xét đối tượng của bạn trước khi chuyển sang triển khai như vậy. Nếu trang web của bạn không hoạt động nếu không có JavaScript và khách hàng chính của bạn đang ở trong thế giới công ty ... điều gì xảy ra khi hội nghị Black Hat mới nhất phơi bày điểm yếu trong điện thoại của công ty và giảm thiểu rủi ro bảo thủ (hoang tưởng), họ đẩy chính sách bảo mật điện thoại của mọi người tắt JavaScript. Loại điều này xảy ra mọi lúc. Vì vậy, hãy xem xét đối tượng của bạn.

0

Hãy xem ItsNat, ItsNat mời bạn suy nghĩ trong JavaScript của khách hàng nhưng mã hóa bằng Java và được thực hiện trong máy chủ tạo mã JS giống với máy khách.

Sự khác biệt với GWT là, mã Java W3C DOM được thực thi trong máy chủ và JS được tạo tự động, trong khi đó GWT được thực thi trong máy khách, dữ liệu máy chủ phải được chuyển đến máy khách.

Các vấn đề liên quan