2009-03-15 21 views
12

Nhiều ứng dụng (đặc biệt là các ứng dụng mạng chẳng hạn như chia sẻ tệp, chương trình truy vấn sql, một số trò chơi nhiều người chơi) như chúng ta biết ngày nay có thể dễ dàng được cung cấp bằng cách sử dụng giao diện web.Khi nào nên chọn giữa giao diện web và GUI gốc?

Câu hỏi của tôi là khi nào tôi nên làm cho ứng dụng có thể truy cập bằng trình duyệt?

Khi nó sẽ là khôn ngoan để sử dụng một ứng dụng máy tính để bàn được xây dựng sử dụng các giao diện như Qt, Visual Basic, vv

Trả lời

2

Không có câu trả lời chung cho câu hỏi đó. Điều đó tùy thuộc vào một số yếu tố:

  • nhóm mục tiêu của bạn - Có được trải rộng hoặc gộp chung không?
  • Tính di động - Người dùng của bạn hoạt động trên nền tảng nào?
  • Hiệu suất - Phần lớn là cần thiết? Nếu có, ứng dụng dành cho máy tính để bàn sẽ tốt hơn. Tôi không thể tưởng tượng một phần mềm chỉnh sửa video đang chạy trong trình duyệt. Có lẽ trong 10 năm :)
  • và nhiều hơn nữa mà phải tìm ra cách cá nhân

Nhưng xu hướng này rõ ràng đang đi vào các ứng dụng dựa trên web. Bạn có thể tiếp cận khá nhiều người với họ.

1

Tôi ngày càng có ý kiến ​​rằng chúng ta nên sử dụng dựa trên web, javascript (hoặc flex) giao diện làm mặc định. Nó có nghĩa là rất ít mã trong hình ảnh ứng dụng, cộng với nó cho phép một cơ sở mã thực hiện điều gì đó tốt, trong một số có thể, er, làm điều đó tốt hơn.

Nếu bạn xây dựng giao diện web để bắt đầu, bạn sẽ không bao giờ thấy mình cần một dự án riêng để xây dựng giao diện web.

Với các trình duyệt hiện đại, javascript và ajax và thư viện javascript, bạn có thể xây dựng một giao diện cực kỳ phong phú có thể dễ dàng thay đổi.

+0

nhiều GUI cung cấp cho bạn cách nhúng html/javascript bằng cách sử dụng webkit hãy xem trên Qt và Gtk (webkitGtk). Tôi đã thử html/javascript và Gtk. Với Galde (nhà thiết kế Gtk) mất nhiều thời gian hơn để có được những gì bạn muốn và bạn biết chính xác hành vi của một widget là gì nhưng cố gắng đặt một "div" bên trong "div" khác bên trong một "span" vv bạn có thể dự đoán hành vi này. Với Gui với POO, bạn có thể tạo ra loại sự kiện riêng của mình, bạn có thể tạo kiểu cho widget bằng cách sử dụng CSS (có Qt và Gtk cung cấp CSS để tạo kiểu cho các widget của họ). Giao diện người dùng web không phải là hiệu quả về thời gian thực thi và bộ nhớ –

3

Một số điểm cho một giao diện web:

  • Khi chương trình cần phải được quản lý từ một máy tính khác trên một mạng
  • Khi có nhiều phát triển nhanh chóng tốc độ là cần thiết (Nói chung nhanh hơn để viết html/javascript so với Qt/Gtk, v.v.)
  • Để giữ cho chương trình là chéo nền tảng tương thích nhất có thể
+2

không đồng ý với thực tế là viết nhanh hơn/qt/qt/html. Với Qt/Gtk bạn biết chính xác hành vi của từng thành phần và sử dụng thiết kế Gui, bạn có thể tăng tốc độ mã hóa giao diện người dùng. Nhưng với html và javascript, hành vi của các phần tử html không thể dự đoán được, bạn phải thử và thử lại để có được những gì bạn muốn, mất quá nhiều thời gian để thực hiện giao diện người dùng bằng cách sử dụng html và javascript. Không có mã nào được viết bằng html không chạy theo cách tương tự trên tất cả trình duyệt web không đúng. Có nhiều thẻ không cho kết quả tương tự trên mỗi trình duyệt trên cùng một hệ điều hành và trên hệ điều hành khác nhau quá –

