¿Qué es .NET?

Completado

Cuando una persona usa el término .NET, lo que quiere decir depende en gran medida del contexto. En esta unidad, obtendrá información sobre .NET, abordándolo como un ecosistema. En otras palabras, .NET es una colección de muchos elementos y personas que, de forma conjunta, crean un entorno eficaz para la compilación de aplicaciones.

.NET es un ecosistema para el desarrollo de aplicaciones

El término ecosistema describe las facetas múltiples de un entorno de desarrollo de aplicaciones y la comunidad que lo rodea. Estas diversas facetas son una razón de peso para invertir en el aprendizaje de .NET y la compilación de aplicaciones .NET.

Uso de lenguajes y compiladores de .NET para ejecutar aplicaciones en el entorno de ejecución de .NET

Los desarrolladores de software usan lenguajes de .NET, como C# y F#, para escribir código fuente. Cada línea de código que escriben expresa una instrucción o un comando que el equipo debe ejecutar mientras el programa se está ejecutando.

Antes de que los desarrolladores de software puedan ejecutar su código, deben compilarlo primero. El compilador .NET es un programa que convierte el código fuente (en cualquier lenguaje de programación compatible) en un lenguaje portátil denominado lenguaje intermedio (IL). El compilador de .NET guarda el código IL en un archivo denominado conocido como un ensamblado de .NET. Al compilar el código en un formato intermedio, se puede usar la misma base de código independientemente de dónde se ejecute el código, ya sea en Windows o Linux, o en hardware de equipo de 32 o 64 bits.

El entorno de ejecución de .NET es un entorno de ejecución diseñado para el ensamblado .NET compilado. En otras palabras, es lo que ejecuta y administra la aplicación cuando se ejecuta en un sistema operativo host. En breve veremos con más detalle lo que hace el entorno de ejecución de .NET.

Afortunadamente, como desarrollador de software que acaba de empezar a trabajar con .NET, no necesita profundizar en cómo funcionan estos mecanismos. Al adquirir experiencia, entenderá mejor y apreciará más la eficacia subyacente de los lenguajes, los compiladores y el entorno de ejecución de .NET.

Sugerencia

A veces, las personas piensan que el lenguaje de programación C# es .NET. Sin embargo, C# y .NET son distintos. C# es una sintaxis de lenguaje de programación. Como parte de la sintaxis, puede hacer referencia y llamar a métodos definidos en bibliotecas de código .NET, o ensamblados. A continuación, para crear un ensamblado de .NET a partir del código de C#, se usa el compilador de C# que se instala con el SDK de .NET. El entorno de ejecución de .NET ejecuta ensamblados de .NET. Estas distinciones son conceptos importantes conforme vaya aprendiendo más sobre .NET y C#.

Uso de marcos de aplicaciones y bibliotecas de .NET para aprovechar la funcionalidad predefinida

Todo el software se crea en capas, lo que significa que hay software que se ejecuta en distintos niveles de abstracción en un equipo:

  • En el nivel más bajo, el software se comunica directamente con el hardware del equipo. Controla el flujo de datos en la placa base, los procesadores, la memoria y las unidades de disco duro.
  • En el siguiente nivel, el software permite al usuario final proporcionar instrucciones a través de un sistema operativo.
  • En el siguiente nivel, el software como .NET proporciona una manera de desarrollar y ejecutar aplicaciones.
  • En el siguiente nivel, los marcos de trabajo de la aplicación y las bibliotecas de funcionalidad permiten crear rápidamente aplicaciones enriquecidas con menos esfuerzo que los métodos de desarrollo más antiguos.

Una biblioteca de código encapsula la funcionalidad para un fin específico en un único ensamblado. Para .NET, hay miles de bibliotecas disponibles. Estas bibliotecas pueden ser propias o de terceros, y pueden ser comerciales o de código abierto. Las bibliotecas proporcionan una amplia gama de funcionalidades que puede usar en sus aplicaciones. Simplemente debe hacer referencia a esos ensamblados y llamar a los métodos necesarios. De esta manera, como desarrollador, se basa en el trabajo de otros desarrolladores de software. Ahorra tiempo y esfuerzo, ya que no tiene que compilar y mantener todas las características.

Un marco de trabajo de aplicación combina varias bibliotecas relacionadas, junto con proyectos de inicio, plantillas de archivo, generadores de código y otras herramientas. Puede usar estos recursos para compilar aplicaciones completas con un fin específico. Estos marcos de trabajo de la aplicación se conocen como modelos de aplicación. Por ejemplo, hay marcos de trabajo de aplicaciones de .NET disponibles para modelos de aplicación populares, como el desarrollo web, el desarrollo móvil y de escritorio, y desarrollo de juegos.

Puede instalar el SDK de .NET directamente o con la instalación de Visual Studio 2022. El SDK de .NET preinstala un conjunto completo de bibliotecas y marcos de trabajo de aplicaciones denominados biblioteca de clases base. Puede usar esta biblioteca de código en sus programas, independientemente de los modelos de plataforma o aplicación que desee compilar.

