Visão geral do .NET FrameworkOverview of the .NET Framework

O .NET Framework é uma tecnologia que dá suporte à compilação e à execução da próxima geração de aplicativos e serviços Web XML.The .NET Framework is a technology that supports building and running the next generation of apps and XML Web services. O .NET Framework foi criado para atender aos seguintes objetivos:The .NET Framework is designed to fulfill the following objectives:

  • Para fornecer um ambiente de programação orientada a objeto consistente, independentemente do código do objeto ser armazenado e executado localmente, executado localmente mas distribuído pela Internet ou executado remotamente.To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.

  • Para fornecer um ambiente de execução de código que minimize conflitos de implantação e criação de versão do software.To provide a code-execution environment that minimizes software deployment and versioning conflicts.

  • Para fornecer um ambiente da execução que promova a execução segura do código, incluindo o código criado por terceiros desconhecidos ou semiconfiáveis.To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.

  • Para fornecer um ambiente de execução de código que elimine os problemas de desempenho dos ambientes interpretados ou com scripts.To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.

  • Para tornar a experiência do desenvolvedor consistente entre diversos tipos de aplicativos, como aplicativos baseados no Windows e aplicativos baseados na Web.To make the developer experience consistent across widely varying types of apps, such as Windows-based apps and Web-based apps.

  • Para compilar toda a comunicação segundo padrões do setor a fim de garantir que o código baseado no .NET Framework se integre a qualquer outro código.To build all communication on industry standards to ensure that code based on the .NET Framework integrates with any other code.

Observação

Para obter uma introdução geral ao .NET Framework para usuários e desenvolvedores, veja Introdução.For a general introduction to the .NET Framework for both users and developers, see Getting Started.

O .NET Framework consiste no CLR (Common Language Runtime) e na biblioteca de classes do .NET Framework.The .NET Framework consists of the common language runtime (CLR) and the .NET Framework class library. O Common Language Runtime é a base do .NET Framework.The common language runtime is the foundation of the .NET Framework. Pense no runtime como um agente que gerencia o código no runtime, fornecendo serviços principais como gerenciamento de memória, gerenciamento de threads e comunicação remota, enquanto também impõe a segurança de tipos rígida e outras formas de precisão de código que promovem segurança e robustez.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. Na verdade, o conceito de gerenciamento de código é um princípio fundamental do runtime.In fact, the concept of code management is a fundamental principle of the runtime. O código que segmenta o runtime é conhecido como código gerenciado e o código que não segmenta o runtime é conhecido como código não gerenciado.Code that targets the runtime is known as managed code, while code that doesn't target the runtime is known as unmanaged code. A biblioteca de classes é uma coleção orientada a objeto de tipos reutilizáveis que você usa para desenvolver aplicativos, desde linhas de comando tradicionais ou aplicativos GUI (interface gráfica do usuário) a aplicativos com base nas inovações mais recentes fornecidas pelo ASP.NET, como Web Forms e Serviços 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.

O .NET Framework pode ser hospedado por componentes não gerenciados que carregam o Common Language Runtime em seus processos e iniciam a execução de código gerenciado, criando, assim, um ambiente de software que explora recursos gerenciados e não gerenciados.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. O .NET Framework não apenas fornece vários hosts de runtime, mas também dá suporte ao desenvolvimento de hosts de runtime de terceiros.The .NET Framework not only provides several runtime hosts but also supports the development of third-party runtime hosts.

Por exemplo, o ASP.NET hospeda o runtime para fornecer um ambiente do servidor escalonável para código gerenciado.For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET trabalha diretamente com o runtime para habilitar aplicativos ASP.NET e serviços Web XML, e ambos serão discutidos mais adiante neste tópico.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 é um exemplo de um aplicativo não gerenciado que hospeda o runtime (na forma de uma extensão tipo MIME).Internet Explorer is an example of an unmanaged app that hosts the runtime (in the form of a MIME type extension). Usar o Internet Explorer para hospedar o runtime permite que você insira componentes gerenciados ou controles Windows Forms em documentos HTML.Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Hospedar o runtime dessa maneira torna possível o gerenciamento de código móvel, mas com melhorias significativas que somente o código gerenciado oferece, como execução semiconfiável e armazenamento isolado de arquivos.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.

A ilustração a seguir mostra o relacionamento do Common Language Runtime e da biblioteca de classes com seus aplicativos e com o sistema geral.The following illustration shows the relationship of the common language runtime and the class library to your apps and to the overall system. A ilustração também mostra como o código gerenciado opera dentro uma arquitetura maior.The illustration also shows how managed code operates within a larger architecture.

Captura de tela que mostra como o código gerenciado opera dentro uma arquitetura maior.

As seções a seguir descrevem os recursos principais do .NET Framework com mais detalhes.The following sections describe the main features of the .NET Framework in greater detail.

Recursos do Common Language RuntimeFeatures of the common language runtime

O Common Language Runtime gerencia memória, execução de threads, execução de código, verificação de segurança do código, compilação e outros serviços do sistema.The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. Esses recursos são intrínsecos ao código gerenciado, executado no Common Language Runtime.These features are intrinsic to the managed code that runs on the common language runtime.

