Está en la página 1de 10

1.

Programación Orientada a Objetos

Objetivo: Reforzar los conceptos de POO.

Se sugiere leer y entender los conceptos de estas referencias.


● Fundamentos de la POO:
https://msdn.microsoft.com/es-es/library/bb972232.aspx
● Programación orientada a objetos (C#):
https://docs.microsoft.com/es-es/dotnet/csharp/programming-guide/concepts/
o bject-oriented-programming
● Software Development Fundamentals:
https://channel9.msdn.com//Series/software-development-fundamentals/03/

2. NET Framework, NETCore y NET6,7

(dotnet tool)

Objetivo: Aprender de una manera autodidacta el funcionamiento del nuevo


framework de .Net Core.

Se sugiere leer y comprender las siguientes referencias y luego utilizarlas como


apoyo en la construcción del proyecto práctico.

● Documentación de .NET: https://docs.microsoft.com/es-es/dotnet/


● Guía de .NET Core: https://docs.microsoft.com/es-es/dotnet/core/
● Net Core (Learning Path):
https://docs.microsoft.com/en-us/learn/browse/?products=dotnet&roles=
developer&resource_type=learning%20path
<conocimiento interno del framework + metodos de extension, lambdas y generic>

3. Entity Framework Core (ó Dapper)


Objetivo: Comprender los conceptos de ORM, Code First y demás técnicas para el
acceso a repositorios de base de datos desde las aplicaciones .Net Core.

● Introducción a Entity Framework Core:


https://docs.microsoft.com/es-es/ef/core/get-started/
● EF Core Quick Starts:
https://channel9.msdn.com//Blogs/MVP-VisualStudio-Dev/EF-Core-Quick-Star
t s-Full-NET-in-Visual-Studio-2015/
● Introducción a EF Core en ASP.NET Core con una base de datos nueva:
https://docs.microsoft.com/es-es/ef/core/get-started/aspnetcore/new-db?tabs
= visual-studio
● Introducción a EF Core en ASP.NET Core con una base de datos
existente:
https://docs.microsoft.com/es-es/ef/core/get-started/aspnetcore/existing-db
● dapper mirar el ceiba block

4. Principios SOLID

Objetivo: Aprender e interiorizar los principios que guían las buenas prácticas de
codificación en .NET Core.

Se deben estudiar las siguientes referencias y utilizarlas en el momento de


construcción del proyecto práctico:

● Principios S.O.L.I.D:
https://uniwebsidad.com/libros/tdd/capitulo-7/principios-solid?from=librosweb
● From STUPID to SOLID Code:
https://williamdurand.fr/2013/07/30/from-stupid-to-solid-code/
● IDEALS VS SOLID
https://www.infoq.com/articles/microservices-design-ideals/

Adicionalmente, se debe hacer mucho énfasis en la transformación de objetos de


dominio a DTO’s y la inyección de dependencias para así hacer que los
componentes de nuestras aplicaciones estén bajamente acoplados.

Inyección de dependencia:

● Conceptos generales: https://thatcsharpguy.com/tv/inyeccion-dependencias/


● Inyección de dependencias en ASP.NET Core:
https://docs.microsoft.com/es-es/aspnet/core/fundamentals/dependency-inject
i on?view=asp net core-6.0

Automapper y Mapster:

● Using AutoMapper in ASP.Net Core:


http://www.projectcodify.com/using-automapper-in-aspnet-core
● Configuración : https://docs.automapper.org/en/stable/Getting-started.html
● Mapster https://github.com/MapsterMapper/Mapster
● System.text.json vs newtonsoft (ojo para revisiones par)

Mediatr:

● https://github.com/jbogard/MediatR
● CQRS con MediaTR (Greg Young)
● https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-
c qrs-patterns/microservice-application-layer-implementation-web-api

5. Control de versiones
Objetivo: Aprender a manejar los sistemas de control de versiones de código
(SCM’s). El SCM que trabajamos en CEIBA es GIT y sus herramientas satélites
como GitFlow.

● Git Tutorial: Commits:


https://channel9.msdn.com//series/Team-Services-Git-Tutorial/Git-Tutorial-Com
mits/
● Azure Repos Git tutorial:
https://docs.microsoft.com/es-es/azure/devops/repos/git/gitworkflow?view=vsts
● Tutorial Gráfico GIT
https://learngitbranching.js.org/?locale=es_AR
6. Integración Continua
Objetivo: Conocer el concepto de IC, su flujo básico con las aplicaciones y utilizarlo
en el proyecto práctico de ADN

● Información general sobre las tecnologías de DevOps:


https://azure.microsoft.com/es-mx/overview/devops/
● Azure DevOps: https://azure.microsoft.com/es-es/solutions/devops/
● Elementos claves de un pipeline
https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-co
n cepts?view=azure-devops
● Build, test and deploy from Azure Devops
https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-c
o re?view=azure-devops&tabs=dotnetfive
● DevOps for Developers (Learning Path):
https://mva.microsoft.com/learning-path/devops-for-developers-8

7. Docker

Objetivo: Aprender la forma básica de desplegar aplicaciones .NET Core en ambientes


contenerizados.

● What is a Container?: https://www.docker.com/resources/what-container


● Rancher Desktop : https://rancherdesktop.io/
● Wsl on windows : https://docs.microsoft.com/en-us/windows/wsl/install
● Introducción a .NET y Docker:
https://docs.microsoft.com/es-es/dotnet/core/docker/intro-net-docker
Se debe hacer el siguiente tutorial:

● Cómo incluir una aplicación de .NET Core en un contenedor:


https://docs.microsoft.com/es-es/dotnet/core/docker/docker-basics-dotnet-core
● Docker vs Podman (WSL2) vs Rancher Desktop
8. Análisis de código estático

Objetivo: Comprender los conceptos de la revisión de código estático y el impacto


de los indicadores de Calidad en la aplicación.

● Conceptos: https://docs.sonarqube.org/9.9/user-guide/concepts/
● SonarQube adaptada a Ceiba:
https://docs.ceiba.com.co/devops/automate/analisis-de-codigo-estatico/REA
D ME.html
● Configuración del proyecto:
https://docs.ceiba.com.co/devops/automate/analisis-de-codigo-estatico/sonar
q ube/configuracion-propiedades-sonar/README.html
● Use SonarLint in Visual Studio: https://www.sonarlint.org/visualstudio/

9. Automatización de pruebas

● Pruebas unitaria en .NET Core y .NET Standard: Objetivo: Reforzar los


conceptos sobre la automatización de pruebas y la aplicación de los diferentes
frameworks en los proyectos.

● A manera de referencia se presenta la teoría de varios frameworks de pruebas


compatibles con .Net Core pero en Ceiba utilizamos preferiblemente MSTest
(Nunit, Xunit).

● https://docs.microsoft.com/es-es/dotnet/core/testing/
● Las tres partes del test: AAA(Arrange, Act, Assert):
(testdatabuilder)https://uniwebsidad.com/libros/tdd/capitulo-5/las-tres-partes-
d el-test-aaa?from=librosweb
● Procedimientos recomendados de pruebas unitarias con .NET Core y
.NET Standard:
https://docs.microsoft.com/es-es/dotnet/core/testing/unit-testing-best-practices
● Frameworks de pruebas unitarias:
● XUnit:
https://docs.microsoft.com/es-es/dotnet/core/testing/unit-testing-with-do
t net-test
● MSTest:
https://docs.microsoft.com/es-es/dotnet/core/testing/unit-testing-with-ms
test
● Plus: Comparación entre frameworks
https://xunit.github.io/docs/comparison
s
● Guía de automatización de pruebas en CEIBA:
https://docs.ceiba.com.co/devops/automate/automatizacion-de-pruebas/REA
D ME.html
● Pruebas mutantes con Stryker
https://github.com/stryker-mutator/stryker-net
● Pruebas de carga con JMeter:
https://docs.google.com/document/d/1MCVLmed0K6JNNzJbZEV_Afpkri
K Ylu9g7NEzDVkr4Lg/edit?usp=sharing
https://www.blazemeter.com/blog/getting-started-jmeter-basic-tutorial
● Web app scanner (owasp)
https://www.zaproxy.org/
● Técnicas de mock: https://librosweb.es/libro/tdd/capitulo-6.html
● NSubstitute (for .NET mocking): http://nsubstitute.github.io/

10. Técnica TDD - ¿Qué es TDD? [Opcional]

Objetivo: Aprender e interiorizar una técnica para la construcción de aplicaciones


que parte de la definición de pruebas.

● ¿Qué es el Desarrollo Dirigido por Tests?:


https://librosweb.es/libro/tdd/capitulo-2.html
● TDD Guía de Ceiba:
https://docs.ceiba.com.co/devops/automate/automatizacion-de-pruebas/TDD/
R EADME.html
● Técnicas de mock: https://librosweb.es/libro/tdd/capitulo-6.html

● NSubstitute (for .NET mocking): http://nsubstitute.github.io/


● Cobertura de código:
https://docs.microsoft.com/es-es/visualstudio/test/using-code-coverage-to-dete
rmine-how-much-code-is-being-tested?view=vs-2019

11. Angular

Objetivo: Aprender los principios de las aplicaciones SPA para utilizarlas como
Frontend.

Se sugiere estudiar las siguientes Guías de desarrollo y aplicarlas al proyecto de


práctica.

● What is Angular?: https://angular.io/docs


● Tour de Heroes de Angular : https://angular.io/tutorial
● Guía de estilos de angular (Buenas prácticas):
https://angular.io/guide/styleguide
● Curso veloz angular : https://www.udemy.com/course/angular-fast-crash-course/
● Angular Getting started :
https://app.pluralsight.com/library/courses/angular-2-getting-started-update/table-of-co
ntents
● Introducción a micro frontends
https://levelup.gitconnected.com/brief-introduction-to-micro-frontends-architecture-ec9
28c587727
12. Kubernetes [Opcional]

Objetivo: Aprender y entender el proceso de orquestación del ciclo de vida de cargas


contenerizadas con K8S como orquestador

● K8S para niños


https://www.cncf.io/wp-content/uploads/2020/08/The-Illustrated-Childrens-Guide-to-Ku
bernetes.pdf
● K8S en azure (un paseo)
https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough
● Tutorial K8s (kubernetes.io)
https://kubernetes.io/docs/tutorials/kubernetes-basics/

13. Desarrollo seguro - Principios,


buenas prácticas y casos prácticos en
.NET
● La importancia de la seguridad en el ciclo de vida de desarrollo de
software Mitos en el desarrollo seguro de software(Desarrollar material
guía)

● Conceptos claves de seguridad


https://learn.microsoft.com/es-es/dotnet/standard/security/key-security-concepts

● Instrucciones de codificación segura


https://learn.microsoft.com/es-es/dotnet/standard/security/secure-coding-guidelines

● Seguridad en ASP.NET core


● Autenticación (OIDC)
● Autorización (OAUTH2)
● Protección de datos
● Cumplimiento e HTTPS
● Almacenamiento seguro de secretos de aplicación en el desarrollo
● Prevención CSRF/CSRF
● Uso compartido de recursos entre orígenes(CORS)
● Ataque de scripts de sitios(XSS)
https://learn.microsoft.com/es-es/aspnet/core/security/?view=aspnetcore-7.0

● Prácticas WebGoat y VulnHub .NET (Ambientes vulnerables, videos)

También podría gustarte