counter free hit invisible
Welcome to MSDN Blogs Sign in | Join | Help

Pietro Brambati Blog

.NET development
Nuova community a Torino: starting…

Martedì scorso si è svolto a Torino, presso il MIC, un workshop di UGISS. Con l’evento si è lanciata l’idea di far nascere una nuova community .NET nell’area piemontese.

Potete leggere dal post di Marco Russo di questa “idea”. E’ anche possibile partecipare attivamente a questa fase di start-up. Se siete interessati potete contattare Marco…fatevi avanti.

ReMix09 - 2 giorni dopo

Di solito faccio un post di recap sull’evento a cui ho partecipato il giorno dopo o la sera stessa, ma a causa dell’alto numero di mail ricevute, questa volta sono andato un po’ lungo e vi scrivo dopo due giorni :-)) Quindi grazie per la numerosa partecipazione.

Le sessioni dovrebbero, (ho usato il condizionale) , essere disponibili  sul sito BEIT, nell’attesa  quindi vi giro slide ed esempi di codice.

Sessione ASP.NET MVC 1.0

Per chi di voi era tra le persone spaventate dal modello di programmazione di ASP.NET MVC, come detto usi tranquellamente le WebForms. Per chi si trovava tra i contenti e vuole sviluppare con ASP.NET MVC 1.0,  può scaricare la RTM dai link seguenti, basta avere una versione  di Visual Studio 2008 dalla Express in su.

Sessione Silverlight 3 e .NET RIA Services

Silverlight 3, attualmente in beta, è scaricabile dal sito community di Silverlgiht 3.

.NET RIA Services, seguono un flusso di sviluppo diverso e nelle mie slide trovate la roadmap per il rilascio. Come vi dicevo la prossima CTP che verrà rilasciata avrà delle braking changes rispetto a quanto visto nella sessione.

Sessione ASP.NET 4 e Visual Studio 2010

ReMix09 si avvicina

Sì è così. Mercoledì si inizia. Le iscrizioni sono oltre le attese, tanto che in una delle tracce siamo già oltre il limite da parecchi giorni. Quest’anno ci saranno due tracce per developer ed una per designer.

La traccia Getting Started contiene sessioni sulle tecnologie già rilasciate per lo sviluppo web; è orientata a chi ha sviluppato con tecnolgie Microsoft in passato, ad esempio con ASP o VB 6, ma anche a chi parte da zero, magari perchè fin’ora non ha lavorato con ASP.NET 3.5 o Silverlight 2 e IIS 7; penso sia indicata anche per gli studenti o per chi semplicemente vuole aggiornarsi alle tecnologie che oggi gli consentono di sviluppare per il web.

La traccia What’s new invece è orientata a quelle tecnologie di più recente rilascio o non ancora rilasciate, quindi rivolta a chi ha già competenze di ASP.NET e Silverlight e vuole conoscere le novità delle prossime versioni.

Le mie Sessioni:

  • ASP.NET MVC 1.0 (traccia What’s new). La sessione sarà divisa in due parti. Nella prima parte cercherò di rispondere alle seguenti domande: cos’è MVC ? Cos’è ASP.NET MVC 1.0  e come ci si sviluppa ? Che differenza c’è tra ASP.NET MVC e ASP.NET Web Forms e quando è meglio usare uno o l’altro approccio. Nella parte finale, tempo permettendo, vorrei fare qualche semplice esempio di test  usando magari un framework di mock.
  • Silverlight 3 “business application” (traccia What’s new): in questa sessione si parla di due tecnolgie: i .NET RIA Services, attualmente in preview, che consentono di realizzare in modo semplice applicazioni n-tier e Silverlight 3, attualmente in beta, che verrà usato per realizzare la parte di interfaccia utente. Grazie ad alcuni controlli ed un nuovo “Business Application Template” è possibile realizzare un’applicazione che soddisfi 4 requisiti: aspetto professionale, facile interfaccia verso i dati esposi da servizi, validazione client e server e autenticazione… ok dovrebbe bastare.
  • Visual Studio 2010 sviluppo e test(traccia What’s new): questa sessione la faccio a braccetto, ok si fa per dire, con Lorenzo Barbieri. Ho cercato di concentrare più argomenti in poco tempo: WebForm 4.0, ASP.NET Ajax: la parte client, quindi le MS Ajax Library con i nuovi Client Template; dulcis in fundo il nuovo MSDeploy con cui sarà possibile pubblicare un intero sito web, con tanto di dipendenze sulla configurazione di IIS, nonchè il database direttamente da VS 2010: spero di riuscire a farvi vedere questa funzionalità dal vivo… Chissà Lorenzo ?
  • Keynote demo: pending…

