¿Es razonable asumir / requerir el marco .NET en estos días?

24

Fondo:

Tengo un proyecto en el que necesito proporcionar al usuario un paquete de descarga con algunos datos confidenciales. Los datos deben estar encriptados. Después de descargarlo, deben poder verlo (no es necesario editarlo). Para esta pregunta, aproximaremos los datos como una serie de archivos html estáticos. Debido a que los datos son confidenciales, deben cifrarse cada vez que están en el disco.

Estamos pensando en proporcionar al usuario una opción de descarga que le dé un archivo zip que contenga dos archivos:

  • Un archivo de datos (probablemente usaríamos un archivo zip cifrado detrás de escena) con los datos que solicitaron
  • Una aplicación para ver los datos que solicitarían una frase de contraseña y manejar el descifrado de los datos y mostrarlos a través de un navegador web incorporado.

Detalles adicionales:

  • Los usuarios no están bajo nuestro control. Son consumidores.
  • No nos preocupa la multiplataforma en esta pregunta. Esto es solo sobre Windows. Tendremos una descarga por separado para usuarios de Mac.

Vaya a la pregunta ya:

Para esa aplicación que necesitamos crear, estamos debatiendo internamente si es razonable que esa aplicación sea una aplicación .NET winforms. Queremos un único .exe, y queremos que la descarga sea razonablemente pequeña (por ejemplo, 100k).

  • ¿Nos atrevemos a usar el marco .NET (no necesitamos usar una versión particularmente reciente de .NET - 2.0 estaría bien)?
  • ¿Es razonable suponer que la mayoría de los consumidores tienen .NET en sus máquinas ahora debido a Windows Update?
  • ¿Es razonable preguntar a los que no lo tienen para instalarlo?

Sabemos que no el 100% de los usuarios tendrán instalado .NET. La verdadera pregunta es si es razonable pedirles que la tengan hoy en día.

PD: ¿Alguien sabe de alguna estadística confiable de qué porcentaje de personas ya tiene instalado .NET?

Erv Walter
fuente
Tenga en cuenta que .NET debe estar instalado y no tener archivos dañados / faltantes.
GrandmasterB
No se olvide de manejar usuarios que están en otros sistemas operativos además de Windows, ¿podrían tener .net?
HLGEM
@HLGEM, como se mencionó, tendremos una descarga por separado para usuarios de Mac que contiene un cliente nativo de Mac similar. Los usuarios de Linux simplemente no podrán usar este soporte opcional para el acceso a datos fuera de línea y tendrán que ver los datos en línea en su navegador web.
Erv Walter
¿Qué hay de las Mac?
JeffO
Eché de menos ver esa parte.
HLGEM

Respuestas:

15

De forma predeterminada, Windows XP no incluye ninguna versión del marco .NET. Vista y Server 2008 incluyen .NET Framework 3.0, Windows 7 y Server 2008R2 incluyen .NET 3.5, y Windows 2000 no puede admitir nada por encima de .NET 2.0.

Con eso en mente, todo se reduce a la extensión del sistema operativo en su público objetivo. Enumeraría el requisito de forma destacada en la página de descarga y proporcionaría un enlace a la sección Actualización / Descargas de Microsoft para la descarga del marco, además de la descarga de su aplicación.

Adam Lear
fuente
7

No sé si es razonable pedirles que lo tengan o no. Sin embargo, sé que los clientes a menudo no son razonables, por lo que no veo que sea importante. Si está tratando con un número limitado de clientes, pregúnteles. Si está tratando con más clientes de los que razonablemente puede hablar, o va a recoger clientes con el tiempo, solo asegúrese de que vean el requisito antes de comprar.

David Thornley
fuente
7

¿En qué versión de Windows están sus usuarios?

Si es Windows Vista, tendrán instalado .NET 3 por defecto y si es Windows 7 tendrán la versión 3.5. Fuente .

Eso no ayuda si están en XP, pero como Microsoft acaba de detener la compatibilidad con SP2, deberían estar en SP3.

