Impiccato

E anche questa è fatta. E’ uscita su MarketPlace anche la versione italiana di Hangman. Il perché di due versioni è presto detto: volevo avere un titolo italiano e una visibilità specifica sul MarketPlace italiano. Secondo me vale la pena di fare una feature request per poter inserire diversi titoli localizzati per la stessa applicazione (che ovviamente avrà al suo interno il meccanismo di localizzazione dei contenuti). A quel punto si potrà fare un’unica applicazione che viene “reclamizzata” nei diversi paesi del MarketPlace con nomi localizzati. Se poi uno vuole usare lo stesso nome ovunque, sempre libero di farlo.

image

E’ possibile scaricarla qui.

Scaricatela, provatela e fatemi sapere se è sufficentemente carina da perderci un po’ di tempo per implementare la gestione dei punteggi. L'idea è quella di suddividere le parole in tre categorie (facile, medio, difficile) e di fornire un punteggio a seconda degli errori, della difficoltà, etc. e poi fare un sito su Azure che contenga una leaderboard condivisa tra tutti gli utenti.
Aspetto vostri feedback!

Visualizzare il comando SQL emesso da LinqToSQL

Da un po’ di tempo sono in contatto con Erik EJ per quanto riguarda SQL Compact Edition, e grazie a lui ho potuto meglio preparare la mia sessione su WP7 e Database Locale.

Quando poi mi sono trovato ad implementare il programma l’Impiccato, che ha un database leggermente superiore alla media degli esempi fin qui circolati (circa 290.000 records), ho voluto indagare su quali fossero i comandi SQL generati da LinqTo SQL.

Parte di questa storia l’ho scritta sul mio post SQL Compact - SKIP, TAKE and SQL emitted code .

Visto che un analogo articolo di Erik ha suscitato un certo interesse, riporto qui il metodo che ho usato per visualizzare nella finestra Output di Debug il comando SQL emesso da LinqToSQL e che Erik ha deciso di introdurre nella sua prossima versione del suo fantastico add-in (SQL Server Compact Toolbox) cosa che ovviamente mi rende davvero felice.

Iniziamo col dire che il DataContext ha una proprietà Log di tipo StreamWriter. Per mostrare l'SQL nella console basta impostare la proprietà Log del DataContext così:

myDataContext.Log = Console.Out

Ovviamente sviluppando su Windows Phone non abbiamo a disposizione la Console.

Per ovviare a tale inconveniente e utilizzare la finestra output del debugger, ho creato la seguente classe:

using System.IO;
using System.Diagnostics;
using System.Text;

class DebugTextWriter : TextWriter
{
    public override void Write(char[] buffer, int index, int count)
    {
        Debug.WriteLine(new String(buffer, index, count));
    }

    public override void Write(string value)
    {
        Debug.WriteLine(value);
    }

    public override Encoding Encoding
    {
        get { return Encoding.UTF8; }
    }
}

Poiché la classe eredita da TextWriter, che è a sua volta uno StreamWriter, possiamo scrivere:

myDataContext.Log = new DebugTextWriter();

ed ottenere nella finestra Output di Debug il comando SQL emesso da LinqToSQL. Provare per credere :-)

That’s all folks!

«dicembre»
domlunmarmergiovensab
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567