Pregunta

He leído en Stack Overflow a algunas personas que se han convertido de C # 2.0 a C # 3, pero ¿realmente vale la pena?

Tengo un proyecto que se realiza al 75% antes de pasar a la fase de mantenimiento. Me pregunto si vale la pena cambiar a C # 3.0?

Actualización:

El proyecto tendrá una interfaz web ahora, así que antes de ingresar a la fase de mantenimiento, debemos desarrollar el elemento web (todo se realizó con fines internos con Windows Forms). La mayoría de las partes serán reutilizadas (back-end). La mayoría de la gente ha dicho que no valía la pena en el pasado porque ya estaba en el 75% ... pero ahora, ¿todavía crees que no vale la pena?

Lo que se ha hecho finalmente

Finalmente, dado que continuamos el proyecto con la interfaz web, actualizaremos a 3.5 para el nuevo año. Gracias a todos por todos sus comentarios.

¿Fue útil?

Solución

No, te aconsejaría que no. Yo recomendaría comenzar con 3.5 en proyectos nuevos solamente, a menos que haya una razón específica de lo contrario. No obtendrás ningún beneficio de 3.5 con solo recompilar, ya que tu código ya está escrito (o al menos el 75%).

Si necesita migrar a 3.5 en el futuro, puede hacerlo fácilmente. Por supuesto, tendrá código en estilo 2.0, pero se hace lo que se hace.

  • Sea conservador, no haga algo a menos que lo necesite.
  • Una aplicación que sea 75% en C # 2.0 y 25% en C # 3.0 no es exactamente una buena bestia para mantener. Una aplicación 100% C # 2.0 es ciertamente más fácil de mantener.

Cuando vas a comenzar un nuevo proyecto, ¡por supuesto, cambia! La nueva versión del framework es muy interesante y el conmutador es muy recomendable.

Otros consejos

Aclaración
C # 3.5 no existe. Hay C # 1.0, C # 2.0 y C # 3.0.

Luego está .NET 1.0, .NET 1.1, .NET 2.0, .NET 3.0 y .NET 3.5.

No debemos confundir los dos.

C # 3.0 vs C # 2.0
Ahora, ¿C # 3.0 vale la pena el movimiento? Yo diría que con la existencia de métodos de extensión y expresiones Lambda, la respuesta es sí. Estas dos características solo hacen que sea más fácil de leer y más rápido para escribir código. Agregue eso a las propiedades implementadas automáticamente, LINQ y métodos parciales, y C # 3.0 se muestra a sí mismo como un movimiento ventajoso.

Sin embargo, no es necesariamente beneficioso mover un proyecto existente. Debe sopesar los pros y los contras, especialmente con respecto a la introducción de nuevos errores e inestabilidad, antes de decidir migrar el trabajo existente. Para proyectos nuevos, diría que comienza con C # 3.0.

¿Hay alguna característica de C # 3.5 que desees mal en esta etapa? :)

Si es LINQ, puede probar LINQBridge . Con el multi-targeting de Studio y LINQBridge, podrá escribir consultas locales (LINQ to Objects) usando todo el poder del compilador C # 3.0 & # 8212; sin embargo, sus programas solo requerirán el Framework 2.0.

Creo que mucho de esto se reducirá a tu estilo personal. En mi humilde opinión, las mejores características de C # 3.5 realmente se reducen a lo siguiente

  1. Expresiones de Lambda
  2. LINQ
  3. Métodos de extensión

Mi código OO todavía tiende a verse un poco funcional orientado. Por lo tanto, veo a 3.5 como un gran beneficio y definitivamente vale la pena la actualización.

Lo que es aún mejor es que es posible usar el compilador 3.5 para apuntar hacia abajo a CLR 2.0. Esto le permite implementar en base a una instalación 2.0 (frente a una instalación 3.0 / 3.5) usando el nuevo marco. Todo lo anterior se puede hacer en este escenario si está dispuesto a agregar los tipos apropiados a su programa.

En mi opinión, no hay una buena razón para no cambiar a 3.5.

La característica realmente importante es que puedes continuar apuntando a versiones anteriores del tiempo de ejecución (2.0+) mientras usas todas las características de nuevo idioma. Así que puedes usar las nuevas expresiones lambda, métodos de extensión, tipos anónimos y todas las otras cosas buenas. Y si sus clientes siguen utilizando principalmente el marco 2.0, puede continuar dirigiéndose al tiempo de ejecución anterior.

(Simplemente no uses ninguna de las clases del framework 3.5, si tienes que apuntar a versiones anteriores en tiempo de ejecución).

Personalmente, creo que si estás haciendo una aplicación de GUI de escritorio, lo mejor es usar el marco 3.0 o 3.5, ya que WPF es la mejor biblioteca de interfaz de usuario con la que he trabajado (en general).

