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