Czy uzasadnione jest założenie / wymaganie frameworku .NET w dzisiejszych czasach?

24

Tło:

Mam projekt, w którym muszę dostarczyć użytkownikowi pakiet do pobrania zawierający pewne wrażliwe dane. Dane muszą być zaszyfrowane. Po pobraniu muszą być w stanie je wyświetlić (nie wymaga edycji). W przypadku tego pytania przybliżmy dane jako ciąg statycznych plików HTML. Ponieważ dane są wrażliwe, należy je zaszyfrować za każdym razem, gdy znajdują się na dysku.

Myślimy o udostępnieniu użytkownikowi opcji pobierania, która dałaby mu plik zip zawierający dwa pliki:

  • Plik danych (prawdopodobnie użylibyśmy zaszyfrowanego pliku zip za kulisami) z danymi, o które prosili
  • Aplikacja do przeglądania danych, które odpowiednio monitowałyby o hasło i obsługiwały deszyfrowanie danych i wyświetlanie ich za pomocą wbudowanej przeglądarki internetowej.

Dodatkowe Szczegóły:

  • Użytkownicy nie są pod naszą kontrolą. Oni są konsumentami.
  • W tym pytaniu nie martwimy się o wiele platform. Dotyczy to tylko systemu Windows. Będziemy mieli osobny plik do pobrania dla użytkowników komputerów Mac.

Przejdź do pytania już:

W przypadku tej aplikacji, którą musimy utworzyć, wewnętrznie debatujemy, czy uzasadnione jest, aby ta aplikacja była .NET winforms. Chcemy pojedynczego pliku .exe i chcemy, aby pobieranie było względnie małe (np. 100 KB).

  • Czy odważymy się korzystać z .NET Framework (nie musimy używać szczególnie najnowszej wersji .NET - 2.0 byłoby dobrze)?
  • Czy można założyć, że większość klientów ma teraz .NET na swoich komputerach z powodu Windows Update?
  • Czy rozsądnie jest poprosić tych, którzy go nie mają, aby go zainstalować?

Wiemy, że nie 100% użytkowników będzie miało zainstalowany .NET. Prawdziwe pytanie brzmi, czy rozsądnie jest poprosić ich o to w dzisiejszych czasach.

PS Czy ktoś wie o jakichkolwiek wiarygodnych statystykach, jaki procent osób faktycznie ma już zainstalowany .NET?

Erv Walter
źródło
Pamiętaj, że .NET musi być zainstalowany i nie może być uszkodzony / brakuje plików.
GrandmasterB
Nie zapomnij obsługiwać użytkowników, którzy korzystają z innych systemów operacyjnych niż Windows, czy nie mają oni .net?
HLGEM,
@HLGEM, jak wspomniano, będziemy mieli osobne pobieranie dla użytkowników komputerów Mac, które zawiera podobnego klienta natywnego dla komputerów Mac. Użytkownicy Linuksa po prostu nie będą mogli korzystać z tej opcjonalnej obsługi dostępu do danych offline i będą musieli tylko przeglądać dane online w przeglądarce internetowej.
Erv Walter,
Co z komputerami Mac?
JeffO,
Nie widziałem tej części.
HLGEM

Odpowiedzi:

15

Domyślnie system Windows XP nie zawiera żadnej wersji środowiska .NET. Vista i Server 2008 obejmują .NET Framework 3.0, Windows 7 i Server 2008R2 obejmują .NET 3.5, a Windows 2000 nie obsługuje niczego powyżej .NET 2.0.

Mając to na uwadze, sprowadza się to do rozpowszechnienia systemu operacyjnego wśród docelowych odbiorców. Wymieniłbym to wymaganie w widocznym miejscu na stronie pobierania i podałem link do sekcji Microsoft Update / Pobieranie do pobrania frameworka, oprócz pobrania aplikacji.

Adam Lear
źródło
7

Nie wiem, czy rozsądnie jest poprosić ich o to, czy nie. Wiem jednak, że klienci są często nierozsądni, więc nie widzę, żeby to miało znaczenie. Jeśli masz do czynienia z ograniczoną liczbą klientów, zapytaj ich. Jeśli masz do czynienia z większą liczbą klientów, niż możesz rozsądnie rozmawiać, lub zamierzasz pozyskać klientów w miarę upływu czasu, upewnij się, że widzą wymaganie przed zakupem.

David Thornley
źródło
7

W jakiej wersji systemu Windows są Twoi użytkownicy?

Jeśli jest to Windows Vista, będą domyślnie mieć zainstalowany .NET 3, a jeśli jest to Windows 7, będą mieć wersję 3.5. Źródło .

To nie pomaga, jeśli są na XP, ale ponieważ Microsoft właśnie przestał obsługiwać dodatek SP2, powinien być na dodatku SP3.