Durante Remix09 saranno presenti numerosi MVP di “calibro” e molte community .NET. Quale migliore occasione per incontrarli tutti. Spero di riuscire a salutarli tutti, nella “baruffa” che ci sarà.

Chissà se riuscirò ad usare il mio Poken:

image

A presto. Per chi ci sarà, vi aspetto.

Delphi Day 2009 @ Piacenza e Windows 7

Sono appena tornato dal Delphi Day 2009, il secondo per me, dopo quello del 2007. Marco Cantù è stato così gentile da invitarmi per raccontare un po’ di cose su Windows 7. Scusate se non sono riuscito a portare un numero suffiecente di CD per tutti, potete comunque scaricare la RC di Windows 7 da questo link, con scadenza Giugno 2010.

Ho pubblicato l’ultima versione delle slide: se state leggendo questo post da un feed rss, aprite l’url che punta al post in modo che possiate sfogliarle. Vi ricordo che su BEIT c’è un intero percorso dedicato a Windows 7 per Developer e IT Pro, fatto sulla beta, ma ancora attuale e che potete raggiungere da qui (Percorso Anteprima di Windows 7).

Ecco alcuni puntatori alle domande e argomenti più gettonati :-)

Windows Virtual PC e Windows XP Mode

Potete scaricare il nuovo Windows Virtual PC da questo link e il relativo Windows XP Mode.

Windows Web Service API

Per chi mi ha fatto la domanda sulle WWSAPI, posso suggerire oltre al video di Raffaele Rialdi  (Windows 7: Web service API per applicazioni C++) che trovate nella serie prima suggerita, la serire di post di Mario Fontana:

Supporto nativo ai file VHD

Per approfondimenti potete vedere il video (Windows 7: supporto nativo e avvio da VHD) di Giorgio Malusardi.

Inoltre ..

Come vi dicevo il team di Windows Client e Windows Server hanno da poco annunciato che Windows 7 e Windows Server 2008 R2 uscirano in contemporanea; l’RTM è prevista nella seconda metà di luglio, mentre la disponibilità nei negozi è prevista intorno al 22 ottobre 2009.  Tenete d’occhio il blog Technet Italia per le ultime news ..

Survey sull’utilizzo di Ajax tra gli sviluppatori .NET

Simone ha condotto nel 2007 una survey sull’utilizzo di Ajax tra gli sviluppatori .NET, di cui potete leggere i risultati a questo link; mi sembra interessante segnalarvi che ha riproposto lo stesso sondaggio a due anni di distanza.

Potete partecipare liberamente da questo link e completarla in meno di 2 minuti e seguire sul suo blog i risultati.

La mia sessione al PHPDay 2009

Eccole su SlideShare:

Come promesso ai ragazzi del GrUSP cercherò di tenere aggiornata la wiki :-)

-Pietro

Non ho resistito …

image

Se come me avete visto tutto Magum P.I. …

image

PHP e Windows: risorse utili

[Update 20 Giugno 2009]

Il 15- 16 Maggio a Verona si svolgerà il phpDay 2009, evento dedicato a chi sviluppa applicazioni web per PHP, vi potete registrare tramite l’apposito link sul portale. Questa è la mia terza edizione, come speaker: i ragazzi del Gr.U.S.P mi concedono ancora questa possibilità! Quindi per chi c’è ci vediamo là.

In preparazione al phpday, quindi, spero di fare cosa gradita nel raccogliere del materiale tecnico per chi lavora con PHP e con Windows, diciamo così dallo sviluppo al deploy: ho cercato di raccogliere i link alle ultime novità.

Se volete, lasciate pure un commento con qualche altro riferimento ad altri link che ritenete interessanti segnalare su questo argomento alla community.

Tutti i materiali indicati sono fruibili gratuitamente.

Web Platform Installer (WPI)

WPI 2.0 beta è un tool gratuito che consente d’ installare e tenere aggiorante le componenti Microsoft per la piattaforma web anche per PHP, configurando FastCGI, Url Rewriter, il runtime di PHP, SQL Sever 2008 etc..

image

Nell’imagine vedete una delle maschere del tool da cui potete scegliere cosa installare: ad esempio il modulo di UrlRewriter, il runtime di php 5.2.9 e Acquia Drupal. La nuova versione, attualmente in beta, si integra infatti con quella che viene chiamata Web Application Gallery, vedi dopo.

