Che cos’è un codice gestito?

“Codice gestito” è un termine creato da Microsoft® Coproration. Questo termine si riferisce al codice del programma che richiede l’uso della macchina virtuale Common Language Runtime (CLR) per essere utilizzato. Il termine “codice non gestito” viene utilizzato per fare riferimento al codice del programma che non richiede questa macchina virtuale.

Common Language Runtime è stato sviluppato nel tentativo di consentire l’esecuzione dei programmi su una varietà di computer e sistemi operativi senza richiedere modifiche al codice del programma. Per fare ciò, il codice del programma per computer viene convertito in bytecode della macchina virtuale. Questo bytecode viene quindi interpretato dalla macchina virtuale CLR e convertito in bytecode per il computer specifico su cui è in esecuzione.

Un codice gestito può essere eseguito su qualsiasi computer dotato della macchina virtuale CLR. Questo alto grado di portabilità gli conferisce un vantaggio definitivo rispetto al codice non gestito. Il codice non gestito richiede che i programmatori modifichino il codice del programma per l’utilizzo su macchine diverse. Questo processo non solo può essere lento, ma può anche portare a molti errori dell’applicazione.

Un altro vantaggio di un codice gestito è la sua maggiore sicurezza. La sicurezza di un programma realizzato con un codice non gestito dipende in larga misura dall’implementazione realizzata dai programmatori. L’uso della macchina virtuale CLR aiuta ad eliminare gran parte dei problemi di sicurezza dalle spalle dei programmatori. La maggior parte dei problemi di sicurezza che possono sorgere sono direttamente centrati all’interno della macchina virtuale stessa. Questo di per sé aiuta a centralizzare i problemi, rendendo molto più veloce l’implementazione delle patch di sicurezza.

La questione se un particolare insieme di codice è un codice gestito o un codice non gestito è estremamente importante per i programmatori di computer. Il codice gestito ha un grado di portabilità più elevato, ma questa portabilità richiede l’installazione di Common Language Runtime nel computer di destinazione. Il codice non gestito, d’altra parte, può essere eseguito senza l’aggiunta del CLR.

Ci sono molti vantaggi nell’uso del codice gestito, ma ci sono anche diversi svantaggi. Lo svantaggio principale è il sovraccarico richiesto dall’utilizzo della macchina virtuale CLR. La differenza tra la velocità di esecuzione del codice gestito rispetto alla velocità del codice non gestito è spesso trascurabile, ma in alcuni casi crea una differenza molto evidente nel tempo di risposta dell’applicazione. Di conseguenza, il codice non gestito svolge un ruolo cruciale nella maggior parte delle applicazioni che richiedono un alto grado di velocità rispetto alla portabilità.