2011-10-24 1 views
4

Possible en double:
What Web Application Framework for Delphi is recommended?Delphi application sur le web

Nous avons une application de bureau Delphi 2007 que nous avons hébergé à l'aide de Citrix. Maintenant, nous voulons nous débarrasser de Citrix et en quelque sorte l'activer sur le Web.

J'ai fait un peu de recherche et j'ai trouvé que c'est possible en utilisant le uniGUI.

http://www.unigui.com

Conclusion: Peut être fait, mais il faudrait une re-écriture et un sous-ensemble de composants sont pris en charge. Des questions sérieuses demeurent sont la structure d'application monolithique dans un environnement de Web.

Il y a deux options Morfik et atozed et ils exigent aussi une nouvelle écriture.

Je veux savoir s'il y a une autre option qui nécessite un travail de réécriture très faible et à quel point est-elle fragile?

Quelqu'un peut-il m'aider?

+1

Ajoutez http://www.elevatesoft.com/products?category=ewb à votre liste de solutions potentielles. – mj2008

+0

@ mj2008 J'ai vérifié l'élévateur Web. Ce n'est pas encore sorti. En tout cas merci pour votre bonne suggestion. –

+0

Envisagez de créer une véritable application Web, qui communique avec un niveau intermédiaire delphi à l'aide d'une boîte à outils qui vous fournit des fonctionnalités de niveau intermédiaire (remobjects sdk, datasnap ou une autre architecture RESTful). –

Répondre

2

Puisqu'il n'y a pas de "balle d'argent" ici, peu importe le produit que vous utilisez. Vous avez les mêmes défis avec chacun d'eux. Je recommande de passer quelques jours sur une réécriture Proof-of-Concept (PoC) de 2-3 écrans typiques. Mettre en œuvre le COP pour chaque produit «finaliste» et voir comment cela fonctionne. Gardez une trace du temps qu'il a fallu pour chacun, des choses qui étaient de plus en plus faciles, et comment le résultat final apparaît à l'utilisateur final (performance, bonne/rigolote, robustesse, "sentir").

En ce qui concerne la ré-écriture réelle, je recommande ce qui suit:

  1. application existante Re-facteur pour supprimer la logique métier de l'interface utilisateur.
  2. Tests de régression complète, et pousser en production.
  3. Procédez maintenant à la conversion vers l'un des outils Web.

Oups - J'ai omis une étape. Étape 0: Geler toutes les fonctionnalités/corrections. Si des correctifs sont nécessaires pour la production en cours, ils doivent être effectués dans une branche distincte, puis intégrés dans ce projet ultérieurement.

Notez que ce type de travail se prête bien à l'externalisation, car le travail est simple et les exigences sont simples. Surtout si elle peut être livrée une forme à la fois, donc les progrès, les délais, et $$$ peuvent être mesurés en petits morceaux.

Une autre étape préliminaire consiste à développer un "livre de cuisine" pour supprimer la logique métier de la couche GUI existante. Il devrait identifier les conventions de dénomination, les bibliothèques communes (pour le code qui aurait dû être partagé tout au long mais ne l'était pas), et devrait décrire la méthodologie de conversion.

6

Comme il est fragile, c'est basé sur la qualité de votre code. Si vous avez une bonne application structurée, avec une logique métier et un accès aux données complètement séparé de l'interface graphique, ce sera plutôt sûr, bien que vous deviez toujours réécrire la majorité de votre interface graphique. S'il y a une logique dans vos formulaires et que le code qui parle aux composants de l'interface graphique est associé au code qui vérifie votre entrée et stocke les données, vous avez un gros problème.

Dans ce cas, il s'agit d'une excellente occasion de refactoriser de grandes parties de votre application et de le faire mieux cette fois-ci. AFAIK, il n'y a pas d'outil pour convertir votre application de bureau en application web sans avoir besoin de réécrire la plupart des parties de l'interface graphique;)

+0

Merci Golez. Le problème est que notre application est assez grande et que la logique métier est intégrée dans l'interface graphique :(Je pense donc que nous devrons réécrire l'application entière en ayant une logique métier et des couches d'accès aux données complètement séparées de l'interface graphique. –

1

Comme l'a dit Golez, vous devrez refactoriser votre application, essayer de séparer votre logique métier de l'interface graphique, puis utiliser des outils tels que Intraweb pour développer l'interface graphique en tant que Web et réutiliser la logique métier existante. Une autre option en convertissant votre application en technologie n-tiers et en déformant votre logique métier en tant que services Web ou toute technologie ouverte et en faisant votre site Web par des langages Web tels que ASP.Net ou PHP.

Questions connexes