Archive for the ‘C#’ Category

C# Space Invaders

Screenshot del gioco
Per divertimento, ho voluto ricreare il mitico Space Invaders in C# utilizzando solo oggetti WinForms. La navetta, gli invasori, i proiettili sono realizzati utilizzando le labels; i bunker sono oggetti pictures; per il movimento ho utilizzato due panels. Sul mio portatile (T7300 2GB scheda grafica X3100), il risultato è soddisfacente. Per ottenere un vero space invaders, manca ancora l’astronave a passaggio casuale ed i suoni; inoltre, i bunkers non scompaiono quando gli invasori ci passano sopra. Per il resto, ci potete giocare con gusto! Cliccate qui per scaricare i sorgenti.

Annunci

Pivot Table in SQL Server/1

La creazione di Tabelle Pivot in SQL Server non è mai stato un compito particolarmente agevole; fino alla versione 2000 l’unica possibilità era quella di utilizzare le istruzioni T-SQL case-when con la funzione di aggregazione GROUP BY, mentre dalla versione 2005 è stata introdotta la clausola PIVOT che, se non altro, evita la necessità di indicare i campi da aggregare.
Per velocizzare il lavoro, ho creato una classe C# (Clicca qui per scaricarla) che, a partire da una connessione SQLConnection e da una serie di parametri specifici (campi da inserire sulle righe, campo da inserire sulle colonne, tipo di valore da aggregare), restituisce la stringa T-SQL in grado di visualizzare la tabella pivot richiesta. Tale stringa non utilizza l’istruzione PIVOT ed è pertanto utilizzabile anche con le versioni precedenti di SQL Server. Per creare il risultato, la classe in C# utilizza la classe in VB.NET per il parsing delle stringhe SQL che ho presentato in un post precedente; quindi, è necessario scaricare anch’essa, creare la relativa dll e utilizzarne il riferimento.

Creare pagine ASP in maniera automatica

Ancora oggi mi trovo a dover lavorare in ASP classico, e spesso ho la necessità di creare pagine di inserimento dati. Il lavoro è ripetitivo, ed ho quindi pensato di sviluppare un piccolo progetto in C# (scaricabile qui) che sia in grado di creare lo scheletro di una form di fill-in e la corrispondente pagina di salvataggio dati. Il progetto consente di scegliere la tipologia di database (l’ho testato solo con Access e con SQL Server 2005 Express, a voi il compito di creare e di provare connessioni differenti), la tabella, i campi, il tipo di oggetto da associare a ciascun campo (casella di testo, casella combinata o TextArea) e di definire i controlli predefiniti per ciascun campo.

E’ importante mettere in evidenza che le pagine ASP prodotte con questo progetto non devono essere in alcun modo considerate come software direttamente utilizzabile: devono essere modificate per adattarle alle
reali condizioni di utilizzo, per eliminare errori, per gestire situazioni non previste. Considerate ad esempio che i campi data, a seconda delle impostazioni del motore del database, potrebbero non memorizzare le informazioni in maniera corretta, ma magari scambiare il giorno ed il mese. Quindi: fate tutti i test del caso! Le pagine ottenute con questo software sono solo uno scheletro!

Non dimenticate poi che le pagine ASP così prodotte utilizzano stringhe di INSERT in SQL create all’uopo, e non stored procedure: come ben sappiamo, tale cosa è altamente deprecabile!