3 messaggi dal 04 marzo 2008
Grazie per il tuo articolo Moreno molto interessante.
Volevo chiederti tra GraphQl e OData tu cosa consiglieresti di usare?
Utilizzando GraphQl è possibile anche far eseguire delle select in modo dinamico, mi spiego meglio "in una tabella ho 10 colonne il client mi invia una query chiedendo di volta in volta le colonne che gli servono."
In questo caso EFCore come si comporta invia al DB la query con i campi richiesti oppure estrae tutti i campi e poi Linq esegue la proiezione in memoria.

Spero di essere stato chiaro.
Saluti, grazie. Mauro.
11.884 messaggi dal 09 febbraio 2002
Contributi
Ciao Mauro, prego!

Volevo chiederti tra GraphQl e OData tu cosa consiglieresti di usare?

Sono tecnologie abbastanza simili.
  • GraphQL secondo me ha qualche punto a favore perché permette di inviare query anche abbastanza corpose dato che tutte le richieste avvengono via POST. Inoltre permette di definire delle subscription per la comunicazione in tempo reale con il server, come vedremo prossimamente con uno script.
  • OData è tutt'ora ufficialmente supportato da Microsoft anche per ASP.NET Core, come dimostra questo blog post.
Poi bisogna dire che GraphQL è forse più noto e percepito come tecnologia più moderna rispetto a OData quindi se collabori con sviluppatori frontend è più probabile che siano più interessati a usare GraphQL. Se questo li rende più felici e perciò più produttivi, allora vai con GraphQL.
Se invece sei tu a sviluppare sia frontend che backend, allora scegli liberamente. In fondo, credo che usare GraphQL oppure OData+SignalR non determini il successo o il fallimento di un progetto.
Certo, è un po' seccante il fatto che SignalR non abbia una documentazione propria. C'è questa roba ma sarebbe utile se fosse Microsoft a colmare il gap.

Ciao,
Moreno

Enjoy learning and just keep making
939 messaggi dal 11 febbraio 2013
Ciao Moreno,
script davvero bello solo non capisco cosa intendi quando dici che con una REST faccio piu query: se uso per esempio Include("Ordini") nella query con Efcore e linq allora ne faccio una sola
Perdona se dico una sciocchezza
Ciao
1 messaggio dal 11 aprile 2020
Bellissimo articolo, curato alla perfezione!
11.884 messaggi dal 09 febbraio 2002
Contributi
Bellissimo articolo, curato alla perfezione!

Grazie tante :)


se uso per esempio Include("Ordini") nella query con Efcore e linq allora ne faccio una sola

Sì, quando sei tu stesso a progettare e a consumare la REST API, la puoi progettare ritagliata attorno alle tue esigenze. Se invece devi realizzare una REST API a cui si collegheranno molti altri sviluppatori di terze parti, non puoi assecondare le necessità di tutte le loro applicazioni. Alcuni avranno la necessità di recuperare solo poche informazioni da un singolo tipo di risorsa, mentre altri vorranno incrociare i dati in modo particolare e che non potevi prevedere. Da qui la necessità di inviare più richieste HTTP per recuperare i vari insiemi di dati, che poi verranno messi insieme lato client.
Con una API GraphQL, invece, il client ha il potere di decidere esattamente cosa estrarre dal grafo di oggetti e questo riduce il numero di richieste HTTP necessarie.

Ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.