ciao,
nero.mancini ha scritto:
Avevo invece sentito di un "sostanzioso" passo avanti con l'utilizzo del Entity Framework 5: risulta anche a te?
Sì, è vero. Ecco qui le considerazioni sulle performance di Entity Framework 5:
http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspxhttp://msdn.microsoft.com/en-us/data/hh949853.aspxEF5 puoi usarlo anche da Visual Studio 20120, in un'applicazione che viene compilata per il framework 4. Così facendo, tuttavia, non puoi avvalerti di tutte le nuove funzionalità.
Leggi il paragrafo "Compatibility" di questo articolo.
http://blogs.msdn.com/b/adonet/archive/2012/05/15/ef5-release-candidate-available-on-nuget.aspxSe il tuo progetto è appena agli inizi, ti conviene sin da subito passare a EF5. Così sei già pronto quando vorrai passare a Visual Studio 2012.
A prescindere dai miglioramenti di EF5, è importante che tu faccia delle ottimizzazioni soprattutto a livello architetturale perché sono queste che influiscono maggiormente sulle prestazioni dell'applicazione.
nero.mancini ha scritto:
ho cominciato a suddividere in sotto-contesti.
Benissimo! E se qualche entità dovesse essere condivisa tra più contesti, non aver paura di creane due versioni, mappando solo le proprietà di interesse in ciascun contesto.
nero.mancini ha scritto:
le classi/tabelle mi sono praticamente imposte dal fornitore..
Ok, come prima cosa verifica se l'aver creato contesti più piccoli è già sufficiente a produrre prestazioni accettabili.
Se ti rendi conto che, nonostante tutto, l'applicazione va a rilento perché c'è un'elevata concorrenzialità di richieste, allora forse è il caso di capire che rapporto esiste tra operazioni di lettura e scrittura. Se le prime sono di molto superiori alle seconde, allora hai un problema: il fornitore ti impone un modello che non si adatta perfettamente alla tua applicazione.
La soluzione esiste e rispetta le necessità di tutti: puoi scriverti un secondo modello da usare solo per le operazioni di lettura. Non devi modificare lo schema che ti è stato imposto dal fornitore (che resta quello di riferimento), ma crearne un secondo che tieni localmente e che venga periodicamente aggiornato da un
denormalizzatore.
Per sapere se effettivamente ti serve tutto ciò, cerca fin da subito di mettere sotto stress l'applicazione per capire quale carico di richieste può sopportare. Puoi usare uno di
questi tool.
In base ai risultati, potrai prendere le tue decisioni.
ciao
Modificato da BrightSoul il 31 ottobre 2012 10.55 -