[11/05/2016] Microsoft ofreció a los desarrolladores orientación en cuanto al uso de su modelo de programación .NET Framework y los problemas de compatibilidad en torno a él.
Específicamente, la empresa aconseja a los desarrolladores utilizar las versiones más recientes de .Net Framework, aunque no deberían utilizar la versión más reciente en los proyectos existentes a menos que sea absolutamente necesario.
Al no hacerlo, las aplicaciones aprovecharán las "singularidades [quirks]” de la compatibilidad, afirmó Mike Rousos, ingeniero de software del equipo .Net de Microsoft. El quirking se refiere a la mitigación de los problemas de compatibilidad de tener en el marco dos trayectorias de código separadas, y escoger cuál trayectoria tomar en base a la versión utilizada por la aplicación.
"Debido a que muchos problemas de compatibilidad de .Net Framework son mitigados de esta manera, es posible evitar muchos problemas potenciales que se producen al correr en versiones de .Net Framework más nuevas no cambiando la versión de .Net Framework utilizada para una aplicación”, afirmó Rousos. "El comportamiento quirking se determina automáticamente en base al .Net Framework que la aplicación utiliza, pero puede ser reemplazado por los desarrolladores a través de la configuración de la aplicación o la máquina”. No todos los problemas de compatibilidad pueden ser 'quirkeados' debido a consideraciones técnicas y de seguridad.
Rousos afirmó que usar versiones más nuevas del marco es mejor "porque muchos problemas de compatibilidad en las versiones 4.x de .Net Framework han sido reparados en las versiones subsecuentes. Por ejemplo, hay menos problemas de compatibilidad al pasar de la 4.0 a la 4.6 que pasando de la 4.0 a la 4.5”.
Microsoft recientemente descontinuó algunas versiones de .Net Framework. Pero apuntar a estos marcos mientras se corre en un nuevo marco continuara siendo soportado por la nueva política de soporte del marco más reciente.
Los desarrolladores necesitan testear la aplicación en cualquier versión del marco sobre el cual se espera que se ejecute, afirmó Rousos. Microsoft recomienda usar herramientas de compatibilidad como API Portability Analyzer y .Net Framework Compatibility Analyzers para identificar las potenciales áreas problemáticas. Mediante el uso de los switches de compatibilidad, los desarrolladores pueden habilitar o deshabilitar los quirks individuales de compatibilidad. "Estos 'switches de compatibilidad' pueden ser útiles para permitir a los desarrolladores utilizar una versión más reciente de .Net Framework para usar la nueva funcionalidad de .Net mientras que al mismo tiempo no utilizan algunos de los cambios que se saben pueden afectar a la aplicación”, afirmó Rousos. Los switches pueden establecerse mediante la configuración de los archivos, variables del entorno o de forma programática en el código fuente.
Adicionalmente, los desarrolladores tienen que testear la aplicación si se vuelve a crear usando nuevos compiladores. Existen grupos de cambios entre los compiladores de C# y Visual Basic que no se pueden 'quirkear' pero que no ocurren en el runtime. "Por ejemplo, los desarrolladores tienen que tomarse en serio la reconstrucción de aplicaciones con compiladores nuevos, debido a las extrañas diferencias que hay entre la forma en que el compilador 4.0 de C# genera el IL y la forma en que el compilador 5.0 de C# genera el IL”, afirmó Rousos.
La llegada de .Net Framework 4.0 implica que todas las versiones con el número 4.x se encuentran instaladas como actualizaciones in place, por lo que sólo un .Net Framework 4.x se encuentra instalado en una computadora a la vez. Las aplicaciones que corren en .Net Framework 4.0, por ejemplo, podrían necesitar correr en la versión 4.6 luego de un upgrade al marco.
Paul Krill, InfoWorld (EE.UU.)