Download Web Platform Installer

Web Application Gallery

Da questa pagina, potete scaricare le più note applicazioni open source per PHP e ASP.NET: Drupal, Wordpress, Umbraco, etc.

Il WPI 2.0 integra la possibilità di installarle sulla propria macchina tutto dallo stesso tool, con un wizard che guida nella configurazione su IIS per SQL Server e MySQL, installando le applicazioni già configurate in pochi minuti.

image 

image

Vai alla Web App Gallery

Video e articoli: IIS, PHP, SQL Server, Editor

PHP e IIS

IIS 7  Deep Dive video (italiano)

SQL Server Driver per PHP

MySQL

Editor

PHP on Windows Training Kit

Potete scaricare gratuitamente questo kit che contiene presentazioni tecniche su IIS 7 e SQL Server 2008, che tratta di:

PHP & SQL Server Demos

  • Integrazioni di dati geo-spaziali di SQL Server 2008 in PHP
  • SQL Server Reporting Services e PHP

PHP & SQL Server Hands On Labs
  • Introduzione all’uso di SQL Server con PHP
  • Usare Full Text Search su documenti documenti Office in PHP

PHP on Windows Hands On Labs
  • IIS Access Control Features per PHP
  • Usare IIS 7.0 Media Features in un’applicazione PHP
  • Troubleshooting PHP
  • Migrare applicazioni PHP a IIS 7.0

 

Azure: Cloud Computing e PHP [nuovo]

Siti utili

Forum

Silverlight – Security e Installation docs
Silverlight 3 e i .NET RIA Services – parte 3

Questo post conclude il piccolo esempio con cui è possibile sperimentare l’uso di Silverlight 3 insieme ai .NET RIA Services, trovate le precedenti parti qui:

Validazione

Usiamo il file creato in automatico da Visual Studio per aggiungere delle semplici regole di validazione. Nel mio caso il file si chiama CustomersModel.metadata.cs. Se esplorate il file troverete delle classi che si mappano su quelle del vostro modello dei dati, che espongono delle proprietà sulle quali possiamo intervenire usando opportuni attributi, ad esempio trovate commentati nello stesso file: Required, RegularExpression etc diciamo più o meno intuitivi sul loro significato.

Nel mio caso voglio impostare una semplice regola: il campo CompanyName non può essere nullo ed il relativo messaggio d’errore: “Devi inserire il nome della company”; ok, ecco come si presenta il codice, dove la parte in verde è quella da aggiungere:

image

Questa operazione “impostata sul server”  al momento della compilazione viene “trasportata” anche nel codice proxy generato lato client.

Se ora faccio partire l’applicazione e cerco di togliere dalla Grid, che ha l’edit mode abilitato, il nome della company ottengo una “bellissima” segnalazione dell’errore di validazione. Per il test di questa situazione fate partire l’applicazione senza il debugger collegato (CTRL-F5)

 

image

La regola di validazione sta lavorando client-side, quindi senza fare round-trip con il server.

Aggiungiamo un DataForm

OK, aggiungiamo ora un nuovo controllo che può essere utile per visualizzare e fare l’edit di singoli item; nel nostro caso è poco utile perchè la mia grid ha già tutte le proprietà visibili ed è in edit mode, ma insomma …

Aggiungiamo il controllo in XAML e colleghiamolo alla griglia, in modo che quando l’utente cambi focalizzazione i contenuti siano tra loro collegati.

Ecco il codice:

image

Ed ecco il risultato a video:

image

Il form permette di abilitare la fase di Editing premendo il bottone a forma di matita in alto a destra, inoltre supporta già, senza ulteriori modifiche al codice, la regola di validazione che ho impostato in precedenza; in più notate anche un error-summary nella parte finale della schermata.  Se abilitate l’editing sono in oltre presenti i due bottoni di Save e Cancel con cui è possibile cancellare la modifica fatta o aggiornare lo stato –in memoria- della nostra entità, cioè fino ad ora non è stata propagata nessuna modifica sul database.

Inviamo le modifiche ai .NET RIA Services

Aggiungiamo un semplice bottone ed il relativo handle per il click del mouse.

image

CustomersDataSource è il nostro DomainContext

Provate  … e questo conclude il mio esempio …

 

Link utili :

 

Download esempio di codice

Potete scaricare l’esempio di codice da qui, per usarlo dovete modificare la stringa di connessione in modo che punti ad una istanza di SQL Server su cui è installato il db northwind. Nella prima parte di questa serie di post trovate i link a dove installare Silvelight 3 beta ed i .NET RIA Services.

