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


45

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ó 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 có đượ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ộ?


3
Các câu trả lời cho câu hỏi giải thích "tại sao" tò mò. Tuy nhiên, câu cảm thán "nhưng tại sao" vẫn còn (như trong "nhưng tại sao tất cả chúng ta không thể hòa hợp với nhau").
dbkk101

2
tôi cũng ghét những người cài đặt không có gì sai với bạn
Nick

2
Điều này có vẻ như câu hỏi sai. Nếu bạn muốn sử dụng các ứng dụng di động, câu hỏi chính xác dường như là: "Chương trình nào là di động?". Chẳng hạn, bạn có thể nghĩ rằng bạn cần MS Word, khi điều bạn thực sự cần là một chương trình có thể đọc và ghi các tệp dữ liệu .doc. Open Office sẽ làm điều đó ... và, không giống như MS Word, nó có sẵn ở dạng di động ... Tôi đã có một bản sao của nó (và Abiword) trên một ổ đĩa flash dành toàn bộ thời gian cắm vào máy tính xách tay của tôi. Có khá nhiều ứng dụng di động. portablelinuxapps.org cung cấp 184 cho Linux, trong khi portableapps.com/apps Mời 232 +

Phần còn lại của bình luận của Bill: ... một ứng dụng menu cho Windows [có thể nói, cả hai đều bao gồm một lựa chọn tốt các tiện ích tầm thường]). Chọn những chương trình bạn muốn và bỏ qua các chương trình không di động mà bạn có thể làm mà không cần ... hầu hết các ứng dụng của tôi đều sử dụng khóa USB. Điều này, ít nhất, sẽ đơn giản hóa súp spaghetti của các tệp trên HD của bạn.
studiohack

Ngoài ra, dường như với tôi rằng các công cụ tốt nhất là di động. Tôi có thể bị thiên vị.
Vlastimil Ovčáčík

Câu trả lời:


35

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. Địa ngục DLL 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 ở một vị trí tiêu chuẩn duy nhất để cho phép chuyển vùng hồ sơ và di chuyển dễ dàng (chỉ 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ứ.


1
Đẹp, giải thích đơn giản!
alex

7
Một lý do lớn khác cho các trình cài đặt (đặc biệt là Office) là không người dùng nào có thể ảnh hưởng đến người dùng khác trên cùng hệ thống nếu họ không phải là quản trị viên. Với Office 2007 có trọng lượng khoảng 500MB, nếu người dùng muốn sử dụng nó, họ phải có bản sao cục bộ của riêng mình. Đó là 1,5 GB cho 3 người dùng trên cùng một hệ thống! Google Chrome cài đặt vào thư mục người dùng cục bộ của bạn, vì vậy nếu bạn có 10 người dùng đều có Chrome, thì đó là 10 phiên bản khác nhau phải được cập nhật và duy trì. Rõ ràng có những ưu và nhược điểm đối với mỗi người dùng cài đặt so với triển khai trung tâm.
Joshua

1
Một số ứng dụng, như Photoshop (ít nhất là trước CS4), có thể được sao chép đơn giản và khi bắt đầu - sẽ tạo ra các kho lưu trữ cấu hình người dùng và các tệp cần thiết. Ngoài ra, hầu hết các ứng dụng .NET đều có thể di động theo thiết kế, nhưng những người tiêu dùng mong đợi các trình cài đặt hoàn thiện tiếp theo - nhiều người thậm chí không biết hệ thống tệp là gì.
Oskar Duveborn

Cũng có thể lưu ý rằng mặc dù các ứng dụng có nghĩa là phân chia cài đặt / thư viện / thông tin cụ thể ở những nơi khác nhau, nhưng đó không phải là một tùy chỉnh lan truyền tốt. Tôi rất thường tìm thấy các cài đặt cho các ứng dụng khác nhau được lưu trữ trong các tệp trong thư mục chương trình của chúng và rất thường các thư viện có thể được chia sẻ được liên kết tĩnh trong thư mục chương trình. Vì không có lợi ích thực sự khi làm mọi thứ theo cách này hay cách khác cho các lập trình viên, nên việc khuyến khích tuân thủ các quy tắc là sự phát triển ứng dụng ở phía tây yếu và hoang dã xảy ra :-). Ngoài ra, tôi đoán truyền thống là mạnh mẽ.
Daniel Andersson

GAC chỉ là sự xuất hiện thứ hai của địa ngục DLL. Khái niệm hay, nhưng trong thực tế, bạn kết thúc với sự nhầm lẫn khi các tệp thực thi khác nhau liên kết với các phiên bản khác nhau của cùng một tệp và một số phiên bản của các tệp đó có thể có lỗi bảo mật. Đó là một mớ hỗn độn để giải quyết nếu bạn cần một môi trường an toàn. Bây giờ bạn thực sự phải vá các phiên bản khác nhau của cùng một tệp để vá cùng một lỗ hổng bảo mật. Tiếng hoan hô! Cần lưu ý rằng các chính sách và chuyển hướng bắt buộc có thể giúp đỡ, nhưng điều đó giống như nói rằng một sự trợ giúp ban nhạc giúp chống lại các vết thương hở.
Stein Åsmul

12

Triển khai xcopy đã được công bố bởi Microsoft như các đường của tương lai một vài năm trước đây. Vẫn không có gì :)

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


7

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 trước đây.

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.


6

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 những người khổng lồ của công ty 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 số ít để kiểm soát nhiều 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 những 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 đặt tên cho 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.


5

Một sự kết hợp của đăng ký và lưu trữ cho mỗi người dùng. Sổ đăng ký là một phần quan trọng, đặc biệt nếu ứng dụng của bạn dựa trên COM (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 ).


Chính xác. Làm thế nào HĐH có thể tìm thấy EXE hoặc DLL để tải mà không có một vị trí cố định? "Đặt oExcelApp = CreateObject (" EXCEL.APPLICATION ")" cần hoạt động bằng cách nào đó.
Zan Lynx

4

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)


3

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 lý do nào đó (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.


Tại sao điều duy nhất tôi có thể nghĩ đến khi đọc biểu tượng máy tính để bàn Adobe Reader này? Cái đó cực kỳ tự sửa chữa nó làm vùi dập tâm trí của một người ^^
Oskar Duveborn

2

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 hài lòng khi gặp trường hợp này.


2

.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

Một số chương trình yêu cầu vị trí cài đặt phải nằm trong sổ đăng ký, những chương trình khác có thể có vị trí của chúng đượ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 thứ 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

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 ứng dụng 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

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 cho rằng í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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.