I-am facut unui prieten o aplicatie de nivel mic, cu API in .Net Core 2 si clientul in Angular 8. Problema e ca uneori, raspunsul ajunge destul de greu (se poate vedea in browser/Network/ request in pending, dureaza cateva secunde).
Eliminand ideea de client lent (angular, pachete multe nefolositoare, etc) ramane sa ma gandesc la modul in care fac interogarile in DB. Folosesc EF Core 2 pentru asta. Am citit cateva diferente intre ADO, EF si Dapper …n-as alege ADO pentru faptul ca nu-mi place deloc ideea de lucru cu dataseturi si tabele si imi pare bun doar pentru WPF/WinForms. Am vazut ca multi prefera Dapper pentru ca ar fi mai rapid decat EF. Dar, din datele gasite pe internet, Dapper este mai rapid decat EF 6, rezultatul fiind altul daca il compar cu EF Core 2 (cel din urma fiind mai bun).
Stiu care ar fi diferenta dintre Dapper si EF … cel de-al doilea fiind mai bun doar pentru dezvoltator (reduce timpul foarte mult), iar Dapper castigand timp mai ales in cazul SELECTurilor. Am vazut ca se pot folosi si impreuna, si am zis sa incerc.
Deci, am instalat frumos Dapper, si am modificat aducerea listei pe o entitate (GetAll). Ma obliga (cel putin asa cred eu) sa folosesc repository, scriu un cod enorm (vreo 150 - 200 linii) doar pentru metoda GetAll() pentru ca mai am si cateva joinuri intre tabele, scriu queryuri curate sql (ma ajuta sa-mi perfectionez cunostintele in SQL), 20/30 minute ca timp, ceea ce in EF as fi scris in maxim 3 linii. O parte buna ar fi ca eliberez controllerul de functiile de filtrare si sortare si toate astea se duc in repository, dar …
Nu am tabele uriase, poate in unele cateva sute/mii de linii.
Si intrebarea e … merita sa folosesc Dapper in locul a EF pentru selecturi, in acest caz (tinand cont ca ar fi o munca destul de mare, iar diferenta ar putea fi insesizabila) ?