Il mio nuovo libro (“SQL Server 2008 Guida all’uso”)

E’ con vero piacere che annuncio l’uscita del mio nuovo libro: questa volta la “vittima” si chiama SQL Server 2008.

Il libro è intitolato “SQL Server 2008 Guida all’uso”, costa 35 Euro ed è edito sempre da FAG Edizioni di Milano.

LibroSQLServer2008

Gli ultimi due capitoli contengono alcuni progetti di Visual Basic 2008 per l’accesso a SQL Server 2008: il penultimo riguarda l’utilizzo delle stored procedure da codice, mentre l’ultimo capitolo è interamente dedicato a Visual Basic 2008 in “sinergia” con SQL Server 2008.

Ringrazio infinitamente Luca Bianchi (Microsoft MVP su SQL Server) che si è prestato gentilmente a leggere, commentare e spesso a correggere i miei “strafalcioni”. Per un “guru” quale è lui è stata quasi una tortura  🙂

Come sempre sottolineo la mia disponibilità nel ricevere i vostri commenti, con l’impegno di migliorare sempre di più la qualità dei contenuti.

Grazie!

Commenti sull’insegnamento di VB6 in alcune scuole…

Sono intervenuto con un mio commento nel newsgroup microsoft.public.it.dotnet.vb, dove Daniele scrive così (messaggio di oggi 30 Agosto 2009, ore 02.06):

Ciao a tutto il NG,
la mia esperienza (quella con VB) iniziò vari anni fa con VB6, poi ho programmato in .NET 2003, 2005, e 2008.
Tutto per passione, ho iniziato da autodidatta e in seguito approfondito i concetti più complessi con alcuni libri.
Adesso "scopro" (in realtà lo sapevo già) che a scuola inizieranno ad insegnarci il VB6.
E mi chiedo il motivo, visto che ormai è una tecnologia obsoleta, abbandonata da Microsoft e con potenzialità nettamente inferiori a quelle offerte dalla piattaforma .net.
Io dovrei cambiare mentalità e tornare agli On Error, alle chiamate API, agli oggetti poco oggetti, a molte brutture e a tutte le mancanze delle comodità di oggi? Va bene per chi lo usa da sempre per lavoro, ma per chi inizia da zero non mi sembra una scelta azzeccata.
Perché? Esiste un motivo valido nel preferire VB6 alle altre possibilità? Oppure è una scelta dettata dalla convenienza, non necessariamente economica?
Mi piacerebbe sentire l’opinione di qualcuno sicuramente più esperto
di me.
Ciao!

La mia risposta è la seguente:

Ciao Daniele.
I tuoi dubbi sull’opportunità di utilizzare VB6 come linguaggio didattico sono perfettamente legittimi, per vari motivi.
Tuttavia, sin dall’uscita di alcuni miei articoli, all’inizio del 2005, sul passaggio da VB6 a VB.NET (all’epoca c’era la versione 2005), ho avuto l’occasione di avere diversi scambi di e-mail anche piuttosto "infuocati" con alcuni insegnanti appassionati di VB6.
Questi insegnanti argomentavano che, dopo aver creato tanti programmi didattici in VB6, avrebbero dovuto convertire tutto alle nuove versioni per .NET, con la necessità di ristudiare completamente Visual Basic, visto che la programmazione a oggetti è cosa ben diversa da quella che avevano utilizzato fino a quel momento.
Non capivano la necessità di dover "ricominciare da capo" solo per la pretesa di Microsoft di imporre un nuovo linguaggio, chiudendo completamente i ponti con i programmatori VB6 che erano perfettamente soddisfatti del linguaggio che conoscevano a menadito.
Le discussioni di questo genere sono andate avanti un bel po’, ma non mi è stato possibile convincere questi insegnanti della validità della scelta di Microsoft nel proporre finalmente un linguaggio totalmente orientato agli oggetti.
Del resto, finché anch’io programmavo in VB6, inizialmente ho avuto anch’io qualche difficoltà nel passaggio da VB6 a VB 2005, sebbene io avessi anche già programmato in JAVA (linguaggio anche questo completamente a oggetti, già da tempo) all’università.
Il problema, quindi, è una prima resistenza iniziale relativa alla necessità di imparare una nuova "forma mentis", prima ancora di imparare il nuovo linguaggio.
Non posso quindi che considerare negativamente quegli insegnanti che si chiudono a riccio nel loro "storico" modo di insegnare, con strumenti obsoleti, e che non vogliono guardare un po’ più in là del proprio naso, per ottusità e/o per pigrizia.
Peraltro gli insegnanti fanno quel lavoro proprio perché hanno voluto dedicarsi alla formazione dei giovani e quindi la loro prima “mission" dovrebbe essere proprio quella di insegnare l’apertura mentale che è alla base dello studio e della ricerca scientifica.
Con l’ottusità e il "piccolo comodo orticello" non si va da nessuna parte.

