2008-09-11 17 views
10

Mi aplicación usa 2.0. En algún momento en el futuro, es posible que desee comenzar a utilizar las funciones más nuevas agregadas en las versiones posteriores del framework. ¿Debería esperar hasta entonces? ¿O hay ventajas de actualizar a la versión más reciente de .NET 3.5 ahora?Con qué versión de .NET Framework debo enviar; 2, 3, 3.5?

Supongo que para cuando esté listo para el lanzamiento de la próxima primavera, 4.0 saldrá. Tal vez debería quedarme con 2.0 para mi versión de otoño y salvar a mis clientes el espacio en HD e instalar el tiempo de otra versión de framework.

Respuesta

8

En mi opinión, debe enviar con lo que necesita su aplicación. De lo contrario, harás que la instalación sea más larga sin ningún motivo y, como dijiste, utilizarás el espacio de alta definición de tu cliente de nuevo esencialmente sin ningún motivo.

+0

No es solo espacio en disco duro: maximiza la posibilidad de que su cliente tenga los requisitos previos ya instalados, y reduce el número de cambios que tiene que hacer en sus máquinas. –

+0

@Nader Shirazie: eso no es del todo cierto. Tengo una aplicación escrita en .NET 2.0, por ejemplo. Pero Windows 8 RP solo tiene .NET 4.0 activado por defecto. Y, gran sorpresa: resulta que .NET 4.0 no es compatible con versiones anteriores. Por lo tanto, mi instalador solicita al usuario que instale .NET 2.0 desde el sitio de Microsoft. Pero cuando intentes instalar Windows no te dejará porque ya hay una versión más nueva disponible. La única solución consiste en permitir que el usuario active .NET 3.5 (incluido .NET 2.0) manualmente desde el menú "agregar programas y funciones", que no es muy fácil de usar. –

0

Aprecio las nuevas características del lenguaje en .NET 3.5 pero hasta que las use no evitará actualizar al último tiempo de ejecución ya que es un archivo/instalación más grande que sus usuarios pueden tener que tratar.

+1

Las "nuevas funciones de idioma" no están realmente en .NET 3.5, están en VS2008. Todavía puede usar C# 3 con .NET framework 2.0 –

+0

Para funciones de compilación como LINQ y métodos de extensión, no necesita apuntar a una versión más nueva del marco. Todo lo que necesita es incluir una implementación. Por ejemplo, Mono proporciona una implementación de LINQ a los objetos. –

0

Las características de Linq a SQL, y realmente las Extensiones de Linq en general bien valen la pena.

En cuanto a sus preocupaciones sobre el espacio de alta definición y el tiempo de instalación, IMO estos no son relevantes en la mayoría de los sistemas modernos para los marcos más nuevos. Las versiones más recientes de los marcos (3.0 y 3.5) son realmente solo "refrescantes" del marco 2.0. A menos que sus clientes/mercado sean PCs anteriores, creo que obtendrán una buena compensación en funcionalidad y productividad para su equipo de desarrollo, en oposición al riesgo insignificante de perder clientes porque no pueden arriesgarse a agregar otros 20Mb en su disco duro (inventé el número de 20 mb, alguien puede llamar a BS sobre eso).

0

3.5 framework ha tenido su primera versión de Service Pack, por lo que es más estable de lo que era después del lanzamiento, pero tenga en cuenta que es mucho más fácil actualizar el código de 2.0 a 3.5 que volver a 3.5 si es que razón por la que te encuentras con un show stopper.

El wiki article muestra las nuevas funciones muy bien.

1

Debe distribuir su aplicación con la versión que sea más compatible con .Net. Si ha estado haciendo todo su desarrollo y prueba en .Net 2.0, envíe con 2.0.

