Có hợp lý để giả định / yêu cầu .NET framework ngày nay không?


24

Lý lịch:

Tôi có một dự án mà tôi cần cung cấp cho người dùng gói tải xuống với một số dữ liệu nhạy cảm trong đó. Dữ liệu cần được mã hóa. Sau khi họ tải xuống, họ cần có thể xem nó (không cần chỉnh sửa). Đối với câu hỏi này, hãy xấp xỉ dữ liệu dưới dạng một loạt các tệp html tĩnh. Bởi vì dữ liệu rất nhạy cảm, nó cần được mã hóa bất cứ khi nào nó nằm trên đĩa.

Chúng tôi đang nghĩ đến việc cung cấp cho người dùng tùy chọn tải xuống sẽ cung cấp cho họ tệp zip chứa hai tệp:

  • Tệp dữ liệu (có thể chúng tôi sẽ sử dụng tệp zip được mã hóa phía sau hậu trường) với dữ liệu họ yêu cầu
  • Một ứng dụng để xem dữ liệu sẽ nhắc một cách thích hợp cho cụm mật khẩu và xử lý giải mã dữ liệu và hiển thị thông qua trình duyệt web nhúng.

Chi tiết bổ sung:

  • Người dùng không thuộc quyền kiểm soát của chúng tôi. Họ là người tiêu dùng.
  • Chúng tôi không lo lắng về nền tảng chéo trong câu hỏi này. Đây chỉ là về Windows. Chúng tôi sẽ có một bản tải xuống riêng cho người dùng Mac.

Nhận câu hỏi đã:

Đối với ứng dụng đó, chúng tôi cần tạo, chúng tôi sẽ tranh luận nội bộ nếu ứng dụng đó là ứng dụng .NET winforms hợp lý. Chúng tôi muốn một .exe duy nhất và chúng tôi muốn tải xuống có kích thước khá nhỏ (ví dụ 100k).

  • Bạn có dám sử dụng .NET framework (chúng tôi không cần sử dụng phiên bản .NET - 2.0 đặc biệt gần đây sẽ ổn)?
  • Có hợp lý không khi cho rằng hầu hết người tiêu dùng có .NET trên máy của họ bây giờ là do Windows Update?
  • Có hợp lý không khi hỏi những người không có nó để cài đặt nó?

Chúng tôi biết rằng không phải 100% người dùng sẽ cài đặt .NET. Câu hỏi thực sự là nếu nó hợp lý để yêu cầu họ có nó trong thời đại ngày nay.

PS Có ai biết bất kỳ số liệu thống kê đáng tin cậy nào về tỷ lệ phần trăm người thực sự đã cài đặt .NET không?


Hãy nhớ rằng .NET cần phải được cài đặt không bị hỏng / thiếu tệp.
GrandmasterB

Đừng quên xử lý những người dùng đang sử dụng các hệ điều hành khác ngoài Windows, họ có .net không?
HLGEM

@HLGEM, như đã đề cập, chúng tôi sẽ có một bản tải xuống riêng cho người dùng Mac có chứa ứng dụng khách gốc Mac tương tự. Người dùng Linux sẽ không thể sử dụng hỗ trợ tùy chọn này để truy cập dữ liệu ngoại tuyến và sẽ chỉ xem dữ liệu trực tuyến trong trình duyệt web của họ.
Erv Walter

Còn máy Mac thì sao?
JeffO

Bỏ lỡ khi thấy phần đó.
HLGEM

Câu trả lời:


15

Theo mặc định, Windows XP không bao gồm bất kỳ phiên bản nào của .NET framework. Vista và Server 2008 bao gồm .NET Framework 3.0, Windows 7 và Server 2008R2 bao gồm .NET 3.5 và Windows 2000 không thể hỗ trợ bất cứ điều gì trên .NET 2.0.

Với ý nghĩ đó, nó đi xuống hệ điều hành trong đối tượng mục tiêu của bạn. Tôi sẽ liệt kê các yêu cầu nổi bật trên trang tải xuống và cung cấp một liên kết đến phần Cập nhật / Tải xuống của Microsoft để tải xuống khung, ngoài việc tải xuống ứng dụng của bạn.


