Trình cài đặt Windows cho các ứng dụng kinh doanh nội bộ có ý nghĩa không?


14

Tôi đang cố gắng xây dựng một sự hiểu biết chung cho những gì phổ biến trong tình huống này để tôi có thể quyết định xem việc theo đuổi nó có hợp lý hơn không.

  1. Các trình cài đặt có được chào đón trong một môi trường doanh nghiệp điển hình với những điều sau đây không?
    • Thay đổi quy trình kiểm soát
    • Dev / QA / Môi trường sản xuất
    • Các nhóm triển khai được chỉ định cho các khu vực khác nhau (tường lửa, cơ sở dữ liệu, cửa sổ, v.v.).
  2. Có một "thử nghiệm litmus" có thể được áp dụng cho một ứng dụng để xem liệu nó có phải là một ứng cử viên tốt để tạo một trình cài đặt không? *
    • Trình cài đặt có đủ đơn giản để mọi ứng dụng nên có không?
    • Là trình cài đặt thậm chí là công cụ phải không?
  3. Có hợp lý không khi mong đợi các nhà phát triển học một cái gì đó như WiX để hỗ trợ các trình cài đặt?
    • Khả năng bảo trì nói chung là một mối quan tâm, tức là, tạo ra một trình cài đặt một kỹ năng thích hợp?

*

Ví dụ: tôi có một bộ ứng dụng winform nằm trong thư mục dùng chung trên máy chủ sản xuất. Các nhóm cụ thể có thể chạy các ứng dụng từ thư mục này nhưng chỉ quản trị viên hệ thống mới có thể sửa đổi các tệp thực thi. Quá trình triển khai hiện tại liên quan đến việc có một bản sao quản trị / dán các tệp thực thi và thư viện vào thư mục dùng chung.

Vì các ứng dụng không được cài đặt trên máy của từng người dùng, nên tạo một trình cài đặt để triển khai các phiên bản mới của các ứng dụng này vào thư mục dùng chung có hợp lý không?

Biên tập--

Tôi cảm thấy rằng các câu trả lời ở đây đã đưa ra một số lời khuyên chắc chắn vì vậy tôi muốn chia sẻ những gì tôi đã đưa ra cho dự án hiện tại của mình, nơi tôi cần xây dựng một số lượng lớn các ứng dụng và triển khai chúng vào các thư mục riêng lẻ.

Tôi đã tìm thấy gói NuGet có tên _PublishedApplecting bắt chước hành vi của _PublishedWebsites cho các dự án web. Ý tưởng là bạn cài đặt gói NuGet cho các dự án của mình và nó thêm một mục tiêu sẽ sao chép các tạo phẩm xây dựng vào thư mục _PublishedAppluggest trong đường dẫn đầu ra. Hành vi này được kích hoạt bằng cách chạy MSBuild từ dòng lệnh và chỉ định một thuộc outdirtính:

msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln

Điều này sẽ cung cấp cho bạn một cấu trúc thư mục tương tự như sau:

  • C: \ path \ đến \ outdir
    • _PublishedApplecting \
      • Dự án 1\
        • dlls, exes, etc.
      • Dự án2 \
        • ...

Từ đó, việc tạo một zip có thể được trích xuất trong các môi trường khác nhau là không gây đau đớn.


6
Nếu bạn phải cung cấp trình cài đặt, bạn có thể cung cấp trình .msicài đặt không? Những người, ít nhất, có thể hoàn toàn tự động với nỗi đau tối thiểu. (trong khi vẫn có thể hiểu được đối với người dùng không thường xuyên cần thực hiện các cập nhật của riêng mình)
ZJR

Theo ví dụ của bạn: Tôi có một tập lệnh cố gắng đổi tên thư mục sản xuất thành tên tạm thời, sao chép tất cả các tệp ứng dụng vào thư mục được đổi tên, sau đó đổi tên thư mục sản xuất trở lại tên cũ (và nó không kiểm tra lỗi sau mỗi (! ) bươc). Ưu điểm là miễn là ai đó sử dụng phiên bản cũ, lần đổi tên đầu tiên không thành công và bạn không vô tình phá hủy môi trường sản xuất. Một quản trị viên giỏi có thể tự tạo các tập lệnh như vậy, nhưng những người khác có thể biết ơn nếu bạn cung cấp một "trình cài đặt" như vậy cho họ. Phụ thuộc thực sự vào tổ chức của bạn.
Doc Brown

@ Mark0978: tôi có ngửi thấy tiếng "Linux" so với "Windows" không? Đây là 100% chủ đề ở đây.
Doc Brown

Câu trả lời:


20

Trình cài đặt luôn có ý nghĩa, nếu việc triển khai yêu cầu bất cứ điều gì phức tạp hơn là sao chép (các) tệp có liên quan vào một thư mục nào đó và chạy EXE. Nếu có các bước bổ sung cần được thực hiện để thiết lập sản phẩm đúng cách, có hai cách để thực hiện.

  1. Bạn có thể viết ra một danh sách để ai đó theo dõi. Con người là con người, ai đó buộc phải làm hỏng nó, và sau đó gọi bạn lên để yêu cầu giúp đỡ vì chương trình của bạn không chạy đúng.
  2. Bạn có thể viết ra một danh sách cho một máy tính để theo dõi (một kịch bản cài đặt). Điều này làm cho ít có khả năng lỗi người dùng sẽ làm hỏng việc triển khai.

