Quelle est la différence entre CodeFile \="file.ascx.cs" et CodeBehind \="file.ascx.cs" dans la déclaration d'un contrôle utilisateur ASP.NET ?
L'un d'entre eux est-il plus récent ou recommandé ? Ou ont-ils un usage spécifique ?
Quelle est la différence entre CodeFile \="file.ascx.cs" et CodeBehind \="file.ascx.cs" dans la déclaration d'un contrôle utilisateur ASP.NET ?
L'un d'entre eux est-il plus récent 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 le site. C'est un bon modèle lorsque vous ne voulez pas que le code source soit visible en texte clair. Par exemple, lorsque vous livrez à un client à qui vous n'avez pas l'obligation de fournir le code.
CodeFile : Vous fournissez le fichier source avec la solution pour le déploiement. Le moteur d'exécution ASP.NET 2.0 compile le code lorsque cela est nécessaire. Les fichiers compilés se trouvent à l'adresse Microsoft.NET[.NET version] \Temporary Fichiers ASP.NET.
Je travaille avec un projet d'application dans Visual Studio Express 2012 For Web et j'utilise .NET 4.0. Dans les fichiers de code pour mes pages de connexion et de changement de mot de passe, j'ai trouvé une situation où j'avais besoin à la fois de CodeBehind et de CodeFile dans la déclaration.
Si je n'ajoute pas de référence à un fichier de code comme
CodeFile=login.aspx.cs
La page web n'est pas analysée et le navigateur affiche une erreur d'analyse. Le fait que je compile le projet ou non n'a pas d'importance.
Si je n'ajoute pas de code derrière la référence comme
CodeBehind=login.aspx.cs
Les références à des classes de sécurité telles que MembershipUser échouent à la fois au moment de la compilation et lors de l'utilisation d'intellisense avec une erreur telle que "The type or namespace MembershipUser cannot be found" (le type ou l'espace de noms MembershipUser ne peut pas être trouvé). J'ai ajouté une référence à System.Web.ApplicationServices comme l'exige le framework .Net 4.0.
Je dois ajouter que ces fichiers problématiques s'exécutent dans une application du site web créée à l'aide de l'outil IIS Application. Lorsque j'ouvre le site web à partir de Visual Studio, je n'ai aucun problème avec les erreurs d'analyseur syntaxique ou les erreurs de référence. Cette confusion ne se produit que lorsque j'ouvre l'application en tant que projet dans Visual Studio.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.