7

Tôi không biết có hợp lý không khi yêu cầu họ có hay không. Tuy nhiên, tôi biết rằng khách hàng thường không hợp lý, vì vậy tôi không thấy điều đó quan trọng. Nếu bạn đang giao dịch với một số lượng khách hàng hạn chế, hãy hỏi họ. Nếu bạn đang giao dịch với nhiều khách hàng hơn bạn có thể nói chuyện hợp lý hoặc bạn sẽ tiếp đón khách hàng theo thời gian, chỉ cần đảm bảo rằng họ thấy yêu cầu trước khi mua.


7

Người dùng của bạn đang dùng phiên bản Windows nào?

Nếu là Windows Vista, họ sẽ cài đặt .NET 3 theo mặc định và nếu là Windows 7, họ sẽ có phiên bản 3.5. Nguồn .

Điều đó không giúp ích gì nếu họ sử dụng XP, nhưng vì Microsoft vừa ngừng hỗ trợ cho SP2 nên họ sẽ có mặt trên SP3.

Nếu bạn sử dụng một cái gì đó như "ClickOnce" (có sẵn các trình cài đặt khác), bạn có thể đặt phiên bản .NET framework có liên quan thành điều kiện tiên quyết và nó sẽ tải xuống và cài đặt nó cho bạn - nó không có trong trình cài đặt của bạn . Nếu bạn lo lắng về kích thước tải xuống, bạn có thể truy cập .NET 3.5 hoặc 4 và tạo Hồ sơ khách hàng là bản tải xuống nhỏ hơn nhiều, mặc dù phiên bản .NET 4 linh hoạt hơn.


Bất cứ ai trong công chúng nói chung có thể là người dùng. Tôi hy vọng chúng ta sẽ có một số người vẫn còn trên XP.
Erv Walter

4

Một thời gian trước tôi đã đọc một số bài đăng từ Paint.NET về quá trình cài đặt và cách cải thiện nó. Có một cái nhìn vào hai mục blog. Phần đầu tiên mô tả sự lúng túng khi cài đặt .NET Framework một cách riêng biệt; phần thứ hai mô tả cách tác giả tích hợp nó như là một phần của bản cài đặt.

Trải nghiệm cài đặt Paint.NET - Phần 1, phiên bản 3.xx (cách xấu cũ)
Trải nghiệm cài đặt Paint.NET - Phần 2, phiên bản 4.0 (cách tốt mới)

Vì vậy, ngay cả khi bạn sẽ yêu cầu .NET Framework và bạn không chắc liệu người dùng sẽ có nó hay không, ít nhất bạn có thể tích hợp cài đặt của nó với ứng dụng của bạn một cách hợp lý không gây đau đớn.


3

Nhiều người dùng doanh nghiệp không có trên phiên bản Windows mới nhất (Vẫn trên XP), nhưng tôi nghĩ rằng nhiều người dùng gia đình đã nâng cấp vì phần cứng mới. Tải xuống và cài đặt là một chút đau đớn. Tập tin này thường là một lần cho mỗi khách hàng hay họ sẽ tiếp tục nhận các tập tin trong tương lai?

Lựa chọn khác của bạn là gì? Mật khẩu được bảo vệ bằng các tệp Acrobat? Nó sẽ dễ dàng hơn rất nhiều để chặn: lưu, in, sao chép và dán.

Có vẻ như bạn đang phát minh lại bánh xe, nhưng tôi không có tất cả các chi tiết cụ thể.


Các tệp PDF được mã hóa có thể là một giải pháp khả thi và tôi nghĩ sẽ hợp lý hơn khi giả sử trình đọc acrobat (ít nhất là trên Windows). Chúng tôi đang cố gắng tránh phát minh lại bánh xe :) Giải pháp lý tưởng sẽ chỉ là một tệp zip được mã hóa, nhưng Windows không hỗ trợ giải mã các tệp zip sử dụng mã hóa AES và giả sử mọi người có WinZip khó xảy ra hơn .NET tôi nghĩ.
Erv Walter