Por otra parte, si ya ha escrito la mayoría de su GUI en WinForms, entonces podría estar interesado en el marco 3.5, que permite la mezcla (limitada) de WinForms y los elementos de la GUI de WPF. Puedes mantener el trabajo que ya has hecho, pero agrega algunos toques agradables aquí y allá, donde sea que tenga sentido, con los controles de WPF.

Otra característica útil del marco 3.5 es " Inicializadores de colección " ;. Mira esto:

var myDictionary = new Dictionary<String, String> {
   { "key-1", "value-1" },
   { "key-2", "value-2" },
   { "key-3", "value-3" },
};

Limpio, ¿eh?

Me hubiera gustado un poco mejor si fuera un poco más parecido a JSON. Pero es una funcionalidad muy conveniente de todos modos.

¡Cualquier evento de destino puede ser ese código para el tiempo de ejecución 2.0!

Si su proyecto está casi completo, probablemente no se beneficiará de las nuevas características de 3.5. Para nuevos proyectos, sin duda vale la pena echar un vistazo.

Realmente depende del proyecto, para quién está destinado y para qué sirve.

Sería seguro adivinar que .NET Framework 2.0 está en muchas más computadoras que la versión 3.5.

Además, ¿hay algo que necesite de .NET 3.5 que no esté disponible en 2.0 (como LINQ)? Si se trata de una gran cantidad de consultas y datos, me gustaría cambiar. Pero, de nuevo, depende del cliente y si desea mantener esta aplicación en el futuro inmediato.

Desde el punto de vista de la tecnología, todo es la versión 2 de Framework y es muy poco esfuerzo por lograr Las diferencias en 2.0, 3.0 y 3.5 son solo código de biblioteca adicional y algo de azúcar sintáctica del compilador.

No es que necesites cambiar nada; al apuntar al framework 3.5 tienes más opciones.

Desde el punto de vista de tu equipo: Sí, vale la pena. Nadie quiere trabajar en antiguas bases de código. Mientras se encuentra en pleno desarrollo, también puede utilizar la tecnología estable más actual.

Realmente depende de lo que necesites hacer. Si su proyecto requiere Expresiones Lambda en las que está consultando objetos con una sintaxis clara, debería mirar 3.0.

Actualmente estoy leyendo C # In Depth por Jon Skeet, y él adopta el enfoque de diseñar una solución en C # 1.15, luego evoluciona la solución para representar la funcionalidad nueva y útil que obtiene en 2.0 y 3.0. Este tipo de progresión sería un medio perfecto para responder a sus preguntas. El libro también se lee bien, así que me doy cuenta de que lo estoy superando rápidamente.

Tienes que sopesar el costo frente al beneficio. No proporciona suficiente información acerca de su proyecto para permitirnos asesorarlo aquí, pero considere:

  • el costo de conversión es bastante pequeño. C # 3.0 es casi completamente compatible con versiones anteriores con 2.0 y se ejecuta en el marco 2.0
  • el beneficio también es bastante pequeño si la codificación está casi terminada, pero podría crecer a largo plazo. Una nueva característica que podría tener que implementar en el futuro podría resultar ser mucho más fácil de implementar utilizando Linq, por ejemplo.

He hecho la conversión muchas veces. Sobre todo porque la clara sintaxis de las expresiones lambda hace que el código sea más fácil de seguir (para mí de todos modos).

Utilizo ReSharper , lo que hace que el uso de las nuevas características 3.5 sea tan fácil como muy pocas. como sugerencias de refactorización por ReSharper. Usar una herramienta como esa hace que esta transición sea mucho más fácil.

3.5 se basa en 2.0, por lo que no tienes problemas para saltar directamente a 3.5.

Lo haría ... no hay daño y usted obtiene algunos beneficios de las nuevas características

No entiendo todo lo que ustedes dicen que no lo hagan. .NET 2.0 es el tiempo de ejecución actual (CLR). .NET 3.0 y .NET 3.5 se ejecutan en el tiempo de ejecución 2.0. Pasar a .NET 3.5 para obtener las características de C # 3.0 es, literalmente, una cuestión de cambiar un solo desplegable en las propiedades de su proyecto. (De acuerdo, e implementar el tiempo de ejecución 3.5 en sus máquinas de destino si usa algunas características 3.5 como LINQ, etc. Si instalar 3.5 es un problema, no es una respuesta tan fácil).

No cambiaría nada a menos que tenga una buena razón para hacerlo; es decir, hay un error que no se puede solucionar en 2.0.

Es probable que la actualización del marco en un punto tan tardío del proyecto cause algunos problemas que realmente no necesita en este momento.

Si tiene una extensión para el proyecto, podría ser bueno cambiar ahora a la versión más reciente de .NET, de lo contrario no lo haría.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top