.NET 3.5 publicado en 11/07.NET 3.0 en 11/06. ¿Por qué la mayoría de la gente sigue usando.NET 2.0?
.net-3.5 .net-2.0 (15)
La gente ha estado desarrollando soluciones propias para los siguientes problemas:
- Marcos de mensajería consistentes para el intercambio de información remota (servicios web, rpc, ...)
- SDK''s para gestiones estatales para cosas tales como máquinas de estados finitos y flujos de trabajo
- Marcos de autenticación
- Y mucho más.
Desde hace más de dos años , Microsoft ofrece .NET 3.0, que contiene los llamados Fundamentos para Flujos de trabajo, Comunicación, Autenticación y una nueva forma de crear aplicaciones web.
Sin embargo, ... las personas seguían construyendo marcos propios con mapeo relacional de objetos consistente para abordar sus bases de datos, técnicas propias para extender dinámicamente clases y métodos en tiempo de ejecución (para que el cliente pueda personalizar el comportamiento de la aplicación, por ejemplo).
Desde hace más de un año , Microsoft ofrece .NET 3.5 que, entre otros, contiene LINQ y, por lo tanto, un gran ORM y medios maravillosos para extender su código y hacer mucho más fácil escribir código, después de todo.
Pero mire alrededor ... parece como si la mayoría todavía usa .NET 2.0. Los sitios web se crean en ASP.NET simple. La experiencia de escritorio aún se logra con una combinación de CSS, JavaScript y HTML. Los ejecutables están utilizando viejos WinForms simples, los flujos de trabajo se implementan con delegados, eventos, do / while y switch / case.
Sin demasiada discusión, me gustaría ver razones concretas para la siguiente pregunta:
En su opinión: ¿por qué la gente no se lanza al tren .NET 3.5?
2.0 funciona, ¿verdad? Creo que las cosas más nuevas son geniales y me gusta estar al tanto de las últimas, pero al final del día si funciona, a menudo la decisión es seguir con lo que tienes. Apoyé una tienda que ejecutaba programas DOS 6.2x durante años (hasta 2004) y solía arañar mi cabeza al respecto. Pero al final del día, no había una razón comercial convincente en ese caso para gastar cualquier cosa para seguir adelante.
Estoy seguro de que hay otras razones también.
Para todos los proyectos nuevos trato de usar 3.5 (o cualquiera que sea el marco más nuevo). Pero en todos los sitios antiguos, ¿por qué los clientes pagarían la actualización cuando funciona?
Si desea tecnología específica en 3.5, entonces uppgrade, pero a menos que; no arregles lo que no está roto ...
- Requiere aprender cosas nuevas, muchos ''solo un trabajo''. Los desarrolladores de LOB no pueden ser molestados.
- Las inversiones en códigos heredados, los sistemas personalizados pueden no ser necesarios, pero funcionan, recodificar cosas para usar sistemas basados en Framework es una pérdida de tiempo si el sistema existente no se rompe.
- Costo del software Dev. La codificación efectiva en .net 3.x realmente requiere VS2008. La actualización de un equipo completo de desarrolladores a partir de 2005 podría costar.
- Estabilidad. 2.0 fue una evolución del 1.1 Framework. 3.0 y 3.5 incluyen nuevas tecnologías v1, (aquellas que enumeró). A los desarrolladores les gusta ver que las tecnologías se prueban a sí mismas antes de que puedan justificar a sus gerentes que vale la pena el salto. Al igual que con la adopción de Windows, es probable que vea más personas pasando de VS2005 a VS2010 y .net 2.0 a .NET 4.0, ya que contendrá v2 de las tecnologías 3.x.
.NET 3.0 contenía cosas que eran geniales para los proyectos nuevos, pero que muchos proyectos existentes no querrían tomar por el bien de la actualización; requeriría una revisión importante para integrar cualquiera de ellos.
En cuanto a esto:
Por más de un año, Microsoft ofrece .NET 3.5
¿De qué manera es noviembre de 2007 hace más de un año? Sí, .NET 3.5 es excelente y me encanta LINQ (particularmente LINQ to Objects) y los beneficios de C # 3.0, pero siempre hay un costo relacionado con el cambio. Para empezar, está el costo de implementar Visual Studio 2008. Luego está el costo de volver a probar todo en comparación con .NET 3.5 (y ahora .NET 3.5SP1). Luego está el costo de implementar .NET 3.5 para todos los servidores, o el costo de requerir .NET 3.5 en todos los clientes. Ah, sin mencionar el costo de aprender a usar todas las nuevas tecnologías de manera productiva.
Sucederá, pero no deberías esperar que sea muy rápido.
Debido a que no es una buena empresa de alojamiento web.
Estoy desarrollando una nueva aplicación web, pero mi empresa de hosting solo brinda soporte para ASP.NET 2.0.
Le pregunté a un gerente de un empleador anterior por qué aún no había hecho el cambio, la respuesta fue "No quiero tener que admitir tres marcos", es decir, 1.1, 2.0, 3.5.
Expliqué que actualizar a 3.5 no era lo mismo que cambiar de 1.1 a 2.0 (3.5 es una extensión de 2.0 que usa un dll diferente (Core.dll), no un dll actualizado como 1.1 a 2.0).
¡Puedo ver a muchos gerentes usando esta línea de pensamiento, por lo que depende de usted que se lo haga saber!
Por la misma razón, sé que los desarrolladores de Java que todavía codifican en Java 1.4. El cambio es costoso y para las personas que trabajan en empresas internas donde Getting It Done es mucho más importante que usar nuevas tecnologías, a menudo sin sentido.
Para un montón de trabajo interno, hay poca justificación para actualizar las aplicaciones antiguas para que funcionen en entornos más nuevos.
Además, a las grandes empresas no les gusta ningún tipo de cambio debido a diversos problemas de estabilidad, aún las encontrarán tomando decisiones para usar tecnología antigua en nuevas soluciones simplemente porque creen que la nueva tecnología no es lo suficientemente estable, no se conoce lo suficiente o no hay suficiente software en el que confíen que lo soporten.
Y, nunca lo he usado, así que no podría decirlo, pero puede ser que .NET 2 sea lo suficientemente bueno para las necesidades de las personas, y que .NET 3.5 no ofrezca lo suficiente para evitar el aprendizaje / cambio que es involucrado, incluso para las empresas que están de acuerdo con la vanguardia.
Puedo hablar por mí y mi compañía. Todavía no lo usamos. ¿Por qué? Bien
1 - La mayoría de nuestros usuarios ya tienen instalado NET 2.0 framework. No es necesario instalar otro marco.
2 - No cambiaremos solo porque es lo nuevo. Tiene que agregar algún valor.
3 - Pagar realmente el cambio significaría una gran cantidad de trabajo. Una vez más, tiene que pagar.
4 - Todavía es temprano para decir si vale la pena (un año no es suficiente) en términos de errores y nuevos problemas. Sin embargo, parece valer la pena.
Si desea soporte de Windows 2000, deberá permanecer con .NET 2.0. No es tan malo de todos modos.
Me interesaría saber cuánto tiempo estuvo 2.0 antes de que obtuviera una "participación mayoritaria en el mercado". Es decir, 1 o 2 años podrían parecernos mucho tiempo para ti y para mí, pero debes recordar el nuevo idioma. tiene que ser lanzado, entonces la gente tiene que entrenar en él, entonces tienen que saberlo lo suficientemente bien como para "venderlo" a la gerencia. Además, VS2005 fue "lo suficientemente bueno" para bastantes personas, y hay un costo involucrado en la actualización a VS2008 para soportar las versiones de idiomas más nuevos, no solo dinero, sino tiempo.
¡La misma razón por la que la mayoría de la gente sigue usando Windows XP!
Para el procesamiento del gobierno, el marco 3.5 aún no está aprobado para algunos entornos, por lo que está obligado a usar 2.0 o 3.0.
El mayor desafío es justificar la actualización del negocio, especialmente ahora que estamos en una recesión mundial.
Tendría que haber una ventaja o tecnología específica en 3.5 de la que su proyecto (probablemente el greenfield) absolutamente no puede prescindir, para presionar por ello.
Estoy tratando de armar un caso en una gran corporación, por lo que los beneficios comerciales deben superar el status quo. En el clima actual, "mantener el talento" tampoco va a ser suficiente, especialmente con un grupo creciente de candidatos en general.
Hace unos pocos trabajos, estaba en una situación interesante. Como autor original de los servicios web ASMX de la compañía, me pidieron que los versione. Hubo una preocupación particular de que había basado los servicios en un XSD hecho a mano y que nadie más realmente entendía XSD tan bien.
Recomiendo usar WCF, ya que no necesitarán formatos XML personalizados, y tampoco tendrán que jugar con XSD: simplemente defina un contrato de datos en el código.
Incluso después de haber explicado que .NET 3.5 SP1 equivale a un par de service packs para .NET 2.0, más algunos ensamblados nuevos, todavía me miraban como si estuviera a punto de volverse violento. Obviamente, la actualización de versiones .NET es un proceso largo y costoso . Lecciones de .NET 1.1 ot .NET 2.0 migration.
Un pequeño paso en la dirección correcta, en cuanto a la migración hacia WCF: vea los servicios web de ASMX como una "tecnología heredada" .
Para agregar una nota más a lo que dijo @ SCdF , cualquier compañía con un personal de TI significativo, que no esté centrado en el desarrollador (es decir, la Mayoría), suele ser muy resistente a las nuevas tecnologías.
Los departamentos de TI tienden a quedarse rezagados desde el punto de vista de los desarrolladores porque no ven el valor comercial en la actualización a nuevos sistemas / hardware solo para mantenerse a la vanguardia. TI está demasiado ocupado lidiando con la seguridad y el mantenimiento (real o simplemente percibido) para tratar con desarrolladores que intentan actualizarlos a .Net 3.5.
Los desarrolladores también son notoriamente malos a la hora de comunicarse con otros departamentos sobre el valor del negocio. Cuando un desarrollador trata de obtener TI, o el negocio a bordo con la actualización a .Net 3.5, comienza a hablar sobre flujos de trabajo automatizados y XML, y servicios web en lugar de hablar dólares y centavos.
Brian Prince de Microsoft tiene una muy buena presentación sobre "Soft Skills" que repasa parte de esto. Si le preguntas amablemente, puede que venga a tu compañía y presente :)