remarks cref c# .net project-management code-migration

cref - remarks c#



¿Vale la pena la transición C#2.0 a C#3.0 para este proyecto? (16)

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

Si se trata de LINQ, puede probar LINQBridge . Con la función de segmentación múltiple y LINQBridge de Studio, podrá escribir consultas locales (LINQ a objetos) utilizando todo el poder del compilador C # 3.0, y sin embargo, sus programas solo requiere Framework 2.0.

He leído sobre Stack Overflow algunas personas que se han convertido a C # 2.0 a C # 3, pero ¿realmente lo vale?

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.

Actualizar:

El proyecto tendrá una interfaz web ahora, así que antes de ingresar a la fase de mantenimiento debemos desarrollar el elemento web (todo se hizo para 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 al 75% ... pero ¿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 todas sus aportaciones.


Realmente depende del proyecto, para quién es 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 está tratando con muchas consultas y datos, cambiaría. Pero, de nuevo, depende del cliente y si tiene la intención de mantener esta aplicación en el futuro previsible.


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

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

No debemos confundir a los dos.

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

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 nuevos proyectos, yo diría que comiences con C # 3.0.


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


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 Lambda
  2. LINQ
  3. Métodos de extensión

Mi código OO aún tiende a parecer un poco funcional orientado. Por lo tanto, veo 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 reducir el objetivo de CLR 2.0. Esto le permite implementar basado en una instalación 2.0 (frente a una instalación 3.0 / 3.5) utilizando el nuevo marco. Todo lo anterior se puede hacer en este escenario si está dispuesto a agregar los tipos apropiados en su programa.


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

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

(Simplemente no use ninguna de las clases del marco 3.5, si tiene que apuntar a versiones de tiempo de ejecución anteriores).

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

Por otro lado, si ya ha escrito la mayor parte de su GUI en WinForms, entonces podría estar interesado en el marco 3.5, que permite (limitado) la mezcla de WinForms y 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 colecciones". 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 JSON. Pero de todos modos es una funcionalidad muy conveniente.

¡Cualquier evento que pueda apuntar a ese código para el tiempo de ejecución 2.0!


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


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


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

No es como si necesitaras cambiar nada más; al orientar el framework 3.5 tiene más opciones.

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


Realmente depende de lo que necesitas hacer. Si su proyecto requiere Lambda Expressions donde se encuentran los objetos de consulta con una sintaxis clara, debe mirar 3.0.

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


No, aconsejaría que no. Aconsejaría comenzar 3.5 en nuevos proyectos solamente, a menos que haya una razón específica de otra manera. No tendrá ningún beneficio de 3.5 simplemente compilando de nuevo, ya que su código ya está escrito (o al menos el 75% de él).

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

  • Sea conservador, no haga nada a menos que lo necesite.
  • Una aplicación que es 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 va a comenzar un nuevo proyecto, ¡por supuesto, cambie! La nueva versión de framework es muy interesante y el switch es muy recomendado.


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

Actualizar el marco en un punto tan tardío del proyecto es probable que cause algunos problemas que realmente no necesita en este momento.


Tienes que sopesar el costo versus el beneficio. No proporciona suficiente información sobre 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 2.0 y se ejecuta en framework 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 ser implementada mucho más fácilmente usando Linq, por ejemplo.

No entiendo a todos ustedes diciendo 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. Moverse a .NET 3.5 para obtener las características de C # 3.0 es, literalmente, una cuestión de cambiar un solo menú desplegable en las propiedades de su proyecto. (OK, y despliegue el tiempo de ejecución de 3.5 en sus máquinas de destino si usa algunas características de 3.5 como LINQ, etc. Si la instalación de 3.5 es un problema, entonces no es una respuesta fácil).


He hecho la conversión muchas veces. Sobre todo porque la sintaxis clara 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 usar las nuevas funciones de 3.5 sea muy sencillo, ya que algunas aparecen como sugerencias de refactorización de ReSharper. Usar una herramienta como esa hace que esta transición sea mucho más fácil.


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