Respostas:
CodeBehind : precisa ser compilado (modelo ASP.NET 1.1). O binário compilado é colocado na pasta bin do site. Você precisa fazer uma compilação no Visual Studio antes de implantar. É um bom modelo quando você não deseja que o código-fonte seja visível como texto sem formatação. Por exemplo, ao entregar a um cliente para o qual você não tem a obrigação de fornecer código.
CodeFile : você fornece o arquivo de origem com a solução para implantação. O tempo de execução do ASP.NET 2.0 compila o código quando necessário. Os arquivos compilados estão em Microsoft.NET [versão .NET] \ Arquivos temporários do ASP.NET.
O arquivo code-behind precisa compilar antes da execução, mas no src não precisamos compilar e depois executar .. basta salvar o arquivo.
but in src
- você quer dizer but in the CodeFile
?
Estou trabalhando com um projeto de aplicativo no Visual Studio Express 2012 para Web e usando o .NET 4.0. No código por trás dos arquivos para minhas páginas de login e alteração de senha, encontrei uma situação em que eu precisava tanto do CodeBehind quanto do CodeFile na declaração.
Se eu não adicionar uma referência de arquivo de código como
CodeFile=login.aspx.cs
A página da web não analisa e o navegador exibe um erro no analisador. Não importa se eu compilar o projeto ou não.
Se eu não adicionar um código atrás da referência, como
CodeBehind=login.aspx.cs
Referências a classes de segurança como MembershipUser falham no momento da compilação e ao tentar usar o intellisense com um erro como "O tipo ou espaço de nome MembershipUser não pode ser encontrado". Adicionei uma referência ao System.Web.ApplicationServices conforme exigido pela estrutura do .NET 4.0.
Devo acrescentar que esses arquivos problemáticos estão sendo executados em um aplicativo no site criado usando a ferramenta Aplicativo do IIS. Quando abro o site no Visual Studio, não tenho dificuldade com erros do analisador ou de referência. Essa confusão ocorre apenas quando abro o aplicativo como um projeto no Visual Studio.