2009-11-12 5 views
3

Pendant de nombreuses années, j'ai eu pour objectif de passer d'ASP/VBScript à un «meilleur» langage - ma préférence serait C# car j'ai des compétences en C - mais je le ferais considérer d'autres langages aussi (y compris PHP etc. donc pas seulement DotNet)Migrer (monolithique) ASP classique vers ASP.Net

L'objectif est d'avoir le code de base dans une langue qui fait plus pour nous. Je déteste le manque de saisie de données dans VBScript, je voudrais un certain nombre de différents "objets conteneur" - plutôt que juste un objet dictionnaire, et ainsi de suite - en fait je me demande pourquoi, ayant déménagé de Basic à C dans les années 80, puis C++ un moment après cela, j'ai réussi à revenir "Basic" à 00.

(Je pourrais programmer les objets conteneurs dans VBScript, mais mon instinct est qu'ils seraient lents en fonctionnement, nous avons un cache important de "snippets" de HTML utilisé dans le rendu de la page, l'objet ASP Application est un instrument assez contondant!)

Mon ASP/VBScript est une grande application unique qui est essentiellement un "moteur" pour fournir du contenu Web.

Il a été de nombreuses années dans la fabrication, et maintenant le code ASP change rarement. (Donc, je dois justifier de le déplacer du tout, ou simplement vivre avec VBScript "pour toujours")

Il est piloté à partir de données dans une base de données MS SQL.

Il existe une seule page .ASP (composée de plusieurs fichiers d'inclusion). En fonction des paramètres de la chaîne de requête, les modèles Skin et CMS pour la page sont chargés à partir de la base de données et de la base de données appropriée. Les sprocs sont exécutés pour acquérir les données fusionnées dans les modèles CMS.

Les données sur la page (méthodes à utiliser, etc.) sont également extraites de la base de données, avec les détails des autorisations d'accès, etc.

D'après ce que j'ai lu certaines de ces choses peuvent rendre la migration plus facile:

sessions ASP ne sont pas utilisés - un cookie de session est utilisé pour récupérer des données de session de la DB (pour que je puisse partager facilement une séance d'une demi-et -Demi avec ASPX

Le VBScript utilise OPTION EXPLICIT tout au long, de sorte que toutes les variables sont prédéfinies.

toutes les sorties se fait via Response.Write (en fait, la plupart du contenu est fusionné en une seule variable et sortie). Il est pas de mélange HTML et <% code serveur% >

J'ai quelques classes VBScript, mais pas beaucoup. J'ai beaucoup de fonctions VBScript, et quelques sous-routines.

J'ai une suite de tests. Cela capture les captures d'écran du navigateur et les compare graphiquement avec les images principales - ainsi j'ai la possibilité de faire un test de régression. Je n'ai pas la ressource pour effectuer une réécriture complète; la maintenance du code existant doit continuer pendant la migration; mais ayant dit que 99% de notre travail est dans CMS ou SQL Sprocs, les changements au code ASP sont peu fréquents.

J'ai lu l'utilitaire MS pour migrer le code ASP vers VB.NET. Étant donné que mon code est 100% VBScript et aucun mélange de HTML/Script, j'apprécierais des opinions sur si cela m'aiderait beaucoup ou un peu?

Je serais heureux de refactoriser STAYING IN VBscript en vue de faciliter la migration vers DotNet plus tard (mais je devrais savoir ce que mes objectifs étaient en train de faire :)). Je pourrais, par exemple, déplacer certaines/toutes les fonctions vers un objet COM, et pourrait probablement le faire au coup par coup?

Merci pour votre aide

+1

Il y a une fine ligne entre un mur de texte et un paragraphe pour chaque phrase. – maxpower47

+3

Je préférerais ceci sur un mur de texte. –

+0

Le deuxième paragraphe a deux phrases :) Prose n'est pas mon point fort, désolé. – Kristen

Répondre

4