En el caso de las bibliotecas de terceros, los desarrolladores usan administradores de paquetes como NuGet para buscar e integrar bibliotecas de código desde repositorios de paquetes, como la galería de NuGet.

¿Cuáles son los principales modelos de aplicación?

Probablemente se preguntará qué modelos de aplicaciones admite cada marco de trabajo. Use la tabla siguiente para asignar un modelo de aplicación a un marco de trabajo de .NET.

Modelo de aplicación Marco Notas
Web ASP.NET Core Marco para compilar lógica del lado servidor.
Web ASP.NET Core MVC Marco para compilar lógica del lado servidor para páginas web o API web.
Web ASP.NET Core, Razor Pages Marco para compilar HTML generado por el servidor.
Cliente web Blazor Blazor forma parte de ASP.NET Core. Sus dos modos permiten la manipulación de Document Object Model (DOM) a través de sockets como un vehículo de comunicación para ejecutar código del lado servidor, o bien como una implementación WebAssembly para ejecutar C# compilado en un explorador.
Escritorio .NET para Mac Permite a los desarrolladores de .NET compilar aplicaciones para dispositivos Mac con acceso nativo a la interfaz de usuario y a la API.
Escritorio WinForms Marco para compilar aplicaciones clásicas de estilo Windows.
Escritorio Windows Presentation Foundation (WPF) Marco de trabajo para compilar aplicaciones de escritorio dinámicas que se ajustan a distintos factores de forma. WPF permite que los elementos de formulario realicen movimientos, atenuaciones, deslizamientos y otros efectos con la ayuda de una biblioteca completa de animaciones.
Móvil .NET para Android Permite a los desarrolladores de .NET compilar aplicaciones para dispositivos Android con acceso nativo a la interfaz de usuario y a la API.
Dispositivo móvil .NET para iOS Permite a los desarrolladores de .NET compilar aplicaciones para iOS y iPadOS con acceso nativo a la interfaz de usuario y a la API.
Interfaz de usuario de aplicación multiplataforma .NET MAUI La forma principal de compilar aplicaciones para iOS, Android, Mac y Windows desde una sola base de código compartido con la interfaz de usuario nativa y el acceso a las API nativas.

.NET además habilita entornos conocidos de desarrollo de juegos de terceros y de código abierto y motores como Unity.

Use herramientas de .NET para compilar aplicaciones de .NET

Los desarrolladores de software emplean herramientas para escribir código, agregar referencias a bibliotecas de código, compilar código y depurarlo. En esta sección se describen varias herramientas de .NET que se usarán para compilar aplicaciones .NET.

Visual Studio 2022 es el entorno de desarrollo insignia de Microsoft. Millones de desarrolladores lo usan para compilar aplicaciones .NET. Una interfaz gráfica de usuario (que incluye menús, ventanas, diseñadores visuales, cuadros de diálogo y asistentes) guía a los desarrolladores por el proceso de desarrollo de aplicaciones. Visual Studio 2022 está disponible en tres ediciones: Community, Professional y Enterprise. Cada edición incluye herramientas distintas y tiene licencia para propósitos diferentes.

Visual Studio Code es el editor de código insignia de Microsoft que admite varios lenguajes de programación y es compatible con Windows, Mac y Linux. La extensión del kit de desarrollo de C# ofrece un desarrollo mejorado de C# en el editor a Visual Studio Code y mejora la experiencia de trabajar con proyectos de .NET con compatibilidad con un explorador de soluciones, sistema de proyectos, mejoras de pruebas y explorador, desarrollo asistido por inteligencia artificial y un potente servicio de lenguajes para obtener las mejores características del lenguaje C#, como la navegación de código, la refactorización, el reconocimiento semántico, etc.

Los desarrolladores que prefieran un flujo de trabajo de línea de comandos pueden usar una combinación de Visual Studio Code, el editor de código más popular del mundo, y la interfaz de línea de comandos de .NET, también conocida como CLI de .NET.

Además, puede elegir entre numerosas herramientas propias y de terceros para muchos casos de uso avanzados de .NET. Entre las opciones se incluyen generadores de perfiles de código, ejecutores de pruebas unitarias y analizadores de cobertura de código.

Puede encontrar otras herramientas de .NET para otros escenarios. Por ejemplo, más adelante en este módulo, trabajará con Try .NET. Usará esta interfaz basada en el explorador para escribir aplicaciones sencillas que le ayudarán a conocer lenguaje de programación C#.

Búsqueda de soluciones y respuestas en la documentación y los tutoriales

Microsoft proporciona activamente un completo conjunto de documentación, tutoriales y aprendizaje. Encontrará materiales de aprendizaje en las modalidades populares que le ayudarán en cada paso del proceso de aprendizaje.

En la tabla siguiente se muestran algunos de los excelentes recursos que podrían convertirse en favoritos para volver a utilizarlos.

