Panoramica di .NET FrameworkOverview of the .NET Framework

.NET Framework è una tecnologia che supporta la compilazione e l'esecuzione di app di ultima generazione e servizi Web XML.The .NET Framework is a technology that supports building and running the next generation of apps and XML Web services. .NET Framework è progettata per ottenere gli obiettivi indicati di seguito:The .NET Framework is designed to fulfill the following objectives:

  • Fornire un ambiente di programmazione orientato agli oggetti coerente, sia che il codice degli oggetti sia memorizzato ed eseguito localmente, eseguito localmente ma distribuito su Internet oppure eseguito in modalità remota.To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.

  • Fornire un ambiente di esecuzione del codice che minimizzi la distribuzione del software e i conflitti di versioni.To provide a code-execution environment that minimizes software deployment and versioning conflicts.

  • Fornire un ambiente di esecuzione del codice che permetta un'esecuzione sicura anche dei codici creati da produttori sconosciuti o semi-trusted.To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.

  • Fornire un ambiente di esecuzione del codice che elimini i problemi di prestazioni degli ambienti basati su script o interpretati.To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.

  • Rendere coerente l'esperienza dello sviluppatore su app di tipi diversi, dalle app basate su Windows a quelle basate sul Web.To make the developer experience consistent across widely varying types of apps, such as Windows-based apps and Web-based apps.

  • Compilare tutte le comunicazioni in base agli standard di settore, per garantire l'integrazione del codice basato su .NET Framework con qualsiasi altro codice.To build all communication on industry standards to ensure that code based on the .NET Framework integrates with any other code.

Nota

Per un'introduzione generale a .NET Framework per utenti e sviluppatori, vedere Introduzione.For a general introduction to the .NET Framework for both users and developers, see Getting Started.

.NET Framework è costituito da Common Language Runtime (CLR) e dalla libreria di classi .NET Framework.The .NET Framework consists of the common language runtime (CLR) and the .NET Framework class library. Common Language Runtime rappresenta la base di .NET FrameworkThe common language runtime is the foundation of the .NET Framework. e può essere considerato come un agente che gestisce il codice in fase di esecuzione, fornendo servizi di base quali gestione della memoria, gestione di thread e servizi remoti e attivando nel contempo una rigida indipendenza dai tipi e altre forme di accuratezza del codice che garantiscono sicurezza ed efficienza.Think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that promote security and robustness. Il concetto di gestione del codice è infatti un principio fondamentale di runtime.In fact, the concept of code management is a fundamental principle of the runtime. Il codice destinato al runtime è definito codice gestito, mentre quello non destinato al runtime è definito codice non gestito.Code that targets the runtime is known as managed code, while code that doesn't target the runtime is known as unmanaged code. La libreria di classi è una raccolta completa e orientata agli oggetti di tipi riusabili, da usare per lo sviluppo di app, da quelle tradizionali della riga di comando o con interfaccia utente grafica (GUI, Graphical User Interface) a quelle basate sulle più recenti innovazioni offerte da ASP.NET, quali Web Form e servizi Web XML.The class library is a comprehensive, object-oriented collection of reusable types that you use to develop apps ranging from traditional command-line or graphical user interface (GUI) apps to apps based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services.

.NET Framework può essere ospitato da componenti non gestiti che caricano Common Language Runtime nei processi e avviano l'esecuzione del codice gestito, creando un ambiente software in grado di sfruttare funzionalità sia gestite che non gestite.The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that exploits both managed and unmanaged features. Oltre a includere vari host di runtime, .NET Framework supporta lo sviluppo di host di runtime di altri produttori.The .NET Framework not only provides several runtime hosts but also supports the development of third-party runtime hosts.

In ASP.NET è ad esempio disponibile il runtime per fornire un ambiente lato server scalabile per il codice gestito.For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. È possibile usare ASP.NET direttamente con il runtime per attivare app ASP.NET e servizi Web XLM, entrambi trattati più avanti in questo argomento.ASP.NET works directly with the runtime to enable ASP.NET apps and XML Web services, both of which are discussed later in this topic.

