Prueba tecnica DevInMotion. Este proyecto consiste de 3 aplicaciones:
- AgreementsAPI, Aplicacion RESTFull (Servicio Backend).
- AgreementsMobile, Aplicacion mobile Xamarin.
- AgreementsBlazorApp, Aplicacion blazor server side.
- AgreementsRazorApp, Aplicacion razor pages.
Se usan tres capas para cada entidad de un contexto (Solo existe una unica entidad "Agreement" y un contexto).
- Application: Casos de uso.
- Domain: Modelo Dominio
- Infrastructure: Capa de configuration de infraestructura como, implementaciones a acceso a datos y etc. Se agrega implementaciones del acceso a datos con ADO.Net y EfCore,
para elegir entre ADO.Net se tiene que cambiar el valor a
truede la llaveUseAdoenappsettings.jsonen el poryecto AgreementsAPI. Para lograr esto se usa el patron de diseño "Repository Pattern"
├───apps
│ ├───backend
│ │ └───AgreementsAPI
│ └───frontend
│ ├───AgreementsBlazorApp
│ ├───AgreementsMobileApp
│ │ ├───AgreementsMobileApp
│ │ ├───AgreementsMobileApp.Android
│ │ └───AgreementsMobileApp.iOS
│ └───AgreementsRazorApp
└───src
├───Agreements
│ ├───Agreements
│ │ ├───Applicacion
│ │ │ ├───Create
│ │ │ ├───Delete
│ │ │ ├───SearchAll
│ │ │ ├───SearchById
│ │ │ └───Update
│ │ ├───Domain
│ │ │ └───Exceptions
│ │ └───Infrastructure
│ │ └───Persistence
│ │ └───Configurations
│ └───Shared
│ └───Infrastructure
│ └───Persistence
│ └───EfCore
│ └───Migrations
└───Shared
├───Domain
│ └───ValueObjects
├───Infrastructure
│ └───Persistence
│ └───EfCore