Resource Propósito
Microsoft Learn Proporciona tutoriales de inicio rápido y documentación de referencia definitiva.
Patrones y prácticas Ayuda a los desarrolladores y arquitectos de software a encontrar soluciones que satisfagan necesidades comunes de desarrollo de aplicaciones. A menudo, los recursos superan los detalles de bajo nivel de escritura de código y profundizan en la elección de productos y servicios que permiten arquitecturas escalables aparentemente infinitas.
Vídeos de .NET Proporciona tutoriales de vídeo del equipo de .NET. Estos vídeos guían a los desarrolladores en los escenarios de uso comunes.
Introducción a C# Proporciona laboratorios prácticos que le ayudarán a desarrollar sus habilidades mediante una combinación de instrucciones, ejercicios, elementos multimedia, pruebas de conocimientos y un método para llevar un seguimiento del progreso.

Interactuar con la comunidad de .NET para aprender y compartir soluciones

El ecosistema de .NET va más allá de los lenguajes, las bibliotecas y las herramientas, para incluir también a los usuarios. Tiene la libertad de aprender de la comunidad y contribuir a ella.

  • Aprenda: los miembros de la comunidad de .NET celebran eventos en línea en directo y reuniones en persona. Compilan software de código abierto, participan en foros de preguntas y respuestas y graban tutoriales en vídeo. Escriben libros y entradas de blog que le ayudarán a aprender y a superar los obstáculos cuando no sepa por dónde avanzar.
  • Contribuya: es de código abierto y se puede encontrar en GitHub. Los proyectos de este repositorio se administran mediante .NET Foundation. una organización independiente dedicada a la expansión de un ecosistema de confianza de código abierto y fácil de obtener en el mercado, creado en torno a la plataforma de desarrollo de .NET. En este repositorio, puede compartir su perspectiva y opinión personal para ayudar a que otros aprendan.

¿En qué se diferencia .NET de otros ecosistemas?

Si está familiarizado con el mundo del desarrollo de software, es posible que se pregunte en qué se diferencia .NET de otros ecosistemas. Para ser sinceros, otros ecosistemas pueden hacer algunas o muchas de las cosas que hemos mencionado hasta ahora en esta unidad.

Pero una de las características más distintivas de .NET es que su desarrollo y soporte técnico continuos se deben no solo a las contribuciones de un líder en el sector de la tecnología sino también de la comunidad. Se desarrollaron partes significativas de .NET con recursos de código abierto. Las aportaciones y las contribuciones de la comunidad no solo se reciben positivamente, sino que se alientan. De hecho, el 87 % de los colaboradores son ajenos a Microsoft. Según los comentarios de la comunidad, Microsoft apoya activamente la plataforma, ya que contribuye a su progreso con mejoras de características y de rendimiento, así como con correcciones de errores. Se han aceptado más de 100 000 solicitudes de incorporación de cambios de la comunidad.

Además, el ecosistema de .NET es muy dinámica:

  • Hay más de cinco millones de desarrolladores de .NET.
  • Los resultados de los sondeos de Stack Overflow muestran, de forma coherente, que a los usuarios les encanta usar .NET Core y .NET.
  • A los alumnos les encanta .NET. El 40 % de los desarrolladores nuevos en .NET son estudiantes.
  • Los repositorios de GitHub para .NET y ASP.NET están incluidos entre los 30 primeros proyectos de software de código abierto (OSS) de mayor velocidad.
  • GitHub muestra C# en los cinco principales lenguajes de programación y el lenguaje aumenta en popularidad según el índice de la comunidad de programación TIOBE de 2020.
  • .NET tiene el marco web más rápido del planeta según las pruebas de TechEmpower, un conjunto independiente de código abierto de pruebas comparativas de rendimiento web que evalúan docenas de lenguajes y marcos de trabajo de aplicaciones.

Breve historia de .NET

La versión original de .NET Framework se lanzó por primera vez a principios de 2002. Desde entonces, se han realizado muchas actualizaciones y también se han incorporado más funcionalidades. Tras años de mejoras y nuevas características, la versión original de .NET Framework, en especial las principales bibliotecas de código, mejoró significativamente.

Después 2002, Microsoft trabajó para crear una versión de .NET que ofreciera una compatibilidad multiplataforma. El objetivo era permitir a los desarrolladores escribir una base de código y usarla en los sistemas operativos macOS, Linux y Windows.

Gracias a estos esfuerzos, se presentó .NET Core en torno al año 2014. Microsoft ha mantenido la versión original de .NET Framework, pero las nuevas características y mejoras se reservan para .NET Core. Más adelante, se suprimió Core en el nombre. Las siguientes versiones principales son .NET 5, .NET 6, .NET 7, .NET 8, etc. Las versiones suelen publicarse cada noviembre.

¿Por qué es importante mencionar el historial de .NET? Porque puede que encuentre entradas de blog, vídeos y código fuente que tengan como destino la versión original de .NET Framework. En algunos casos, las instrucciones o el código siguen funcionando, pero en otros es posible que necesite realizar ajustes para adaptarse a la nueva versión de .NET.