2009-01-17 51 views
10

Đối với các ứng dụng dựa trên máy tính để bàn, thực tiễn tốt nhất để thực hiện cập nhật tự động là gì? Hiện tại, chúng tôi tải xuống tất cả các tệp, sau đó sao chép và đăng ký (nếu com dll) vào các thư mục tương ứng của chúng.Thực hành tốt nhất cho các sản phẩm tự động

Tôi đã xem phương pháp cập nhật của Google Chrome. Dường như nó đầu tiên tải một tập tin nén vào một thư mục, và sau đó giải nén tất cả các tập tin. Ngoài ra, họ có một ứng dụng thiết lập mà dường như được sử dụng để thực hiện cập nhật. Ngoài ra, họ tạo ra một thư mục ánh xạ để cập nhật phiên bản như 1.0.154.43, nhưng họ giữ thư mục của phiên bản cũ.

Trả lời

7

Các bài viết trên blog gần đây từ nhóm Chromium là một hướng dẫn tuyệt vời:

http://blog.chromium.org/2009/01/google-chrome-installation-and-updates.html

Về cơ bản, điều tương tự được thực hiện khi bạn sử dụng MS của ClickOnce và tôi không có vấn đề sử dụng các ứng dụng với phương pháp cập nhật như vậy xa, vì vậy tôi đoán điều này được phân loại là "Thực hành tốt nhất" ... nhưng đó chỉ là tôi.

  1. Lưu trữ từng phiên bản trong thư mục duy nhất của riêng nó.
  2. Sử dụng "Trình chạy" để khởi chạy phiên bản cập nhật nhất hiện có và ...
  3. Kiểm tra mọi phiên bản mới trong nền sau khi ứng dụng đã khởi chạy.
  4. Tải xuống bất kỳ phiên bản mới nào được tìm thấy và tạo thư mục mới cho phiên bản đó.

Google Chrome hơi khác một chút vì họ sử dụng dịch vụ Google Update để thực hiện cập nhật nhưng trải nghiệm/chu kỳ tổng thể khá giống nhau.

Người dùng của bạn khởi chạy ứng dụng, nếu có bất kỳ phiên bản mới nào, nó được tải xuống dưới nền. Và sau đó, lần sau khi ứng dụng bắt đầu, người dùng của bạn sẽ tự động nhận được phiên bản mới và (nếu có thể) âm thầm.

1

Sử dụng một khuôn khổ hiện có

On MacOS X: sử dụng khuôn khổ Sparkle, http://sparkle.andymatuschak.org

Trên Linux: tạo gói & kho thiết lập cho các distro bạn sẽ hỗ trợ

15

Một vài lời khuyên sau:

  • Bất kể bạn chọn làm như thế nào, vui lòng không tạo một dịch vụ hoặc quy trình mới để kiểm tra các bản cập nhật và sau đó để nó liên tục. Bạn biết đấy, như Adobe và Sun (cho Java) muốn làm. Bất kể những gì bạn đang làm, tôi có thể đảm bảo rằng nó không đủ quan trọng mà nó cần phải được cập nhật mỗi khi người dùng khởi động máy tính. Các cập nhật nên được tích hợp với quy trình cập nhật tiêu chuẩn chung cho hệ điều hành hoặc khi ứng dụng đang chạy. Cập nhật không nên liên tục ăn cắp tài nguyên hệ thống hoặc làm chậm quá trình khởi động theo mặc định.

  • Nếu bạn duy trì các thư mục riêng biệt cho mỗi phiên bản, bạn cần phải thêm mã để duy trì điều đó. Dung lượng đĩa không nhằm mục đích cập nhật nhiên liệu. Tôi nhớ lại một ứng dụng Citrix có 5 phiên bản khác nhau trên máy tính của tôi cùng một lúc. Người dùng không nên xem nhiều hơn hai bản sao (tối đa một bản sao lưu, được xác nhận là chức năng) của ứng dụng của bạn trên hệ thống tệp của họ trừ khi họ đặt chúng ở đó một cách rõ ràng.Các phím tắt cho ứng dụng của bạn có thể trở nên lỗi thời khi vị trí thư mục thay đổi như thế này, vì vậy hãy cẩn thận.

  • Nếu bạn cập nhật sau khi chương trình đã được bắt đầu, tôi khuyên bạn nên thông báo cho người dùng theo cách không gây khó chịu. Nếu bản cập nhật không gây ra thay đổi đáng kể về chức năng, hãy tải xuống bản cập nhật ở chế độ nền, chuyển sang phiên bản mới vào lần tiếp theo ứng dụng được thực thi và thông báo cho người dùng về các thay đổi quan trọng (không sử dụng hộp thoại phương thức hoặc ăn cắp tiêu điểm). Không khiến người dùng nhấp vào nút để đồng ý cài đặt các bản cập nhật trước khi khởi chạy ứng dụng hoặc buộc họ phải khởi động lại để sử dụng phiên bản cập nhật. Cho phép người dùng định cấu hình cập nhật tự động, sau đó thực hiện điều đó mà không ảnh hưởng đến năng suất của họ. Firefox là khá xấu về điều này, đó là buồn vì nó là một ứng dụng không thể thiếu cho nhiều người dùng.

  • Không chạm vào khay hệ thống. Điều đó nên được dành riêng cho các ứng dụng hữu ích (cho người dùng). Tôi cũng khuyên bạn nên chống lại thông báo bong bóng. Sử dụng một cái gì đó giống như infobar thường thấy trong các trình duyệt. Các ứng dụng của Microsoft đặc biệt xấu về việc sử dụng khay hệ thống và thông báo bong bóng để lãng phí thời gian của người dùng với các thông báo không quan trọng. Nếu người dùng bật cập nhật tự động, họ thực sự không cần biết rằng mọi thứ đều hoạt động đúng như mong đợi. Hãy nói với họ khi có điều gì đó mới mẻ hoặc hữu ích, và đừng ép buộc các kiến ​​thức xuống cổ họng của họ. Để lại thay đổi trong mục menu Trợ giúp để họ có thể tự mình kiểm tra các sửa lỗi.

  • Cẩn thận các bản cập nhật bằng hệ thống MSI nếu bạn triển khai tệp cấu hình mặc định. Bạn không muốn ghi đè lên bất kỳ tệp người dùng nào trong bản cập nhật. Trong cùng một tĩnh mạch, nếu định dạng tệp cấu hình hoặc tệp người dùng thay đổi, bạn nên cung cấp cơ chế để tự động sao lưu và nâng cấp các tệp đó. Hoặc bắt đầu xây dựng các thiết lập mặc định bên trong ứng dụng thay vì triển khai chúng.

  • Hãy để ý thức băng thông. Các tệp lớn mất thời gian và có thể đo băng thông từ người dùng của bạn. Đặc biệt nếu bạn cập nhật hàng ngày.

Tôi không thể nhớ lại quy trình cập nhật thực sự không xâm phạm, nhưng tôi có thể nhớ lại nhiều thứ đã lãng phí thời gian và tài nguyên trong quá khứ. Đừng làm người khác.

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