Quanto à segurança, os componentes gerenciados recebem níveis de confiança variados, dependendo do número de fatores que incluem sua origem (como a Internet, a rede corporativa ou o computador local).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). Isso significa que um componente gerenciado pode ou não ser capaz de executar operações de acesso a arquivo, operações de acesso a Registro ou outras funções confidenciais, mesmo que esteja sendo usado no mesmo aplicativo ativo.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.

O runtime também impõe robustez ao código implementando uma infraestrutura rígida de verificação de tipo e código chamada 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). O CTS assegura que todo código gerenciado seja autodescritivo.The CTS ensures that all managed code is self-describing. Os diversos compiladores de linguagem da Microsoft e de terceiros geram códigos gerenciados de acordo com o CTS.The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. Isso significa que o código gerenciado pode consumir outros tipos e instâncias gerenciados, enquanto impõem rigorosamente a fidelidade e a segurança do tipo.This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety.

Além disso, o ambiente gerenciado do runtime elimina muitos problemas de software comuns.In addition, the managed environment of the runtime eliminates many common software issues. Por exemplo, o runtime identifica automaticamente o layout do objeto e gerencia referências a eles, liberando-os quando não estão mais sendo usados.For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. Esse gerenciamento de memória automático resolve os dois erros mais comuns de aplicativo: perdas de memória e referências de memória inválidas.This automatic memory management resolves the two most common app errors, memory leaks and invalid memory references.

O runtime também aumenta a produtividade do desenvolvedor.The runtime also accelerates developer productivity. Por exemplo, os programadores escrevem aplicativos em sua linguagem de desenvolvimento preferida, mas aproveitam todo o runtime, a biblioteca de classes e os componentes escritos em outras linguagens por outros desenvolvedores.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. Qualquer fornecedor de compilador que optar por segmentar o runtime pode fazê-lo.Any compiler vendor who chooses to target the runtime can do so. Compiladores de linguagem que segmentam o .NET Framework disponibilizam os recursos do .NET Framework para códigos existentes, escritos nessa linguagem, facilitando bastante o processo de migração para aplicativos existentes.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.

Embora tenha sido criado para o software do futuro, o runtime também dá suporte ao software de hoje e de amanhã.While the runtime is designed for the software of the future, it also supports software of today and yesterday. Interoperabilidade entre códigos gerenciados e não gerenciados permite que os desenvolvedores continuem usando os componentes COM e DLLs necessários.Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs.

O runtime foi projetado para melhorar o desempenho.The runtime is designed to enhance performance. Embora o Common Language Runtime forneça vários serviços de tempo de execução padrão, o código gerenciado jamais é interpretado.Although the common language runtime provides many standard runtime services, managed code is never interpreted. Um recurso chamado compilação JIT (Just-In-Time) permite que todos os códigos gerenciados sejam executados na linguagem de computador nativa do sistema, na qual está em execução.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. Enquanto isso, o gerenciador de memória remove as possibilidades de memória fragmentada e aumenta a localidade de referência da memória, melhorando ainda mais o desempenho.Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.

Por fim, o runtime pode ser hospedado por aplicativos do servidor de alto desempenho, como o Microsoft SQL Server e o IIS (Serviços de Informações da Internet).Finally, the runtime can be hosted by high-performance, server-side apps, such as Microsoft SQL Server and Internet Information Services (IIS). Essa infraestrutura permite que você use código gerenciado para escrever sua lógica de negócio, enquanto aproveita o desempenho superior dos melhores servidores de empresa que dão suporte à hospedagem de 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.

Biblioteca de classes .NET Framework.NET Framework class library

A biblioteca de classes .NET Framework é uma coleção de tipos reutilizáveis que se integram plenamente ao Common Language Runtime.The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. A biblioteca de classes é orientada a objeto, fornecendo tipos dos quais seu próprio código gerenciado deriva funcionalidade.The class library is object oriented, providing types from which your own managed code derives functionality. Isso não apenas torna os tipos do .NET Framework fáceis de usar, mas também reduz o tempo associado ao aprendizado de novos recursos do .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. Além disso, componentes de terceiros são totalmente integrados a classes do .NET Framework.In addition, third-party components integrate seamlessly with classes in the .NET Framework.

Por exemplo, as classes da coleção do .NET Framework implementam um conjunto de interfaces que você pode usar para desenvolver suas próprias coleções de classes.For example, the .NET Framework collection classes implement a set of interfaces for developing your own collection classes. Sua coleção de classes se combina perfeitamente às classes do .NET Framework.Your collection classes blend seamlessly with the classes in the .NET Framework.

Como você esperaria de uma biblioteca de classes orientada a objeto, os tipos do .NET Framework permitem que você realize várias tarefas de programação comuns, incluindo tarefas como gerenciamento da cadeia de caracteres, coleta de dados, conectividade de banco de dados e acesso a arquivos.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. Além dessas tarefas comuns, a biblioteca de classes inclui tipos que dão suporte a vários cenários de desenvolvimento especializados.In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. Use o .NET Framework para desenvolver os seguintes tipos de aplicativos e serviços:Use the .NET Framework to develop the following types of apps and services:

As classes Windows Forms são um conjunto abrangente de tipos reutilizáveis que simplificam muito o desenvolvimento de GUI Windows.The Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. Se criar um aplicativo Web Form do ASP.NET, você poderá usar as classes Web Forms.If you write an ASP.NET Web Form app, you can use the Web Forms classes.

Consulte tambémSee also