Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

LightSwitch e le performance nelle query con LINQ

Se avete giocato un po' con il designer delle query di Visual Studio LightSwitch avete visto come sia facile definire query con uno strumento grafico e come sia poi possibile personalizzarle scrivendo delle ulteriori elaborazioni tramite LINQ.

Oltre questo, avete probabilmente visto come sia possibile definire query direttamente a livello di data source, quindi nel middle-tier, ma anche a livello di ciascuno screen.

Differenze ce ne possono essere diverse, ma a livello di esecuzione e performance cosa cambia? Riassumiamo:

  1. le query eseguite a livello di data source sono più performanti, perché il runtime di LightSwitch traduce la query in un expression tree che viene passato al runtime di LINQ, il quale si occupa di elaborare la richiesta lato server e di restituire solo gli elementi che "matchano" la query. Di contro, questo ha uno svantaggio: poiché lo scambio di richieste avviene attraverso i WCF RIA Services e l'Entity Framework, non è possibile sfruttare tutti gli operatori standard di LINQ ma solo quelli serializzabili dai RIA
  2. le query a livello di screen sono meno performanti, perché il runtime prima ottiene una collection di tutti gli elementi appartenenti all'entity set specificato e poi processa il tutto localmente. Se da un lato questo è svantaggioso soprattutto per collezioni di dimensioni notevoli, ha il vantaggio di restituire IEnumerable o EntityCollection, oggetti che invece consentono di sfruttare tutti gli operatori standard di LINQ

Ora che vi ho sicuramente incuriosito , potete trovare tutti i dettagli del caso nella documentazione MSDN che, vi ricordo, è ancora in Beta 2.. quindi non definitiva! E si servono degli esempi, sapete dove trovarli.

Alessandro

Print | posted on venerdì 15 aprile 2011 20:29 | Filed Under [ Visual Studio LightSwitch ]

Powered by:
Powered By Subtext Powered By ASP.NET