Sim, os sites escritos em qualquer linguagem da arquitetura do .NET Framework são compilados. Mas vários detalhes estão envolvidos.
Antes de tudo as páginas em ASP.NET são compiladas e são geradas DLLs. As DLL são geradas num código intermediário da Microsoft chamado MSIL (Microsoft Intermediate Language). Um mesmo site pode gerar uma ou mais DLLs. Em tempo de execução o .NET Framework traduz as instruções escritas em código intermediário para as instruções específicas do processador.
Existem alguns benefícios em compilar a página gerando DLL. As principais vantagens são Desempenho, Segurança, Estabilidade e Interoperabilidade. Nas DLLs os códigos são otimizados no momento da compilação, não criando este overhead em tempo de execução. Técnicas como engenharia reversa são dificultadas, além de ser possível fazer o ofuscamento das DLLs. A sintaxe contida nas DLLs é validada antes da compilação, que garante maior estabilidade do código a ser interpretado. E além de todo isto, as DLLs são interoperáveis, acessíveis por outras linguagens ou plataformas.
Existem algumas vantagens que são herdadas do próprio .NET Framework, como a capacidade de ter um mesmo projeto escrito em diversas linguagens de programação diferentes, se compatíveis a CLS (Commom Language Specifications). Com isto, um mesmo projeto pode ser desenvolvido por equipes diferentes, que programem ao mesmo tempo em C# e VB.NET
Os sites ASP.NET podem ser automaticamente compilados. Em toda primeira execução de um site ASP.NET, seus códigos e recursos ainda não pré-compilados são compilados. Normalmente o primeiro acesso a sites ASP.NET são mais lentos devido a este recurso.
Se seu site ASP.NET for pré-compilado não ocorrerá nenhuma compilação automática. A compilação automática pode facilitar o Deployment em diversos servidores, mas a pré-compilação evita grandes lentidões provenientes do primeiro acesso.
É possível pré-compilar seu site com a linha de comando ASPNET_compiler.exe, que dá
suporte a algumas opções:
Realiza a mesma compilação que seria feita pelo processo dinâmico, em tempo de execução. Esta opção é válida quando o seu site já está em produção.
Esta forma de compilação deve ser utilizada para implantação em produção. Tudo é pré-compilado. As páginas ASPX também fazem parte do pacote gerado, mas não são editáveis.
Updatable precompilation
Semelhante ao non-updatable full precompilation, mas com a possibilidade de alterar os arquivos .ASPX gerados.
Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.