Internet Explorer è un esempio di app non gestita che contiene il runtime in forma di estensione di tipo MIME.Internet Explorer is an example of an unmanaged app that hosts the runtime (in the form of a MIME type extension). L'hosting del runtime tramite Internet Explorer consente di incorporare componenti gestiti o controlli Windows Form nei documenti HTML.Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Questo tipo di hosting consente l'uso del codice mobile gestito, ma con miglioramenti significativi che solo il codice gestito può offrire, come l'esecuzione parzialmente attendibile e l'archiviazione di file isolati.Hosting the runtime in this way makes managed mobile code possible, but with significant improvements that only managed code offers, such as semi-trusted execution and isolated file storage.

L'illustrazione seguente visualizza la relazione di Common Language Runtime e della libreria di classi con le app e con l'intero sistema.The following illustration shows the relationship of the common language runtime and the class library to your apps and to the overall system. Viene inoltre mostrato come opera il codice gestito all'interno di un'architettura più ampia.The illustration also shows how managed code operates within a larger architecture.

Codice gestito all'interno di un'architettura più ampia .NET Framework nel contestoManaged code within a larger architecture .NET Framework in context

Nelle sezioni seguenti vengono descritte più dettagliatamente le principali funzionalità di .NET Framework.The following sections describe the main features of the .NET Framework in greater detail.

Funzionalità di Common Language RuntimeFeatures of the common language runtime

Common Language Runtime gestisce la memoria, l'esecuzione di thread, l'esecuzione del codice, la verifica della sicurezza del codice, la compilazione e altri servizi di sistema.The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. Queste funzionalità sono intrinseche al codice gestito che viene eseguito sul Common Language Runtime.These features are intrinsic to the managed code that runs on the common language runtime.

Per quanto riguarda la sicurezza, ai componenti gestiti vengono assegnati vari gradi di attendibilità in base a diversi fattori fra cui l'origine, ad esempio Internet, una rete aziendale o un computer locale.Regarding security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). Un componente gestito quindi può essere o non essere in grado di eseguire operazioni di accesso a file, accesso al registro di sistema o altre funzioni riservate, anche se usato nella stessa app attiva.This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it's used in the same active app.

L'efficienza del codice è inoltre attivata dal runtime mediante l'implementazione di una rigida infrastruttura di verifica di tipi e codice denominata sistema di tipi comuni (CTS, Common Type System).The runtime also enforces code robustness by implementing a strict type-and-code-verification infrastructure called the common type system (CTS). CTS assicura che tutto il codice gestito sia auto descrittivo.The CTS ensures that all managed code is self-describing. I vari compilatori di linguaggio Microsoft e di terze parti generano codice gestito conforme a CTS.The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. Questo significa che il codice gestito può utilizzare altre istanze e altri tipi gestiti, imponendo nel contempo, in modo rigoroso la fedeltà dei tipi e l'indipendenza dai tipi.This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety.

Inoltre l'ambiente gestito di runtime elimina molti problemi comuni di software.In addition, the managed environment of the runtime eliminates many common software issues. Nel runtime vengono ad esempio automaticamente gestiti il layout di oggetti e i riferimenti a oggetti, i quali vengono rilasciati quando non sono più utilizzati.For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. Questa gestione automatica della memoria risolve i due errori più comuni delle app, ovvero le perdite di memoria e i riferimenti alla memoria non validi.This automatic memory management resolves the two most common app errors, memory leaks and invalid memory references.

Grazie al runtime inoltre la produttività dello sviluppatore viene accelerata.The runtime also accelerates developer productivity. I programmatori possono ad esempio scrivere app nel linguaggio di sviluppo scelto e sfruttare tutti i vantaggi del runtime, della libreria di classi e dei componenti scritti in altri linguaggi da altri sviluppatori.For example, programmers write apps in their development language of choice yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Questo risultato può essere raggiunto da qualsiasi fornitore di compilatori che sceglie di utilizzare il runtime.Any compiler vendor who chooses to target the runtime can do so. I compilatori di linguaggio destinati a .NET Framework rendono disponibili le funzionalità di .NET Framework al codice esistente scritto in tale linguaggio, facilitando notevolmente il processo di migrazione delle app esistenti.Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing apps.