J'ai un grand ASP intranet classique que je maintenais jusqu'à l'année dernière, et il a été vieillis, mais de nouvelles pièces étaient encore ajouté en ASP classique parce qu'il y avait beaucoup de code de la bibliothèque investi déjà. Vous avez déjà une bonne configuration si vous ne changez pas le code ASP souvent et avez une forme de test en place. (Je dois admettre que c'est la première fois que j'ai entendu parler de la capture d'écran). Si tout est chassé de la base de données et fonctionne. Ne le casse pas. PHP vous donnera le même problème de types de variantes, mais vous donnera un monde d'options et de choix qui fait ASP classique ressemble à un jouet childs. Hors de la boîte PHP fait tout ce que j'ai jamais eu besoin de faire.

ASP.net est un framework BIG. Le comprendre correctement et pleinement n'est pas une tâche facile, et cela me surprend très souvent. Il essaie de faire des choses pour les développeurs venant d'un environnement de formulaires automatiquement qui deviennent très gênants quand vous venez d'une méthodologie de rendu très précise comme vous le faites. Je me suis retrouvé à lutter contre la technologie tout le temps, jusqu'à ASP.net MVC est venu. Cela me convenait mieux à cause de la façon dont cela fonctionnait et faisait ce que je lui demandais, et rien de plus. C# est un langage génial, avec des fonctionnalités brillantes et le framework DOT.net vous permet de faire n'importe quoi, si vous pouvez juste trouver les bonnes pièces. Il y en a tellement que vous vous retrouverez occasionnellement à écrire quelque chose qui a déjà été fait dans le cadre, seulement pour le trouver juste après avoir terminé votre propre implémentation.

En fait, la migration pourrait entraîner des problèmes intéressants. Même si vous pouvez exécuter une page ASP.net un peu comme une page classique ASP, vous perdrez de nombreux avantages de l'environnement comme il est prévu. Cela étant dit, j'ai fait un test en vue de migrer le site en question vers ASP.net et j'ai réussi à trouver des moyens de contourner la plupart des obstacles et je suis arrivé à la conclusion qu'une telle migration serait en fait «un simple travail». La simple quantité d'hommes-heures qu'il faudrait pour faire une telle migration rendait l'entreprise irréalisable.

Personnellement, je ne suggérerais pas une telle migration à moins que vous ayez quelques projets ASP.net sous votre ceinture avec succès et que vous soyez conscient des pièges que asp.net apporte avec-it.

Je n'ai pas vu l'outil de conversion ASP vers ASP.net dont vous parlez, mais j'aimerais avoir un lien vers celui-ci. Si vous restez dans VBScript et que vous n'êtes pas au courant du projet AX (ASP Xtreme Evolution) here, je peux vous suggérer fortement d'y chercher de l'inspiration pour passer en revue plusieurs des "limitations" classiques de l'ASP et pour la bibliothèque. de la fonctionnalité qu'il fournit.

+0

Vous avez lu "ASP Xtreme Evolution", semble intéressant et JSON/URL rwwite (vu de toute façon) et ainsi de suite sont des choses qui seront utiles; merci pour cela et vos autres commentaires. Lien de migration ASP vers ASP.NET: http://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/ – Kristen

+0

L'outil de conversion ASP vers ASP.net de Microsoft a été proposé dans la version 1.0. & 1.1 journées-cadres. Ce qui s'est passé pendant la conversion est qu'une page ASP classique avec tout le VBScript serait changée en balisage VB.net incorporé entrelacé avec le balisage HTML actuel. Bien que cette conversion soit efficace, si vous utilisiez des objets COM et autres joysticks, l'outil de conversion ne serait pas capable de gérer ces éléments. Beaucoup de nettoyage est nécessaire par la suite et vous n'avez toujours pas les avantages de partir d'une page aspx propre ardoise. – Chris

0

Si vous cherchez un moyen de justifier le projet à la gestion, il deviendra de plus en plus difficile de trouver des développeurs ASP classiques pour continuer à maintenir l'application. Tout développeur qui a le choix ne choisira probablement pas de maintenir une application construite en utilisant VBScript. Les développeurs qui prennent le travail peuvent le considérer comme temporaire et continuer à chercher un autre travail.

Bien que je n'ai rien entendu de la part de Microsoft, il ne faudra pas attendre des années avant qu'ils ne décident de se retirer complètement de l'ASP classique.