Internet Explorer 8 : a sinistra o a destra

Preferite i bottoni a destra …

image

o a sinistra …

image

Ecco come:

image

Per tutto il resto: Customization in IE8

Silverlight 3 e i .NET RIA Services – parte 2

Nel primo post di questa serie avete visto un piccolo esempio di come costruire uno strato di mid-tier che usi i .NET RIA Services, attualmente in preview.  Nella parte finale ho collegato in binding una datagrid di Silverlight per visualizzare i dati, istanziando da codice il DomainContext che, in automatico con la compilazione, viene prodotto lato client. Il nostro DomainContext contiene la collezione delle entità su cui stiamo lavorando, Customers etc, i metodi per le operazioni di lettura, modifica, inserimento e cancellazione sugli stessi.

Facciamolo in modo dichiarativo

Ora rimuoviamo il codice C# , nella MainPage  e per proseguire aggiungiamo l’assembly System.Windows.Ria.Controls.dll che si trova nella directory di installazione dei .NET RIA Services: “C:\Program Files\Microsoft SDKs\RIA Services\v1.0\Libraries\Silverlight” e una serie di namespace alla pagina XAML che ci serviranno più avanti:

image

image

Inoltre aggiungiamo il namespace al progetto locale che contiene il DomainContext generato dai RIA Services, nel mio caso si tratta di quello dell’applicazione web. Aggiungo anche questo namespace perchè voglio istanziare in XAML, in modo dichiarativo, l’oggetto CustomersContext che prima istanziavo in C#, quindi:

image

Ora, il controllo DomainDataSource, che conterrà l’istanza del nostro CustomersModel nome del metodo Loadcustomers:

image

Ora, uso la proprietà ItemsSource della DataGrid per collegare la proprietà Data, dell’elemento appenda dichiarato che si chiama (x:Name) customersDataSource.

image

Il risultato fino a qui raggiunto è lo stesso di quello ottenuto alla fine del post fatto in precedenza, ma mi dà l’occasione di continuare l’esempio…

Ordinamento

Se ora voglio aggiungere l’ordinamento di default alla DataGrid, usando sempre l’oggetto DomainDataSource, scrivo il codice nell’immagine dove PropertyPath identifica in questo caso il nome della proprietà di cui voglio ottenere l’ordinamento dell’entità Customer.

image

Filtraggio

Ora aggiungo un semplice TextBox dove l’utente può inserire l’iniziale della città per eseguire il filtraggio dei miei Customers, poi come nel caso seguente modifico il mio DomainDataSource per dare supporto al filtraggio via TextBox.

image

image

Paginazione

Aggiungiamo ora il controllo DataPager, impostiamo il numero di dati per pagina uguale a 5 e colleghiamo la sorgente per la paginazione sempre al nostro customersDataSource

image

Il risultato è quello che vedete nell’immagine sottostante:

image

Se ricordate all’inizio, il numero di Customers che venivano recuperati dalla query era pari a 20 e la paginazione avviene per pagine di 5 elementi. Questo vuol dire che dopo il primo roundtrip con il server che recupera i 20 clienti, la paginazione nel mio caso avviene, per quegli elementi, sul client, quindi senza andare a chiamare il server quando non è necessario.

Nella prossima parte useremo il nuovo controllo DataForm, aggiungeremo la validazione ed il supporto per le operazioni di update sul database.

Silverlight 3 e i .NET RIA Services – parte 1

I .NET RIA Services (attualmente in Preview rilasciata dopo il MIX09) sono molto interessanti per chi scrive applicazioni e vuole esporre entità tramite servizi e poi consumarle da Silverlight 3. Pensiamo ad esempio ad una piccola applicazione, costruiamo lo strato di accesso ai dati con Entity Framework, vogliamo poi costruire uno strato di servizi per esporre gli stessi dati ad un’applicazione silverlight 3.

Requisiti

Per seguire il mio esempio dovete avere installato:

Attenzione: se sulla vostra macchina sviluppate anche con Silverlight 2, usate una macchina virtuale per Silverlight 3 beta, perchè dopo l’installazione dei tool la macchina sarà configurata per questa versione di Silverlight, la 3 appunto e non vi sarà supporto per creare progetti Silverlight 2.

Esempio

Creiamo un nuovo progetto Silverlight 3,  potete anche usare il nuovo template Silverlight Navigation …

image

