Double Possible:
ASP.NET: Site Web ou une Application Web?J'ai remarqué qu'il y a clairement une différence entre ce que vous obtenez lorsque vous lancez Visual Studio 2008 et choisissez"Nouveau Projet' -> 'ASP.NET l'Application Web "au lieu de"Nouveau Site Web' -> 'ASP.NET Site Web". Par exemple, si vous choisissez de "Projet", puis vous pouvez les compiler .dll, et chaque page est un *.aspx.le concepteur.cs du fichier code-behind.
1) Pourquoi avons-nous ces deux différents types de projet?
2) Laquelle préférez-vous?
3) Pourquoi choisir l'un plutôt que l'autre?
4) Quel est le problème avec le *.aspx.le concepteur.fichiers cs?
Réponses
Trop de publicités?Ils ont des finalités différentes.
Un site web est un site dont le contenu est susceptible de changer au fil du temps, c'est les pages elles-mêmes le changement. Il n'existe pas de fichier de projet et le site est déployé simplement comme un ensemble de fichiers.
Une application est un site où le contenu est juste l'application, la partie dynamique sera principalement en persistant magasin comme une base de données. Il aura une logique plus complexe depuis sa susceptible de représenter un ensemble de formulaires pour la saisie de données, comme beaucoup comme un moyen d'examiner le contenu. Il dispose d'un fichier de projet pour plus strictement le contrôle de sa configuration et de son code déployé une dll compilée.
1) Le "site web" modèle a été introduit avec ASP.NET 2.0, le "web application" modèle était le type de projet de l'original .net framework. Ils ont tous les deux usages différents (voir ci-dessous).
2) Ça dépend du contexte. Un bon exemple est, si vous vendez un produit logiciel, vous pouvez utiliser une "web application" projet parce qu'il se prête tout naturellement à proprement code compilé.
3) Voir ci-dessus, des préférences personnelles, de maintenance caractéristiques. Une chose intéressante qu'un "site web" vous permet de le faire pouvez-vous obtenir dans un tas d'ennuis est de faire des changements arbitraires de code-behind (généralement un *.cs ou *.vb) fichier dans le bloc-notes, tandis que le site web est en cours d'exécution.
4) Le concepteur.cs fichier est utilisé pour stocker le code généré automatiquement. "Ce code a été généré par un outil."
Je ne vais pas dupliquer la définition de l'2, étant donné que tout a répondu.
Alors pourquoi utiliser l'un plutôt que l'autre?
Site Web vous permet de vous traiter comme le PHP ou l'ASP classique site, où vous pouvez faire inline modifications prennent effet immédiatement.
Pros
- Vous pouvez faire quelques réglages pour le site sur le serveur web
- Le déploiement est aussi simple que de copier le dossier
Cons
- Si vous n'êtes pas faire les modifications sur le site en ligne, vous pouvez obtenir dans la gestion du changement de problèmes, où vous oubliez de garder tous vos fichiers dans la synchronisation
- Vous pouvez obtenir de l'exécution des erreurs de syntaxe affichée à vos utilisateurs finaux, car la seule façon de le vérifier est de lancer manuellement à chaque page
L'Application Web permet de traiter plus comme la façon dont vous le feriez pour une application de bureau - il est l'un déployable qui est compilé sur votre machine.
Pros
Claire, structurée en gestion du changement. Vous ne pouvez pas accidentellement mélange de code à partir de deux versions différentes. Cela peut être important quand il y a 2 personnes concernées - on écrit le code, et un responsable pour mettre des fichiers sur le serveur.
Parce que vous le compiler sur votre machine, tout est vérifié la syntaxe à point*
Cons
Le déploiement est un peu plus impliqué puis il suffit de copier le dossier à partir de votre ordinateur de développement. Cependant, l'utilisation de la "Publication" de commande simplifie grandement le processus de compilation et de mettre ensemble ce que les fichiers doivent être copiés sur le serveur web.
Toutes les modifications doivent être faites sur votre machine, compilé, et une toute nouvelle version envoyée au serveur web*
*Le aspx/html les fichiers ne sont syntaxe de vérifier si vous l'activez dans votre build options. Il est également possible de modifier ces fichiers sur le serveur, sauf si elles sont compilées dans votre projet.
Les réponses simples sont comme suit:
- Nouveau Site Web - crée le code derrière les pages qui sont compilées sur le serveur lorsque la page est demandée.
- Nouveau Projet Web - crée pré-compilé pages en une ou plusieurs assemblées (site en entier, même), et déployé sur le serveur.
Scénario #1 - Si un pirate obtient votre code-behind de fichiers, base de données des mots de passe sont exposés. Ces pages sont compilés au moment où ils sont demandés. Vous pouvez choisir de pré-compiler le tout dans une grande assemblée. Si non, il y a plus de charge sur le serveur.
Scénario #2 - si un pirate obtient vos assemblées, ils seront obscurcis. Obfuscation assemblées sont plus difficiles à craquer. Ces assemblées sont pré-compilé, ce qui réduit la charge sur le serveur.
Pour plus d'informations: