lunedì 1 febbraio 2010
La prima versione dello screencast “ADO.NET 2.0 Primo Contatto” l’avevo creata con un prodotto free (CommunityClips). Purtroppo la versione free ha probabilmente qualche limitazione e/o richiede un codec specifico, per cui alcuni iscritti mi avevano informato che non si riusciva a vedere.
Cogliendo la palla al balzo (un balzo un po’ lento …) e grazie anche alla mia licenza CamTasia 6.01 “full”, ottenuta grazie alla nomina MVP (Thank you very much, TechSmith – http://www.techsmith.com/ !!), ho provveduto a rifare la registrazione con questo ottimo prodotto.
La registrazione risultante è un po’ più lunga di circa 3-4 minuti rispetto alla prima versione (in tutto sono circa 10 minuti), perché ho aggiunto anche qualche informazione in più, seppur restando nell’ambito di quanto illustrato nella prima versione.
La nuova versione si trova allo stesso indirizzo della precedente e cioè http://deghetto.wordpress.com/2008/10/25/screencast-adonet-20-primo-contatto/ per quanto riguarda il mio blog WordPress, mentre la versione sul portale VBT&T arriverà appena potrà essere sostituita quella precedente (ho appena richiesto la sostituzione, quindi … abbiate pazienza!).
Mi farete un grosso piacere a farmi sapere se questa versione funziona meglio, se ci sono dei difetti di registrazione e se la qualità della registrazione in generale è valida.
Per quanto riguarda i contenuti, spero che vi possano interessare, soprattutto a chi si approccia per la prima volta a questa tecnologia. Abbiate pietà per la qualità dell’esposizione, visto che questi sono i miei primi timidi passi verso gli ScreenCast (al momento trovo ancora abbastanza innaturale a parlare al computer, se non per indirizzargli insolenze e vituperi vari!).
Buona visione! 
Nota: questo screencast non è nell’area webcast di DotNetWork perché l’ho registrato un bel po’ di tempo fa. Mi riprometto di rifarlo con un po’ di informazioni in più, nella nuova versione di Visual Studio 2010.
Mi riallaccio al post di Renato Marzaro proprio su questo argomento (http://community.visual-basic.it/renato/archive/2009/02/25/24984.aspx) per aggiungere qualche informazione che è possibile estrapolare dall’articolo segnalato e dai alcuni dei numerosi commenti che i lettori gli hanno inviato.
Jason Zander, General Manager di Microsoft per Visual Studio – Developer Division, ha pubblicato nel suo blog un articolo sulla nuova interfaccia visuale del futuro Visual Studio 2010 (http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx).
Potete vedere alcuni screenshot all’indirizzo che ho riportato qui sopra.
La cosa tra tutte più impressionante è il fatto che l’IDE di Visual Studio 2010 è stato riscritto interamente in WPF!
Un’altra caratteristica interessante che ha trovato parecchi consensi è la possibilità di sganciare la finestra di un documento e di spostarla su un altro monitor, qualora dovessimo avere la disponibilità di più monitor.
Nella barra a sinistra dell’editor di codice (quella dove clicchiamo per attivare dei breakpoint, per intenderci), avremo alcuni nuovi segnalini:
- un triangolino nero, per indicare sezioni di codice che possono essere fatte collassare (come le Region)
- un triangolino bianco, per indicare sezioni di codice collassate che possono essere ripristinate
- delle barrette colorate per indicare quali righe di codice sono state modificate.
La finestra di dialogo New Project è stata ridisegnata con migliori funzionalità di ricerca, anteprima di template online e una navigazione più facile. Visual Studio mantiene la caratteristica multi-target, cioè la capacità di utilizzare versioni diverse del Framework .NET cioè 2.0, 3.0 e 3.5, con in più l’aggiunta della versione 4.0.
Ora c’è anche il nuovo Extension Manager per trovare e gestire più facilmente le estensioni a Visual Studio prodotte da terze parti (partner o anche appassionati).
Non è previsto in questo momento di estendere il supporto del Framework .NET 4.0 per Visual Studio 2008. Comunque, Visual Studio 2010, potrà essere installato senza problemi anche su Windows XP.
Al momento non è ancora stata fissata una data di rilascio della Beta 1 di Visual Studio 2010, ma il Team ci sta lavorando ed è probabile che sentiremo presto notizie in merito!
Nel mio post precedente (tip #50) ho spiegato come si configura un nuovo strumento esterno da Visual Studio 2008 per aprire direttamente Expression Blend sul progetto corrente. Expression Blend lavora su progetti WPF e quindi non può essere avviato con un progetto web o Windows Forms.
Per utilizzare Microsoft Expression con (pressappoco) gli stessi strumenti, anche su un progetto web, possiamo utilizzare Expression Web.
La configurazione è molto simile a quella che ho illustrato per Expression Blend, con qualche piccola variante. Anzi, a parte il titolo dello strumento esterno (Expression Web anziché Expression Blend), cambia solo il Comando:
- C:\Program Files\Microsoft Expression\Web 2\WebDesigner\EXPRWD.EXE (per la versione a 32 bit)
- C:\Program Files (x86)\Microsoft Expression\Web 2\WebDesigner\EXPRWD.EXE (per la versione a 64 bit).
Ecco qui la finestra di dialogo:

Molti di voi sapranno che è possibile compilare un progetto o una soluzione di Visual Basic 2008 in due modalità distinte: DEBUG e RELEASE.
Nella modalità DEBUG vengono mantenuti i simboli interni, al fine di poter disporre di un riferimento di supporto alla verifica del codice inserito. Nella modalità RELEASE, invece, vengono eliminati tutti questi simboli e l’applicazione compilata è pronta alla distribuzione.
Distribuire un’applicazione in modalità DEBUG non solo è inutile ma è anche dannoso: infatti le informazioni possono essere utilizzate per un’operazione di reverse engineering per recuperare il nostro codice VB.NET, ma anche le prestazioni dell’applicazione ne possono risentire in senso negativo. E’ quindi importante, prima di distribuire un’applicazione, passare alla modalità RELEASE e ricompilare il progetto o la soluzione.
Premesso questo, talvolta è importante sapere se un assembly sia stato compilato in modalità DEBUG o RELEASE, per evitare di distribuire l’applicazione dimenticando il passaggio dalla modalità DEBUG alla modalità RELEASE.
Possiamo ottenere questo in modo estremamente semplice, con questi semplici passi:
- nella finestra Esplora Soluzioni, attivare il pulsante “Mostra tutti i file”;
- nel livello inferiore contenuto nel nodo “My Project” troveremo così il file AssemblyInfo.vb; aprire questo file per visualizzare il codice;
- in tale file troveremo una “istruzione” simile alla seguente:
<Assembly: AssemblyTitle(“WindowsApplication2″)> - commentare tale istruzione con il simbolo di apice oppure eliminare l’intera riga;
- inserire il seguente codice:
#If DEBUG Then
<Assembly: AssemblyTitle("MyApplication *** Debug ***")>
#Else
<Assembly: AssemblyTitle("MyApplication *** Release ***")>
#End If
A questo punto possiamo compilare in entrambe le modalità per ottenere gli eseguibili (exe) in entrambe le sottocartelle del progetto (debug e release).
Per verificare se un eseguibile (assembly) sia stato compilato in modalità DEBUG o RELEASE, possiamo semplicemente passare con il puntatore del mouse sopra al nome del file eseguibile nella finestra di Esplora risorse, come mostrato nella seguente figura:

Quando si lavora con un progetto di tipo WPF Application in Visual Studio 2008, potrebbe essere interessante passare a Microsoft Expression Blend (se installato sul nostro PC) per gestire in modo più flessibile la parte grafica dell’applicazione stessa.
Per chi non dovesse saperlo, Visual Studio 2008 permette di personalizzare il menu Strumenti, aggiungendo gli strumenti esterni che si preferiscono. Procederemo quindi alla personalizzazione dell’IDE di Visual Studio 2008 per aggiungere una voce Expression Blend.
Nota: per questo compito ho utilizzato Visual Studio 2008 Team System e Expression Blend 2, entrambi installati in Windows Vista Ultimate a 64 bit.
I passi da seguire sono questi:
- dal menu Strumenti, cliccare su Strumenti esterni
- nella finestra di dialogo che apparirà, fare clic sul pulsante Aggiungi
- nella casella Titolo inserire Expression Blend
- nella casella Comando inserire il percorso e il nome dell’eseguibile di Expression Blend (nel mio caso è C:\Program Files (x86)\Microsoft Expression\Blend 2\Blend.exe)
- nella casella Argomenti inserire $(SolutionDir)$(SolutionFileName)
- lasciare vuota la casella Directory iniziale
- fare clic sul pulsante Applica.
Questa procedura non solo permette di aprire Expression Blend ma, dopo aver aperto questa applicazione, apre il file XAML su cui stavamo lavorando in Visual Studio 2008.
La prima volta che utilizzeremo questa procedura, Expression Blend ci avvertirà che c’è un problema di sicurezza. Per evitare questo messaggio, possiamo spuntare la casellina che permette di non ricevere più il messaggio e confermare l’apertura del file.
Nota: il percorso del comando che è possibile trovare su Vista a 32 bit (installato sul portatile da cui sto scrivendo) è il seguente:
C:\Program Files\Microsoft Expression\Blend 2\Blend.exe
Sul blog del Team di MSDN Italia è stata annunciata la pubblicazione di alcuni video di Corrado Cavalli sulla nuova piattaforma video MSDN.
Questa serie di video forma un tutorial su WPF (Windows Presentation Foundation). Ovviamente il tutorial è estremamente consigliato a cui volesse avvicinarsi a questa tecnologia, come anche a chi si è già avvicinato ma vuole imparare qualcosa di più, perché non c’è niente di meglio che poter vedere in pratica cosa si può fare e sentire la spiegazione dalla viva voce di uno dei più esperti italiani in materia.
I primi video pubblicati sono i seguenti, ma vi consiglio di dare sempre un’occhiata alla piattaforma video MSDN, perché ci saranno molte altre novità:
Introduzione a WPF Nuovi concetti per lo sviluppatore Windows Forms (prima parte) Nuovi concetti per lo sviluppatore Windows Forms (seconda parte) Databinding WPF nel mondo reale: architettura e pattern Model-View-ViewModel
Supponiamo di avere un’applicazione inserita nel menu “Esecuzione automatica” e che tale applicazione abbia la necessità di accedere automaticamente a un database collegato a un’istanza di SQL Server 2008 Express locale.
Nel caso in cui il computer sia appena stato acceso, potrebbe verificarsi un ritardo di avvio del servizio di SQL SERVER e quindi potremmo ottenere un errore di connessione dalla nostra applicazione.
Dobbiamo quindi verificare che il servizio MSSQL$SQLEXPRESS sia già stato avviato, così da permettere alla nostra applicazione di restare in attesa o, addirittura, di avviare il servizio prima di procedere alle operazioni programmate.
Per verificare che il servizio sia stato avviato, possiamo utilizzare il seguente frammento di codice che include sia la direttiva di importazione dell’opportuno namespace, sia il codice del metodo che legge lo stato del servizio, sia il codice del metodo principale che testa il metodo di lettura dello stato.
Imports System.ServiceProcess
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim nomeServizio As String = "MSSQL$SQLEXPRESS"
Dim risposta As Boolean = StatoServizio(nomeServizio)
MessageBox.Show("Servizio " & nomeServizio & " = " & risposta)
End Sub
Private Function StatoServizio(ByVal nomeServizio As String) As Boolean
Dim risultato As Boolean = False
Dim mySCMs() As ServiceController
mySCMs = ServiceController.GetServices()
Dim mySCMTemp As ServiceController
For Each mySCMTemp In mySCMs
If mySCMTemp.ServiceName = nomeServizio Then
If mySCMTemp.Status = ServiceControllerStatus.Running Then
risultato = True
Else
risultato = False
End If
mySCMTemp.Close()
Exit For
End If
Next
Return risultato
End Function
End Class
Naturalmente è sufficiente cambiare il nome del servizio da verificare per avere la possibilità di conoscere lo stato (“Avviato” oppure no) di qualsasi servizio installato.
Il significato dei valori della proprietà ‘Status‘ sono i seguenti:
1 – Stopped = Il servizio non è in esecuzione
2 – StartPending = Il servizio si sta avviando
3 – StopPending = Il servizio si sta fermando
4 – Running = Il servizio è in esecuzione
5 – ContinuePending = Il servizio si sta riavviando
6 – PausePending = Il servizio si sta ponendo in pausa
7 – Paused = Il servizio è in pausa
Come sicuramente sa chi ha studiato gli algoritmi (indipendentemente dal linguaggio utilizzato), uno dei problemi più interessanti è quello di trovare tutte le soluzioni del “problema delle 8 Regine”.
Per chi non conoscesse il gioco degli scacchi, la Regina si può spostare orizzontalmente o diagonalmente per un numero di caselle pari alle caselle che trova libere, quindi anche da un’estremità all’altra della scacchiera. La scacchiera è formata da 8 x 8 caselle e su tale scacchiera devono poter trovare posto 8 Regine, senza che ciascuna Regina sia posta sulla stessa riga, sulla stessa colonna o sulla stessa diagonale di un’altra Regina.
Su CodeProject è disponibile il codice sorgente di un programma scritto in VB.NET che risolve il problema delle 8 Regine: http://www.codeproject.com/KB/vb/EightQueensProblem.aspx.
Il programma permette di visualizzare tutte le soluzioni possibili oppure di provare a trovare la propria personale soluzione.