0

Nếu giao diện người dùng của ứng dụng của bạn có thể được triển khai dưới dạng một ứng dụng/dịch vụ web được xử lý tốt, bạn nên xem xét nó như một tùy chọn.

Lợi ích lớn nhất của giao diện người dùng có thể chạy trong trình duyệt là độc lập với hệ điều hành khách. Hầu hết người dùng máy tính ngày nay có nhiều hơn một máy tính thường được kết nối trong mạng. Sự phân bố của các hệ điều hành khác nhau đang ngày càng lớn hơn (các lựa chọn thay thế cho các cửa sổ đang chiếm thị phần lớn hơn). Vì vậy, bạn nhận được tính di động tối đa của giao diện người dùng. Ứng dụng của bạn có thể được khởi động một lần trên một máy tính và truy cập từ bất kỳ đâu.

+0

GUI có thể thực hiện các dịch vụ web. POST + JSON là chìa khóa. Ví dụ: SỬ DỤNG Python + Gobject + Gtk + yêu cầu (web python lib) bạn có thể trao đổi với máy chủ web –

1

Tôi nghĩ đây là câu hỏi sai.Những gì bạn cần làm là phân tích sự khác biệt giữa các nền tảng và cách chúng tác động đến tổ chức của bạn. Để cung cấp cho bạn một ví dụ thế giới thực.

Tôi đã làm việc cho một công ty nhỏ chỉ xây dựng ứng dụng dựa trên web. Một trong những ứng dụng không thành công, một phần vì chúng tôi có rất nhiều người dùng quay số và cần hỗ trợ ngoại tuyến.

Công ty đã phát triển và phát triển ứng dụng khách .net và họ đã có một sự thức tỉnh thô lỗ. Công ty không được chuẩn bị cho sự phức tạp của việc triển khai cho bất kỳ số lượng cấu hình máy khách nào. Ví dụ, chúng tôi đã nhận được một chút từ Novell Networks. Chúng không được chuẩn bị để tăng chi phí hỗ trợ một ứng dụng khách. (Và có sự phát triển đã cảnh báo và cố gắng cảnh báo họ điều này có nghĩa là gì).

Vì vậy, bạn không chỉ cần đặt nhiều câu hỏi mà còn cần đánh giá chúng trong bối cảnh tổ chức sản xuất phần mềm.

Những điều cần hỏi bao gồm:

  1. Trước formost có thể là ứng dụng của bạn chạy như một ứng dụng web? Một số ứng dụng chỉ không khả thi. nếu bạn cần truy cập vào tài nguyên cấp thấp, bạn sẽ không có nhiều tùy chọn.
  2. Bạn có thể đủ khả năng chi phí bảo trì của phần mềm ứng dụng khách không? Nếu đây là ứng dụng được phân phối, điều gì sẽ xảy ra khi bạn cập nhật máy chủ nhưng khách hàng không cập nhật.
  3. Bạn có thể hỗ trợ khách hàng không?
  4. Đội ngũ xây dựng phần mềm nào có kinh nghiệm? Đây là IMHO rất lớn. Không có vấn đề làm thế nào tốt một nhóm là xây dựng các ứng dụng web, họ sẽ làm cho những sai lầm làm ứng dụng khách hàng mà một nhà phát triển khách hàng experinced sẽ không.
1

Chỉ dùng cho ứng dụng Desktop, nếu bạn có thể kiểm soát môi trường (intranet) hoặc chương trình với môi trường (phiên bản nền tảng chéo) trong đó gói/ứng dụng sẽ chạy.

