it-swarm-vi.tech

Tại sao không phải tất cả các ứng dụng 'di động'?

Gần đây tôi đã cố gắng 'cài đặt' công cụ ít hơn nhiều trên máy Windows của mình (tôi ghét trình cài đặt - tôi cần biết chương trình đặt công cụ ở đâu ...), chọn sử dụng các phiên bản ứng dụng di động hoặc độc lập thay thế.

Tôi đặt tất cả chúng trong một thư mục 'Chương trình' trên một ổ đĩa tách biệt với phân vùng Windows của tôi, vì vậy bất cứ khi nào tôi cài đặt lại, tôi có sẵn tất cả các ứng dụng của mình với nỗ lực tối thiểu và về mặt tích cực, tôi nhận được một thiết lập sạch đẹp.

Các ứng dụng như Office và Creative Suite vẫn yêu cầu tôi phải trải qua quá trình cài đặt dài khủng khiếp, nơi hàng ngàn thư viện và công cụ ngẫu nhiên được ném qua hệ thống của tôi.

Tại sao các ứng dụng Windows vẫn cần cài đặt? Tại sao chúng ta không thể kéo Photoshop vào một thư mục à OSX và chỉ cần nó hoạt động? Có ai khác tập trung vào các ứng dụng di động không, hay tôi chỉ là OCD về toàn bộ?

45
Tom

Trình cài đặt là kết quả của nhiều năm tiến hóa và một chút lịch sử (đơn giản hóa) giúp hiểu lý do tại sao họ làm những gì họ làm ..

Mô hình windows 3.1 đã đề xuất các tệp cấu hình kiểu config.ini cho mỗi ứng dụng với việc hỗ trợ các bộ chia sẻ được chia sẻ vào các thư mục hệ thống để tránh trùng lặp và lãng phí dung lượng đĩa.

Windows 95 đã giới thiệu sổ đăng ký cho phép một cửa hàng trung tâm cho cấu hình ứng dụng thay thế nhiều tệp cấu hình. Quan trọng hơn, cấu hình windows được lưu trữ ở cùng một nơi.

Sổ đăng ký trở nên cồng kềnh do các ứng dụng không tự dọn dẹp. DLL hell xảy ra do nhiều phiên bản của cùng một thư viện chia sẻ ghi đè lên nhau.

.NET đã giới thiệu khái niệm về app.config (hầu hết các tệp ini đánh dấu 2, lần này với cấu trúc tiết kiệm hơn một chút, các nhà phát triển sẽ lãng phí thời gian để viết các trình phân tích cú pháp thủ công). GAC được giới thiệu với các phiên bản được chia sẻ để cố gắng ngăn chặn DLL Hell.

Trong Windows XP và moreso trong Vista, Microsoft đã cố gắng xác định không gian người dùng là nơi lưu trữ dữ liệu người dùng và tệp cấu hình trong một vị trí tiêu chuẩn duy nhất để cho phép chuyển vùng và di chuyển dễ dàng (chỉ cần sao chép hồ sơ của bạn) với các ứng dụng được cài đặt trong Tệp chương trình.

Vì vậy, tôi đoán, lý do là "các ứng dụng trong cửa sổ được thiết kế để sống ở một nơi, phụ thuộc chung của chúng ở nơi khác và dữ liệu cụ thể của người dùng ở nơi khác", hoạt động khá nhiều so với khái niệm xcopy một vị trí.

.. và đó là trước khi bạn phải định cấu hình tài khoản người dùng, thiết lập và đảm bảo quyền bảo mật cũng như tải xuống các bản cập nhật và cài đặt dịch vụ windows ...

xcopy là "trường hợp đơn giản" và chắc chắn không phù hợp nhất cho mọi thứ.

35
DavidWhitney

Triển khai XCOPY được Microsoft công bố là cách của tương lai một vài năm trước. Vẫn không có gì :)

Trong khi đó, bạn có thể quan tâm đến nền tảng PortableApps.com.

12
Piotr Dobrogost

Câu hỏi tuyệt vời, tôi đã hỏi một câu hỏi liên quan trên Stack Overflow một lúc trước.

Câu trả lời thường có vẻ là "bởi vì đó là cách chúng ta đã làm trong quá khứ". Xin lỗi nhưng điều đó không rửa với tôi.

Một vài người khác đã nói lý do chính là do đăng ký. Nếu bạn đang nói về trình điều khiển thiết bị hoặc một số thành phần COM khác, v.v. thì có, điều này có thể cần thiết, nhưng không phải cho các ứng dụng GUI như bộ xử lý Word hoặc bảng tính.

