Nuova versione di SQL CE Toolbox: supporto a VB, log delle query e stringa di connessione read-only

Print Content | More

Vi ho già parlato più volte di SQL CE Toolbox, sia su questo blog che sulle pagine di ASPItalia: è una utilissima estensione di Visual Studio che vi semplifica la vita quando dovete lavorare con database SQL CE nelle applicazioni Windows Phone.

E’ di recente uscita la versione 2.6, che aggiunge tre feature molto utili.

Supporto a VB.NET

Fino ad oggi SQL CE Toolbox era pensato solo per gli sviluppatori C#, in quanto era disponibile la generazione del DataContext e delle varie entità solamente in C#. Con questa nuova versione è disponibile il supporto anche per VB.NET: trovate l’opzione direttamente nella schermata di generazione del DataContext, accessibile dal menu contestuale che compare facendo clic con il tasto destro su un database all’interno del tool.

image

 

Log delle query

Come saprete se avete letto il mio articolo introduttivo sull’argomento, la tecnologia utilizzata da Windows Phone per l’accesso ai dati memorizzati in un database SQL CE è LINQ to SQL, ORM di casa Microsoft passato in secondo piano con l’evoluzione del fratello maggiore Entity Framework ma tornato alla ribalta su Windows Phone, in virtù della maggiore semplicità e leggerezza.

Utilizzare un ORM, in particolar modo su Windows Phone, significa non scrivere mai query SQL a mano, ma lavorare con gli oggetti, che verranno poi tradotti in righe da inserire nelle varie tabelle del database. A volte, soprattutto in caso di comportamenti anomali o problemi di performance, sarebbe interessante vedere effettivamente il codice SQL generato. Il DataContext generato da LINQ to SQL supporta la proprietà Log, che permette di specificare un output nel quale vogliamo mostrare le query SQL eseguite. Su Windows Phone non è così semplice sfruttare questa feature, dato che non è disponibile una console e i file possono essere salvati solamente nell’Isolated Storage, rendendo complicata l’operazione di estrazione e visualizzazione.

Il DataContext generato dalla nuova versione di SQL CE Toolbox include un’implementazione della classe TextWriter che va a scrivere il log nella Output Window di Visual Studio nel momento in cui l’applicazione viene eseguita con il debugger collegato. Utilizzarlo è molto semplice: vi basta impostare la proprietà LogDebug del DataContext a true, come nell’esempio:

using (OrdersContext context = new OrdersContext(OrdersContext.ConnectionString))
{
    context.LogDebug = true;
    context.Orders.InsertOnSubmit(order);
    context.SubmitChanges();
}

Il risultato sarà, come poteve vedere nello screenshot, che nella Output Window di Visual Studio verrà scrittà la query SQL effettivamente eseguita da LINQ to SQL.

SNAGHTMLaec17bd

Stringa di connessione read-only

Una caratteristica dei database in Windows Phone è il supporto alle connessioni in sola lettura: potete infatti aggiungere un database SQL CE già pronto e popolato (sotto forma di file .sdf) direttamente all’interno del vostro progetto, per poi accedervi dall’applicazione. La stringa di connessione per questo tipo di database è caratterizzata da:

  • Il prefisso appdata:/ come punto di partenza della stringa di connessione (e corrisponde alla root del progetto), mentre per i database memorizzati nello storage viene utilizzato il prefisso isostore:/
  • L’accesso in sola lettura: l’unico modo per inserire dati in un database SQL CE su Windows Phone è mantenerlo nell’Isolated Storage.

Con la versione 2.6 di SQL CE Toolbox il DataContext generato contiene anche una stringa di connessione in modalità read-only per questo tipo di approccio. L’utilizzo è molto semplice, nella vostra applicazione è sufficiente specificare il tipo di connessione in fase di utilizzo del DataContext, come nell’esempio:

//database memorizzato nell'isolated storage
using (OrdersContext context = new OrdersContext(OrdersContext.ConnectionString))
{
    context.Orders.InsertOnSubmit(order);
    context.SubmitChanges();
}

//database aggiunto come file di progetto
using (OrdersContext context = new OrdersContext(OrdersContext.ConnectionStringReadOnly))
{
    context.Orders.InsertOnSubmit(order);
    context.SubmitChanges();
}

Conclusione

Potete scaricare SQL CE Toolbox dalla pagina ufficiale su Codeplex: occhio che, essendo un’estensione, è compatibile solamente con le versione a pagamento di Visual Studio.


Windows Phone , Microsoft , SQL CE

0 comments

Related Post


(will not be published)
(es: http://www.mysite.com)