Benché il runtime sia progettato per i programmi software futuri, supporta anche quelli attualmente disponibili e meno recenti.While the runtime is designed for the software of the future, it also supports software of today and yesterday. L'interoperabilità tra codice gestito e non gestito consente agli sviluppatori di continuare a utilizzare i componenti COM e le DLL che risultano necessari.Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs.

Il runtime è progettato per migliorare le prestazioni.The runtime is designed to enhance performance. Sebbene Common Language Runtime fornisca molti servizi runtime standard, il codice gestito non viene mai interpretato.Although the common language runtime provides many standard runtime services, managed code is never interpreted. Una funzionalità denominata compilazione JIT (Just In Time) consente l'esecuzione di tutto il codice gestito nel linguaggio macchina nativo del sistema su cui è in esecuzione.A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it's executing. Contemporaneamente, il gestore di memoria impedisce la frammentazione della memoria e aumenta la rintracciabilità dei riferimenti della memoria per migliorare ulteriormente le prestazioni.Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.

L'hosting del runtime può essere infine eseguito da app lato server a elevate prestazioni, quali Microsoft SQL Server e Internet Information Services (IIS).Finally, the runtime can be hosted by high-performance, server-side apps, such as Microsoft SQL Server and Internet Information Services (IIS). Questa infrastruttura consente di utilizzare il codice gestito per scrivere logica aziendale personalizzata, continuando a sfruttare le prestazioni superiori dei migliori server aziendali del settore che supportano l'hosting del runtime.This infrastructure enables you to use managed code to write your business logic, while still enjoying the superior performance of the industry's best enterprise servers that support runtime hosting.

Libreria di classi .NET Framework.NET Framework class library

La libreria di classi .NET Framework è una raccolta di tipi riutilizzabili che si integrano strettamente con Common Language Runtime.The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. La libreria di classi è orientata agli oggetti e offre tipi dai quali il codice gestito deriva le funzionalità.The class library is object oriented, providing types from which your own managed code derives functionality. In questo modo non solo viene semplificato l'uso dei tipi .NET Framework, ma si riduce anche il tempo necessario all'apprendimento delle nuove funzionalità di .NET Framework.This not only makes the .NET Framework types easy to use but also reduces the time associated with learning new features of the .NET Framework. È anche possibile integrare in modo uniforme i componenti di altri produttori nelle classi di .NET Framework.In addition, third-party components integrate seamlessly with classes in the .NET Framework.

Ad esempio le classi di raccolte .NET Framework implementano un set di interfacce per lo sviluppo di classi di raccolte personalizzate.For example, the .NET Framework collection classes implement a set of interfaces for developing your own collection classes. Le classi di raccolte personalizzate si integrano perfettamente con le classi in .NET Framework.Your collection classes blend seamlessly with the classes in the .NET Framework.

Come ci si aspetta da una libreria di classi orientata agli oggetti, i tipi .NET Framework consentono di effettuare una gamma di attività comuni di programmazione, incluse operazioni quali la gestione di stringhe, la raccolta di dati, la connettività al database e l'accesso a file.As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including tasks such as string management, data collection, database connectivity, and file access. Oltre a queste attività comuni, la libreria di classi include tipi che supportano vari scenari di sviluppo specializzati.In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. Usare .NET Framework per sviluppare i seguenti tipi di app e servizi:Use the .NET Framework to develop the following types of apps and services:

Le classi Windows Form sono un insieme completo di tipi riusabili che semplifica notevolmente lo sviluppo di GUI Windows.The Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. Se si scrive un'app Web Form ASP.NET è possibile usare le classi Web Form.If you write an ASP.NET Web Form app, you can use the Web Forms classes.

Vedere ancheSee also

Requisiti di sistema System Requirements
Guida all'installazione Installation guide
Guida di sviluppo Development Guide
Strumenti Tools
Esempi di .NET Framework .NET Framework Samples
Libreria di classi .NET Framework.NET Framework Class Library