Por Bruno Alejandro Roberts Delorenzo – Estudiante de la Especialización de Ciberseguridad

Cuando se habla se programación, siempre se busca entender qué es lo que cada una tiene para ofrecer, aún más cuando tenemos distintas versiones. .NET Framework es un lenguaje creado por Microsoft por el año 2000, que busca ser mejor y más eficiente que sus competidores como Java y C. Tiene dos versiones más usadas que siempre dejan varias dudas respecto de sus distintas particularidades. Al final, ¿cuáles son las diferencias entre C# .NET Framework y .NET Core?

Cuando se creó .NET Framework se definió como un lenguaje que sería (y sigue siendo) de código cerrado, lo que significa que solo Microsoft sabe cómo está hecho. Con el tiempo se vio un gran crecimiento con respecto a tipos de dispositivos y software, por lo que la empresa decidió hacer otra versión del lenguaje llamado .NET Core que es de código abierto y tiene soporte a varios tipos de software adicionales como Docker. Ambos lenguajes son bastante semejantes con respecto a su compilación y ambos pueden ser programados en C#, Visual Basic y F#.

Una diferencia muy marcante entre estos dos lenguajes es que Core es de código abierto, lo que significa que recibe contribuciones desde una comunidad que trabaja para hacer el lenguaje mejor y más eficiente, mientras Framework es de código cerrado por lo que solo Microsoft sabe cómo está hecho y su funcionamiento a nivel más profundo. El hecho de que Core tenga su código abierto para cualquiera hace que no existan preocupaciones en cuanto a su funcionamiento y el cómo ejecuta el C#, Visual Basic y F#. Cualquier problema en función del código que requiera un estudio por parte del desarrollador sobre cómo está hecho puede ser resuelto revisando el código fuente, lo que en Framework no es posible. Además de eso, .NET Core tiene más recursos y compatibilidad con Docker que .NET Framework, que es muy usado actualmente para probar y correr aplicaciones de distintas maneras.

Otra gran diferencia entre esas dos variantes del lenguaje de programación es que .NET Core es multiplataforma, lo que significa que puede ser ejecutado en Linux, Windows, y MacOS, por lo que es muy bueno para poder portar aplicaciones a otros sistemas operativos por varias razones como una búsqueda por más usuarios de la aplicación o también implementación de programas en otros tipos de máquinas como servidores, mientras que .NET Framework solo es compatible con Windows y solo se pueden desarrollar aplicaciones para este sistema, lo que limita mucho las posibilidades para desarrolladores que están buscando tener aplicaciones para lo máximo de usuarios posible. Según Aguilar (2019), .NET Core también es compatible con distintos tipos de procesadores. “De la misma forma, es compatible con distintas arquitecturas de procesador, como x64, x86 o ARM, lo que posibilita su uso en diversos tipos de dispositivo.” (Aguilar, 2019).

Algunos tienen el argumento de que .NET Framework es una mejor opción cuando se requiere hacer una aplicación que es específicamente para Windows, lo que es cierto porque este lenguaje tiene soporte para distintas funciones específicas del sistema operativo favorito de Microsoft, pero si en algún momento los desarrolladores deciden que es necesario portar la aplicación a otros sistemas, por algún motivo en específico, se va a requerir un esfuerzo extra para hacer una versión equivalente en .NET Core dado que Framework no es multiplataforma.

Existen desarrolladores que necesitan probar otras versiones de un lenguaje para el desarrollo apropiado de su aplicación y para el caso de los lenguajes en comparación, .NET Core sale adelante en este aspecto, pues permite la instalación de diferentes versiones que no conflictúan entre sí, permitiendo más opciones al momento de hacer pruebas y el desarrollo como tal, mientras que .NET Framework no puede trabajar con otras versiones, pues solo se permite una por computadora. Lo anterior puede causar aún más problemas cuando ocurren actualizaciones, pues las aplicaciones que dependen de una versión específica pueden dejar de funcionar de manera parcial o total.

En conclusión, ambos lenguajes son muy parecidos, pero con diferencias bien marcadas que pueden servir diferentes objetivos de los desarrolladores. .NET Framework es recomendado para cuando se quiere hacer aplicaciones que son específicamente para Windows, mientras .NET Core es mejor en términos generales, pues es más flexible al ser posible ejecutarlo en cualquier sistema, tiene más compatibilidad con software externo, permite el trabajo con diferentes versiones y puede ser estudiado a fondo, si necesario, con el código fuente.

 

MOXIE es el Canal de ULACIT (www.ulacit.ac.cr), producido por y para los estudiantes universitarios, en alianza con el medio periodístico independiente Delfino.cr, con el propósito de brindarles un espacio para generar y difundir sus ideas.  Se llama Moxie - que en inglés urbano significa tener la capacidad de enfrentar las dificultades con inteligencia, audacia y valentía - en honor a nuestros alumnos, cuyo “moxie” los caracteriza.

Referencias bibliográficas:
  • Aguilar, J. M. (2019). 10 Diferencias entre .NET Core y .NET Framework. Campus MVP. https://www.campusmvp.es/recursos/post/10-diferencias-entre-net-core-y-net- framework.aspx
  • Vteams Corporativo. (2020). .Net vs .Net Core. https://vteams.com/blog/net-framework-vs- net-core/