Hoàn toàn có thể viết một ứng dụng kiểm tra khởi động cho các cài đặt đăng ký được yêu cầu và nhắc nhở người dùng về chúng/sử dụng mặc định. Hoặc, như nhiều ứng dụng có thể bảo vệ hiện đang làm, jst cho người dùng biết rằng tích hợp hệ điều hành hiện bị giới hạn do bạn đang chạy ở chế độ di động.

Trình cài đặt cũng thường có nhiều "kiến thức" về cách ứng dụng hoạt động. Sau đó, khi ứng dụng thay đổi, bạn cũng thường phải cập nhật trình cài đặt. Đây là một nguyên nhân cổ điển của lỗi/vấn đề tôi đã thấy trong lập trình thời gian của mình.

Đó là một kích thước phù hợp với tất cả các phương pháp tiếp cận.

7
Ash

Câu trả lời đơn giản và thẳng thừng: đó đơn giản chỉ là câu hỏi ai là người kiểm soát. Hầu hết các phần mềm hiện nay được thiết kế bởi các công ty khổng lồ cho môi trường doanh nghiệp hoặc tổ chức nơi người dùng được cho biết phải làm gì thay vì nói với máy tính của họ phải làm gì cho họ.

Câu hỏi của bạn là vô cùng quan trọng bởi vì nó đặt ra một câu hỏi cơ bản về quyền và tự do cá nhân đang bị xói mòn ngày càng nhiều, không phải bởi những bạo chúa như trong xã hội cũ, mà bởi lòng tham của công ty và sự cần thiết của một số ít người.

Thực tế, dường như chúng ta đã quên rằng chính những người đã từng chê bai sự chuyên chế của những người khổng lồ như IBM đã trở thành IBM của thời đại ngày nay ... Chỉ cần nhìn kỹ vào các hoạt động kinh doanh của Microsoft, Apple và Adobe nêu tên một vài người và nói thẳng với tôi rằng với giấy phép hạn chế của họ lành tính hơn các hoạt động kinh doanh của IBM, cũng chính IBM, người cởi mở, thực sự đã dẫn đường đến cuộc cách mạng điện toán cá nhân ...

Tôi đã sử dụng nhiều ứng dụng di động, độc lập trong nhiều năm qua và không có ngoại lệ, chúng đã được chứng minh là hiệu quả nhất, nhanh nhất và nhỏ nhất về dấu chân và tài nguyên và cuối cùng, nhưng không chỉ là chúng vượt trội so với bloatware của chúng đối tác, nhưng hầu hết thời gian, họ là miễn phí.

Đã đến lúc cho một cuộc cách mạng máy tính cá nhân thứ hai. Tăng cường tính di động bằng cách giảm sự phình to và làm rõ nơi cài đặt được lưu trữ, trong một thư mục riêng biệt trên một vị trí vật lý riêng biệt trên một phương tiện vật lý hữu hình, là một bước đi đúng hướng.

6
Old Faithful

Một sự kết hợp của đăng ký và lưu trữ cho mỗi người dùng. registry là một phần quan trọng, đặc biệt nếu ứng dụng của bạn là COM dựa trên (yêu cầu đăng ký, điều này xảy ra trong sổ đăng ký). Lưu trữ trên mỗi người dùng (của cấu hình, v.v.) cũng là một thành phần quan trọng. Cách tốt nhất để làm điều này là lưu trữ nó trong một số thư mục được thiết kế đặc biệt (xem Lưu trữ biệt lập ).

5
C. Ross

Chủ yếu là do sổ đăng ký windows - mặc dù các chương trình của bạn nằm trong một thư mục nhất định, các cài đặt thường được lưu trữ trong sổ đăng ký.

Cũng có thể là do chương trình đặt các tệp trong các thư mục khác trên máy tính của bạn chứ không phải thư mục cài đặt (ví dụ system32)

4
Eric Petroelje

Một lợi thế lớn cho các trình cài đặt so với loại cài đặt Xcopy/di động là tự sửa chữa.

Một ứng dụng sử dụng đúng hệ thống Windows Installer sẽ có tất cả các loại thông tin về nó được lưu trong cơ sở dữ liệu Windows Installer trên máy của bạn, cũng như thường là bộ đệm của các phần quan trọng của các tệp thiết lập.

