lunedì 27 aprile 2009

Tre tips su DotNetRomaCestà

Vi propongo altri tre brevi tips usciti sul sito della community DotNetRomaCestà:

Copiare automaticamente le proprietà di un oggetto in un altro grazie alla Reflection (VB.Net)

Verificare la connessione di rete anche in presenze di schede di rete virtuali (VB.Net)

ExpressionBuilder per recuperare le immagini all'interno del tema corrente (VB.Net)

L’ultimo dei tre in realtà, era già stato pubblicato dalla community ASPItalia.com ma ho ritenuto fosse decisamente interessante e meritasse di essere ripubblicato.

Remix 2009…..mi stavo preoccupando!!

Ancora non si avevano notizie ufficiali riguardo l’evento italiano corrispondente al Mix americano e già mi stavo preoccupando (sono molto affezionato all’evento!!).

Ecco, finalmente, la pagina dell’evento con la possibilità di iscriversi:

http://www.microsoft.com/italy/nextweb/remix/

Forza ragazzi, ci vediamo tutti a Milano!!!!

 

giovedì 23 aprile 2009

Tips su DotNetRomacestà

Vi segnalo un nuovo tip presente sul sito della ommunity DotNetRomaCestà.

Un metodo di estensione per sostituire un controllo web con un altro (VB.Net)

Come collaboratore e “amante” delle community vi invito a visitare il sito e collaborare alla comunity. Tutti hanno bisogno di tutti per crescere!!!!

ioProgrammo 138: Articolo su Virtual Earth

 

Un post giusto per comunicarvi che sul numero 138 (Maggio 2009) di ioProgrammo è uscito un mio articolo riguardante l’utilizzo delle API di Virtual Earth all’interno dei nostri siti web.

ioProgrammo-138

mercoledì 15 aprile 2009

Riconoscere IE8 con Javascript

Cito questo interessante post di Giorgio Sardo su come riconoscere IE8 utilizzando Javascript.

Molto interessante e chiaro.

Technorati Tag: ,

giovedì 9 aprile 2009

VB.NET : Convertire un oggetto IQueryable in una DataTable

Vi segnalo il tip pubblicato su DotNetRomaCestà e riguardante una funzione per la conversione di un oggetto IQueryable in un DataTable (link)

Technorati Tag: ,,

mercoledì 8 aprile 2009

DotNetRomaCestà, la community romana su Framework .NET

Finalmente anche la città di Roma (e, per osmosi, l’intero Lazio) ha la sua community sul Framework.

L’indirizzo della community è http://www.dotnetromacesta.org e potete trovare articoli, trucchi e varie amenità sul Framework .NET.

Sono d’accordo con Mauro…


Vi riporto il link ad un post di Mauro Servienti che condivido pienamente!!

domenica 5 aprile 2009

VB.NET : My.Computer.Network.IsAvailable vs schede di rete virtuali

Se state utilizzando l’oggetto Network di My.Computer ed in particolare la proprieta’ IsAvailable fate attenzione perche’ viene ingannata dalla presenza di schede di rete virtuali.

Nella mia macchina di sviluppo, infatti, ho due schede virtuali installate da VMWare e, anche se mi disconnetto dalla rete, IsAvailable continua ad essere sempre a true.

Se disabilito le schede virtuali, ovviamente, IsAvailable ritorna a lavorare correttamente.

Per risolvere questo problema potete utilizzare IsAvailable in combinazione con Ping andando a vedere se, effettivamente si “pinga” un indirizzo di rete noto:

If My.Computer.Network.IsAvailable = True And
   My.Computer.Network.Ping([indirizzo], 10000) Then
     ' Computer connesso
Else
     ' Computer disconnesso
End If

dove [indirizzo] e’ un indirizzo noto.

Altra soluzione e’ quella di richiamare, tramite P/Invoke, la dll di sistema wininet.dll ed in particolare la funzione di libreria InternetGetConnectedState.

Definiamo la dllimport:

DllImport("wininet.dll")> _
Public Function InternetGetConnectedState(ByRef flags
    As UInt32, ByVal dwReserved As UInt32) As Boolean
End Function

e il controllo sulla presenza di rete diventa:

If InternetGetConnectedState(0, 0) = True Then
     ' Computer connesso
Else
     ' Computer disconnesso
End If

Ho testato il tutto su diversi sistemi operativi e mi manca solo Windows Server 2008, ma per il resto sembra funzionare.

VB.NET : Copiare automaticamente le proprietà di un oggetto in un altro grazie alla Reflection

L’extension method che voglio postare questa volta consente di copiare le proprietà (almeno in lettura) di un oggetto sorgente, nelle proprietà (dello stesso tipo, con lo stesso nome e, almeno, in scrittura) di un altro oggetto:

<Extension()> _
Public Sub CopyFrom(ByVal destObj As Object, _
                   
ByVal sourceObj As Object)
    Dim sourceType = sourceObj.GetType()
    Dim destType = destObj.GetType()
    Dim sourceProperties = (From p In sourceType.GetProperties() _
                            Where p.CanRead _
                            Select p).ToList()
    For Each sourceProp In sourceProperties
        Dim propName = sourceProp.Name
        Dim destProp = destType.GetProperty(propName)
        If destProp IsNot Nothing AndAlso destProp.CanWrite Then
            If sourceProp.GetType().Equals(destProp.GetType()) Then
                Dim propValue = sourceProp.GetValue(sourceObj, Nothing)
                Try
                    destProp.SetValue(destObj, propValue, Nothing)
                Catch ex As Exception
               
End Try
            End If
        End If
    Next
End Sub

Utilizzando questo moetodo possiamo scrivere:

.
.
Dim destObj as Object
destObj.CopyFrom(sourceObj)
.
.

in modo da copiare tutte le proprietà di sourceObj nelle proprietà comuni di destObj.