Si usa algo como "ClickOnce" (hay otros instaladores disponibles) puede hacer que la versión relevante de .NET Framework sea un requisito previo y la descargará e instalará por usted; no está incluida en su instalador . Si le preocupa el tamaño de la descarga, puede ir a .NET 3.5 o 4 y crear el Perfil del cliente, que es una descarga mucho más pequeña, aunque la versión .NET 4 es más flexible.

ChrisF
fuente
Cualquiera en el público en general podría ser un usuario. Esperaría que todavía tengamos algunas personas en XP.
Erv Walter
4

Hace un tiempo leí algunas publicaciones de Paint.NET sobre el proceso de instalación y cómo mejorarlo. Echa un vistazo a estas dos entradas de blog. El primero describe la incomodidad de instalar .NET Framework por separado; el segundo describe cómo el autor lo integró como parte de la instalación.

La experiencia de instalación de Paint.NET - Parte 1, versión 3.xx (la antigua mala manera)
La experiencia de instalación de Paint.NET - Parte 2, versión 4.0 (la nueva buena manera)

Entonces, incluso si va a requerir .NET Framework, y no está seguro de si los usuarios lo tendrán, al menos puede integrar su instalación con su aplicación de una manera razonablemente indolora.

Kyralessa
fuente
3

Muchos usuarios corporativos no tienen la última versión de Windows (todavía en XP), pero creo que más usuarios domésticos se han actualizado debido al nuevo hardware. Descargar e instalar es un poco difícil. ¿Es este archivo generalmente una cosa única por cliente o continuarán obteniendo archivos en el futuro?

¿Cuáles son tus otras opciones? ¿Son suficientes los archivos Acrobat protegidos con contraseña? Sería mucho más fácil bloquear: guardar, imprimir, copiar y pegar.

Parece que estás reinventando la rueda, pero no tengo todos los detalles.

JeffO
fuente
Los PDF cifrados pueden ser una solución viable, y creo que es más razonable asumir un lector acrobat (al menos en Windows). Estamos tratando de evitar reinventar la rueda :) La solución ideal sería un archivo zip cifrado, pero Windows no admite descifrar archivos zip que usan cifrado AES y suponiendo que las personas tengan WinZip es mucho más improbable que .NET, creo.
Erv Walter
PD: es en gran medida usuarios domésticos y recibirán archivos actualizados periódicamente (es decir, no solo descargas únicas).
Erv Walter
Creo que una solución .NET funcionaría. Los usuarios tendrían Acrobat, pero no sé si hay problemas de licencia de su parte para crear los archivos cifrados.
JeffO
3

Investigué un poco sobre el tema rastreando datos en más de 10000 instalaciones en todo el mundo para una aplicación de escritorio dirigida a .Net Framework 3.5 sp1. Solo un grupo (aproximadamente 10) no tenía el marco adecuado instalado. Eliminé el pesado archivo de instalación de .NET Framework del instalador, y todavía no noté ningún problema.

Le recomiendo que realice el mismo estudio en su mercado y decida en función de los resultados en lugar de las respuestas que pueda obtener en comunidades como esta.


fuente
O probablemente las personas que no tienen un .NET ya instalado nunca se molestaron con su programa. Puede estar limitando su propia base de usuarios, especialmente para los nuevos usuarios, que no están actualizando desde una versión anterior de su programa.
Lie Ryan
Mentira, es exactamente por eso que necesitas llevar a cabo tus PROPIOS estudios. Mi base de clientes es probablemente muy diferente a la suya. Las estadísticas en línea tampoco te ayudarán.
No, lo que quise decir es que si realiza un estudio en su propia base de clientes, o estaban actualizando (en cuyo caso, ya tienen .NET) o son nuevos usuarios (en cuyo caso, ya han aprendido sobre el programa requisito). De cualquier manera, es muy probable que estudiar su propia base de clientes sea sesgado hacia tener .NET. Es probable que muchos usuarios nuevos potenciales se apaguen cuando lean que su programa requirió .NET y busque otra solución. Está limitando su propia base de nuevos clientes, si basa su decisión en eso.
Lie Ryan
Los 10.000 son solo usuarios nuevos que no sabían nada sobre los requisitos (no se publican, solo un enlace de descarga a un ejecutable).
1