Nella maschera successiva, lasciate impostato il flag “Link to ASP.NET server project”. Questo creerà un legame tra il nostro servizio e l’applicazione client (Silverlight) generando ad ogni compilazione delle classi per Silverlight ed il relativo modello che permetteranno l’interazione con la corrispondente parte lato server.

image 

Creiamo uno strato di accesso ai dati

Ora al nostro progetto aggiungiamo un semplice strato di accesso ai dati fatto con Entity Framework, usando northwind e prendendo la tabella Customers, che creerà la corrispettiva classe, immagino fino a qui sia più o meno tutto noto e le immagini seguenti siano esplicative:

image

image

Nel disegno futuro potrete usare qualunque tecnologia per lo strato di accesso ai dati usata insieme ai .NET RIA Services: LINQ to SQL, vari ORM, semplici oggetti .NET etc, etc.

Creiamo ora il mid-Tier usando i RIA Service

Ora, sempre sul progetto web, che contiene ora il nostro file.edmx, possiamo aggiungere un DomainDataService. Questo nuovo template per VS 2008:

  • crea un servizio REST-based, rendendo possibili operazioni CRUD sulla nostra sorgente dati.
  • ci permette di esporre i metadati relativi alle nostre entità. Questi possono essere molto utili in caso volessi aggiungere delle regole di validazione sul modello stesso dei dati (vedete dopo).

Quindi, Add New Item, selezionare Domain Service Class, chiamiamo il nostro servizio ad esempio CustomersService, ad esempio

image

Ora nella schermata seguente abbiamo la possibilità di selezionare le Entità e se abilitare la modifica su queste, questo creerà dei metodi di Update, Insert e Delete. Inoltre selezionate il flag per creare la classe dei metadati, che ci servirà dopo per la validazione.

image

l’opzione Enable Client Access è importante: questa crea il legame tra il mid-tier, il nostro progetto web che espone dati, ed il progetto Silverlight 3. Ogni volta che compilo l’applicazioni vengono create delle classi proxy, che si mappano sul modello.

Le classi lato server

Sul server ora vengono create due classi, la prima customerModel, contiene i metoti per ottenere/inserire/modificare e cancellare i nostri customers, le entità del nostro modello:

image

la classe CustomersModel.metadata.cs contiene i metadati relativi

Le classi lato client: Silverlight

Se compiliamo il progetto, vengono prodotte in automatico delle classi proxy, per vederle in Visual Studio, possiamo usare il bottone per visualizzare tutti i file:

image

Scriviamo il codice dell’applicazione Silverlight 3

Ora, per renderci conto di come usare i RIA Services (un primo modo per la verità), inseriamo una semplice DataGrid nel progetto Silverlight e poi scriviamo il codice seguente nel file di code-behind:

image

image

Se lancio l’applicazione ho i dati visualizzati nelle griglia:

image

il metodo LoadCustomers è il corrispondente metodo associato al metodo GetCustomers definito a livello di servizio. I RIA Services usano questa convenzione nella nomenclatura, che comunque può essere personalizzata e/o modificata usando l’attributo [Query] sul metodo del Servizio.

Nella prossima parte ci occuperemo di:

  • filtraggio, ordinamento, paginazione
  • nuovi controlli RIA
  • validazione
  • operazioni CRUD
Entity Framework ottimizzare le performance

Direi che una buona pagina da cui partire è questo documento su MSDN :Performance Considerations for Entity Framework Applications, che punta ad una serie di risorse che ho trovato interessanti.

Cosa influisce sulle performance?

Beh, forse è la prima domanda che ci si pone. Cosa succede al momento della creazione dell’ObjectContext, il punto di accesso con cui usiamo EF ? In un bel post del team viene evidenziato il dettaglio delle operazioni fatte ed il relativo costo:

image

Da una rapida occhiata si vede come tra le operazioni che hanno più costo, in particolare allo start-up, ci sono:

  • View Generation: è il momento in cui vengono create delle viste per le operazioni di query ed update relative allo specifico store utilizzato. Questa operazione può essere evitata: usando il tool EdmGen per generare le view, in un file .cs o .vb e compilarle il tutto assieme, come documentato qui. Nella documentazione MSDN questa operazione(View Generation) è considerata la più costosa (high).
  • Materializzazione: cioè il processo di creazione degli oggetti del dominio dal valore ritornato dall’ oggetto DBDataReader. Se gli oggetti già esistono nell’ ObjectContext, usando AppendOnly e PreserveChanges come merge option, questo costo può essere trascurato.
  • Anche l’Inizializzazione ed il Loading dei metadati ha un costo (moderato rispetto al primo): è il momento comunque in cui avviene l’apertura della connessione vera e propria.

