¿Por qué no actualizar al último.NET Framework?
.net-3.5 .net-2.0 (14)
Veo que muchas personas tienen .NET 2.0 o incluso 1.1 como requisito para sus proyectos. En mi propio lugar de trabajo también hay mucho escepticismo para actualizar al último y mejor .NET framework.
Como programador, creo que es muy frustrante trabajar con los frameworks más antiguos cuando sabes que podrías haberlo hecho mucho más fácilmente con los frameworks más nuevos. Normalmente instalo versiones beta y juego con ellas, así me familiarizo rápidamente con ellas y en el proceso olvido la forma antigua de hacer las cosas, así que es un dolor volver a aprender lo que has tratado de olvidar cuando tienes la limitación de trabajar con versiones anteriores.
¿Cuáles son las razones para aferrarse a las versiones anteriores cuando deberían ser compatibles y cómo puede convencer a las personas para que actualicen?
Es posible que las personas que solicitan el software no necesariamente conozcan cuál es la última versión del marco.
La mayoría de los clientes que veo no son técnicos y solo solicitan la funcionalidad que desean.
Algunos preguntan específicamente por .NET 1.1 / 2.0 y podemos decirles que los costos de desarrollo se reducirán si utilizamos 3.5 ya que es más fácil trabajar con ellos y es fácil lograr que cambien.
Algunas personas pueden estar preocupadas por la integración con lo que ya tienen. Si lo que ya tienen está integrado en .NET 1.1, es posible que quieran mantenerlo constante para que todo sea coherente.
En cuanto a su propio lugar de trabajo, diría que se hagan cargo y hagan demostraciones en las que demuestre lo diferente que es, lo fácil que es una vez que aprendan cómo usarlo. Hubo un gran elenco de la pantalla sobre cómo usar los nuevos datos dinámicos en .NET 3.5 y VS2008. Muchas personas en mi empresa obtuvieron la última versión de VS instalada después de verla. Trataré de ver si puedo encontrar un enlace.
http://blogs.msdn.com/davidebb/archive/2007/12/12/dynamic-data-screencast-is-now-available.aspx
Creo que muchas personas olvidan que en realidad hay muchos costos por no tener marcos actualizados.
En algún momento tienes que actualizar. Su sistema operativo u otros programas quedarán sin soporte. Por lo tanto, es más una cuestión de tomar pequeñas actualizaciones de vez en cuando o una gran actualización más tarde.
A la mayoría de los programadores (creo) les gustaría jugar con los últimos juguetes y aprender nuevas tecnologías para mantenerse motivados.
Podrá crear programas más rápido, lo que, por supuesto, reducirá nuevamente el precio de sus productos y proyectos, por lo que para mantenerse por delante de la competencia, le gustaría estar al límite.
Es más fácil saltar a un nuevo marco en un nuevo proyecto.
En los proyectos existentes, se necesita una cierta cantidad de trabajo para aprovechar las nuevas características. En muchos casos, estos solo son beneficiosos para el programador. Cuando trabajas en un proyecto de solo mantenimiento, a veces solo tienes que encogerte de hombros y decir: Esto habría sido mucho menos código en la versión x.
Muchos de nuestros clientes tienen políticas altamente restrictivas con respecto a qué software se puede instalar en sus escritorios de línea de negocio. Ni siquiera están configurados para recibir actualizaciones automáticas de MS a medida que se publican, pero solo aplicarán actualizaciones de certificados, tal como las expuso su propio personal de administración de TI (la mayoría de estos equipos de escritorio no tendrán conectividad a Internet).
Para clientes como estos no podemos simplemente lanzar una nueva versión de nuestro software que se basa en .Net 3.5. Debido a estas políticas estamos en 2.0 por otros 18 meses (al menos), hasta que nuestros clientes actuales decidan que .net 3.5 no es malo y que no romperá ninguno de sus programas de línea de negocios. . . en ese punto 4.0 se romperá y tendré que sentarme y ser feliz con este funky "nuevo" material de linq, mientras que todos los demás pueden jugar con un nuevo y funcional suspiro de funcionalidad 4.0
Para mí aquí, se trata solo del dinero: 2.0 está trabajando para la empresa, por lo que no ven motivación para una actualización.
Me imagino que esto no es raro.
Porque "deberían" ser compatibles no significa que lo sean. Siempre hay cambios bruscos entre versiones.
Además, la mayoría de los procedimientos de control de calidad dictan que un cambio en el código requiere una nueva prueba de ese código. Cambiar los marcos requerirá una ejecución de prueba completa en el código, e involucrará mucho más horas hombre.
¡Último! = Mejor. Pregúntale a cualquiera que haya tenido que lidiar con Vista.
EDITAR: RE Vista ... Relájate, ¡es un ejemplo! Cuántas cosas no funcionaron con Vista que estuvieron bien con XP. Tuve dificultades para convertirme a XP después de usar Windows 2000. ¿Recuerdas qué tan malo fue 98? No quería dejar mi "manta de seguridad" después de eso. No es una fiesta, realmente.
Primero, comprenda las razones por las cuales las empresas tardan en actualizarse.
Los sistemas informáticos no son una ventaja estratégica para la mayoría de las empresas que existen. Son una función de servicio necesaria.
Como son necesarios, romperlos puede ser extremadamente costoso. Dado que no son una ventaja estratégica, ser capaz de desarrollarse un poco más rápido no es una gran ventaja.
Está proponiendo que una empresa gaste recursos para seguir actualizándose a la última versión con probabilidades probables pero no ciertas y sin grandes ganancias, con la posibilidad de una gran ruptura. Para la mayoría de las empresas, esto no es una ganancia. Es más seguro adoptar cosas después de que hayan estado allí por un tiempo. Pierden algo de ventaja, pero evitan la posibilidad de un inconveniente desastroso.
Continúe y proponga la actualización a la última y mejor si lo desea, pero será mucho más eficaz poniéndolo de manera comercial (en lugar de técnica). Trate de averiguar cuantitativamente cuánto más efectivo le hará, y por lo tanto, qué puede ahorrar la empresa. (No prestarán atención a una figura que usted invente, posiblemente le presten atención a alguien que sea conocido, y es más probable que crean algo respaldado por un estudio). Reconozca los aspectos negativos y demuéstrese cuáles son los posibles costos. va a ser, y encontrar formas de limitar la desventaja. Sea muy cauteloso sobre cualquier cosa, ya que los que toman las decisiones tienen mucha más experiencia rechazando este tipo de cosas que las que tiene al proponerlas.
No hagas ninguna mención a los desarrolladores que les gusten las últimas novedades, o aparecerás como alguien que quiere que la compañía pague nuevos juguetes y pierda mucha credibilidad.
A veces puede obtener lo que desea, pero ayuda saber cómo solicitarlo.
Scott Hanselman tenía un artículo sobre 3.5 incompatibilidades SP1:
http://www.hanselman.com/blog/UpdateOnNETFramework35SP1AndWindowsUpdate.aspx
Aunque eso solo se aplica a una pequeña lista de errores, el resultado final es: Un nuevo Framework requiere una prueba muy minuciosa y no es una tarea de 5 minutos, porque si bien es compatible en un 99.99%, las incompatibilidades del 0.01% son realmente poco claras y difíciles de encontrar.
Si todavía está en desarrollo y no ha lanzado su software, está bien cambiar a una versión de fx más nueva (la misma para el tiempo de ejecución de java). Pero si ya has lanzado la implementación de actualizaciones es mucho más difícil. En este caso, es mucho más fácil quedarse con el viejo fx.
He migrado 1.1 proyectos a 2.0 y a 3.5 y también de 2.0 a 3.5.
Lo que puedo decir de mi experiencia es que no tuve problemas para migrar de 2.0 a 3.5. Sin embargo, me enfrenté a algunos proyectos de errores de 1.1 a 2.0 o 3.5, así que tengo que aconsejar a las personas que tengan mucho cuidado al migrar un proyecto de 1.1.
Si trabajas en 2.0, digo que lo hagas. Encontrarás que los proyectos son un poco más rápidos en la carrera, y puedes jugar con LINQ :)
2.0 es relativamente estable y bastante extendido. 1.1 es anterior, lo que significa que es probable que haya errores y que sus soluciones sean bien conocidas. Me sorprendería mucho encontrar una máquina con Windows sin 2.0 instalada. Estos factores pueden tener un efecto.
Además, considere que las personas podrían haber comenzado a desarrollar su producto antes de que salga una versión anterior del marco. En muchos casos, si su aplicación es una aplicación .NET 2.0, es posible que no necesite nada en el marco 3.x. Visual Studio 2008 puede apuntar al framework 2.0, por lo que no existe una necesidad real de "actualizar" estas aplicaciones. Realmente no vale la pena el esfuerzo de control de calidad para validar que todo funciona bien cuando no hay beneficio para el cambio.
Finalmente, hay mito. A la gente le gusta creer a sus amigos si son ignorantes o no. Dependiendo de a quién le pregunte, .NET Framework 3.5 es una descarga de 50 MB, 100 MB, 200 MB o 1.82 TB. Parece que las personas eligen el número más grande que parece aterrador para la situación en cuestión. Esas personas son similares a las personas que predican los peligros de esta nueva invención llamada "Internet" que podría exponernos a todos a criminales y al peligro. Puede descargar el marco en tan solo 28 MB. ¿Suena duro? Puede obtener unidades USB que tienen tanto por prácticamente $ 1 en estos días, y he descargado archivos PDF que pesaron más.
El principal problema es que su aplicación requerirá una cierta versión de .NET framework; no es tan divertido para los usuarios finales que pueden tener que descargar un instalador de 100 MB o más.
Una razón que no se menciona es que el marco 3.5 no se puede instalar en versiones de Windows anteriores a Windows XP.
Sistemas operativos compatibles: Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP
Ya publiqué algo muy similar aquí: ¿Vale la pena la transición de C # 2.0 a C # 3.0 para este proyecto? , y la mayoría dice que es compatible pero que no vale la pena cambiar debido a la forma en que el proyecto ya está en progreso.
El cambio es justificable si realmente quieres cosas nuevas en el framework, de lo contrario necesitarás actualizar todas tus licencias para Visual Studio por nada y quizás tengas que cambiar algunas cosas pequeñas en tu proyecto.