Mặt khác, nếu bạn không có bất kỳ tác vụ thiết lập nào cần được thực hiện, thì chỉ cần cung cấp cho chúng một tệp zipfile. Điều đó đơn giản hơn so với chạy trình cài đặt.


11

Wyatt cởi mũ lập trình viên và đội mũ Giám đốc CNTT

Nếu đây là một dòng nội bộ của ứng dụng kinh doanh thì bạn chỉ cần nhắm vào một môi trường - doanh nghiệp cho biết. Tôi sẽ gọi cho người đứng đầu CNTT và hỏi anh ấy họ muốn quản lý việc triển khai như thế nào. Các bộ phận CNTT đã xử lý vấn đề này trong một thời gian để họ có thể có sở thích mạnh mẽ đối với các tùy chọn xcopy hoặc dựa trên MSI hoặc một cái gì đó hoàn toàn khác như tùy chọn hiện tại của bạn.

Tôi sẽ thêm bộ phận đó ít nhất sẽ đánh giá cao cử chỉ đó và có khả năng trở thành một đồng minh có giá trị vì rất có thể họ biết nhiều hơn về dòng ứng dụng kinh doanh hiện tại và các vấn đề mà bạn nhận ra.


5
+1 Ross mượn mũ của Wyatt và thêm rằng các đội CNTT yêu thích các trình cài đặt vì họ để lại dấu vân tay phía sau có nội dung " thứ này đã được cài đặt ".
Ross Patterson

3
Mũ IT của tôi nói rằng hãy xây dựng nó trong HTML5 và bỏ cài đặt mọi thứ trên máy tính để bàn!
thuyền viên

8

Các ứng dụng Windows Installer được sử dụng rộng rãi để cài đặt các ứng dụng kinh doanh nội bộ trong môi trường sử dụng Windows. Bạn cũng nên tự hỏi liệu trong suốt vòng đời của ứng dụng có thể sẽ cần phải được cập nhật, vá, sửa chữa hoặc xóa sạch khỏi hệ thống của người dùng hay không. Trong nhiều trường hợp, câu trả lời là "có" - trong trường hợp có trình cài đặt được viết đúng có thể giảm tổng chi phí duy trì ứng dụng theo thời gian. Có các dịch vụ và tính năng khác được thiết kế để hoạt động với Windows Installer, chẳng hạn như Restart Manager và WMI và các chức năng kiểm kê sản phẩm và vá lỗi. Nếu ứng dụng của bạn có thể hưởng lợi từ những điều này, thì đó là một lý do khác để bao gồm trình cài đặt.

Chi phí trả trước để phát triển trình cài đặt hữu ích cho ứng dụng của bạn có thể trả dần về lâu dài và chi phí phát triển có thể được giảm thiểu bằng cách chọn một công cụ soạn thảo Windows Installer thích hợp, như WiX hoặc InstallShield hoặc một công cụ khác.


7

Như với tất cả các quyết định kỹ thuật, nó phụ thuộc.

Có lẽ yếu tố quan trọng nhất là hiểu được người tiêu dùng của quá trình cài đặt của bạn là ai và nhóm phát triển có những kỹ năng gì.

Vì nó là nội bộ, tôi cho rằng nó được triển khai bởi một bộ phận CNTT nội bộ. Họ có lẽ không xa lạ gì với chỉ huy đạn pháo.

Trình hướng dẫn cài đặt đồ họa rất hữu ích cho phần mềm được phân phối trực tiếp cho khách hàng bên ngoài vì các giả định đơn giản về cấu hình của bạn không còn hợp lệ, chẳng hạn như vị trí máy chủ tệp, chính sách bảo mật, v.v. Do đó, bạn cần hướng dẫn từng người dùng tự chọn cài đặt.

Trong môi trường của bạn, công cụ này có thể được quyết định bởi sự phát triển hoặc CNTT và hiếm khi thay đổi. Do đó, tôi khuyên bạn nên sử dụng các tập lệnh shell để sao chép các tệp xung quanh đến vị trí thích hợp. Các tập lệnh sẽ nằm trong sản phẩm của bạn như là một phần của gói được phát hành. Nó cũng nên được kiểm soát phiên bản cùng với ứng dụng của bạn.

Khi tôi làm việc, toàn bộ ứng dụng web của chúng tôi được cài đặt thông qua trình hướng dẫn InstallShield, đặt một loạt câu hỏi, hầu hết là vị trí hệ thống tệp, thông tin kết nối db và các cài đặt khác chỉ có trong tệp cấu hình. Thật khó để tự động hóa. Vì cài đặt ứng dụng web ở lõi của nó chỉ tạo ra một vài cơ sở dữ liệu và sao chép tệp, tôi đang viết một trình cài đặt mới bằng Ant hoặc Powershell, đơn giản chỉ chạy các tệp .sql và sao chép tệp.

Sau đó mọi người có thể hiểu làm thế nào nó hoạt động và duy trì nó hiệu quả hơn.


Tôi nghĩ các kịch bản triển khai sẽ là một giải pháp khả thi cho những gì tôi cần. Tôi đã lo ngại rằng nó có thể đang phát minh lại chức năng của trình cài đặt và vì vậy tôi đang tìm kiếm xem liệu có thể đi theo lộ trình của trình cài đặt sẽ dễ dàng hơn không. Từ câu trả lời của bạn, có vẻ như các trình cài đặt có thể quá mức cần thiết cũng như không dễ bảo trì.
dùng1529856

Chính xác. Đó là phát minh lại chức năng của trình cài đặt, nhưng đó là trình cài đặt có khả năng quá mức cần thiết.
Brandon
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.