Чи розумно припускати / вимагати .NET рамки в наші дні?


24

Фон:

У мене є проект, де мені потрібно надати користувачеві завантажувальний пакет з деякими конфіденційними даними в ньому. Дані потрібно зашифрувати. Після завантаження їх потрібно мати можливість переглядати (редагування не потрібно). Для цього питання давайте наблизимо дані до серії статичних html-файлів. Оскільки дані є чутливими, їх потрібно зашифрувати будь-який час, коли вони знаходяться на диску.

Ми думаємо надати користувачеві можливість завантаження, яка б надала їм zip-файл, що містить два файли:

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

Додаткові дані:

  • Користувачі не під нашим контролем. Вони споживачі.
  • Ми не стурбовані крос-платформою в цьому питанні. Мова йде лише про Windows. У нас буде окреме завантаження для користувачів Mac.

До питання вже:

Для цього додатка, який нам потрібно створити, ми внутрішньо обговорюємо, чи розумним для цього додатка є .NET winforms. Ми хочемо одного .exe, і ми хочемо, щоб завантаження було досить невеликим (наприклад, 100 кб).

  • Чи сміємо ми використовувати .NET-фреймворк (нам не потрібно використовувати особливо недавню версію .NET - 2.0, це було б добре)?
  • Чи обґрунтовано припускати, що зараз у більшості споживачів є .NET на своїх машинах через оновлення Windows?
  • Чи доцільно запитати тих, хто цього не має, щоб встановити його?

Ми знаємо, що не 100% користувачів матимуть .NET. Справжнє питання полягає в тому, чи розумно попросити їх мати це в цей день і вік.

PS Хто-небудь знає якісь достовірні статистичні дані про те, який відсоток людей насправді вже встановлений .NET?


Майте на увазі .NET повинні бути встановлені, а не пошкоджені / відсутні файли.
GrandmasterB

Не забудьте обробляти користувачів, які перебувають на інших операційних системах, крім Windows, якби вони мали .net?
HLGEM

@HLGEM, як згадувалося, ми будемо мати окреме завантаження для користувачів Mac, що містить схожий клієнт для Mac. Користувачі Linux просто не зможуть використовувати цю додаткову підтримку для доступу до даних в автономному режимі, і доведеться просто переглядати дані в Інтернеті у своєму веб-браузері.
Ерв ​​Вальтер

А що з Маками?
JeffO

Пропустив побачити цю частину.
HLGEM

Відповіді:


15

За замовчуванням Windows XP не містить жодної версії рамки .NET. Vista і Server 2008 включають .NET Framework 3.0, Windows 7 і Server 2008R2 включають .NET 3.5, а Windows 2000 не підтримує нічого вище .NET 2.0.

Зважаючи на це, справа зводиться до поширення ОС у вашій цільовій аудиторії. Я б переклав вимогу на чільне місце на сторінці завантаження та надав посилання на розділ "Оновлення / завантаження Microsoft" для завантаження рамки, окрім завантаження програми.


7

Я не знаю, чи розумно просити їх мати його чи ні. Однак я знаю, що клієнти часто нерозумні, тому не бачу, що це має значення. Якщо ви маєте справу з обмеженою кількістю клієнтів, запитайте їх. Якщо ви маєте справу з більшою кількістю клієнтів, ніж ви можете розумно поговорити, або збираєтесь забирати клієнтів з часом, просто переконайтеся, що вони бачать вимогу перед покупкою.


7

На якій версії Windows користуються ваші користувачі?

Якщо це Windows Vista, вони матимуть .NET 3 за замовчуванням, а якщо це Windows 7, у них буде версія 3.5. Джерело .

Це не допомагає, якщо вони на XP, але оскільки Microsoft щойно припинила підтримку SP2, вони повинні бути на SP3.

Якщо ви використовуєте щось на кшталт "ClickOnce" (є інші програми для встановлення), ви можете зробити відповідну версію рамки .NET необхідною умовою, і вона завантажить та встановить її для вас - вона не включена у ваш інсталятор . Якщо ви турбуєтесь про розмір завантаження, ви можете перейти до .NET 3.5 або 4 та зробити профіль клієнта, який завантажує набагато менше, хоча версія .NET 4 є більш гнучкою.


Будь-хто в цілому може бути користувачем. Я би сподівався, що у нас ще буде кілька людей на XP.
Ерв ​​Вальтер