Jeśli używasz czegoś takiego jak „ClickOnce” (dostępne są inne instalatory), możesz uczynić odpowiednią wersję .NET Framework wymaganą, a ona ją pobierze i zainstaluje za Ciebie - nie jest zawarta w twoim instalatorze . Jeśli martwisz się wielkością pliku do pobrania, możesz przejść do .NET 3.5 lub 4 i ustawić profil klienta, który jest znacznie mniejszy do pobrania, chociaż wersja .NET 4 jest bardziej elastyczna.

ChrisF
źródło
Każdy użytkownik może być użytkownikiem. Spodziewałbym się, że nadal będziemy mieć kilku ludzi na XP.
Erv Walter,
4

Jakiś czas temu przeczytałem kilka postów z Paint.NET na temat procesu instalacji i jak to poprawić. Spójrz na te dwa wpisy na blogu. Pierwszy opisuje niewygodne instalowanie .NET Framework osobno; drugi opisuje, w jaki sposób autor zintegrował go w ramach instalacji.

Doświadczenie instalacji Paint.NET - Część 1, wersja 3.xx (stary zły sposób)
Doświadczenie instalacji Paint.NET - Część 2, wersja 4.0 (nowy dobry sposób)

Więc nawet jeśli będziesz potrzebować .NET Framework i nie masz pewności, czy użytkownicy go będą mieli, możesz przynajmniej zintegrować jego instalację z aplikacją w dość bezbolesny sposób.

Kyralessa
źródło
3

Wielu użytkowników korporacyjnych nie korzysta z najnowszej wersji systemu Windows (wciąż na XP), ale myślę, że więcej użytkowników domowych dokonało aktualizacji z powodu nowego sprzętu. Pobieranie i instalacja jest trochę uciążliwe. Czy ten plik jest zwykle jednorazowy dla każdego klienta, czy będzie nadal pobierał pliki w przyszłości?

Jakie masz inne opcje? Czy pliki Acrobat są chronione hasłem? O wiele łatwiej byłoby zablokować: zapisywanie, drukowanie, kopiowanie i wklejanie.

Wygląda na to, że wymyślasz koło na nowo, ale nie znam wszystkich szczegółów.

JeffO
źródło
Zaszyfrowane pliki PDF mogą być praktycznym rozwiązaniem i myślę, że rozsądniej jest założyć program Acrobat Reader (przynajmniej w systemie Windows). Staramy się nie wymyślać na nowo koła :) Idealnym rozwiązaniem byłby po prostu zaszyfrowany plik zip, ale system Windows nie obsługuje odszyfrowywania plików zip, które używają szyfrowania AES, i zakładając, że ludzie mają WinZip, jest znacznie mniej prawdopodobne niż .NET.
Erv Walter,
PS W dużej mierze są to użytkownicy domowi i będą oni okresowo aktualizować pliki (tj. Nie tylko jednorazowe pobieranie).
Erv Walter,
Myślę, że rozwiązanie .NET będzie działać. Użytkownicy mieliby Acrobat, ale nie wiem, czy masz problemy z licencjonowaniem, aby utworzyć zakodowane pliki.
JeffO,
3

Przeprowadziłem badania na ten temat, śledząc dane dotyczące ponad 10000 instalacji na całym świecie dla aplikacji komputerowej ukierunkowanej na .Net Framework 3.5 sp1. Tylko kilka (około 10) nie ma zainstalowanego odpowiedniego frameworka. Usunąłem ciężki plik instalacyjny środowiska .net z instalatora i nie zauważyłem jeszcze żadnego problemu.

Gorąco sugeruję, abyś przeprowadził to samo badanie na swoim rynku i zdecydował na podstawie wyników, a nie odpowiedzi, jakie możesz uzyskać w społecznościach takich jak ta.


źródło
Lub prawdopodobnie osoby, które nie mają już zainstalowanej platformy .NET, nigdy nie przejmowały się twoim programem. Być może ograniczasz własną bazę użytkowników, szczególnie dla nowych użytkowników, którzy nie dokonują aktualizacji z poprzedniej wersji programu.
Lie Ryan,
Kłamstwo, właśnie dlatego musisz przeprowadzić własne studia. Moja baza klientów prawdopodobnie różni się znacznie od twojej. Statystyki online też ci nie pomogą.
Nie, miałem na myśli to, że przeprowadzasz badanie na własnej bazie klientów, albo aktualizują się (w tym przypadku mają już platformę .NET), albo są nowymi użytkownikami (w takim przypadku już się dowiedzieli o programie wymaganie). Tak czy inaczej, studiowanie własnej bazy klientów jest bardzo skłonne do posiadania platformy .NET. Wielu potencjalnych nowych użytkowników zostanie prawdopodobnie wyłączonych, gdy będą czytać Twój program .NET i szuka innego rozwiązania. Ograniczasz swoją własną bazę nowych klientów, jeśli opierasz na tym swoją decyzję.
Lie Ryan,
10.000 to tylko nowi użytkownicy, którzy nie wiedzieli nic o wymaganiach (nie są publikowani, tylko link do pliku wykonywalnego).
1

