2008-10-20 7 views
0

J'ai récemment hérité d'un site Web assez volumineux. Le projet est configuré comme un site Web dans Visual Studio et non comme une application Web. Pour un certain nombre de raisons, je voudrais le convertir en une application web.Comment mettre à niveau un site Web qui utilise des fichiers #include vers une application Web

J'ai commencé à convertir l'application en utilisant ces directions de Scott Gu: Migrating a VS 2005 Web Site Project to VS 2005 Web Application Project. Pendant la conversion, j'ai découvert que ce site Web utilise une tonne de directives #include pour inclure d'autres fichiers .aspx. Le principal problème avec ceci est que chaque fichier code-behind appelle directement des contrôles (utilisant ceci.) À partir des pages qu'il inclut.

Ce comportement semble être autorisé par la manière dont le compilateur crée dynamiquement les fichiers .designer en mémoire lors de la compilation.

Le problème est que depuis que je convertis l'application en application Web, je crée des versions physiques des fichiers .designer. Maintenant, le même appel aux contrôles sur les pages incluses (en utilisant ceci.) Ne fonctionne plus.

J'ai essayé quelques petites choses à essayer de remédier à ceci:

D'abord, je remarquai que les .aspx inclure des fichiers ne disposaient pas d'une directive @ Page, donc j'ai essayé d'ajouter un. Cela a empêché l'application de compiler car la page principale avait maintenant plusieurs directives @page. Deuxièmement, j'ai essayé de simplement renommer les fichiers .aspx inclus en .inc, mais j'ai toujours le même problème de la page principale ne plus être en mesure d'accéder aux contrôles comme ils le pouvaient auparavant.

Quelqu'un a déjà fait cela auparavant et a des idées sur la façon de procéder sans changer la structure entière du site Web?

edit: J'ai décidé de ne pas passer à la conversion pour le moment parce que les bénéfices obtenus ne valaient pas la peine. Merci pour l'aide.

Répondre

1
  • Vous devez convertir les fichiers ASPX inclus pour les classes, si elles sont utilisées comme des bibliothèques de code dans l'ancienne situation
  • Vous devez convertir les fichiers ASPX, qui contiennent html, serveur et/ou HTML-contrôles à usercontrols (fichiers ascx)

Cela devrait être un bon début pour l'instant. Plus tard, vous pourriez refactoriser à votre goût.

Espérons que ça aide.

0

Vous aurez besoin de refactoriser le contenu #included dans les classes et les contrôles qui peuvent être utilisés dans les pages principales.

ASP.Net va et non do #include.

+0

ASP.Net fait #include. Surprenant et presque oublié, mais c'est là. – martin

Questions connexes