jueves, 23 de marzo de 2023

Curso C# 1 ( Instalación .NET creación de proyectos de consola y web)

 


Documentación y programa de entrenamiento oficial
 
1 CLR (Common Language Runtime)
CLR es un entorno de ejecución para códigos de programas que corren sobre plataformas Microsoft, en el caso que nos ocupa .NET. CLR es el encargado de compilar una forma de código intermedio llamado Common Intermediate Language al código nativo mediante un compilador en tiempo de ejecución.

No debe confundirse el CLR con una máquina virtual que, una vez compliado el código corre de forma nativa sin necesidad de ninguna capa de abstracción sobre le hardaware. Es una implementación del estándar CLI (Common Languages Insfraestructure).

Los desarrolladores que usan CLR escriben el código fuente en un lenguaje compatible con .NET; C#, Visual basic… y en tiempo de compilación un compilador .NET convierte el código.

CLR funciona solamente en máquinas Windows. La manera en que la máquina virtual se relaciona con el CLR permite a los programadores ignorar muchos detalles específicos del microprocesador que se estará ejecutando en el programa, CLR también permite otros servicios importantes, como

·         Administración de la memorio

·         Administración de hilos (threads)

·         Manejo de excepciones

·         Recolección de basura

·         Seguridad

¿Qué tipo de aplicaciones se pueden desarrollar con .NET

Microsoft lanzó la primera versión del framework .NET en 2002, en esa época las aplicaciones desarrolladas en .NET sólo podían ejecutarse en máquinas Windows con NET Framework instalado. Esto ha cambiado con NET core.

Las aplicaciones desarrolladas en .NET Framework siguen pudiendo funcionar sólo en máquinas Windows, Mientras que NET Core se puede usar tanto en Windows como en MAC o Linux.

La última aplicación .NET es NET Core que apareció por 2016, se trata de una fuente de reimplementación abierta en el firmware al completo. Está disponible para Windows Mac y Linux, se proporciona un subconjunto de las bibliotecas de las clases .NET.

NET Core es compatible con el desarrollo de aplicaciones de consola y aplicaciones web basadas en ASP NET Core compatible con todos los sistemas operativos.

Diferencias de .NET Framework con .NET Core

Las diferencias principales son las siguientes:

 

.NET Framenwork

·        Ligado a Windows

·        Uso de CLR

·        Librería completa pero pesada

·        No es Open Source

.NET Core

·        Multiplataforma (Windows, Mac, Linux)

·        Open Source

·        Se puede implementar como parte de la propia aplicación

·        La herramienta de desarrollo no está fuertemente a VisualEstudio

·        Mejor rendimiento y tiempo de ejecución

·        Solo migradas aplicaciones Web y de consola(en la versión 3 se amplía con Windows forms y WPF)

 

C# & dotnet con Visual Studio

Una vez tenemos descargado e instalado VS code, necesitamos una manera de poder crear proyectos de C#, para ello vamos a descargar un SDK o un conjunto de programas que nos van a permitir crear proyectos, ejecutarlos, testearlos, etc. Pero para poder hacer esto en dotnet por lo general vamos a descargar el SDK para ello iremos a

https://dotnet.microsoft.com/en-us/download

Esta página es donde se encuentren la mayoría  de proyectos que maneja Microsoft, aquí encontraremos .NET Core y .NET Framework.

En nuestro caso descargaremos .NET Core para empezar a crear proyectos, pero en este caso descargaremos solo el SDK


Haremos la instalación del SDK el típico siguiente, una vez instalado para ver si todo se ha instalado correctamente, podemos abrir una terminal de símbolo del sistema y ejecutar:


Lo que nos indica que ya tenemos el SDK correctamente instalado y nos da la versión en este caso es la 7.0.201

Creando un proyecto de consola

Vamos a ver los diferentes tipos de proyecto que podemos crear con .NET y la manera de hacerlo. Para tener una primera fotografía de todo lo que podemos hacer con dotnet podemos abrir una terminal y ejecutar el comando dotnet new –help, lo cual nos mostrará información muy relevante:


Vamos a generar nuestro primer proyecto

Con la consola navegaremos a la ubicación deseada en este caso vamos a ir al desktop y crearemos una carpeta con el comando mkdir que podemos llamar proyecto_1.

Nos metemos en la carpeta con cd proyecto_1 y una vez dentro podemos generar el primer proyecto que será un proyecto de consola con el comando:

dotnet new console -o myfirstapp

donde -o es donde queremos la salida de nuestro proyecto y le indicamos que lo cree en otra carpeta que podemos llamar myfirstapp:

Si hacemos enter


Si vamos al escritorio veremos que se han creado las carpetas de nuestro primer proyecto:


Podemos abrir este nuevo proyecto en nuestro VScode veremos nuestro primer proyecto:


VScode detecta que es un proyecto C# y nos pedirá que agregemos las extensiones correspondientes para tener soporte, le diremos que si.

Si no apereciera podemos instalarla desde extensiones buscando C#


Para ejecutar nuestro proyecto de consola hello world lo único que tenemos que hacer es abir una terminal en vscode  y ejecutar el comando dotnet run


Con esto ya vemos nuestra salida del programa “Hello. World”

Creando un proyecto Web

Del mismo modo que hemos creado un proyecto de consola podemos crear proyectos web vamos a ver cómo.

Volvemos a abrir una consola en el pc y nos ubicamos en la carpeta proyecto_1

Y una vez dentro vamos a crear un nuevo proyecto esta vez web con el comando



 Donde aspnetapp es el nombre de nuestro proyecto (puedes poner el que quieras) si hacemos intro veremos que se crea nuestro proyecto web

Si abrimos nuestro proyecto en VScode, en el archivo program.cs veremos el siguiente código:

var builder = WebApplication.CreateBuilder(args);
 
// Add services to the container.
builder.Services.AddControllersWithViews();
 
var app = builder.Build();
 
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}
 
app.UseHttpsRedirection();
app.UseStaticFiles();
 
app.UseRouting();
 
app.UseAuthorization();
 
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");
 
app.Run();


si nos fijamos nuestra app está usando autorización (remarcado en azul), cuando creamos una nueva App mvc esto es así por defecto. Si queremos crear una App sin Auth en nuestro comando en la consola deberemos añadir el siguiente flag:


Y listo ya hemos creado nuestro proyecto mvc c#


Para ejecutar nuestra app, como ene l caso de la app de consola bastará con abrir la consola y hacer dotnet run

Se iniciará la compilación y nos creará un servidor (en amarillo)´


Si vamos a esa dirección local podremos ver nuestro proyecto web de inicio










No hay comentarios:

Publicar un comentario