giovedì 24 giugno 2010

Configuration 64 bit vs 32 bit

Ed è bene parlare anche di questo... ad oggi si presentano alcuni problemi nuovi, e più complessi da gestire.
Fra i tanti ( contro cui dobbiamo già combattere... ) si presenta anche
Realizzare un applicazione a 32 su un archittettura a 64 ...

Visual studio 2008 presenta nelle propietà della nostra soluzione nel pannello build il
platform target dove possiamo scegliere anyCPU, X86 , X64
Sia per le soluzione in Relase, sia per le soluzioni in Debug.

Tuttavia questo non sempre è sufficiente...

Se per esempio utilizzate un ODBC pensato per X86 su una soluzione X64 vi prenderete una bella eccezione
per differenti architetture...
Già in questo blog ho argomentato un problema simile per Oracle...
cmq prima di lanciare odb32 ... lanicate C:\Windows\SysWOW64\odbcad32.exe che è quello vero.

Ancor più complesso e comprendere che cosa succede nelle soluzioni Web, dove è necessario realizzare
un pool AdHoc per le soluzioni a 32 bit.
E credetemi confiugrare il nuovo ISS, se siete abituati al vecchio, è un po complesso, non difficile
ma complesso.
Tanto è che il più delle volte sarete costretti a pubblicare la vostra soluzione...

Se poi dovete realizzare il setup di quello che avete prodotto e vi serve un framework precedente...
ancora una volta dovrete litigare un po per scoprire che se nel vostro pacchetto appare l'inclusione
del frame work, dovrete fare doppi click sull'icona e dalla finiesrtra delle proprietà settare
l'effettiva versione.

Oppure tramite doppio click sul progetto di setup e da proprietà settare il terget...

venerdì 4 giugno 2010

Network is Up or Down

Una delle situazioni ricorrenti nella programmazione client server è la disponibilità della rete... Effettivamente ci sono tanti (troppi) modi per comprendere se l'accesso ad una lan è ancora disponibile.

Di fatto c'e' una possibilità semplice semplice che ci costringe a lavorare bene e a far poca fatica:

nel namespace :System.Net.NetworkInformation abbiamo una classe che fa al caso nostro; la
NetworkChange.

Questa consente di delagare un evento sullo stato di Change della rete...

NetworkChange.NetworkAvailabilityChanged += NetworkAvailabilityChanged;

il delegato potrebbe quindi avere quest'aspetto :

private void NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
if (e.IsAvailable)
{
// la rete è su
}
else
{
// la rete è giù
}
}

Ed ecco come 5/6 righe di codice rendono semplice semplice , l'arduo compito di comprendere
se il client può contattare il server..