Pero puede que se lo deba a sus clientes contra 3.5 y envíe con eso, por el bien de cualquier error que se haya solucionado en el marco desde que se lanzó 2.0. El marco ya es tan grande que probablemente no haya ningún beneficio al distribuir una versión anterior, incluso si se presentó antes de WCF, WPF, etc., a menos que esté pagando costos de ancho de banda para distribuirlo, o el dispositivo de destino tiene almacenamiento limitado espacio.

2

Siempre uso la versión más actualizada del Framework. Esta puede ser una pequeña carga inicial para los usuarios, pero la aplicación tiene una vida mucho más larga entre actualizaciones. Eso puede o no ser importante para usted, pero considere:

Si envió una aplicación en 2005 con .NET 1.1, el marco en el que se ejecuta su aplicación ahora está fuera del soporte principal, y puede tener vulnerabilidades de seguridad sin parches, u otros problemas serios con los que Microsoft no pueda lidiar y que no pueda compensar en su propio código. Su única alternativa en 2008 es conseguir que sus usuarios actualicen su versión de marco ahora. Y, como todos sabemos, hacer que los usuarios actualicen las cosas de manera oportuna puede ser problemático.

Del mismo modo, considere su situación en 2011. Si programa para .NET 3.5 ahora, su aplicación, tal como se envió, será viable por más tiempo. Si envía para .NET 2.0 ahora, dentro de unos años, estará en la posición de tener que convencer a sus usuarios para que actualicen su marco de trabajo (código que no tiene ningún beneficio percibido para ellos, recuerde) para que pueda respaldar adecuadamente esta aplicación.

Además, si planea implementar características de clase 3.5 (LINQ to SQL el próximo año, por ejemplo), le conviene enviar 3.5 ahora, en lugar de 2.0, ya que hará que la implementación tarde sea menos problemática. para ti.

0

Estoy de acuerdo con EBGreen y Chris, pero quiero agregar que es posible que desee considerar probar su aplicación contra las versiones más recientes del marco y permitir que su aplicación funcione contra las versiones que considere que funcionan bien (esto puede hacerse usando algún truco de configuración, pero desafortunadamente, no puedo encontrar una referencia al mismo). De esta forma, su aplicación podría funcionar contra la versión que el cliente ya haya instalado.

sugiero esto porque:

  1. nuevas versiones marco le puede dar un rendimiento de impulso.
  2. El cliente ya puede tener otra versión instalada en su computadora y sería una pena, como usted dice, perder espacio en el disco duro.
  3. Es posible que desee ejecutar su aplicación contra una versión de framework más reciente en el futuro y si su cliente ya tiene esa versión y está ejecutando la versión actual de la aplicación, no habrá un viejo framework en su computadora.

Aún así, me falta alguna información que pueda tener, tales como los medios de distribución, el perfilado de las máquinas de los clientes, etc.

0

he encontrado la versión 2.0 a la versión más fácil de Apunte y despliegue, ya que muchas personas ya lo instalaron. Si una parte considerable de su base de clientes usa Vista, podría considerar actualizarse a 3.0. Las versiones anteriores casi siempre requieren una instalación que puede ser un problema para algunos usuarios.

Editar: El argumento "versión de framework saliendo de soporte" no contiene agua ya que 3.0 es una extensión de 2.0 y 3.5 es una extensión de eso. Por definición 2.0 será compatible siempre que 3.5 sea. La versión 1.1 es la única versión que es un tiempo de ejecución completamente independiente y ya no es compatible.

7

Si está planeando actualizar a 3.5 SP1, debería considerar usar the New .NET Framework Client Profile Setup Package.

.NET 3.5 SP1 presenta una nueva opción de paquete de instalación para desarrolladores que crean aplicaciones cliente .NET llamado ".NET Framework Client Profile". Esto proporciona un nuevo instalador de configuración que permite una experiencia de instalación más pequeña, más rápida y más simple para las aplicaciones cliente .NET en máquinas que aún no tienen instalado .NET Framework.

