Libreria CRC Ridotta per .Net
IndexFondamenti del CRCPerchè usare il CRC?CRC è un acronimo che sta per cyclic redundancy check (controllo di ridondanza ciclica). Molto bene. Ma a cosa serve? Il CRC è un numero associato a uno flusso di bit. Immaginate di dover spedire un pacchetto di 8 bytes. Come potete sincerarvi di averli spediti correttamente? Per essere completamente sicuri potreste richiedere indietro gli stessi byte che avete inviato. Se li ricevete uguali potete stare (quasi) certi che sono stati inviati correttamente. Questo approccio funziona bene se necessitate di un alto livello di sicurezza. C'è però il problema della efficienza. Per ogni byte inviato ne ricevete uno. Per la maggior parte delle applicazioni questo prezzo da pagare è troppo alto. Prima soluzioneCome prima soluzione potreste chiedere, invece che tutti i bytes inviati, la loro somma. Se spedite 8 e 22 sapete per certo che dovrete ricevere indietro il numero 30. In questo modo il rapporto è passato da 1:1 a 2:1. Questa soluzione però non è così buona come potrebbe sembrare a prima vista. In effetti il destinatario potrebbe aver ricevuto 15 e 15 e voi non ve ne accorgereste mai. Un altro problema è dato dall'overflow dei dati. E' facile sommando dei numeri che vanno da 0 a 255 superare il limite del byte (in questo caso 255). Abbiamo decisamente bisogno di una soluzione più affidabile. CRCPensate al problema dell'overflow. Qual'è l'operatore degli interi che non supera mai un limite dato? Il modulo. Perchè ridotta?Questa libreria è chiamata ridotta non perchè non funzioni bene (almeno dovrebbe InstallazioneScaricate il file compresso. Decomprimetelo in una cartella temporanea. Nello zip c'è la DLL pronta per essere usata e il file help in formato HTML compresso. Una volta decompresso potete installare la DLL nel global assembly cache (GAC) oppure inserirla in una cartella di staging. Per installarla nel GAC aprite una shell di comando e digitate
UsoCliccando qui si aprirà una nuova finestra con la documentazione completa. La versione compressa di questa documentazione è allegata nel file zip scaricabile.
Un esempioHo scritto una semplicissima applicazione da console per testare la libreria. Potete vedere il codice completo cliccando qui. Di seguito salterò il codice che gestisce la riflessione e commenterò il (breve) codice sul CRC.
Passiamo semplicemente un System.IO.FileInfo al metodo statico Download
|
@2003 Francesco Cogno.