J'ai un site Web ASP.NET 3.5 (jargon du studio visuel), mais le site continue de croître et semble plutôt cowboy, entre autres. J'aimerais voir cela converti en une application Web (espaces de noms et tout).
Est-ce quelque chose qui peut être facilement réalisé dans Visual Studio? Sinon, existe-t-il d'autres outils qui pourraient créer automatiquement tous les espaces de noms, etc.
asp.net
visual-studio
web-applications
RSolberg
la source
la source
Réponses:
la source
Procédure pas à pas: conversion d'un projet de site Web en projet d'application Web dans Visual Studio sur MSDN
Si votre application de site Web se développe ... il vaut mieux la scinder en plusieurs projets. La conversion d'un projet de site Web en projet d'application Web n'aidera pas beaucoup.
la source
Si vous rencontrez des problèmes pour créer votre nouveau projet d'application Web, vérifiez les propriétés de fichier dans Visual Studio de toutes les classes «d'assistance». Pour un projet, je convertissais l'action de construction a été définie sur Contenu alors qu'elle aurait dû être Compile.
la source
Créez une nouvelle application Web dans VS 2010.
1. À l'aide de l'Explorateur Windows, copiez tous vos fichiers dans votre dossier de projet.
2. Dans l'explorateur de solutions VS 2010, affichez tous les fichiers.
3. Sélectionnez les fichiers et les dossiers - cliquez avec le bouton droit sur inclure dans le projet.
4. Cliquez avec le bouton droit sur l'explorateur de solutions de projet et sélectionnez Convertir en application Web.
Il y a quelques petites différences, telles que le dossier App_Code sera renommé en old_app_code - cela ne provoque étonnamment aucune erreur. Le TypeName sur vos sources de données d'objet et les héritages de la balise @Page peuvent nécessiter le [ProjectName]. préfixe ajouté globalement. Par exemple, si votre nom de type était "BusinessLogic.OrderManager" et le nom de votre projet est InventorySystem, vous devrez le changer en InventorySystem.BusinessLogic.OrderManager. De plus, quelques changements d'affichage, tels que les validateurs de champs obligatoires ne sont plus par défaut en rouge, ils sont par défaut en noir.
la source
J'étais confronté aux mêmes problèmes au départ. Après avoir suivi le livre Wrox Professional ASP.NET 4.0, j'ai trouvé la solution suivante pour mon cas.
J'ai d'abord créé une nouvelle application Web. Copie de tous les fichiers du site Web dans le dossier de l'application Web. Cliquez avec le bouton droit sur l'application et cliquez sur Convertir vers l'application Web.
Vous pourriez vous demander pourquoi vous devez convertir une application Web en application Web. La réponse est que lorsque vous créez un site Web, vous codez simplement le fichier .cs là où c'est nécessaire. Cependant, une application Web déclare automatiquement .design.cs (ou .vb) et un fichier .cs pour la section code et conception.
SUIVANT: Supprimez toutes les références manuelles, comme l'attribut «Inherits» dans la directive PAGE, à d'autres fichiers de votre site Web, car les espaces de nom se chargeront de référencer les classes de manière centralisée.
J'ai également rencontré un problème, car je n'avais pas inclus de dossier OBJ et BIN dans mon projet. Si vous pensez qu'il vous manque vos dossiers BIN et OBJ, cliquez simplement sur l'icône «Afficher tous les fichiers» dans l'Explorateur de solutions, puis cliquez avec le bouton droit sur les dossiers manquants et ajoutez au projet. (pour s'assurer qu'ils compilent avec le projet.)
MISE À JOUR: Comme @deadlychambers le souligne dans les commentaires: Vous pouvez rechercher partout en faisant un "Ctrl + Shift + F" puis rechercher
Inherits="(.*?)"
. Cela trouvera toutes les occurrences et vous fera probablement gagner du temps!la source
J'ai maintenant migré avec succès un projet de site Web vers une application Web et il y a quelques pièges à surveiller.
Avoir ReSharper à votre disposition aide beaucoup à refactoriser les fichiers aspx.
public partial class FolderName_Projectname : Page
Si nécessaire, renommer tous les fichiers en utilisant Resharper ou manuellement. Si vous rencontrez plusieurs erreurs telles que"There is already a member Page_Load() defined"
, cela est probablement dû à des noms de classe incorrects et à une duplicationRemplacez
CodeFile
toutes les pages aspx parCodebehind
et faites particulièrement attention aux fichiers de votre sous-dossier. Assurez-vousInhertis=""
que ne contient pas le chemin relatif. Vos espaces de noms s'occupent de tout. Le format correct est doncInherits="Namespace.classname"
. Si votre classe a un espace de noms NaSpa et un nom de fichier foo.cs, ce seraitInherits="NaSpa.foo"
Après avoir préparé tous vos fichiers (n'oubliez pas vos pages maîtres), lancez "Convertir en application Web". Si vous rencontrez des erreurs par la suite, rincez et répétez. Si vous rencontrez des erreurs du type "TextBoxName ne peut pas être trouvé s'il vous manque une référence", assurez-vous de ne pas oublier de nettoyer vos pages aspx. Un bon indicateur est de vérifier les fichiers de concepteur générés automatiquement. Si
TextBoxName
n'apparaît pas là-dedans, la conversion n'a pas réussi complètement.la source
l'espace de nom ASP par défaut ne semble plus fonctionner. Je n'arrive donc pas à appeler mes pages User Controls.ascx depuis l'extérieur de la page. Leur donner un espace de noms et changer la valeur par défaut d'ASP en mon espace de noms semblait fonctionner.
la source