luglio 2004 - Posts

E' un po che non scrivo...impegni di lavoro, aimè!!! ;-) (meglio averceli)

Segnalo soltanto un potenziale bug e relativa patch prontamente rilasciata che affligge Crystal Reports for .NET ed in particolare il Crystal Reports Web Viewer. Il bug sembrerebbe anche di notevole entità visto che un hacker può, tramite Crystal Reports e Crystal Enterprise Web interface, leggere e cancellare file dal sistema vulnerabile (brutta faccenda!!!), e inoltre può introdurre attacchi di tipo DoS (Denial of Service).

La vulnerabilità si verifica sulla versione 2003 di Visual Studio .NET, sulla versione 2003 di Outlook (con Business Contact Manager) e sul Microsoft Business Solution CRM 1.2

Riferimento al bollettino Microsoft MS04-017

http://www.microsoft.com/technet/security/bulletin/MS04-017.mspx

Sicuramente se ne sentiva il bisogno, molti casi. La nuova versione di ADO.NET (la 2.0) aggiunge la possibilità di utilizzare alcuni metodi in modalità asincrona. Infatti ai metodi ExecuteReader, ExecuteNonQuery ed ExecuteXmlReader vengono aggiunti BeginExecuteReader, BeginExecuteNonQuery, BeginExecuteXmlReader ed i rispettivi EndExecuteReader, EndExecuteNonQuery, EndExecuteXmlReader.

Grazie a questa nuova caratteristica possiamo eseguire una query senza dover obbligatoriamente attenderne il risultato, importantissimo nel caso di query pesanti. Il codice sarà simile al seguente:

Private cmd As SqlCommand
...
cmd.BeginExecuteReader(new IAsyncCallBack(GetResult), {eventuali parametri})

Sub GetResult(res as IAsyncResult)
   Dim dr As SqlDataReader = cmd.EndExecuteReader(res)
   ...
End Sub

L'unico metodo escluso è ExecuteScalar, considerato il suo utilizzo per query rapide e comunque sostituibile con ExecuteReader (ExecuteScalar restituisce, infatti, la prima colonna della prima riga del set di risultati).

...spettacolo!!!

 

 

Filed under:

L'oggetto Connection (SqlConnection, OledbConnection, ecc...) normalmente prevede l'inserimento automatico in una transazione distribuita. Questa gestione automatica, però, potrebbe essere stata disattivata aggiungendo Enlist=false come parametro della stringa di connessione per una SqlConnection oppure OLE DB Services=-7 come parametro della stringa di connessione per una OleDbConnection. Per ovviare a questo "problema" è possibile inserire l'oggetto Connection in una transazione distribuita mediante l'uso del metodo EnlistDistributedTransaction utilizzando questa sintassi:

Imports System.EnterpriseServices
...
conn.EnlistDistributedTransaction(ContextUtil.Transaction)

Ovviamente deve essere aggiunto un riferimento all'assembly System.EnterpriseServices.dll, altrimenti perderemo il significato di "Transazione Distribuita" ;-)

Da notare che se è già stata avviata una transazione per l'oggetto connection mediante l'utilizzo di BeginTransaction, il metodo EnlistDistributedTransaction restituirà una Exception.

ciauz

Filed under:

Finalmente!!! Dopo mesi e mesi e mesi e mesi e mesi e mesi...di studio "matto e disperatissimo" oggi ho finalmente conseguito l'ambita (almeno per me) certificazione MCAD (Microsoft Certified Application Developer) in .NET, e ne vado fiero... :-)

Faccio i miei complimenti anche al mio carissimo amico e compagno di (s)ventura Mario che ha condiviso con me i magici momenti della premiazione (...quale premiazione?!?). Auguri anche a lui!!!

Prossimo obiettivo: MCSD (speriamo bene!!!)

(volevo solo gridarlo al mondo ;-) )

______________________________

Fabio Cozzolino

Microsoft .NET MCAD :-)

Filed under:

Se utilizzate l'oggetto ServerXMLHTTP per effettuare richieste verso pagine ASP dalle vostre applicazioni Vb6, tenete presente che non funziona su Windows 95 e Windows 98!

Infatti utilizzando il famigerato metodo CreateObject riceverete un bel: "ClassFactory cannot supply requested class"

SOLUZIONE: Usate l'oggetto XMLHTTP, se potete; espone le stesse funzioni, ma sembra essere più lento.

L'oggetto XMLHTTP è stato progettato per le applicazioni client ed è sviluppato per funzionare con Microsoft Win32 Internet (WinInet). Al contrario, l'oggetto ServerXMLHTTP è stato progettato per le applicazioni server e gira su WinHTTP. Ed è proprio questo il motivo per cui non funziona su Win9x. Questa differenza, però, non impedisce di fatto l'utilizzo di ServerXMLHTTP anche da applicazioni client, purchè, ovviamente, queste siano in esecuzione su macchine con sistemi basati su Windows NT.

(...se potete, passate a .NET quanto prima... :-) )

Riferimenti

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q279129

 

ciauz

"Chiunque usando Avalon potrebbe impazzire nel non utilizzare il data binding", diceva Mark Boulter il 2 giugno '04. Ed è da qui che Chris Sells parte per parlarci di Avalon, del DataBinding e delle meraviglie di questa tecnologia :-)

Crazy About Avalon Data Binding (in inglese)

Avalon Data Binding in the Longhorn SDK (in inglese)

 

ciauz

Filed under: