Разумно ли предполагать / требовать .NET Framework в наши дни?

24

Задний план:

У меня есть проект, в котором я должен предоставить пользователю пакет загрузки с некоторыми конфиденциальными данными в нем. Данные должны быть зашифрованы. После того, как они загрузят его, им нужно будет его просмотреть (редактирование не требуется). Для этого вопроса, давайте приблизим данные в виде ряда статических файлов HTML. Поскольку данные являются конфиденциальными, они должны быть зашифрованы в любое время на диске.

Мы подумываем предоставить пользователю возможность загрузки, которая даст ему zip-файл, содержащий два файла:

  • Файл данных (мы могли бы использовать зашифрованный zip-файл за кулисами) с данными, которые они запрашивали
  • Приложение для просмотра данных, которое соответствующим образом запрашивает парольную фразу и обрабатывает дешифрование данных и отображение их через встроенный веб-браузер.

Дополнительные детали:

  • Пользователи не находятся под нашим контролем. Они потребители.
  • Мы не беспокоимся о кроссплатформенности в этом вопросе. Это как раз о Windows. У нас будет отдельная загрузка для пользователей Mac.

Получить к вопросу уже:

Для этого приложения, которое нам нужно создать, мы внутренне обсуждаем, является ли разумным, чтобы это приложение было .NET winforms. Нам нужен один .exe, и мы хотим, чтобы загрузка была достаточно маленькой (например, 100 КБ).

  • Смеем ли мы использовать .NET Framework (нам не нужно использовать особенно последнюю версию .NET - было бы хорошо)?
  • Разумно ли предположить, что большинство потребителей теперь имеют на своих компьютерах .NET из-за Центра обновления Windows?
  • Разумно ли спрашивать тех, у кого его нет, чтобы установить его?

Мы знаем, что не у 100% пользователей будет установлен .NET. Реальный вопрос заключается в том, разумно ли попросить их иметь это в наши дни.

PS Кто-нибудь знает какие-либо достоверные статистические данные о том, какой процент людей на самом деле уже установил .NET?

Эрв Уолтер
источник
Имейте в виду, что .NET должен быть установлен, а не поврежден или отсутствует.
GrandmasterB
Не забудьте поработать с пользователями, которые работают в других операционных системах, кроме Windows, у них есть .net?
HLGEM
@HLGEM, как уже упоминалось, у нас будет отдельная загрузка для пользователей Mac, которая содержит аналогичный собственный клиент Mac. Пользователи Linux просто не смогут использовать эту дополнительную поддержку для автономного доступа к данным и должны будут просто просматривать данные онлайн в своем веб-браузере.
Эрв Уолтер
А как насчет Mac?
JeffO
Пропустил увидеть эту часть.
HLGEM

Ответы:

15

По умолчанию Windows XP не включает ни одной версии .NET Framework. Vista и Server 2008 включают в себя .NET Framework 3.0, Windows 7 и Server 2008R2 включают в себя .NET 3.5, а Windows 2000 не может поддерживать ничего выше .NET 2.0.

Имея это в виду, все сводится к распространению ОС в вашей целевой аудитории. Я бы перечислил это требование на странице загрузки и предоставил бы ссылку на раздел Microsoft Update / Downloads для загрузки платформы, в дополнение к загрузке приложения.

Адам Лир
источник
7

Я не знаю, разумно ли просить их иметь это или нет. Тем не менее, я знаю, что клиенты часто неразумны, поэтому я не вижу, что это имеет значение. Если вы имеете дело с ограниченным числом клиентов, спросите их. Если вы имеете дело с большим количеством клиентов, чем можете разумно поговорить, или собираетесь со временем подобрать клиентов, просто убедитесь, что они видят требования перед покупкой.

Дэвид Торнли
источник
7

На какой версии Windows работают ваши пользователи?

Если это Windows Vista, у них будет установлен .NET 3 по умолчанию, а если это Windows 7, у них будет версия 3.5. Источник .

Это не помогает, если они на XP, но поскольку Microsoft только что прекратила поддержку SP2, они должны быть на SP3.

Если вы используете что-то вроде «ClickOnce» (есть другие доступные установщики), вы можете сделать соответствующую версию .NET Framework обязательным условием, и она загрузит и установит ее для вас - она не включена в ваш установщик . Если вас беспокоит размер загружаемого файла, вы можете перейти на .NET 3.5 или 4 и создать клиентский профиль, который будет намного меньше, хотя версия .NET 4 более гибкая.

ChrisF
источник
Любой в широкой публике может быть пользователем. Я ожидал бы, что у нас будут некоторые люди все еще на XP.
Эрв Уолтер
4

Некоторое время назад я прочитал несколько сообщений из Paint.NET о процессе установки и о том, как его улучшить. Посмотрите на эти две записи в блоге. Первый описывает неловкость установки .NET Framework отдельно; второй описывает, как автор интегрировал его в процесс установки.

Опыт установки Paint.NET - Часть 1, версия 3.xx (старый плохой способ)
Опыт установки Paint.NET - Часть 2, версия 4.0 (новый хороший способ)

Таким образом, даже если вам потребуется .NET Framework, и вы не уверены, будут ли пользователи иметь его, вы можете, по крайней мере, безболезненно интегрировать его установку с приложением.

Kyralessa
источник
3

Многие корпоративные пользователи не используют последнюю версию Windows (все еще на XP), но я думаю, что все больше домашних пользователей обновились из-за нового оборудования. Загрузка и установка - это немного больно. Является ли этот файл обычно одноразовым для каждого клиента, или они будут продолжать получать файлы в будущем?

Какие у тебя другие варианты? Достаточно ли защищены паролем файлы Acrobat? Было бы намного проще заблокировать: сохранение, печать, копирование и вставка.

Кажется, ты изобретаешь колесо, но у меня нет всех деталей.

JeffO
источник
Зашифрованные PDF-файлы могли бы быть работоспособным решением, и я думаю, что было бы более разумно использовать Acrobat Reader (по крайней мере, в Windows). Мы стараемся не изобретать велосипед :) Идеальным решением будет просто зашифрованный zip-файл, но Windows не поддерживает дешифрование zip-файлов, использующих шифрование AES, и предположить, что люди используют WinZip, гораздо менее вероятно, чем .NET, я думаю.
Эрв Уолтер
PS В основном это домашние пользователи, и они будут периодически получать обновленные файлы (то есть не только разовую загрузку).
Эрв Уолтер
Я думаю, что решение .NET будет работать. У пользователей будет Acrobat, но я не знаю, есть ли у вас проблемы с лицензированием для создания зашифрованных файлов.
JeffO
3

Я провел некоторое исследование по этому вопросу, отслеживая данные более чем 10000 установок по всему миру для настольных приложений, ориентированных на .Net Framework 3.5 sp1. Только связка (около 10) не имела установленного фреймворка. Я удалил из установщика тяжелый установочный файл .net framework и никаких проблем пока не заметил.

Я настоятельно рекомендую вам провести такое же исследование на вашем рынке и принять решение, основываясь на результатах, а не на ответах, которые вы можете получить в сообществах, подобных этой.


источник
Или, возможно, люди, у которых нет установленного .NET, никогда не беспокоились о вашей программе. Возможно, вы ограничиваете собственную базу пользователей, особенно для новых пользователей, которые не обновляются с предыдущей версии вашей программы.
Ли Райан
Ложь, именно поэтому тебе нужно проводить свои собственные исследования. Моя клиентская база, вероятно, сильно отличается от вашей. Онлайн статистика вам тоже не поможет.
Нет, я имел в виду, если вы проводите исследование на своей базе клиентов, либо они обновлялись (в этом случае у них уже есть .NET), либо они являются новыми пользователями (в этом случае они уже узнали о вашей программе). требование). В любом случае, изучение собственной клиентской базы очень вероятно приведет к появлению .NET. Многие потенциальные новые пользователи могут быть отключены, когда они читают вашу программу, требующую .NET, и ищут другое решение. Вы ограничиваете свою собственную базу новых клиентов, если вы основываете свое решение на этом.
Ли Райан
10.000 - это только новые пользователи, которые ничего не знали о требованиях (они не публикуются, просто ссылка на скачивание исполняемого файла).
1