Depende de su demografía ...

Si quisiera que alguien [1] pudiera usarlo, financiaría una aplicación de 32 bits que se ejecutaría en Win98 y W7.

Eso probablemente significa cosas de C ++ / MFC.

[1] Cualquier persona con una máquina menor de 12 años que tenga una conexión a Internet que ejecute Windows 98+.

Paul Nathan
fuente
¿Entonces "cualquiera" no incluye a los usuarios que no son de Windows? -se siente triste de que no soy nadie-
alternativa
@mathepic: el interrogador ya ha declarado claramente que esta pregunta se refiere a la distribución de Windows y que hay distribuciones separadas de Mac y Linux que no está preguntando en esta pregunta.
Carson63000
1
O cosas de Delphi / VCL, pero use una versión anterior. C / C ++ no es el único idioma nativo para Windows. O incluso VB6 (perdón por jurar).
Gerry
@Gerry: Cierto. :) Simplemente no había escuchado a Delphi hablar mucho en los últimos 8 años, así que no estoy acostumbrado a pensar en eso.
Paul Nathan
En efecto. He trabajado con él durante 12 años, y me resulta difícil encontrar empleo permanente, lo cual es una pena, ya que ha visto muchas mejoras (Unicode completo, genéricos, métodos anónimos (cierres)) en los últimos años,
Gerry
-4

Si sabe que el 100% de sus clientes no lo tienen, ¿por qué codificó la aplicación con .net?

Podría haber usado Java y crear una aplicación de inicio web.

Pero, de hecho, puede agrupar el marco .net con el instalador. Si el Cliente confía en usted para instalar su Aplicación, también instalará .net.

ckuetbach
fuente
77
Una aplicación de inicio web Java requeriría Java, que es tan malo como requerir .NET. Y no podemos incluir .NET en el instalador, eso haría que la descarga sea demasiado grande. Como se mencionó, estamos buscando una pequeña descarga (es decir, 100k o menos).
Erv Walter
¡La aplicación Java web start también es lenta!
DL
No escribiste sobre el tamaño de descarga de 100K.
ckuetbach
Lamento que no sea más explícito (editaré), pero estaba implícito en "y queremos que la descarga sea razonablemente pequeña".
Erv Walter
-6

Solo asegúrese de que el paquete que envíe contenga una dependencia de la versión requerida del marco. Luego, el administrador de paquetes que tiene el usuario extraerá la versión de marco necesaria y la instalará antes de su paquete.

Oh, el sistema operativo al que te diriges tiene un sistema de administración de paquetes muy dañado, ¿qué no puede hacer esto? Debería ser un mal SO entonces. Bueno, entonces solo tiene una opción: requerir que este marco esté instalado y proporcionar el enlace para que el usuario lo haga. No veo cómo se benefician los usuarios, si una parte notable de lo que hacen los desarrolladores se dedica a la compatibilidad inútil con las herramientas del sistema operativo "estándar" (en su lugar, podría dedicar este tiempo a corregir errores y agregar funciones).

P Shved
fuente
Por mucho que vea cómo esta respuesta (algo veraz) podría verse como FUD, no veo a nadie que explique los votos negativos ...
alternativa el
10
Explicación de mi voto negativo: Pavel no ofreció absolutamente nada útil en respuesta a la pregunta, solo aprovechó la oportunidad para criticar a Windows.
Carson63000
1
Aún mejor, use un lenguaje que no requiera un gran grupo de bibliotecas para producir algo que valga la pena, por ejemplo, Delphi en Windows;)
Gerry
1
@Gerry, el punto es que los desarrolladores quieren usar un lenguaje que conozcan y les resulte productivo, lo que aumentaría su velocidad de desarrollo y les permitiría reutilizar el esfuerzo realizado en estas bibliotecas.
P Shved
1
En el mundo de Delphi, las bibliotecas (comerciales y de código abierto) normalmente solo se instalan en las máquinas de desarrollo; todo (excepto el sistema operativo y las DLL ocasionales proporcionadas por terceros) se compila en un solo exe. Pero a veces las bibliotecas OSS-C están envueltas en archivos DLL para llamar desde Delphi
Gerry