Precisa de um freelancer, códigos-fonte e exemplos completos? Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
Parte 1 :: Considerações
Iniciais e Ferramentas Necessárias :: Como
as aplicações são executadas na plataforma
.NET
Como usuário do Windows você já
deve ter se acostumado a olhar para um arquivo com a extensão
"exe" e assumí-lo como um arquivo executável,
ou, em outras palavras, um aplicativo. Um duplo-clique e pronto!
O aplicativo já está sendo executado.
Com a chegada da plataforma .NET pouca coisa mudou. Os aplicativos
continuam tendo a extensão .exe. Porém, algumas
considerações muito importantes precisam ser feitas.
Se você já programou em Delphi, C++, C, ou qualquer
linguagem cujo compilador gera instruções de máquina,
deve saber que tudo que o programa precisa para ser executado
está contido no arquivo executável ou em DLLs
e arquivos de recursos espalhados pelo sistema.
Quando um compilador gera código para a plataforma .NET,
temos o que é conhecido como IL ou MSIL,
uma redução de Microsoft Intermediate
Language. Embora ainda contenha a extensão .exe,
arquivos que contem MSIL são semelhantes aos Bytecodes
do Java, ou seja, códigos intermediários que serão
fornecidos ao ambiente de execução. Ao final da
leitura deste tópico você já deverá
estar ciente do que acontece quando você tenta executar
um código compilado para a plataforma .NET em um computador
que ainda não tenha o framework instalado.
Quando um arquivo contendo MSIL é executado,
o sistema operacional reconhece dados neste arquivo que o identifica
como código compilado para a plataforma .NET e o fornece
para o ambiente de execução, juntamente com o
código MSIL a ser executado. O ambiente de execução,
por sua vez, converte este código intermediário
em instruções de CPU usando um compilador JIT
(Just-In-Time). Como este compilador de tempo
de execução compila para a arquitetura do processador
atual, é fácil deduzir que um mesmo código
MSIL poderá ser executado em arquiteturas diferentes.
É uma noticia agradável a desenvolvedores do mundo
todo.
Antes de concluirmos, é importante registrar que códigos
passados para o ambiente de execução são
chamados de códigos gerenciados (managed
code). Códigos executados fora do ambiente de execução
são chamados de códigos não gerenciados
(unmanaged code). Esta observação se faz necessária
devido às restrições de segurança
que a plataforma .NET impõe a códigos gerenciados
que podem comprometer a segurança do sistema operacional.
Outro ponto importante é que as versões atuais
do compilador do Visual C++.NET pode gerar código gerenciado
e não gerenciado. O compilador do Visual C#, que boa
parte dos leitores deste curso estará usando, gera apenas
código gerenciado. Uma exceção a esta regra
é o uso da palavra chave unsafe, que
permite o uso de ponteiros em C# e o fornecimento da opção
/unsafe para o compilador C#, que permite que
código não gerenciado seja compilado.
Todo o conteúdo deste site,
quando não devidamente observado, pertence a seus idealizadores
e não
poderá ser usado para outras finalidades senão estudo e
aprimoramento de técnicas de programação.
Certifique-se de ler asnotas legaisantes de proceder com
o acesso e leitura do
conteúdo disponibilizado nestas páginas.