Зависит от вашей демографии ...

Если бы я хотел, чтобы кто-нибудь [1] мог его использовать, я бы нашел 32-битное приложение, которое будет работать на Win98 и W7.

Это, вероятно, означает C ++ / MFC.

[1] Любой, у кого есть компьютер моложе 12 лет, который подключен к Интернету, работает под управлением Windows 98+.

Пол Натан
источник
Таким образом, "кто-нибудь" не включает пользователей не-Windows? - грустно, что я никто
альтернатива
@mathepic - спрашивающий уже четко заявил, что этот вопрос касается дистрибутива Windows, и что существуют отдельные дистрибутивы Mac и Linux, о которых он не спрашивает в этом вопросе.
Carson63000
1
Или Delphi / VCL - но используйте более старую версию. C / C ++ не единственный родной язык для Windows. Или даже VB6 (извините, чтобы ругаться).
Джерри
@ Джерри: правда. :) Я только что не слышал, чтобы Delphi много болтал за последние 8 лет, поэтому я не привык думать.
Пол Натан
Верно. Я работал с ним в течение 12 лет, и мне трудно найти постоянную работу, что очень жаль, поскольку за последние пару лет он увидел множество улучшений (полный Unicode, дженерики, анонимные методы (замыкания)),
Джерри
-4

Если вы знаете, что у 100% ваших клиентов его нет, почему вы написали приложение с помощью .net?

Вы могли бы использовать Java и создать приложение для веб-запуска.

Но на самом деле вы можете связать .net framework с установщиком. Если Клиент доверяет вам установить Приложение, он также установит .net.

ckuetbach
источник
7
Для запуска веб-приложения на Java потребуется Java, который так же плох, как и .NET. И мы не можем включить .NET в установщик, это сделало бы загрузку слишком большой. Как уже упоминалось, мы ищем небольшую загрузку (т.е. 100 КБ или меньше).
Эрв Уолтер
Java запускает веб-приложение тоже медленно!
DL
Вы не написали о размере загрузки 100K.
ckuetbach
Извините за то, что это не было более явным (я отредактирую), но это подразумевалось, "и мы хотим, чтобы загрузка была достаточно маленькой".
Эрв Уолтер
-6

Просто убедитесь, что поставляемый вами пакет содержит зависимость от требуемой версии фреймворка. Затем менеджер пакетов, который есть у пользователя, извлечет необходимую версию фреймворка и установит ее перед вашим пакетом.

О, операционная система, на которую вы нацелены, имеет очень ограниченную систему управления пакетами, которая не может этого сделать? Это должна быть плохая ОС тогда. Ну, тогда у вас есть только один вариант: установить этот фреймворк и предоставить пользователю ссылку для этого. Я не вижу пользы для пользователей, если заметная часть того, что делают разработчики, посвящена бесполезной совместимости со «стандартными» инструментами ОС (это время можно потратить на исправление ошибок и добавление функций вместо этого).

П Швед
источник
Столько, сколько я вижу, как этот (несколько правдивый) ответ мог быть замечен как FUD, я не вижу никого, объясняющего отрицательные голоса ...
альтернатива
10
Объяснение моего понижения: Павел не предложил абсолютно ничего полезного в ответ на вопрос, просто воспользовался возможностью, чтобы взломать Windows.
Carson63000
1
Более того, используйте язык, который не требует огромного пула библиотек для создания чего-либо стоящего, например Delphi для Windows;)
Gerry
1
@ Джерри, суть в том, что разработчики хотят использовать язык, который они знают и считают продуктивным, что повысило бы их скорость разработки и позволило бы повторно использовать усилия, приложенные к этим библиотекам.
П Швед
1
В мире Delphi библиотеки (коммерческие и с открытым исходным кодом) обычно устанавливаются только на компьютерах разработчиков - все (кроме ОС и иногда предоставляемых сторонних разработчиков DLL) скомпилировано в один исполняемый файл. Но иногда библиотеки OSS-C обертываются в DLL для вызова из Delphi
Джерри