J'ai hérité d'un projet assez intéressant où il y a une bonne opportunité de prendre un logiciel existant et de le transformer en application web SaaS. Comme le projet est hérité, la base / framework de code est déjà défini comme C ++ et MySQL. L'application elle-même est compilée et exécutée en tant qu'EXE sur Windows Server. L'interface utilisateur est basée sur le Web et l'application fonctionne comme une sorte de serveur. D'après ce que je sais des applications Web modernes, c'est peut-être un choix inhabituel. De nos jours, la plupart des gens semblent opter pour un framework PHP ou Ruby on Rails. C'est certainement l'impression que j'ai en lisant des blogs sur le sujet. Donc, je suis très intéressé de savoir si un EXE C ++ soutenu par MySQL est une base solide pour une application Web, ou si nous devrions chercher à construire d'une autre manière?
la source
Réponses:
Il est normal de créer une application Web en C ++ SI les avantages l'emportent évidemment sur le coût. Google, Amazon, Facebook sont tous construits avec C ++ pour une efficacité en termes de vitesse, de mémoire et d'énergie - c'est-à-dire les coûts des serveurs.
Cependant, comme vous l'avez deviné, il y a des inconvénients à utiliser C ++ pour cela. Cela dépend de vos outils.
Permettez-moi d'abord de citer le site Web de cppcms à ce sujet:
Les inconvénients spécifiques au C ++ sont:
Peut-être jetez un oeil à CPPCMS? Ou peut-être si vous voulez créer un site Web de style GUI?
Vérifiez également ces questions:
la source
Wordpress fonctionnant en PHP avec quelques plugins installés met mon serveur Winders à genoux. Je n'ai donc aucun problème avec l'idée d'implémenter une application web en C ++. La vitesse est un élément essentiel de l'expérience Web.
Tentes de conception graphique pour piloter la majorité des projets web. PHP est un langage de script obscur qui s'exécute à l'intérieur de HTML. Permettre aux auteurs PHP de s'échapper dans et hors de HTML. En conséquence, l'utilisation de HTML présente de nombreux avantages.
Pourtant, vous pouvez implémenter n'importe quel nombre de solutions de modèles HTML en C ++.
On pourrait vous fournir une longue liste de frameworks Python et PHP qui permettent un développement rapide, mais si vous avez beaucoup de temps, alors C ++ est certainement possible.
Ce que je ne comprends pas, c'est votre décision de faire du C ++ sur Windows. lol
la source
C'est certainement un choix inhabituel. C ++ n'a pas été conçu pour les applications Web, et bien qu'il existe des bibliothèques pour écrire, par exemple, des applications FastCGI avec C ++, vous devez faire beaucoup plus de travail pour obtenir votre application de base. Les "langages Web" font généralement beaucoup de choses pour vous que vous devez obtenir ailleurs en C ++, telles que la mise en œuvre du protocole HTTP, la génération de HTML, etc.
De plus, les applications Web concernent principalement les chaînes, ce qui n'est pas exactement le côté le plus fort de C ++ - il n'y a pas de type de chaîne intégré dans le langage lui-même, ce qui conduit à quelques bizarreries et rend le traitement des chaînes plus maladroit qu'il ne le serait en plus haut - langues de niveau. La gestion correcte des encodages de caractères en C ++ limite la magie noire. Et C ++ peut planter très fort, sur du code d'aspect assez innocent, ce qui est beaucoup moins probable avec un langage de niveau supérieur (eux aussi peuvent planter, mais dans la plupart des cas, le serveur Web peut récupérer gracieusement, en particulier sur les plates-formes qui utilisent un par modèle de cycle de vie de demande, comme PHP).
Cela dit, si vous avez déjà écrit la majeure partie de la base de code, C ++ pourrait toujours être un choix viable. Vous devrez trouver des bibliothèques pour couvrir toutes sortes de choses sur le Web (notamment, vous voulez être en mesure d'intégrer un serveur Web HTTP autonome dans votre programme, ou de vous connecter, par exemple, à Apache, soit via FastCGI, soit en compilant avec un module; vous voudrez également une sorte de bibliothèque de modèles pour rendre le rendu des documents HTML indolore).
Enfin, il y a le problème du marché des développeurs. Il y a beaucoup de développeurs C ++ disponibles, et encore plus de développeurs web, mais le chevauchement n'est probablement pas si important, donc si jamais vous avez besoin d'embaucher des gens pour travailler sur cette chose, vous aurez un moment un peu plus difficile qu'avec, disons, PHP.
la source
Comme d'autres l'ont dit, conceptuellement, C ++ est un bon environnement pour le développement d'un serveur Web. Il y a cependant plusieurs considérations lorsque vous prenez cette décision.
La popularité des langages de script pour la conception de serveurs Web évolue dans le temps. Des changements simples peuvent être effectués facilement avec la démonstration de résultats presque immédiats. Vous constaterez que toute bonne conception de serveur Web offrira des capacités similaires. En effet, C ++ est un excellent environnement pour atteindre cet objectif.
La clé de la construction d'un bon système d'application de serveur Web est une séparation de l'interface utilisateur du code. Un objectif dans la construction d'un environnement d'application Web est d'éviter "Votre interface utilisateur est dans mon code et votre code est dans mon interface utilisateur."
Je voudrais soigneusement à des systèmes comme cppcms. Je m'attendrais à ce qu'il offre quelque chose de similaire.
Vous n'avez pas besoin d'un langage de script pour offrir flexibilité et performances.
la source