PS Phần lớn là người dùng gia đình và họ sẽ nhận được các tệp cập nhật định kỳ (tức là không chỉ tải xuống một lần).
Erv Walter

Tôi nghĩ rằng một giải pháp .NET sẽ làm việc. Người dùng sẽ có Acrobat, nhưng tôi không biết liệu có vấn đề cấp phép nào ở phía bạn để tạo các tệp được mã hóa hay không.
JeffO

3

Tôi đã thực hiện một số nghiên cứu về chủ đề này bằng cách theo dõi dữ liệu trên hơn 10000 cài đặt trên toàn thế giới cho một ứng dụng máy tính để bàn nhắm mục tiêu .Net Framework 3.5 sp1. Chỉ một bó (khoảng 10) không được cài đặt khung phù hợp. Tôi đã xóa tệp cài đặt khung .net nặng khỏi trình cài đặt và không nhận thấy bất kỳ vấn đề nào.

Tôi đặc biệt khuyên bạn nên tiến hành nghiên cứu tương tự trong thị trường của bạn và quyết định dựa trên kết quả thay vì dựa trên câu trả lời bạn có thể nhận được trên các cộng đồng như thế này.


Hoặc có lẽ những người chưa cài đặt .NET không bao giờ bận tâm với chương trình của bạn. Bạn có thể giới hạn cơ sở người dùng của riêng mình, đặc biệt đối với người dùng mới, những người không nâng cấp từ phiên bản trước của chương trình.
Lie Ryan

Nói dối, đó chính xác là lý do tại sao bạn cần tiến hành nghiên cứu OWN của mình. Cơ sở khách hàng của tôi có lẽ là rất nhiều khác nhau mà bạn. Số liệu thống kê trực tuyến sẽ không giúp bạn.

Không, ý tôi là nếu bạn tiến hành một nghiên cứu trên cơ sở chi phí của riêng bạn, họ đang nâng cấp (trong trường hợp đó, họ đã có .NET) hoặc họ là người dùng mới (trong trường hợp đó, họ đã biết về chương trình của bạn yêu cầu). Dù bằng cách nào, việc nghiên cứu cơ sở chi phí của riêng bạn rất có thể bị sai lệch về việc có .NET. Nhiều người dùng mới tiềm năng có thể bị tắt khi họ đọc chương trình của bạn yêu cầu .NET và tìm kiếm một giải pháp khác. Bạn đang giới hạn cơ sở khách hàng mới của riêng bạn, nếu bạn quyết định dựa trên điều đó.
Lie Ryan

10.000 người chỉ là những người dùng mới không biết gì về các yêu cầu (họ không được công bố, chỉ là một liên kết tải xuống để thực thi).

1

Phụ thuộc vào nhân khẩu học của bạn ...

Nếu tôi muốn bất cứ ai [1] có thể sử dụng nó, tôi sẽ hoàn thiện ứng dụng 32 bit chạy trên Win98 và W7.

Điều đó có thể có nghĩa là công cụ C ++ / MFC.

[1] Bất cứ ai có máy dưới 12 tuổi có kết nối internet đang chạy Windows 98+.


Vì vậy, "bất cứ ai" không bao gồm người dùng không phải Windows? -Cảm thấy buồn vì tôi chẳng là ai-
thay thế vào

@mathepic - người hỏi đã tuyên bố rõ ràng rằng câu hỏi này liên quan đến phân phối Windows và có các bản phân phối Mac và Linux riêng biệt mà anh ta không hỏi về câu hỏi này.
Carson63000

1
Hoặc công cụ Delphi / VCL - nhưng sử dụng phiên bản cũ hơn. C / C ++ không phải là ngôn ngữ mẹ đẻ duy nhất cho Windows. Hoặc thậm chí VB6 (xin lỗi để thề).
Gerry

