it-swarm-pt.tech

CodeFile vs CodeBehind

Qual é a diferença entre CodeFile= "file.ascx.cs" e CodeBehind= "file.ascx.cs" na declaração de um controle de usuário do asp.net?

É um mais novo ou recomendado? Ou eles têm uso específico?

132
Soldarnal

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 quer que o código-fonte seja visualizado como texto simples. Por exemplo, ao entregar para um cliente para o qual você não tem 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 no Microsoft.NET [.NET version]\Temporary ASP.NET Files.

159
Shafqat Ahmed

Eu 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 as 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 é analisada e o navegador exibe um erro do analisador. Não importa se eu compilo o projeto ou não.

Se eu não adicionar um código por trás de uma referência como

CodeBehind=login.aspx.cs

Referências a classes de segurança como MembershipUser falham tanto em tempo de compilação quanto ao tentar usar o intellisense com um erro como "O tipo ou namespace MembershipUser não pode ser encontrado". Eu adicionei uma referência para System.Web.ApplicationServices conforme exigido pela estrutura .net 4.0.

Devo acrescentar que esses arquivos problemáticos estão sendo executados em um aplicativo dentro do site criado usando a ferramenta de aplicativo IIS. Quando eu abro o site do Visual Studio não tenho dificuldade com erros de parser ou erros de referência. Essa confusão só ocorre quando abro o aplicativo como um projeto no Visual Studio.

5
DavidHyogo

Codebehind arquivo precisa compilar antes de executar, mas em src nós não precisamos compilar e depois executar .. basta salvar o arquivo.

5
Ranjeet Prasad