Introducción
La plataforma .NET de Microsoft y el lenguaje de programación C# fueron aceptados formalmente alrededor de 2002 y se han convertido rápidamente en un pilar del desarrollo de software moderno. La plataforma .NET permite un gran número de lenguajes de programación (incluidos C #, VB.NET y F #) para interactuar entre sí. Un programa escrito en C# puede ser referenciado por otro programa escrito en VB.NET (Meyer, 2001).
El 27 de junio de 2016, Microsoft lanzó oficialmente .NET Core. Como .NET, .NET Core permite que los lenguajes interoperabilidad entre sí (aunque se admite un número limitado de idiomas). Más importante aún, esto el nuevo framework ya no se limita a ejecutarse en el sistema operativo Windows, sino que también puede ejecutarse (y ser desarrollado) en iOS y Linux. El 23 de septiembre de 2019, Microsoft lanzó .NET Core 3.0 y C# 8 todas las versiones anteriores de C# se ejecutan en el marco .NET original (depende de la versión, por supuesto), C# 8 solo se ejecutará en .NET Core 3.0 y superior. Esta versión de C# introduce muchas características nuevas que crearían rupturas cambios en versiones anteriores de .NET Framework (así como .NET Core). Junto con el hecho de que muchos de las versiones anteriores de .NET Framework están integradas en varios sistemas operativos de Windows, no era posible que el framework .NET se actualizara para admitir C# 8 (Troelsen, 2001; Griffin, 2017).
Algunos beneficios clave de la plataforma .NET Core es que es una plataforma de software para crear aplicaciones web y sistemas de servicios en los sistemas operativos Windows, iOS y Linux, así como las aplicaciones WinForms y WPF en Windows.
Interoperabilidad con código existente: esto es (por supuesto) algo bueno .NET existente el framework puede operar con el software .NET Core más nuevo y viceversa a través de .NET Standard.
Soporte para numerosos lenguajes de programación: las aplicaciones .NET Core se pueden creado con los lenguajes de programación C #, F # y VB.NET (siendo C # el enfoque principal para ASP.NET Core).
Un motor de tiempo de ejecución común compartido por todos los lenguajes .NET Core: un aspecto de esto es un conjunto bien definido de tipos que comprende cada lenguaje .NET Core. Integración de idiomas: .NET Core admite la herencia entre idiomas, el manejo de excepciones entre idiomas y la depuración de código entre idiomas. Por ejemplo, puede definir una clase base en C # y extender este tipo en Visual Basic.
Una biblioteca de clases base completa: esta biblioteca proporciona miles de tipos que le permiten crear bibliotecas de código, aplicaciones de terminal simples, gráficos aplicaciones de escritorio y sitios web de nivel empresarial (Hummel, et al., 1993; Kirk, et al., 1998; Freeman, 2016; Brown, et al., 2019).
Un modelo de implementación simplificado: las bibliotecas .NET Core no están registradas en el registro del sistema. Además, la plataforma .NET Core permite múltiples versiones del framework, así como aplicaciones para existir en armonía en una sola máquina.
Amplia compatibilidad con la línea de comandos: .NET Core Command Line Interface (CLI) es una Cadena de herramientas multiplataforma para desarrollar y empaquetar aplicaciones .NET Core (Heino, et al., 2009; Price, 2019).
Se pueden instalar herramientas adicionales (global o localmente) más allá de las herramientas estándar que enviar con .NET Core SDK.
Verá cada uno de estos temas (y muchos más) examinados en los capítulos siguientes. Pero primero, necesito explique el nuevo ciclo de vida de soporte para .NET Core.
La información recopilada dentro del experimento realizado oferta una comparativa entre el desarrollo web enfocados al uso de .Net Framework y .Net Core para tener una comparativa clara entre las tecnologías de Microsoft (Brown, 1995).
Se debe aclara que Microsoft ha creado varios lenguajes de programación entre ellos TypeScript, el cual es usado en muchos frameworks relacionados con JavaScript para la web (Llerena Ocaña, et al., 2021).
Materiales y métodos
Dentro del experimento realizado, se buscó tratar la naturaleza abstracta propia sobre el desarrollo debido a que, el aprendizaje para desarrollar un sistema o aplicación web es muy basto, ya que tiende a llevar un determinado proceso que provee una metodología de desarrollo de software (Llerena Ocaña & González Hernández, 2020).
El diseño de una aplicación puede generar varios conflictos con bases de datos o el mismo lenguaje de programación, al generar API’s para consumo de aplicaciones externas, si hablamos por el uso de Angular, ReactJs, Vue, Ionic o si se lo realiza por el consumo de aplicaciones de escritorio o por la misma web con el uso de html, css y javascript (Llerena Ocaña & González Hernández, 2017).
Los participantes son del octavo nivel de la Carrera de Ingeniería de Software consta con 7 alumnos, se uso el total de los estudiantes y de este modo se tomo el “caso típico” que menciona (Cunningham, et al., 2020), para el desarrollo al estudiante se le dio a elegir el sistema operativo que desee, así como el editor de código. El rol del docente se toma el de Gold (1969), citado en Llerena Ocaña & González Hernández (2020): “observador-como-participante”, ya que existieron conflictos a nivel de aprendizaje o desarrollo y se puede dar solución a cada uno de estos.
Este estudio se realizó dentro del periodo de ordinario de clases en el periodo académico desarrollo en el año 2021. En cuanto a la comparación entre varios componentes propios de los frameworks (.net y .net core) iniciamos con el ORM el cual es un modelo de programación que permite mapear las estructuras de una base de datos relacional (SQL Server, Oracle, MySQL, etc.), en adelante RDBMS (Relational Database Management System), sobre una estructura lógica de entidades con el objeto de simplificar y acelerar el desarrollo de nuestras aplicaciones (Reeves & Nass, 2016).
Otro de los datos evaluados es el modelo o patrón de desarrollo, el cual se enfocó propiamente al estudiante según su afinidad y gusto por el desarrollo, por ejemplo, la mayoría de los estudiantes usaron un patrón MVC (Modelo - Vista - Controlador) y el uso de formularios web; dos estudiantes usaron API’s y para la interfaz de usuario se uso Angular.
Resultados y discusión
En las comparativas los ORM trabajan de manera similar con el motor de base de datos propio de Microsoft, en la tabla 1 se muestra su efectividad con varias bases de datos demostrando su efectividad, cabe tener en cuenta que, la empresa dueña de la tecnología da opción para que otras aporten para el desarrollo, una vez que se valida y se publica, estos aportes pueden acceder, muchos de estos son libres otros con mayor funcionalidad son de paga.
En todos los casos, se ajusto que las líneas de código a ejecutar para cada base de datos de prueba, se debe tener en cuenta que para Sql Server la librería es nativa, para Mysql y MariaDb se usó la librería de Pomelo y para Oracle las librerías propias de Oracle.
En una comparativa clara, Sql Server junto a MariaDb tienen los mismos tiempos de respuesta promedio, como consecuencia a esta investigación fue que no se tuvo en cuenta los componentes físicos de las maquinas de los sujetos de prueba.
Con 325 filas de código en donde se detalla la creación de 4 tablas relacionadas entre sí con sus respectivos registros, se muestra a detalle los tiempos de respuesta promedio (Tabla 1).
Base de Datos | Registros | Net Framework | Net Core |
---|---|---|---|
Sql Server | 325 | 1.30 ms | 1.27 ms |
Mysql | 325 | 1.50 ms | 1.50 ms |
Oracle | 325 | 1.34 ms | 1.30 ms |
MariaDB | 325 | 1.30 ms | 1.27 ms |
Con la base de datos lista, los sujetos de prueba escogieron desarrollar el problema según el patrón de desarrollo más acepta por ellos o en su defecto con el que estén más entrelazados, y el patrón MVC (Modelo - Vista - Controlador) fue es más aceptado, por las bondades que en cada uno de los frameworks ofrece (Tabla 2).
Por razones de aprendizaje, se excluyeron muchas partes del proceso normal que rige una metodología de desarrollo de software, por tal motivo, con el conocimiento de la base de datos se procedió a resolver las operaciones básicas CRUD para medir los tiempos de desarrollo en cada una de las tecnologías que los sujetos de prueba eligieron.
Si hablamos con formularios web, en donde todos los procesos son escritos por el programador, el tiempo de desarrollo es muy lento; al realizar una comparativa en tiempo de desarrollo es imperativo mostrar a los estudiantes para que sirve cada línea de código, la ventaja de este proceso es que el conocimiento que adquiere este, podrá ocuparlo en cualquier lenguaje de programación, además en este tipo de desarrollo, se usa un lenguaje estructurado de consultas (SQL).
Cundo se utiliza un framework, los tiempos se reducen notablemente, al usar el modelo MVC con Entity Framework de .Net, el trabajo baja a 10 minutos, esto debido a que el proceso se complica cuando debemos usar las restricciones para mostrar en la vista.
Entity Framework Core reduce el trabajo aún más, las anotaciones de datos que se utilizan para controlar las validaciones son relativamente más fáciles al igual que el código que se debe escribir (Tabla 3).
Patrón de Desarrollo | Net Framework | Net Core |
---|---|---|
Web Forms | 30 minutos | 0 |
MVC | 10 minutos | 3 minutos |
API's | 0 | 3 minutos |
En la tabla #4 se muestran los mismos valores de la tabla anterior, esto hace relación debido a que los frameworks con el patrón MVC generan la vista al igual que los controladores, sucede lo mismo con la API, pero esto difiere con un desarrollo mediante formulario web ya que, como se explicó anteriormente, el proceso se desarrolló basándonos en el proceso que se necesita.
Aquí se tomó en cuenta el desarrollo de la interfaz para el consumo de la API mediante Angular, si tomamos el tiempo que se menciona en la tabla 3 por el desarrollo con. Net Core suman 18 minutos por tabla de base de datos, el uso de componentes y servicios para el consumo de datos mediante Json resulta aún más productivo para el desarrollo (Tabla 4).
Patrón de Desarrollo | Net Framework | Net Core |
---|---|---|
Web Forms | 30 minutos | 0 |
MVC | 10 minutos | 3 minutos |
Angular | 0 | 18 minutos |
Los medios de validación por parte de Angular y de los formularios web deben ser escritos lo que conlleva un tiempo adicional para el desarrollo, a diferencia del marco de desarrollo o framework, estos son definidos directamente en el modelo, este se traduce a que no hay necesidad de preocuparse por las restricciones o validaciones de datos (Tabla 5).
Patrón de Desarrollo | Net Framework | Net Core |
---|---|---|
Web Forms | 10 minutos | 0 |
MVC | Se define en el modelo | Se define en el modelo |
Angular | 0 | 15 minutos |
En los primeros días de .NET, al comienzo del nuevo milenio, las aplicaciones de escritorio eran el estándar en la industria. Fue un tiempo antes de que las aplicaciones de navegador dieran forma a la industria del desarrollo de software.
En aquel entonces, las aplicaciones web eran escasas y en su mayoría estaban compuestas por contenido textual. Sin embargo, lo que los distinguió de las aplicaciones de escritorio fue la disponibilidad. Allí no era necesario realizar instalaciones complejas y podían funcionar en cualquier dispositivo que tuviera un navegador web debido a su disponibilidad, la complejidad y la prevalencia de las aplicaciones web aumentan constantemente. Desde su primera versión, los muchos autores han creado soporte para el desarrollo de aplicaciones web en .NET como parte integral de la biblioteca de clases del framework.
La herramienta de desarrollo de aplicaciones web se llamó ASP.NET Web Forms, en línea con la herramienta de desarrollo de aplicaciones de escritorio. Los desarrolladores podrían rápidamente, utilizando controles similares a los de un escritorio ya definidos, implemente sitios web. Sin embargo, la naturaleza de los formularios web, que fue la base del rápido desarrollo, ha sido cada vez más el objetivo de crítica. Es decir, el desarrollo funcionó bien siempre que no haya necesidad de más ajuste de los elementos de la interfaz de usuario existentes. Al mismo tiempo, los frameworks de otros lenguajes de programación dieron a los desarrolladores un control total sobre el código del cliente y los lenguajes del cliente se volvieron más predominante. Junto con Web Forms, Microsoft ha desarrollado otro framework orientado a la web llamado Windows Communication Foundation (WCF), diseñado utilizando una arquitectura orientada a servicios principios para apoyar la computación distribuida.
Los formularios web fueron la herramienta de Microsoft para el desarrollo de aplicaciones web hasta 2009, cuando se lanzó la primera versión del framework ASP.NET MVC. Fue lanzado como una solución al problema de formularios web cerrados, diseñados utilizando principios de software estándar para aplicaciones web desarrollo en ese momento.
Con patrones de desarrollo fuertemente estructurados, aparecen renovadas maneras de programar, MVC marca tendencia dentro del desarrollo de software, así como los frameworks que trabajan sobre este tipo de desarrollo. Net Core presenta una salida fresca al código propietario orientado por Microsoft, dando una salida más cómoda para el desarrollo; Net Core sigue este patrón de desarrollo para acoplarse, teniendo una gran variedad de consumo de datos mediante aplicaciones web, API’s o microservicios.
Conclusiones
En la literatura investigada se detalla visiblemente los pasos a seguir sobre el proceso de desarrollo de software según la metodología que se elija, pero los tiempos se reducen cuando se usa un framework el cual agilita el manejo de la base de datos.
Al comparar el backend de net core con php existe una considerable reducción de tiempo como se puede verificar en los resultados del experimento.
El controlar el frontend con un patrón MVC que el framework lo resuelve, como el framework esta desarrollado en ingles, cuando se escribe el código se debe usar anotaciones de datos para evitar que el texto de error, aparezcan en inglés.