¿Cuáles son los beneficios de actualizar de.NET 2.0 a.NET 3.5?
(12)
¿Miraste el documento "Novedades" de Microsoft? En mi humilde opinión, los beneficios son gigantescos porque .NET 3.5 ofrece el marco Linq. No puedo hablar por ASP.NET, pero en general, Linq to Object es extremadamente potente y aumenta la productividad.
Los costos, por otro lado, son relativamente pequeños (nuevamente IMHO), ya que Microsoft ofrece una instalación sin costo del nuevo marco .NET a través de la función de actualización automática de Windows.
Necesito algo de ayuda. Mi supervisor, que no es programador, me pidió que preparara un documento que describiera cómo nuestra empresa se beneficiaría con el cambio a .NET 3.5 de .NET 2.0. Somos una pequeña empresa y nuestro departamento de TI consta de solo 6 programadores. Escribimos principalmente aplicaciones de Windows Forms, a veces ASP.NET y Compact Framework. Me gustaría conocer los pros y los contras de esta decisión.
Editar:
Sé personalmente .NET 3.5 No estoy seguro de cómo convencer a mi supervisor de que lo necesitamos.
Edit2:
Tenga en cuenta que mi supervisor NO es un programador (lo cual es una situación realmente estúpida, pero es otra historia), así que simplemente le digo que .NET 3.5 tiene LINQ y otras cosas no le dicen nada.
Creo que la mayoría de las otras respuestas han obtenido la mayoría de los conceptos clave. Yo diría que provenientes de un mundo winforms, sin embargo, que WPf y el subconjunto de clientes del marco son enormes.
Solo quería agregar que, dado que 3.5 es realmente solo archivos extra por encima de 2.0, parece que la pregunta es, ¿por qué no cambiar? Su base de código completa debe ejecutarse inmediatamente en 3.5 una vez que convierta los archivos del proyecto a VS2008. Siempre que la actualización a la nueva VS no sea un problema, realmente no debería haber ningún inconveniente en la actualización. Luego puede incursionar en las nuevas funciones y aplicarlas cuando lo considere oportuno.
Esto puede ser obvio, pero quiere decirle por qué las características adicionales de 3.5 lo ayudarán a alcanzar objetivos de alto nivel como:
- Ahorrando tiempo, ahorrando dinero!
- Mejorando la calidad
- Mejora de la interoperabilidad (iecompatibilidad con navegadores)
- Mejora de la manejabilidad
No le confunda la gran cantidad de jerga sobre cómo se llaman las características, dígale qué le ayudarán a lograr estas nuevas características. Lanzarle una jerga solo confundirá la situación.
¡Déle un estimado del esfuerzo que implica la actualización y luego muestre cuánto tiempo serán mayores los beneficios adicionales de 3.5 que el esfuerzo estimado de actualización! este es el retorno de la inversión (ROI)
Entonces, nuevamente, si todo esto es un tramo, entonces inténtalo con honestidad: todos los desarrolladores quieren jugar con los nuevos juguetes .net 3.5 y adquirir experiencia en lo último y lo mejor para que podamos incluirlo en nuestro currículum. Esta será una gran experiencia y nos ayudará a conseguir trabajos en otros lugares ;-)
He dicho esto en otras conversaciones, pero a pesar de lo genial que LINQ agregaría precaución al enfocarme en esto. A los programadores nos gusta medir y proporcionar resultados indiscutibles, pero todos parecemos afirmar que el uso de LINQ "aumenta la productividad" sin lugar a dudas. ¿Dónde están los resultados de la investigación que respaldan estas afirmaciones? ¿Cómo puede promover eso en los negocios sin tener que recurrir a datos confusos y no medibles?
Yo sugeriría aliviar ese aspecto, ya que la falta de evidencia concreta solo generará sospechas en una mente aguda.
Concéntrese en las mejoras de CF 3.5 y las mejoras a ASP.NET. Demonios, incluso arreglaron un error en String.IsNullOrEmpty (). Hay muchas buenas razones para actualizar. Si no está en el VS2008, entonces vale la pena actualizarlo a tiempos de creación más rápidos, marcos de objetivos, etc. Es una actualización decente.
Otro punto es que puede comenzar a encontrar problemas que se resuelven en 3.5 o 2008 o usar código o componentes que solo están disponibles en la última edición. Imagine que se queda atascado por un problema de mierda al encontrar una solución en línea pero luego no puede usar esa solución porque está en la versión anterior. Frustrante.
Para cualquier empresa de tecnología debería estar actualizando. El punto no es justificar la actualización, sino más planificar dónde y cuándo será sensato realizar la actualización, especialmente en una actualización de la versión .NET donde la compatibilidad con versiones anteriores es bastante buena.
LINQ to SQL, nunca vuelva a escribir 4 procedimientos de almacenamiento para 1 objeto.
Escribirás algo, pero solo para mejorar la velocidad y la eficiencia.
Muchas de estas características llegaron con .Net 3.0. No todos, pero muchos de ellos.
Otra cosa es que puedes usar los nuevos controles de gráficos de Microsoft , que son básicamente un clon de Dundas Chart pero son gratuitos. Si necesita funciones de gráficos, eso le ahorraría cientos de dólares para cada servidor (suponiendo que trabaje con ASP.NET).
Para enfatizar el punto de Joel, LINQ / Lambda disminuye enormemente el número de errores en la capa de UI. LINQ no es el más adecuado para el código en el que necesita exprimir cada ciclo, pero para algo donde no importa .02 segundos adicionales, es genial. Microsoft lo ha hecho para que pueda escribir bucles en lenguaje natural, de la manera en que la mente funciona. Esto lo libera de preocuparse por los índices de bucle, los arrays de marcadores de posición, los casos de borde, etc. No he tenido un solo error en mi (ciertamente pequeña) interfaz de usuario desde que hice el cambio.
Además, WCF hace que la comunicación web, los servidores REST y la comunicación entre procesos sean muy, muy fáciles. Puedo enrollar un servidor web RESTful con un conjunto de funciones bastante completo en aproximadamente 10 minutos. Por supuesto, estoy usando una biblioteca que preparamos para encargarnos de la repetición de WCF, pero de lo contrario serían 20 minutos.
Si realiza subprocesos múltiples, ReaderWriterLockSlim proporciona una enorme mejora de velocidad con respecto a ReaderWriterLock en 2.0, y una mejora aún mayor con respecto al bloqueo ().
Puede que sea demasiado tarde para responder a la pregunta y suponer en sus preguntas más recientes que quizás haya migrado a la versión 3.5.
Su pregunta es relevante, porque en muchos casos esa pregunta surge y en muchos casos también nuestros superiores no tienen ningún conocimiento técnico o tienen más en cuenta el costo de desarrollo y, finalmente, la actualización de las máquinas de los servidores o usuarios y si tienen su famoso retorno de la inversión (Volver) En la inversión).
En mi opinión, el beneficio más importante para migrar a 3.5 y eventualmente a 4.0 pronto es la productividad . La productividad se logra al contar con las últimas tecnologías que le ahorrarán valiosos minutos, soluciones y algunos dolores de cabeza para un desarrollador. Pero principalmente, y especialmente para mí, trabajar con las últimas tecnologías me da una motivación que me llevará al límite de mi capacidad para aprender y resolver nuevos problemas con una solución limpia. Este punto específico generalmente es ignorado por los superiores, pero en mi caso está oculto para los proyectos exitosos.
Sé que es difícil de cuantificar en términos comerciales, pero ... ¡Expresiones LINQ / lambda!
Además: puede aprovechar las API de nivel superior como Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (creo que se obtiene la idea en las siglas). VS2008 es mucho más agradable de usar también para ASP.Net (vender eso como mayor productividad. No he hecho suficientes formularios de Windows en vs2008 para dar algún consejo allí).
Si escribe CF, sé de primera mano que CF 3.5 ha mejorado significativamente con respecto a CF 2.0; Algunos de los problemas de permisos de Knottier están resueltos, y simplemente tiene mucho más marco para elegir. Cosas simples como Delegate.CreateDelegate
pueden usarse para optimizar enormemente las cosas.
En la forma de ganar de, WPF ofrece una alternativa. Para ASP.NET, MVC se convierte en una opción.
Ah, y LINQ para todas sus necesidades de consulta ;-p (aunque eso también está disponible con el compilador C # 3.0 con .NET 2.0 + LINQBridge).
Vale la pena descomponerlo.
el ''movimiento de 2.0 a 3.5'' es, de hecho, varias cosas (algunas opcionales y otras no)
- La versión de las librerías BCL va de 2.0 a 3.5.
- En realidad, esto es en gran medida una adición de algunas bibliotecas más, como las responsables de LINQ. Las bibliotecas de 2.0 con las que está familiarizado solo han tenido (menores) correcciones de errores.
- Cambios del compilador
- El movimiento de c # 2.0 a c # 3.0
- Expresiones lamda
- inferencia de tipo var
- mucho mejor soporte del diseñador a través de clases parciales
- LINQ (a objetos, a xml, a sql
- tipos anónimos
- propiedades automáticas
- Métodos de extensión
- y más...
- El movimiento de VB.Net 8.0 a VB.Net 9.0
- al igual que c # en lo que respecta a lamdas / LINQ / var
- Literales XML
- El movimiento de c # 2.0 a c # 3.0
- VS 2008 en lugar de 2005
- Inteligencia mejorada (más rápida, más tolerante a las fallas en ella sin desbaratar toda la aplicación)
- Integración de pruebas unitarias en VS 2008 Professional en lugar de un sistema de equipo.
- Muchos más cambios de los que puedo enumerar aquí.
De manera realista, deberá pasar a VS 2008 para lograr la actualización del compilador de c #.
Puedes actualizar el compilador pero NO moverte a la biblioteca 3.5, esto significa que pierdes ciertos aspectos de Linq a menos que uses un conector de reemplazo como LinqBridge.
Cada una de estas mejoras trae sus propias ventajas (y algunas desventajas).
Para sus necesidades, me imagino que el acceso al nuevo MVC ASP.Net puede ser útil. No tengo experiencia personal con él, pero parece ser visto como un buen marco para este tipo de uso.
La funcionalidad de prueba integrada significa que puede usar esto de forma gratuita (me parece que valía la pena el precio de herramientas como TestDriven.Net, por lo que obtener de forma gratuita es útil poder depurar en mis pruebas unitarias).
La estabilidad mejorada (y el tiempo de inicio) en VS 2008 ha sido muy útil para mí. También encuentro que "Ir a la definición" es un comando increíblemente útil que acelera mi flujo de trabajo en una cantidad sorprendente.
Respaldo aquellos que dicen que las nuevas mejoras de lenguaje relacionadas con LINQ son útiles. Encuentro que los métodos de extensión en IEnumerable<T>
hacen ciertas tareas que solían requerir muchas líneas de placa de caldera y las variables innecesarias toman solo una línea (muy descriptiva). Esto reduce la necesidad de separar la funcionalidad en más métodos y mejora la legibilidad.