agosto 2005 Blog Posts
Ho letto il post di Andrea sulla segnalazione dei 5 blog entro oggi.
Faccio ancora in tempo Preciso che i temi e gli argomenti dei 5 blog che
segnalo sono quanto di più lontano ci può essere da me:arte, motociclette,
fumetti & manga, ciclismo ed infine uno strano blog su Asia ed Oriente!
DIAblogANDOhttp://www.hobby.diablogando.it/
Motociclandohttp://motociclando.blog.excite.it/
Manga: Mondo delle Ombrehttp://euridice.blog.excite.it/archive/category/Manga
Ciclismo Bloghttp://www.bloggers.it/mondociclismo/
Da Udine all'Estremo Orientehttp://fareastfilmfestival.splinder.com/
powered by IMHO 1.2
Dopo aver voluto andare al concerto di Ligabue dell'11 Settembre 1999 a Verona (e non esserci andato), dopo aver saltato tutti gli altri concerti di Milano e Roma, finalmente questa sera al MediaWorld ho acquistato il mio bravo biglietto per andare al concerto di Ligabue del 10 Settembre, a Campo Volo (RE).
Purtroppo, nessuno dei miei amici e della mia compagnia vuole venire, anche a causa di altri impegni importanti (matrimoni, università, etc.). Spero di far conoscenze lì, insomma, giusto?
Non c'è proprio nessuno di UGIdotNET che per caso va anche lui al concerto, vero????
A seguito del mio ultimo post di ieri, ho ricevuto diversi comment di Andrea e Lorenzo che mi hanno spinto a rivedere e ad ottimizzare il codice C# scritto, appunto, in quel post.
Motivo scatenante: l'utilizzo della classe SqlCommandBuilder. Come ho detto ieri, questa classe serve per facilitare e a velocizzare la creazione dei 3 Command necessari a ADO.NET per fare le sue operazioni sul database (i Command sono InsertCommand, DeleteCommand e UpdateCommand). Tranne in rarissimi casi, però, fretta e bene non vanno mai bene, ed effettivamente provando a visualizzare la CommandText dei 3 SqlCommand si vede che il codice SQL...
Avevo sentito parlare di un'iniziativa Microsoft secondo
la quale chi non passava un qualsiasi esame di certificazione, aveva la
possibilità di ritentare una seconda volta a costo zero.
Effettivamente ho avuto conferma di questa cosa su questa pagina su MSDN:
http://www.microsoft.com/learning/mcp/offers/2ndshot/
Purtroppo, però (c'è sempre un però)...
Question:What is the time frame in
which I must take my first exam and the retake of that same exam?
Answer:You must take the first exam
between February 28 and August 31, 2005, and if you fail it, you may retake the
same exam at no additional cost before September 30, 2005.
Ormai direi che non faccio più...
Il metodo ImportRow che ho "scoperto" ed
utilizzato per la prima volta questa sera è comodo, perchè permette di
aggiungere ad una DataTable un oggetto DataRow proveniente da un'altra
DataTable.
Ad esempio, possiamo convertire il codice seguente:
foreach (DataRow dr_source in this.Tabella.Rows){ DataRow dr_dest = ds.Tables[0].NewRow(); dr_dest["name"] = dr_source["Name"]; dr_dest["birthday"] = dr_source["BirthDate"]; ds.Tables[0].Rows.Add(dr_dest);}
con il seguente codice, più compatto e pulito:
foreach (DataRow dr_source in this.Tabella.Rows) ds.Tables[0].ImportRow(dr_source);
La compattezza del codice ovviamente aumenta anche in base al numero di
DataColumn che compongono la DataTable. Se
invece dei due semplici campi 'name' e 'birthday' avessimo 50 campi, il guadagno
in termini di lunghezza di codice si fa man mano sempre maggiore.
Qualche annotazione: questa pagina di MSDN spiega nel dettaglio questo
metodo. Importare con ImportRow, ricordiamocelo, mantiene...
Riassunto delle ultime puntateNel post [MCAD.23] abbiamo visto i primi rudimenti di SqlConnection e SqlCommand all'interno della form frmConnection creata appositamente. In quel post ho scritto del codice per aprire una connessione verso SQL Server e due tipi diversi di SqlCommand (per eseguire una SELECT e per eseguire una stored-procedure). Lo scopo era quello di creare una tabella ListBirthdays sul server, pronta ad accogliere tutti i dati che inseriamo all'interno della nostra applicazione, ovvero tutte le istanze di Age, inteso come persone con le relative date di compleanno.
Nel post [MCAD.24] ho inserito nel codice qualche miglioramento che mi è stato consigliato da cui mi ha...
Nel post [MCAD.23] ho scritto alcune linee di codice relative a ADO.NET che hanno ricevuto qualche comment. Ho deciso quindi di riportare i consigli e i miglioramenti di Igor e di Daniele. Questi cambiamenti hanno a che fare sia con ADO.NET, sia con la buona programmazione C#, per cui ritengo questo post una sorta di add-on, un extra che chi vuole può saltare. Dunque, vediamo un po' di cosa si è parlato.
Enum SupportedTypeDBCominciamo con le cose più semplici. La mia applicazione Age gestisce un file app.config che inizialmente era scritto in questo modo:
<add key="TypeDB" value="SQLSERVER" /> <add key="DBConnection" value="Persist Security Info=True;Integrated Security=SSPI;database=age;server=SPOCK;Connect Timeout=30"/>
La key DBConnection non ci interessa: è semplicemente...
Nel post precedente, abbiamo creato un nuovo Windows
Form per regalare alla nostra applicazione qualche funzionalità in più in
materia di database, per esplorare per bene quello che ci offre ADO.NET. Il form
è quello riportato qui sotto, tutti i dettagli sulla sua implementazione sono
nel post [MCAD.22].
Quello che voglio fare oggi è la stessa cosa che ho anticipato la volta
scorsa. Appena l'utente clicca sul pulsante Ok, vuol dire che desidera da questo momento
utilizzare la nuova stringa di connessione specificata nella TextBox. Prima di
farlo, però, vorrei controllare che 1) la connessione funzioni realmente e
2) esista la tabella...
Nel mio ultimo (ormai lontano) post relativo ad MCAD,
avevo scritto delle funzioni in grado di leggere e scrivere files XML usando i
metodi messi a disposizione dalla classe DataSet. Usando
ReadXML e WriteXML, siamo riusciti a salvare su disco
l'elenco dei nostri compleanni, così da non dover tutte le volte popolare la
ListBox che abbiamo messo sulla Windows Form principale della nostra
applicazione.
Queste funzionalità hanno reso l'utilizzo della nostra piccola applicazione un po' più semplice
ed intelligente. Riprendiamo il discorso preparandoci ad affrontare al meglio le insidie
di ADO.NET!
Ecco l'interfaccia di Age come si presenta fino ad oggi....
Sto prendendo in considerazione l'idea di seppellire
il mio numero di cellulare, di attivarne uno nuovo, e di dare questo numero solo
a chi voglio io. La riflessione che mi sto facendo in questo periodo è
questa.
Ho lavorato per tantissimo tempo come libero professionista sviluppando
software e documentazione da solo, software che poi ho venduto (da solo), ho
fatto assistenza (da solo), lo facendo manutenzione, etc. etc.
Questa metodica di lavoro ha funzionato bene fino a quando non ho
cominciato a lavorare come consulente presso diverse società: è dal 2000 che
ormai faccio il consulente. Morale della favola: non so più bene...
Molto spesso mi capita di aprire MSDN o di aprire
altri siti contenente articoli in lingua inglese. Articoli anche interessanti,
che spiegano questo o quell'altro, che parlano di ADO.NET, o di Pocket PC, e
così via. Questa mattina, per esempio, ho trovato sull'homepage di MSDN
l'articolo Migrating from ADO "Classic" to
ADO.NET, ho aperto il link, ma non c'è stato nulla da
fare: non riesco quasi mai a leggere completamente un articolo on-line, perchè
mi fermo prima, perchè faccio fatica a seguire il discorso, mi casca sempre
l'occhio sul diagramma o sulla schema che c'è sulla pagina.
E allora mi dicevo: sono...
Non so come sia andata la vostra estate, dove siete
andati, cosa avete fatto, quali posti avete visitato. Io so solo che da lunedì
ricomincio il tran-tran quotidiano, partendo da Lodi verso le 7:30 del mattino
per arrivare a Milano, davanti al mio PC, intorno alle 9:00.
Come sa chi frequenta il blog, ho passato l'estate tranquillo tranquillo a
casa, aprofittando (se così si può dire) dell'essenza dei miei genitori (che
hanno passato un bel mese in un campeggio pugliese) e di mio fratello (che è
andato a Barcellona). Sto ancora leggendo Windows Forms Programming in
C#, ho letto alcuni libri...
E' proprio vero, agosto si fa sentire...avevo promesso a me stesso che durante agosto avrei continuato la mia serie di articoli su MCAD, ma l'arrivo del mio libro Windows Forms Programming in C# mi ha scombussolato i piani.
In questo periodo, bello tranquillo nel mio giardino, sto studiando alcune cose interessanti su C#, e leggo spesso il blog di UGI, anche se devo dire (e ci mancherebbe altro) che è davvero poco frequentato. Mi sembra giusto, adesso è il momento di mare ed abbronzature!
Il libro è davvero scritto bene (ricordo che è in inglese)...forse i primi capitoli sono un...
Eccomi, direttamente dal mio giardino, pronto per andare
avanti e riprendere un attimo il discorso che avevamo lasciato in sospeso
mercoledì scorso. Nel mio ultimo post avevamo visto come salvare in un file
XML i compleanni che abbiamo inserito nella ListBox, ovvero:
abbiamo aggiunto qualche voce al nostro MainMenu per
prevedere le funzioni di caricamento, di salvataggio e di importazione dei
nostri files XML
abbiamo visto la creazione e l'utilizzo della function dichiarata
così:private DataTable
getSaveTable(bool
WithData)
abbiamo visto l'utilizzo di SaveFileDialog che consente
all'utente di scegliere...
Qualche minuto fa, il postino ha suonato il mio
campanello. Memore del fatto che il postino suona sempre due volte, l'ho fatto
aspettare un po'......poi gli ho aperto. Mi ha consegnato un enorme sacco
bianco. Ho aperto il sacco bianco: dentro c'è un enorme scatola di cartone. Ho
aperto la scatola e......voilà......il contenuto mi ha rallegrato:
Windows Forms Programming in C# per me
Dragonlance Chronicles per la mia amica Fede
Star Wars Roleplaying Game - Arms and Equipment Guide
per me, mio fratello e per il mio amico Fabio
Apollo Command Module (CSM) Reference...