Quelle est la différence entre CodeFile= "fichier.ascx.cs" et CodeBehind= "fichier.ascx.cs" dans la déclaration d'un contrôle utilisateur ASP.Net?
Est-ce qu'un nouveau ou recommandé? Ou ont-ils un usage spécifique?
CodeBehind: Doit être compilé (modèle ASP.NET 1.1). Le binaire compilé est placé dans le dossier bin du site Web. Vous devez effectuer une compilation dans Visual Studio avant de déployer. C'est un bon modèle lorsque vous ne voulez pas que le code source soit visible en texte brut. Par exemple, lors de la livraison à un client à qui vous n'avez pas l'obligation de fournir du code.
CodeFile: Vous fournissez le fichier source avec la solution à déployer. Le runtime ASP.NET 2.0 compile le code si nécessaire. Les fichiers compilés se trouvent dans les fichiers Microsoft.NET [.NET version]\Temporary ASP.NET.
Je travaille avec un projet d'application dans Visual Studio Express 2012 pour Web et avec .NET 4.0. Dans le code derrière les fichiers de mes pages de connexion et de modification de mot de passe, j'ai trouvé une situation dans laquelle j'avais besoin de CodeBehind et de CodeFile dans la déclaration.
Si je n'ajoute pas une référence de fichier de code comme
CodeFile=login.aspx.cs
La page Web n'analyse pas et le navigateur affiche une erreur d'analyse. Peu importe que je compile le projet ou non.
Si je n'ajoute pas de code derrière la référence comme
CodeBehind=login.aspx.cs
Les références aux classes de sécurité telles que MembershipUser échouent à la compilation et lors de la tentative d'utilisation de intellisense avec une erreur du type "Le type ou l'espace de nom MembershipUser est introuvable". J'ai ajouté une référence à System.Web.ApplicationServices comme requis par le framework .Net 4.0.
Je devrais ajouter que ces fichiers gênants s’exécutent dans une application du site Web créée à l’aide de l’outil d’application IIS). Lorsque j’ouvre le site Web à partir de Visual Studio, je n’ai aucune difficulté à résoudre les erreurs d’analyseur ou de référence. Cette confusion ne se produit que lorsque j'ouvre l'application en tant que projet dans Visual Studio.
Le fichier codebehind doit être compilé avant d’être exécuté, mais dans src, nous n’avons pas besoin de compiler, puis d’exécuter. Il suffit de sauvegarder le fichier.