2010-09-01 8 views
0

Puis-je avoir quelques conseils généraux sur la conversion d'un site asp classique en ASP.net? Je n'ai jamais travaillé avec asp classique auparavant et j'ai seulement travaillé avec asp.net 2.0 pour les 6 derniers mois, donc c'est complètement nouveau pour moi. J'ai remarqué que ce site sur lequel je travaille utilise quelques fichiers 'include'. Je sais que je devrais probablement prendre le code des fichiers d'inclusion et les copier dans leurs propres fichiers de classe. J'ai remarqué qu'il n'y a pas de code derrière le fichier, que chaque page est écrite dans son propre fichier (balisage et code). aussi, et c'est un peu de me jeter, il n'y a pas de gestionnaire d'événements. Y at-il d'autres nuances utiles entre classique et. NET, vous pouvez mentionner?Conversion ASP classique en ASP.NET 2.0

encore une question: j'ai remarqué dans chaque fichier de mon projet qu'il y a du code qui est écrit au-dessus du balisage, et un peu plus bas que le balisage. il semble que ce serait mieux si tout le code était écrit au-dessus ou en dessous du balisage, à des fins d'organisation/de lisibilité. à moins, il y a une raison à cela. ???

merci.

+0

Une raison pour laquelle vous ne pouvez pas migrer directement à 3.5 ou 4.0 - de cette façon vous n'aurez pas besoin de convertir à nouveau bientôt;) – StuartLC

+0

nous utilisons 2.0 exclusivement au travail. – user408869

+0

Il est également déconcertant de constater que les frameworks .NET ne sont pas complètement liés aux versions ASP.NET. ASP.NET 2.0 est pour .NET 2.0, 3.0 et 3.5, alors que ASP.NET 4.0 est pour .NET 4.0 - vous pouvez le vérifier en utilisant des pools d'applications dans IIS - il n'y a qu'un 2.0 et 4.0 listés. Note: Il y a 1.0 et 1.1 mais ils sont si vieux qu'ils ne valent pas la peine de s'inquiéter de ces jours. –

Répondre

5

Vous avez certainement un défi à relever. En ce qui concerne les comparaisons, MVC est probablement plus proche de l'ASP classique car il ne cherche pas à faire abstraction du web dans une structure basée sur les événements - mais ce serait juste une autre chose à apprendre pour vous.

Classic ASP est une bête complètement différente de ASP.NET comme vous l'apprenez. Fondamentalement chaque URL résout en un fichier ASP parent. Cela inclut à son tour d'autres fichiers ASP (ils peuvent avoir des extensions différentes si le développeur le souhaite, c'est-à-dire ".inc"). Ceux-ci peuvent à leur tour inclure d'autres fichiers. Il est tout à fait possible d'avoir le même fichier inclus plusieurs fois - généralement le moteur ASP s'en charge cependant. Il est important de se rappeler que tous les inclus sont traités pour faire un grand document avant que tout traitement ASP réel commence. Donc, une fois que tous les inclus ont été traités, vous avez un gros document. Le moteur ASP démarre alors en haut et traite le code ligne par ligne. Vous aurez probablement du code HTML et ASP tous inter-twined, avec des appels à procédures.

Si vous pouvez programmer C# ou VB, la lecture d'un fichier ASP dans cette optique ne devrait pas être trop difficile. À ce stade, vous pouvez commencer à aborder la fonctionnalité une page à la fois. Rappelez-vous juste que dans ASP il n'y a pas non plus de concepts de "postback" ou d'état d'affichage. Encore une fois, ASP.NET essaie d'abstraire la programmation Web pour représenter une approche basée sur les événements.

Désolé une dernière chose - certaines commandes telles que l'option explicite dans ASP doivent être la première chose dans le document ASP parent, de sorte que cela doit toujours apparaître avant tout autre code ou balisage. Après ce code et le balisage peuvent être mélangés ensemble - résultant de la tristement célèbre "tag soupe" dont on se souviendra ASP pour.

+1

Tout ce que Paul a dit est sur place. La seule chose que j'ajouterais, c'est que vous ne devriez pas considérer cela comme une conversion, mais plutôt comme une fin. Au lieu d'essayer de traduire l'asp classique en 2.0, vous devriez essayer de répliquer la fonctionnalité et vous assurer que la logique métier est la même. – Stryder

+1

+1 Et puis-je ajouter - je suppose que la comparaison à MVC est un peu étirée - mais je suppose que vous n'avez pas les contrôles (et viewstate) hors de la boîte - vous devez gérer l'état manuellement;) Vous pouvez également vérifier out http://download.microsoft.com/download/d/4/2/d42dddd5-4444-45f5-850a-4e487d3c03c8/Migrating_ASP_to_ASP_NET_EMEA.ppt – StuartLC

0

Prenez votre includes et les classer par catégorie:

1) Fonctions Code
2) Fonctions de modèle

Toutes les fonctions de code doivent être déposés dans les classes d'objets métier ou des modules. Les fonctions du modèle doivent être placées dans les contrôles utilisateur et ensuite dans les pages maîtres. Je suggère fortement l'utilisation de pages maîtres dans le contrôle de l'apparence de votre nouveau projet, car cela vous fera gagner beaucoup de temps dans la gestion du site et le transfert de toutes les fonctionnalités de la page dans les nouvelles pages.

ASP est un langage scripté où Asp.Net peut être écrit ou compilé. Je recommanderais de choisir un projet de site Web parce que cela vous donnera la plus grande flexibilité dans le déploiement des minutae du code. Un projet d'application Web compilera tout au singulier.dll fichier qui est facile à déployer, mais il conduit à beaucoup de tests de régression si/quand le code de la page s'entremêle. Une fois que vous avez établi une structure basée sur des modèles, des classes communes, une couche d'accès aux données et une structure masterpage/usercontrol, il devient simplement nécessaire d'aller page par page et de le convertir au nouveau code.