Está en la página 1de 22

.

NET Core

Isaías Mayón
Preparado para ANA
Marzo 2023
CONFIGURACIÓN DE EQUIPO

Pre requisitos:
1. C#

Requisitos:

1. Instalar Visual Studio 2022: https://visualstudio.microsoft.com/es/downloads/


2. Instalar Visual Studio Code: https://code.visualstudio.com/
3. Extensión Visual Studio Core: https://code.visualstudio.com/docs/languages/dotnet
4. Postman: https://www.postman.com/
5. Java versión manager: https://github.com/ystyle/jvms
6. Apache JMeter: https://jmeter.apache.org/download_jmeter.cgi
.NET vs .NET FRAMEWORK

https://learn.microsoft.com/es-es/dotnet/standard/choosing-core-framework-server
CONCEPTOS CLAVES

https://github.com/alugili/CSharp-9-CheatSheet/blob/main/CSharp_9_CheatSheet.pdf
MÉTODOS DE PETICIÓN HTTP (VERBOS)
GET
El método GET solicita una representación de un recurso específico. Las peticiones que usan el método GET sólo deben recuperar
datos.

HEAD
El método HEAD pide una respuesta idéntica a la de una petición GET, pero sin el cuerpo de la respuesta.

POST
El método POST se utiliza para enviar una entidad a un recurso en específico, causando a menudo un cambio en el estado o
efectos secundarios en el servidor.

PUT
El modo PUT reemplaza todas las representaciones actuales del recurso de destino con la carga útil de la petición.

DELETE
El método DELETE borra un recurso en específico.

CONNECT
El método CONNECT establece un túnel hacia el servidor identificado por el recurso.

OPTIONS
El método OPTIONS es utilizado para describir las opciones de comunicación para el recurso de destino.

TRACE
El método TRACE realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al recurso de destino.

PATCH
El método PATCH es utilizado para aplicar modificaciones parciales a un recurso.

Referencia: https://developer.mozilla.org/es/docs/Web/HTTP/Methods
CARGA DE ARCHIVOS
Validaciones

1. Data annotatios

Required
StringLength
Range

https://learn.microsoft.com/en-
us/aspnet/core/mvc/models/validation?view=aspnetcore-7.0

2. Fluent validation
https://docs.fluentvalidation.net/en/latest/index.html
LOGGING
Nivel Prioridad Descripción

No se usan para escribir mensajes de registro. Especifica que una categoría de


None 6
registro no debe escribir ningún mensaje.

Registros que describen una aplicación no recuperable o un bloqueo del


Critical 5
sistema, o bien un error catastrófico que requiere atención inmediata.

Registros que resaltan cuándo se ha detenido el flujo de ejecución actual


Error 4 debido a un error. Deben indicar un error en la actividad actual, no un error en
toda la aplicación.

Registros que resaltan un evento anómalo o inesperado en el flujo de la


Warning 3
aplicación, pero no hacen que se detenga la ejecución de la aplicación.

Registros que realizan el seguimiento del flujo general de la aplicación. Estos


Information 2
registros deben tener un valor a largo plazo.

Registros que se usan para la investigación interactiva durante el desarrollo.


Debug 1 Estos registros deben contener principalmente información útil para la
depuración y no tienen ningún valor a largo plazo.

Registros que contienen los mensajes más detallados. Estos mensajes pueden
contener datos confidenciales de la aplicación. Estos mensajes están
Trace 0
deshabilitados de forma predeterminada y nunca se deben habilitar en un
entorno de producción.

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-6

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-7.0
MIDDLEWARE

• Serie de instrucciones de código que se


agregan al ciclo de vida de una petición
HTTP
• Provee ejecución de peticiones a través
de capas
• Facilitan la implementación de
interceptores y filtros sobre las peticiones
en una API

https://learn.microsoft.com/es-es/aspnet/core/fundamentals/middleware/?view=aspnetcore-7.0
MIDDLEWARE

Run: El método Run() invoca un middleware en ese punto de la


canalización. Sin embargo, ese middleware siempre será terminal

Use: Coloca un middleware en la canalización y permite que ese


middleware pase el control al siguiente elemento de la canalización.

Map: Nos permite "ramificar" la tubería; podemos usarlo para invocar


condicionalmente el middleware según la ruta de la solicitud.

https://learn.microsoft.com/es-es/aspnet/core/fundamentals/middleware/?view=aspnetcore-7.0
MIDDLEWARE
Orden de operaciones

1 2
MIDDLEWARE
Basado en configuración
JWT

Enlace de interés: https://jwt.io/


Librería: Microsoft.AspNetCore.Authentication.JwtBearer
Json Web Token
PRINCIPIOS SOLID

S : Single responsibility principle o Principio de responsabilidad única


O: Open/closed principle o Principio de abierto/cerrado
L : Liskov substitution principle o Principio de sustitución de Liskov
I : Interface segregation principle o Principio de segregación de la interfaz
D : Dependency inversion principle o Principio de inversión de dependencia

• Mantenimiento del código más fácil y rápido


• Permite añadir nuevas funcionalidades de forma más sencilla
• Favorece una mayor reusabilidad y calidad del código, así como la
encapsulación
S: PRINCIPIO DE RESPONSABILIDAD ÚNICA

Establece que una clase, componente o microservicio debe ser responsable


de una sola cosa (el tan aclamado término “decoupled” en inglés).

Si por el contrario, una clase tiene varias responsabilidades, esto implica que
el cambio en una responsabilidad provocará la modificación en otra
responsabilidad.
O: PRINCIPIO ABIERTO/CERRADO
Establece que las entidades software (clases, módulos y funciones) deberían
estar abiertos para su extensión, pero cerrados para su modificación
L: PRINCIPIO DE SUBSTITUCIÓN DE LISKOV

Declara que una subclase debe ser sustituible por su superclase, y si al hacer
esto, el programa falla, estaremos violando este principio
I: PRINCIPIO DE SEGREGACIÓN DE INTERFAZ
Este principio establece que los clientes no deberían verse forzados a
depender de interfaces que no usan.
D: PRINCIPIO DE INVERSIÓN DE DEPENDENCIAS
Establece que las dependencias deben estar en las abstracciones, no en las concreciones. Es decir:

• Los módulos de alto nivel no deberían depender de módulos de bajo nivel. Ambos deberían depender de abstracciones.
• Las abstracciones no deberían depender de detalles. Los detalles deberían depender de abstracciones.
CLEAN ARCHITECTURE
SWAGGER

https://swagger.io/tools/swagger-codegen/

https://swagger.io/tools/swagger-ui/

https://swagger.io/tools/swagger-editor/

También podría gustarte