Zależy od twoich danych demograficznych ...

Gdybym chciał, żeby ktokolwiek [1] mógł z niego korzystać, sfinalizowałbym 32-bitową aplikację, która działałaby na Win98 i W7.

To prawdopodobnie oznacza C ++ / MFC.

[1] Każdy, kto ma maszynę młodszą niż 12 lat i ma połączenie internetowe z systemem Windows 98+.

Paul Nathan
źródło
Więc „ktoś” nie obejmuje użytkowników innych niż Windows? -czuje smutek, że jestem nikim-
alternatywa
@mathepic - pytający już jasno stwierdził, że to pytanie dotyczy dystrybucji Windows i że istnieją osobne dystrybucje na Maca i Linuksa, o które nie pyta w tym pytaniu.
Carson63000,
1
Lub rzeczy Delphi / VCL - ale używaj starszej wersji. C / C ++ nie jest jedynym językiem ojczystym dla Windows. Lub nawet VB6 (przykro mi, że przysięgam).
Gerry
@Gerry: True. :) Po prostu nie słyszałem, żeby Delphi dużo bandażowało przez ostatnie 8 lat, więc nie jestem przyzwyczajony do myślenia.
Paul Nathan
W rzeczy samej. Pracowałem z nim przez 12 lat, a ja trudno jest znaleźć stałe zatrudnienie, co jest szkoda, ponieważ widział wiele ulepszeń (pełne Unicode, leki generyczne, anonimowe metody (zamknięcia)) w ciągu ostatnich kilku lat
Gerry
-4

Jeśli wiesz, że 100% Twoich klientów go nie ma, dlaczego napisałeś aplikację w .net?

Możesz użyć Java i utworzyć aplikację Web-Start.

Ale w rzeczywistości można połączyć platformę .net z instalatorem. Jeśli klient ufa, że ​​zainstalowałeś aplikację, on również zainstaluje .net.

Ckuetbach
źródło
7
Aplikacja webowa Java wymagałaby oprogramowania Java, które jest tak samo złe, jak wymaganie .NET. I nie możemy dołączyć .NET do instalatora, co spowodowałoby, że pobieranie byłoby zbyt duże. Jak wspomniano, szukamy małego pobrania (tj. 100 KB lub mniej).
Erv Walter,
Aplikacja webowa Java również działa wolno!
DL
Nie napisałeś o rozmiarze pobierania 100K.
ckuetbach,
Przepraszam, że nie było to bardziej jednoznaczne (będę edytować), ale sugerowało to: „i chcemy, aby pobieranie było dość małe”.
Erv Walter,
-6

Upewnij się tylko, że wysyłany pakiet zawiera zależność od wymaganej wersji frameworka. Następnie menedżer pakietów, który użytkownik ma, pobierze niezbędną wersję frameworka i zainstaluje ją przed pakietem.

Och, docelowy system operacyjny ma bardzo sparaliżowany system zarządzania pakietami, który nie może tego zrobić? Powinien to być zły system operacyjny. Cóż, wtedy masz tylko jedną opcję: wymagaj zainstalowania tego frameworka i podaj link, aby to zrobić. Nie widzę korzyści dla użytkowników, jeśli zauważalna część tego, co robią programiści, poświęcona jest bezużytecznej zgodności z „standardowymi” narzędziami systemu operacyjnego (ten czas można poświęcić na naprawę błędów i dodanie funkcji).

P Shved
źródło
O ile widzę, jak ta (nieco prawdziwa) odpowiedź może być postrzegana jako FUD, nie widzę, żeby ktoś tłumaczył negatywne opinie ...
alternatywa
10
Wyjaśnienie mojej opinii: Pavel nie zaoferował absolutnie nic pomocnego w odpowiedzi na to pytanie, po prostu skorzystał z okazji, by uderzyć Windows.
Carson63000,
1
Co więcej, używaj języka, który nie wymaga ogromnej puli bibliotek, aby produkować coś wartościowego, np. Delphi w systemie Windows;)
Gerry
1
@Gerry, chodzi o to, że programiści chcą używać języka, który znają, i uważają go za produktywny, co przyspieszy ich rozwój i pozwoli na ponowne wykorzystanie wysiłku włożonego w te biblioteki.
P Shved
1
W świecie Delphi biblioteki (komercyjne i Open Source) są zwykle instalowane tylko na komputerach programistycznych - wszystko (oprócz systemu operacyjnego i sporadycznych bibliotek DLL dostarczanych przez osoby trzecie) jest skompilowane w jednym pliku exe. Ale czasami biblioteki OSS-C są pakowane w biblioteki DLL do wywoływania z Delphi
Gerry