Con questo post voglio ribadire, alla luce di quasi 5 anni di programmazione con VB .NET (versioni 2005, 2008 e la versione preliminare del 2010) e di alcuni libri pubblicati, che la mia scelta nel passaggio da VB6 a .NET è stata più che azzeccata. Sono un programmatore soddisfatto di VB.NET, perché con VB.NET faccio più cose di quanto riuscivo a fare con VB6.

E’ vero: ho dovuto studiare molto e sperimentare ancora di più. Però ora riesco ad evitare l’utilizzo di tutte quelle API e di quei “trucchetti”, senza i quali con VB6 non si riesce a fare quello che con VB.NET si riesce a fare con una riga o poche righe di codice.

Inoltre si inizia a vedere un effetto anche sul mercato del lavoro e sul mercato delle applicazioni: sempre più aziende cercano programmatori o analisti con conoscenze di VB.NET o di C# e sempre più aziende propongono le versioni delle loro applicazioni in .NET.

La tecnologia .NET è ormai matura, ma qualcuno non se n’è ancora accorto…

Novità in WordPress.com: è possibile votare i post e i commenti

Una novità che ho appena scoperto quasi per caso: la possibilità di votare i post e i commenti nei blog di WordPress.com.

Ho appena attivato questa funzionalità nel mio blog https://deghetto.wordpress.com e quindi d’ora in poi potrete:

1) votare i miei “post”:

Andate sulle stelline indicate da “Rate this”.

image 

Passando su tali stelline, si accenderà un numero di stelle pari alla posizione della stella alla quale state puntando, da un valore minimo di

image

a un valore massimo di

image

 

2) votare i commenti miei e dei visitatori del blog:

Anche in questo caso andate vicino alle icone indicate da “Rate this”

image

Puntando sul “pollice su” o sul “pollice verso”, otterrete il corrispondente voto

image

oppure

image

 

Queste semplici operazioni, se utilizzate, mi daranno la possibilità di valutare la qualità dei miei post e degli stessi commenti.

Non male, eh?  🙂

#55: [VB.NET] Misurare il tempo di esecuzione

…Spesso ci capita di conoscere varie tecniche per risolvere un nostro problema applicativo e/o di programmazione e non sappiamo quali di queste tecniche è più efficace dal punto di vista delle prestazioni, cioè quale impiega meno tempo a terminare l’esecuzione.

Le prestazioni di diversi algoritmi, talvolta, hanno una piccola differenza di tempo nell’esecuzione di singoli passi di programma, ma se moltiplichiamo la differenza di tempo per centinaia di migliaia di elementi da elaborare, il tempo totale diventa percepibile in modo pesante dall’utente. E’ quindi necessario sperimentare i vari algoritmi o frammenti di codice per verificare quale sia preferibile tra le varie possibilità.

Un modo semplice è quello di utilizzare un oggetto di classe TimeSpan, rilevando i “ticks” all’inizio del frammento di codice e alla fine del frammento, calcolando poi la differenza tra le due registrazioni.

I “tick” sono le più piccole unità di tempo in .NET, equivalenti a 100 nanosecondi.

Per esempio:

...

‘ prima registrazione
Dim ts1 As New TimeSpan(Now.Ticks)
‘ frammento di codice o ciclo da valutare
...
‘ registrazione finale e visualizzazione della differenza di tempo
Dim ts2 As New TimeSpan(Now.Ticks)
MessageBox.Show((ts2 - ts1).ToString)

...

In questo modo sarà possibile esaminare i tempi di diversi algoritmi ed effettuare così la scelta del migliore, nel caso preso in esame.

Attenzione: non è un metodo che permette di effettuare dei veri e propri benchmark, perché i tempi di esecuzione spesso dipendono da molti altri fattori. Per esempio servizi e programmi attivi, disponibilità di RAM nel momento dell’esecuzione, carico del processore e così via. In ogni caso, il metodo proposto è un metodo empirico sufficientemente significativo e soprattutto semplice per fare delle valutazioni “a spanne” ma con dei dati alla mano. Per un migliore risultato e una maggiore sicurezza delle misurazioni è consigliabile ripetere la misurazione più volte.