2009-03-27 5 views
8

Je vais construire une solution clé en main pour un marché vertical, et je voudrais offrir les deux options: le logiciel en tant que service, et leur donner la possibilité d'héberger l'application par eux-même. En d'autres termes, je vise à avoir des options de déploiement similaires à celles de Joel's FogBugz. Je suis un programmeur Python, et je pourrais survoler le projet avec Django. Il y a plusieurs raisons pour lesquelles je préfère PHP:Django ou CodeIgniter pour l'application Web clé en main

1) L'installation de Django et la configuration supposent que vous avez accès à un shell (ma cible n'est pas le type de programmeur). Bien que je puisse offrir le service d'installation, mais pas sur leurs serveurs. 2) Django s'exécute uniquement sur certains hôtes spécifiques qui doivent être particulièrement vigilants pour l'activer. L'installation de mod_python/mod_wsgi, et probablement la minorité de mes clients potentiels aurait un accès root, ou même un cpanel.

3) Utiliser PHP signifierait que je pourrais l'exécuter sur leur serveur existant. Je n'aurais pas besoin de les déplacer vers un serveur compatible Django, et pas de temps d'arrêt pour leurs emails, alors que les mises à jour DNS. D'autre part, j'ai très peu d'expérience avec PHP. Par contre, j'ai peu d'expérience avec PHP. Smarty, en tant que langage de gabarit, est joli et fonctionne de la même manière que les gabarits Django. Il n'offre cependant pas d'héritage de template, sauf d'une manière très hackish dans laquelle je ne souhaite pas l'utiliser car il pourrait casser l'application si le concepteur les dérange. Qu'est-ce que tu penses? Merci d'avance!

+0

Bien sûr, PHP va être plus facile à installer qu'une application Python mais vous ouvrez toute une boîte de Pandore en ce qui concerne les configurations du serveur web (Apache, IIS, d'autres?), Les versions de PHP (PHP4 et obsolètes, PHP5s buggy) ayant l'utilisateur réellement obtenir le serveur servant votre PHP. Ensuite, vous avez la base de données ... –

+0

Semble que les mêmes problèmes qui sévissent WordPress ... – GloryFish

+0

Vous n'avez pas besoin de Smarty si vous utilisez CodeIgniter, et vous? Il sépare déjà la vue du contrôleur. Et il comprend un mécanisme de mise en cache. –

Répondre

4

Le déploiement est clairement un problème pour toutes les applications Web non basées sur PHP, mais je pense que les choses s'améliorent avec les ISP de type DreamHost/Engineyard qui fournissent Ruby/Python etc. Il semble également qu'il y aura beaucoup de discussions à PyCon cette semaine sur les moyens de résoudre les problèmes de déploiement. La croissance de la popularité de Django, Turbogears et Pylons stimule la demande pour de meilleures solutions de déploiement. Cela dit, si votre marché cible est les gens qui hébergent sur le très bas de gamme 12 $ par an, alors je ne pense pas que vous ayez beaucoup d'autre choix que PHP. Enfin, je ne suis pas d'accord avec PHP et Django sur le même serveur. Je cours quelques applications PHP sur mon serveur avec Apache et des dizaines de sites Django avec mod_wsgi en mode démon. L'exécuter de cette façon signifie que l'interpréteur Python n'utilise pas ram dans les travailleurs Apache et vice versa, l'interpréteur PHP ne contamine pas mes démons mod_wsgi :)

+0

Oui, je pourrais les faire tourner côte à côte, par exemple sur webfaction, mais ce n'est pas le genre de fournisseur d'hébergement que mon client aurait. – Lorenzo

+1

+ 1 avec une note: Il est regrettable que vous souhaitiez offrir non seulement SaaS, mais pour limiter votre produit final avec les "auto-installations" étant éventuellement entravé. Comme Van Gale l'a mentionné, si votre marché cible est du type à * ne pas vouloir * une application SaaS, mais aussi avoir du mal à l'installer localement (en supposant Django), vous pourriez être obligé de passer du temps sur PHP. Mais à la fin, aurez-vous une clientèle assez importante pour payer le temps supplémentaire que vous avez investi? À quoi ressemblera le retour sur investissement, étant donné que vous avez dit combien il vous serait facile de le réaliser dans Django? –

3

Si vous voulez que votre application soit mainstream, alors votre presque forcé aller avec PHP. Passer de Django à PHP est beaucoup plus facile que de passer de PHP à Django. Vous connaissez les normes, vous avez juste besoin d'apprendre la syntaxe PHP et les fonctions.

J'utiliserais certainement un framework PHP. Symfony et akelos sont très similaires à Rails (proche de Django). D'un autre côté, il y a le Code Igniter qui fait ce qu'il devrait - organiser votre code.

2

Selon vos propres conclusions, j'irais avec CodeIgniter. Il semble qu'il y aurait une tonne de travail pour aider vos clients à installer votre application web, et je suppose que vous ne le voulez pas. Créez une application Web simple à installer afin de vous concentrer sur vos efforts pour la rendre meilleure et la vendre, au lieu de travailler en tant qu'administrateur système ou d'écrire de nombreux didacticiels d'installation.

(Cela dit, FogBugz n'a pas été facile à installer sur notre serveur Linux, même s'il est écrit en PHP, et il a fallu plus d'une journée de travail pour installer mon collègue (les deux programmeurs!).Donc, je pense qu'il y aura toujours des problèmes avec l'installation d'applications Web auto-hébergées.)