4

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

Досвід встановлення Paint.NET - частина 1, версія 3.xx (старий поганий спосіб)
Досвід встановлення Paint.NET - частина 2, версія 4.0 (новий хороший спосіб)

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


3

Багато корпоративних користувачів не в останній версії Windows (все ще на XP), але я думаю, що більшість домашніх користувачів оновили через нове обладнання. Завантаження та встановлення - це трохи біль. Це файл, як правило, разова річ на кожного клієнта чи надалі вони отримуватимуть файли?

Які ще ваші варіанти? Чи достатньо файлів Acrobat, захищених паролем? Блокувати було б набагато простіше: збереження, друк, копіювання та вставлення.

Здається, ви винаходите колесо, але я не маю всіх особливостей.


Зашифровані PDF-файли можуть бути прийнятним рішенням, і я вважаю, що більш розумним вважати зчитувач акробатів (принаймні в Windows). Ми намагаємось уникнути винаходиння колеса :) Ідеальним рішенням буде просто зашифрований поштовий файл, але Windows не підтримує розшифровування поштових файлів, які використовують шифрування 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 (вибачте, що присягаєте).
Геррі

@Gerry: Правда. :) За останні 8 років я просто не чув, щоб Delphi багато перев'язувала, тому я не звикла думати.
Пол Натан

Справді. Я працював з цим протягом 12 років, і мені важко знайти постійну роботу, що шкода, оскільки за останні пару років він побачив багато вдосконалень (повний Unicode, генерики, анонімні методи (закриття)),
Джеррі


-4

Якщо ви знаєте, що у 100% ваших клієнтів цього немає, чому ви кодували програму за допомогою .net?

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

Але насправді ви можете зв’язати .net Framework з інсталятором. Якщо Клієнт довіряє вам встановити Вашу програму, він також встановить .net.


7
Програма для веб-запуску Java потребує Java, яка так само погана, як і .NET. І ми не можемо включити .NET в інсталятор, що зробить завантаження занадто великим. Як вже було сказано, ми шукаємо невелике завантаження (тобто 100 Кб або менше).
Ерв ​​Вальтер

Програма для веб-запуску Java теж повільна!
DL

Ви не писали про розмір завантаження 100K.
ckuetbach

Вибачте, що це не було явніше (я редагую), але це малося на увазі: "і ми хочемо, щоб завантаження було досить невеликим".
Ерв ​​Вальтер

-6

Просто переконайтеся, що пакет, який ви постачаєте, містить залежність від необхідної версії фреймворку. Тоді менеджер пакунків, який має користувач, витягне необхідну версію рамки та встановить її перед вашим пакетом.

О, операційна система, на яку ви орієнтуєтесь, має дуже калічену систему управління пакунками, яка не може цього зробити? Це повинна бути погана ОС тоді. Ну, тоді у вас є лише один варіант: вимагайте встановити цей фреймворк і надати користувачеві посилання для цього. Я не бачу, як користувачі приносять користь, якщо помітна частина того, що роблять розробники, присвячена марній сумісності зі "стандартними" інструментами ОС (цей час можна витратити на виправлення помилок та замість додавання функцій).


Наскільки я бачу, як ця (дещо правдива) відповідь може розглядатися як FUD, я не бачу, щоб хто-небудь пояснював downvotes ...
альтернатива

10
Пояснення мого голосування: Павло не запропонував абсолютно нічого корисного у відповідь на запитання, просто скористався можливістю розбити Windows.
Carson63000

1
Ще краще, використовуйте мову, яка не потребує величезного набору бібліотек, щоб створити щось вартісне, наприклад, Delphi у Windows;)
Джеррі

1
@Gerry, вся справа в тому, що розробники хочуть використовувати мову, яку вони знають, і вважають продуктивною, що сприяло б збільшенню швидкості їхнього розвитку та дозволило б повторно використовувати зусилля, що вкладаються в ці бібліотеки.
П Швед

1
У світі Delphi бібліотеки (комерційні та з відкритим кодом) зазвичай встановлюються лише на розроблювальних машинах - все (крім ОС та випадкових сторонніх DLL, наданих сторонніми сторонами) збирається в єдиний екзе. Але іноді бібліотеки OSS-C загортаються в DLL, щоб зателефонувати з Delphi
Джеррі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.