Tìm xu hướng hiện nay, mọi thứ đang diễn ra bên trong trình duyệt và chúng tôi đang tương tác tốt như nhau so với ứng dụng dành cho máy tính. Ngoài ra, điều duy nhất cần thiết để chạy ứng dụng là trình duyệt, luôn tốt và chúng tôi có thể yêu cầu người dùng có phiên bản đúng của nó và anh ấy đã sẵn sàng để sử dụng nó.

1

Theo kinh nghiệm của mình, tôi nhận thấy rằng các ứng dụng web thường mất nhiều thời gian hơn để phát triển, nhưng có một số lợi thế trong việc phát triển một ứng dụng web.

  1. Bạn không cần phải triển khai các ứng dụng web dựa
  2. dân thường được sử dụng hơn để sử dụng một trình duyệt web hơn là một ứng dụng tùy chỉnh, vì vậy thường, lợi ích ứng dụng trong usablility
  3. Thông thường, nó là dễ dàng hơn để người dùng tìm thấy những gì họ tìm kiếm trong một ứng dụng web vì giao diện.
  4. Bạn chỉ phải thử nghiệm với một vài trình duyệt và bạn tránh phải thử nghiệm nhiều cấu hình ứng dụng khách có thể xung đột.
  5. Với ứng dụng web, bạn không phải quan tâm đến hệ điều hành nào mà ứng dụng khách có thể đang sử dụng. Ví dụ: giả sử công ty của bạn quyết định di chuyển máy tính để bàn sang linux, bạn sẽ không phải tạo phiên bản mới.

Bạn nên phát triển phần mềm máy tính để bàn, nếu bạn cần thứ gì đó phát triển nhanh hoặc bạn cần giao diện hiệu suất/phản hồi (web vẫn chậm hơn máy tính) hoặc nếu bạn đang phát triển thứ gì đó không thể thực hiện trên web (nghĩ về phần mềm đồ họa/trò chơi phức tạp).

+0

có nhiều thẻ không hoạt động trong cùng trình duyệt trình duyệt trong cùng một hệ điều hành và cho cùng một trình duyệt, hành vi khác nhau hệ điều hành khác nhau. Hãy thử llok tại một số html/javascript bạn tìm thấy một số thẻ chỉ có sẵn lạ trên mozilla, những người khác trên IE và những người khác trên Chrome –

1

Để phát triển ứng dụng tốt nhất, hãy tách mã Client và Server. Trong một ứng dụng máy tính để bàn, điều này thường không đúng. Mã máy khách xử lý tương tác người dùng được tích hợp với mã máy chủ xử lý các lệnh của người dùng. Tuy nhiên điều này không cần phải là trường hợp chỉ cần chia mã và giao tiếp qua TCP/IP.

Câu hỏi tiếp theo là mã khách hàng của bạn sẽ chạy trong trình duyệt hay là GUI gốc. Đối với tôi một giao diện bản địa là tốt hơn đối với một số lý do: - chạy nhanh hơn - ngôn ngữ lập trình tương tự cho khách hàng và mã máy chủ - ít phụ thuộc vào việc thay đổi thành phần phần mềm: Trình duyệt, html, css, máy chủ web

Hầu hết GUI khung là nền tảng đa.

Điểm bất lợi duy nhất là bạn cần phải cài đặt phần mềm máy khách trên máy tính. Nếu bạn muốn tránh cài đặt máy khách trên máy chủ và truy cập thông qua các chương trình máy chủ đầu cuối, như Citrix.

Tất nhiên nếu ứng dụng của bạn được sử dụng rất thường xuyên bởi người dùng thì ứng dụng web hữu ích nhất.

Các công ty phần mềm lớn đã chi hàng triệu để thay đổi GUI của họ thành Web, mà không cần thêm bất kỳ chức năng bổ sung nào vào ứng dụng của họ. Hầu hết thời gian giao diện trở nên nguyên thủy hơn. Vì vậy, đó là một sự lãng phí rất lớn của tiền bạc, mà vẫn đang xảy ra. Vì vậy, không theo luôn đàn.

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