Nếu ứng dụng bị hỏng vì một số lý do (một cái gì đó khác xóa/thay thế tệp, sổ đăng ký bị hỏng, vấn đề về đĩa, người dùng xóa phím tắt, v.v.) nếu đó là "lối tắt được quảng cáo", Trình cài đặt thực sự kiểm tra các tệp và khóa chính mỗi khi nó khởi động và thay thế nếu chúng không có mặt hoặc bạn có thể vào Thêm/Xóa Chương trình và nhấp vào Sửa chữa trên ứng dụng.

3
GAThrawn

Nhiều ứng dụng Windows phải sử dụng các môi trường hoặc dịch vụ hệ thống, chẳng hạn như SQL Server, IIS, WMI, miền bảo mật, Active Directory và nhiều dịch vụ khác. Một người dùng thông thường có thể không biết cách định cấu hình những thứ này hoặc thậm chí có thể không có quyền truy cập vào chúng.

Các ứng dụng như Microsoft Office không phải là các tệp đơn lẻ; chúng chứa hàng tá tệp, tệp thực thi, tiện ích, dịch vụ, mẫu, trình cắm, trình điều khiển, v.v. Khi bạn cài đặt một ứng dụng, bạn không thể ghi đè lên mọi thứ mà ứng dụng mới sử dụng, nó phải phù hợp với những gì đã có. Trình cài đặt Windows không chỉ sao chép các tệp, họ có thể truy vấn môi trường hệ thống, chạy tập lệnh và cài đặt dịch vụ và thiết lập máy như thể họ là quản trị viên.

dbkk101 hỏi tại sao các ứng dụng Windows "không thể hòa hợp được". Họ có thể, đó là những gì trình cài đặt dành cho.

2
Dour High Arch

Tôi nghĩ đó là một phần để làm với số lượng lớn các ứng dụng windows cruft cần. Ví dụ: Khóa đăng ký, dữ liệu người dùng (/ Người dùng // AppData). Có lẽ OSX chỉ xử lý việc này tốt hơn/khác đi.

Sau đó, một lần nữa, không thể tạo các ứng dụng mà bạn chỉ có thể trích xuất từ ​​kho lưu trữ - Tôi luôn vui khi gặp trường hợp này.

2
Ross

.Net Framework là nền tảng để kích hoạt loại chức năng này và hầu hết các trình cài đặt chỉ được sử dụng vì đây là những gì người dùng bình thường thường sử dụng. Giống như cách người dùng Mac được sử dụng để sao chép tệp vào thư mục Ứng dụng.

Phần lớn các trình cài đặt chỉ đơn giản là mở rộng các tệp vào thư mục Tệp chương trình và tạo một lối tắt. Đó là nhiều hơn những gì người dùng biết, và thường thì đơn giản hơn là giữ cho quá trình này giống nhau ngay cả khi ứng dụng có thể mang theo được.

2
BinaryMisfit

Cấp cho một số chương trình, cài đặt là ngớ ngẩn nhưng có nhiều hơn là chỉ "kéo một tập tin vào thư mục chương trình".

Ít nhất, một trình cài đặt hợp lý với giải nén tệp cài đặt và thiết lập các phím tắt thích hợp và giúp dễ dàng gỡ bỏ chương trình khi không còn muốn. Tôi thnk giải nén và sao chép có lẽ là những gì mất nhiều thời gian nhất.

Sau đó, có các tệp được chia sẻ - điều này đặc biệt đúng trong thế giới Linux mặc dù không quá nhiều trong Windows IMO.

Quan trọng nhất, một số chương trình cần được cấu hình cho máy và một số (tôi đoán là ít nhất) cố gắng tối ưu hóa dựa trên máy hoặc ít nhất đó là điều mà hộp thoại của Adobe khiến tôi tin tưởng.

Ngoài ra, tôi chưa bao giờ thấy một lý do để cài đặt trên một phân vùng riêng. Bạn có xu hướng mất tất cả các giá trị đăng ký và cài đặt cấu hình. Thêm vào đó, tôi thực sự thích sự mất mát đó vì nó làm giảm sự phình to của Windows.

2
wag2639

Một số chương trình yêu cầu vị trí cài đặt phải nằm trong sổ đăng ký, một số chương trình khác có thể được mã hóa cứng vào chương trình (đây là trường hợp của Perl.exe).

Về cơ bản, lý do chính là các lập trình viên đã tìm ra lối thoát dễ dàng và mã hóa một cái gì đó vào chương trình, hoặc các khóa đăng ký hoặc các đường dẫn được mã hóa cứng thực tế.

2
Brad Gilbert