La configuración de .NET Framework Client Profile contiene solo los ensamblados y archivos en .NET Framework que se utilizan normalmente para escenarios de aplicaciones cliente. Por ejemplo: incluye Windows Forms, WPF y WCF. No incluye ASP.NET y esas bibliotecas y componentes utilizados principalmente para escenarios de servidores. Esperamos que este paquete de instalación tenga un tamaño de aproximadamente 26 MB, y se puede descargar e instalar mucho más rápido que el paquete de instalación completo de .NET Framework.

Los ensamblados y las API en el paquete de instalación de .NET Framework Client son 100% idénticos a los del paquete de instalación de .NET Framework completo (literalmente son los mismos binarios). Esto significa que las aplicaciones pueden orientarse tanto al perfil del cliente como al perfil completo de .NET 3.5 SP1 (no se requiere una recompilación). Todas las aplicaciones .NET que funcionan usando el.La configuración de NET Client Profile funciona automáticamente con .NET Framework completo.

0

Una pregunta que me gustaría hacer es ¿cuáles son las características de .NET 3.5 que te gustaría usar? Muchas de las características promocionadas son en realidad funciones C# 3.0, no características específicas para .NET 3.0/3.5 y dado que C# 3.0 usa el mismo CLR que .NET Framework 2.0, también puede usarlas en sus aplicaciones 2.0. Esto sólo requiere VS 2008.

ejemplos son:

  • Expresiones Lambda
  • inicializadores de objeto
  • tipos
  • anónimos
  • tipo de variable local de inferencia
  • Los métodos de extensión

I uso muchos de estos en mi propio .NET 2 .0 proyectos sin problemas.

Si hay funciones específicas de marco que desee (como Linq, WPF, etc.), entonces tendría que actualizar.

0

Estoy de acuerdo con que necesita lo que su aplicación necesita, pero también debe prepararse para lo que sus aplicaciones necesitarán en el futuro.

Si tiene unos pocos ciclos de repuesto, puede migrar una rama separada de sus aplicaciones en su SCM que se ejecuta con el 3.5 Runtime y cuando realmente necesita actualizar, tiene una sucursal en funcionamiento (suponiendo que lo mantenga) actualizado con alguna fusión quincenal).

0

No olvide que .Net 4.0 será un poco diferente de las versiones anteriores del marco. .Net 4.0 se instalará lado a lado (SxS) .Net 3.5 y viceversa. Si actualiza su aplicación para usar .Net 4.0, sus usuarios a largo plazo (también conocidas como versiones anteriores) terminarán teniendo que instalar una versión completamente nueva del marco.

Si está considerando la cantidad de espacio de disco que va a utilizar en las máquinas cliente con su aplicación y el marco, entonces no se olvide de este uso "oculto" de espacio adicional. Si actualizas tu aplicación ahora de 2.0 a 3.5, es posible que tu aplicación pueda existir más tiempo con la funcionalidad completa sin forzar al usuario a instalar un segundo marco que consuma más de 20 MB de espacio.

1

Recuerde que "una pequeña carga" para los usuarios podría significar la diferencia entre la aceptación y el rechazo de su aplicación.

Administro TI para una empresa. Nuestro estándar de la compañía no es 3.5. Tendría que tener una aplicación realmente elegante para que actualice a todos a .NET 3.5 para que pueda ejecutar su aplicación. En otras palabras, probablemente no suceda. Encontraré otra aplicación que no agrega una "pequeña carga" adicional en nuestro departamento de SI ya sobrecargado.

Alguien más ha comentado acerca de las características que realmente va a utilizar. Si 1.1 o 2.0 tiene el conjunto de características reales, necesita seguir con él.

0

.net 3.5sp1 bootstrapper es demasiado lento, especialmente si está utilizando la aplicación asp.net (en comparación con los formularios de Windows), en una máquina que solo tiene .NET 2.0, carga todo el marco y eso significa que está mirando a aproximadamente 20-30 minutos de descarga + tiempo de instalación en una conexión moderada a Internet y velocidad de la máquina.

Cuestiones relacionadas