Új hozzászólás Aktív témák

  • leslie23

    tag

    Sziasztok!

    ASP-guruk tanácsára lenne szükségem, bár inkább általános jellegű a kérdés. Egy viszonylag egyszerű webappon dolgozok (.NET6 Razor Pages és néhány controller, amiket AJAX-hívásokkal használok) és N-tier architecture-t próbálok kialakítani.
    Van egy Data rétegem, amibe csak a domain model class-okat rakom, van egy DataAccess, amibe a Repository és UnitOfWork pattern dolgai és az EF Core-specifikus dolgok kerülnek, illetve van egy Presentation project, ami maga a webapp.

    Az első kérdésem, hogy a ViewModel-eket hogyan lenne célszerű elhelyezni? Jelenleg a Data projectben van egy ViewModels mappám, de logikailag ezeknek lehet a Presentation layerben lenne inkább a helye. A scaffolded Identity lapok tartalma alapján azt látom, hogy a MS fejlesztői a ViewModeleket magukba a RazorPage-ek PageModel-jébe rakják, minden laphoz tartozó .cshtml.cs fájlban van egy InputModel class, és ennek egy példányára alkalmazzák az adatkötést a [BindProperty] attribútummal. Ez a megoldás olyan szempontból is tetszik, hogy így a Data layerben nincs data annotation használat (Required és ErrorMessage stb.), hiszen ezek a dolgok logikailag gondolom inkább a Presentation layerhez tartoznak.

    Viszont ha innen közelítem meg a dolgot, akkor minden esetben szükségem van Model - ViewModel mappingre, ami manuálisan nyilván sok-sok favágó kód írásával járna, AutoMapperről pedig azt olvasom, hogy nem igazán jó megoldás, ha oda-vissza adatátadás történik. Mi ilyenkor a bevett megoldás, vagy mi számít itt gold standardnek? Egyáltalán helyes a megközelítésem? Köszi előre is!

Új hozzászólás Aktív témák