@Gerry: Đúng vậy. :) Tôi chỉ chưa nghe Delphi băng bó nhiều trong 8 năm qua nên tôi không quen nghĩ đến.
Paul Nathan

Thật. Tôi đã làm việc với nó được 12 năm và rất khó tìm được việc làm lâu dài, thật đáng tiếc vì nó đã thấy nhiều cải tiến (Unicode đầy đủ, khái quát, phương pháp ẩn danh (đóng cửa)) trong vài năm qua,
Gerry


-4

Nếu bạn biết, 100% khách hàng của bạn không có nó, tại sao bạn lại mã hóa ứng dụng bằng .net?

Bạn có thể đã sử dụng Java và tạo Ứng dụng Web-Start.

Nhưng trên thực tế, bạn có thể gói khung .net với trình cài đặt. Nếu Khách hàng tin tưởng bạn cài đặt Ứng dụng của mình, anh ta cũng sẽ cài đặt .net.


7
Một ứng dụng khởi động web Java sẽ yêu cầu Java cũng tệ như yêu cầu .NET. Và chúng tôi không thể bao gồm .NET trong trình cài đặt, điều đó sẽ khiến quá trình tải xuống quá lớn. Như đã đề cập, chúng tôi đang tìm kiếm một bản tải xuống nhỏ (ví dụ 100k trở xuống).
Erv Walter

Ứng dụng khởi động web Java cũng chậm!
DL

Bạn đã không viết về kích thước tải xuống 100K.
ckuetbach

Xin lỗi về điều đó không rõ ràng hơn (tôi sẽ chỉnh sửa), nhưng nó được ngụ ý bởi "và chúng tôi muốn tải xuống phải nhỏ một cách hợp lý."
Erv Walter

-6

Chỉ cần đảm bảo rằng gói bạn gửi có chứa một phụ thuộc vào phiên bản bắt buộc của khung. Sau đó, trình quản lý gói mà người dùng có sẽ kéo phiên bản khung cần thiết và cài đặt nó trước gói của bạn.

Ồ, hệ điều hành bạn nhắm đến có một hệ thống quản lý gói rất tê liệt, không thể làm điều này? Nó sẽ là một hệ điều hành tồi. Chà, sau đó bạn chỉ có một tùy chọn: yêu cầu khung này được cài đặt và cung cấp liên kết để người dùng thực hiện. Tôi không thấy người dùng được hưởng lợi như thế nào, nếu một phần đáng chú ý trong những gì nhà phát triển làm được dành cho khả năng tương thích vô dụng với các công cụ HĐH "tiêu chuẩn" (lần này có thể được sử dụng để sửa lỗi và thêm tính năng thay thế).


Nhiều như tôi thấy làm thế nào câu trả lời (hơi trung thực) này có thể được xem là FUD, tôi không thấy ai giải thích về downvote ...
thay thế vào

10
Giải thích về downvote của tôi: Pavel hoàn toàn không có gì hữu ích khi trả lời câu hỏi, chỉ cần nắm lấy cơ hội để đánh bại Windows.
Carson63000

1
Thậm chí tốt hơn, sử dụng ngôn ngữ không yêu cầu một nhóm thư viện khổng lồ để tạo ra bất cứ thứ gì có giá trị trong khi, ví dụ Delphi trên Windows;)
Gerry

1
@Gerry, toàn bộ vấn đề là các nhà phát triển muốn sử dụng ngôn ngữ họ biết và thấy hiệu quả, điều này sẽ tăng tốc độ phát triển của họ và cho phép sử dụng lại nỗ lực đưa vào các thư viện này.
P Shved

1
Trong các thư viện thế giới Delphi (thương mại và mã nguồn mở) thường chỉ được cài đặt trên các máy phát triển - mọi thứ (trừ hệ điều hành và các DLL thứ ba do bên thứ ba cung cấp) được biên dịch thành một exe duy nhất. Nhưng đôi khi các thư viện OSS-C được gói trong DLL để gọi từ Delphi
Gerry
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.