Nell’ 1% c’è il tempo di esecuzione vero e proprio della query. Nello stesso post c’è anche il grafico del dettaglio di questo costo,  con la spiegazione delle singole voci, tolto il tempo di start-up quindi. Vi riporto qui per comodità di lettura:

image

Quando ho questi costi ?

Ci potremmo chiedere. Ogni volta che creo un ObjectContext, per i tempi di start-up? O quando eseguo una query ?

Nella documentazione MSDN vediamo che alcuni di questi costi sono legati (quindi in qualche modo vivono in una cache) all’ Application Domain e non alla creazione della singola istanza di ObjectContext. Guardate la tabella seguente:

image

Nell’immagine vedete che i costi più alti ci sono una sola volta per ogni Application Domain.

Infatti se in una Console Application eseguite una query con due istanze dello stesso object Context, che esegue la tessa query 4 volte con il primo e altre 4 volte con il secondo, vedete il costo molto alto solo nel primissimo run:

image

Inoltre come detto, potrei ridurre il costo della fase di generazione delle view, come documentato qui, nel caso il mio application domain venisse creato e distrutto più volte.

Query: preparazione ed esecuzione

Sempre dalla tabella vista in precedenza, si vedono i costi del tempo di preparazione ed esecuzione delle query sono distinti. EF fa in modo che il tempo di preparazione di ogni singola query sia speso una sola volta per query e quindi poi parte del lavoro riutilizzato. Ad ogni modo è abbastanza intuitivo pensare che all’aumentare della complessità della query i tempi di preparazione ed esecuzione aumenteranno inevitabilmente.

Per ottimizzare il tempo complessivo speso per una query è possibile utilizzare delle query compilate (Documentazione MSDN qui). Una query compilata viene creata una volta sola e puoi può essere riutilizzata con diversi parametri.

Trovate un esempio d’utilizzo in questo post del team di prodotto.

Tracking degli oggetti

Un altro aspetto che nella tabella sopra è contraddistinto come low, ma che è proporzionale al numero di oggetti ritornati e quello relativo al tracking, questa funzionalità dell’ ObjectStateManager che tiene traccia della “vita” delle nostre entità: aggiunta, cancellazione, modifica e l’Entity Key viene usata per identificare le istanze degli stessi.

Quando usate come mergeoptions NoTracking, le operazioni di aggiornamento e risoluzione dell’identità della cache dell’ObjectStateManager non vengono eseguite. Questa opzione ha senso se non dobbiamo tracciare operazioni di modifica/cancellazione e inserimento dei nostri oggetti, ne è tipico l’uso in applicazioni ASP.NET in cui si fa il recupero di dati e  non si è interessati ad altro.

Entity Data Model  per database con tante tabelle

Da quanto visto in precedenza appare anche un altro aspetto che può essere utile investigare : all’aumentare del numero di tabelle del db che fanno parte di uno stesso Entity Data Model (EDM) le performance decrescono.  Da questi due post del team (primo e secondo) i suggerimenti sono di pensare di dividere l’EDM in più parti quando il numero di tabelle è elevato, quando cioè si raggiungono le 50-100 tabelle.

La divisione dell EDM in parti con il riutilizzo parziale di tipi tra EDM diversi non è una cosa banale, poichè il designer di Visual Studio non c’aiuta e quindi bisogna operare a mano sul file CSDL. Trovate degli esempi  con diverse strategie proprio nei due post che vi segnalo.

Conclusione

L’ottimizzazione delle performance di EF  può tenere conto di diversi aspetti, che ho cercato di ricollegare con un po’ di documentazione, direi che può essere utile almeno tenere presente di:

  • generare view pre-compilate per ottimizzare lo start-up
  • usare compiled query
  • usare NoTracking se possibile
  • partizionare l’EDM se molto grosso

Link utili:

UGISS Workshop Torino - Call for Papers

Il 16 Giugno a Torino si terrà il workshop di UGISS (User Group Italiano SQL Server).

L’aspetto interessante di questa segnalazione però è il “Call for Paper”, ovvero potete anche voi proporre delle sessioni tecniche su SQL Sever.

Quindi anche se non avete mai fatto una sessione in pubblico, ma conoscete bene l’argomento, può essere una buona occassione.

Concludo con le parole di Davide Mauri : “la community ha bisogno di voi!” e “Fatevi avanti!”

More Posts Next page »
Page view tracker