2009-03-27 11 views
8

Ho intenzione di costruire una soluzione chiavi in ​​mano per un mercato verticale e vorrei offrire entrambe le opzioni: software come servizio e dare loro la possibilità di ospitare l'applicazione da soli. In altre parole, sto mirando ad avere opzioni di implementazione simili a quelle di Joel FogBugz.Django o CodeIgniter per applicazione Web chiavi in ​​mano

Sono un programmatore Python e potrei sorvolare il progetto con Django. Ci sono diversi motivi per cui preferisco PHP:

1) Installazione di Django, e la configurazione presuppone che si abbia accesso a una shell (il mio target non è il tipo di programmatore). Sebbene potessi offrire il servizio di installazione, ma non sui loro server.

2) Django viene eseguito solo su host specifici che devono prestare particolare attenzione per attivarlo. Installando mod_python/mod_wsgi e molto probabilmente la minoranza dei miei potenziali clienti avrebbe accesso root o anche un cpanel.

3) L'utilizzo di PHP significherebbe che potrei eseguirlo sul server esistente. Non avrei bisogno di spostarli su un server abilitato a Django e non ci sono tempi di inattività per le loro e-mail, mentre gli aggiornamenti DNS.

D'altra parte, ho pochissima esperienza con PHP. Smarty come linguaggio dei template sembra carino e funziona in modo simile ai template di Django. Tuttavia, non offre l'ereditarietà dei template, tranne che in un modo molto logico in cui non desidero utilizzarli in quanto potrebbe rompere l'applicazione se il designer li mette in disordine. Cosa ne pensi? Grazie in anticipo!

+0

Certo, PHP sarà più facile da installare rispetto a un'applicazione Python ma si sta aprendo un'intera scatola di worm riguardo le configurazioni del server web (Apache, IIS, altri?), Versioni PHP (PHP4 e obsolete, buggy PHP5) con l'utente che in realtà ottiene il server che serve il tuo PHP. Allora hai il database ... –

+0

Sembra lo stesso problema che affligge WordPress ... – GloryFish

+0

Non hai bisogno di Smarty se stai usando CodeIgniter, vero? Separa già la vista dal controller. E include un meccanismo di memorizzazione nella cache. –

risposta

4

La distribuzione è chiaramente un problema per tutte le app Web non basate su PHP, ma penso che le cose stiano migliorando con gli ISP di DreamHost/Engineyard che forniscono Ruby/Python ecc. Sembra che ci saranno molte discussioni a PyCon questa settimana sui modi per risolvere i problemi di distribuzione. La crescita della popolarità di Django, Turbogears e Pylons sta guidando la domanda di soluzioni di distribuzione migliori.

Detto questo, se il tuo mercato di riferimento sono le persone che ospitano sul prezzo molto basso $ 12 all'anno di un ISP, allora non penso che tu abbia altra scelta oltre a PHP.

Infine, una cosa che non sono d'accordo con te è eseguire PHP e Django sullo stesso server. Sto usando alcune app PHP sul mio server con Apache e dozzine di siti Django con mod_wsgi in modalità daemon. Eseguirlo in questo modo significa che l'interprete Python non usa ram negli operai di Apache e viceversa, l'interprete PHP non sta contaminando i miei demi mod_wsgi :)

+0

Sì, potrei eseguirli anche side-by-side, ad esempio su webfaction, ma questo non è il tipo di hosting provider che il mio cliente avrebbe. – Lorenzo

+1

+1 con una nota: è un peccato che tu voglia offrire non solo SaaS, ma limitare il tuo prodotto finale con gli "autoinstallanti" che potrebbero essere ostacolati. Come ha detto Van Gale, se il tuo mercato di riferimento è il tipo di * non vuoi * un'app SaaS, ma anche di avere così difficoltà a installarlo localmente (assumendo Django), potresti essere costretto a passare il tempo su PHP. Ma alla fine, avrai una base di clienti abbastanza grande da pagare per il tempo supplementare che hai investito? Qual è il ROI su questo aspetto, considerando che hai detto quanto sarebbe stato facile per te realizzarlo in Django? –

3

Se vuoi che la tua applicazione sia mainstream, la tua quasi forzata andare con PHP. Passare da Django a PHP è molto più semplice che passare da PHP a Django. Conosci gli standard, hai solo bisogno di imparare la sintassi e le funzioni del PHP.

Definitivamente, utilizzerei un framework PHP. Symfony e akelos sono molto simili a Rails (vicino a Django). Dall'altra c'è Code Igniter che fa quello che dovrebbe - organizza il tuo codice.

2

Sulla base delle proprie conclusioni, vorrei andare con CodeIgniter. Sembra che ci sarebbe un sacco di lavoro per aiutare i tuoi clienti a installare la tua app Web e presumo che tu non voglia questo.

Creare un'app Web semplice da installare in modo da poter concentrare i vostri sforzi per migliorarla e venderla, invece di lavorare extra come amministratore di sistema o scrivere tutorial di installazione completi.

(Detto questo, FogBugz non è stato facile da installare sul nostro server Linux, anche se è scritto in PHP. Ci sono voluti io e il mio collega (entrambi i programmatori!) Più di un giorno di lavoro completo da installare.Quindi penso che ci saranno sempre problemi con l'installazione di app Web ospitate.)

Problemi correlati