Le tecnologie web, come PHP, HTML e CSS, possono essere utilizzate per lo sviluppo del desktop? [chiuso]

6

Devo sviluppare un'applicazione per un'agenzia del gas in cui un database memorizzerà numeri di consumatori, nomi, indirizzi e data di consegna per una città con circa 20.000 persone. Conosco solo PHP, MySQL, CSS, jQuery e altre tecnologie basate sul web. È possibile consegnare un pacchetto al client utilizzando queste tecnologie che possono essere installate su un computer e utilizzate localmente?

Questa applicazione verrà eseguita su un singolo PC per un singolo utente. Ho familiarità con strumenti come XAMPP, ma non voglio eseguire un server web localmente. Sia l'applicazione che il database funzioneranno in modo sicuro su un determinato computer. In futuro, se questa applicazione deve essere su più computer, voglio che il database e l'applicazione siano portatili.

Ho cercato domande simili su Stack Overflow e ho trovato alcuni consigli come Jetty, Adobe Air e il recente database Web SQL. PHP GTK è anche uno strumento valido per la creazione di applicazioni professionali?

Desidero una raccomandazione specifica per questo tipo di app.

    
posta kushalvm 05.02.2012 - 07:26
fonte

7 risposte

3

Modifica . C'è una versione binaria di PHP Desktop con il motore di Internet Explorer pronto, vai a scaricarlo su:

link

(leggi "SOMMARIO" per una spiegazione per principianti)

In breve:

  1. Ospita un controllo WebBrowser in una semplice app c ++.

  2. Chiama ShellExecute () per eseguire php 5.4.0 webserver integrato.

  3. Usa sqlite come database.

In dettaglio:

  1. Crea una semplice applicazione win32 che ospita il controllo WebBrowser, ad esempio con C ++ e MFC:

    link

    Tutto questo può essere fatto usando semplici procedure guidate, non è necessario conoscere C ++ o altro, ma è necessario installare VisualStudio, quindi eseguire la procedura guidata e modificare il percorso su questa linea:

    m_browser.Navigate("127.0.0.1:1234", NULL, NULL, NULL, NULL);

    (che la chiamata di navigazione dovrebbe realmente accadere dopo il passo 2. - quando il server php è in esecuzione)

  2. Devi aggiungere un'altra riga nel tuo programma c ++, una chiamata a ShellExecute () che avvii il server integrato di php 5.4.0.

    Documenti ShellExecute () su MSDN:

    link

    Server web integrato PHP 5.4:

    link

    Quella linea sarà simile a questa:

    ShellExecute(NULL, TEXT("open"), TEXT("C:\program files\YourApplication\php.exe"), "-S 127.0.0.1:1234", NULL, SW_HIDE);

    (dovrai chiudere quel server web quando viene chiusa la tua applicazione)

  3. SQLite è un database semplice e non è necessario eseguire alcun servizio aggiuntivo, un server integrato PHP che è spiegato nel passaggio 2 è tutto ciò che è necessario per connettersi al database SQLite. In php.ini è necessario caricare l'estensione PDO + pdo_sqlite.

Inserisci il tuo exe (YourProgram.exe) + binari php (php.exe + dlls + extensions + php.ini) + i tuoi file di origine .php = > Metti tutto in una directory, crea un programma di installazione usando ad esempio NSIS:

link

e sei pronto per il rock.

GooD LucK.

PS. Per quanto riguarda PHP-GTK, dai uno sguardo a questo interessante progetto che ho trovato di recente, WinBinder: link

SOMMARIO

Crea un wrapper c ++ una sola volta ed è facile, quindi puoi eseguire i tuoi script php come applicazione nativa di Windows - un controllo del browser Web IE viene creato all'interno della finestra dell'applicazione e naviga fino a 127.0.0.1:1234, che è il uscita dei tuoi script php. Sembra un programma normale, ma è davvero un browser integrato all'interno dell'applicazione.

Non è richiesta l'installazione di apache, php o mysql - è come eseguire un'applicazione nativa di windows. Un piccolo wrapper c ++ che può essere facilmente creato con semplici wizard e che può eseguire gli script PHP in un secondo momento sui computer client, senza problemi, con la sensazione di una normale applicazione desktop:)

Non è necessario installare nulla, poiché utilizza PHP 5.4 che viene fornito con un web-server integrato, può essere avviato facilmente con 1 linea utilizzando la chiamata c ++ a ShellExecute (). Per il database è possibile utilizzare SQLite che non richiede l'esecuzione di alcun servizio, php da solo è sufficiente.

Spero sia chiaro adesso.

    
risposta data 06.02.2012 - 19:56
fonte
13

Perché girovagare cercando di hackerare qualcosa insieme a tecnologie che non sono progettate per lo sviluppo di app desktop, quando puoi usare uno strumento di sviluppo desktop reale per creare un'applicazione con meno problemi?

Qualunque cosa pensi che stai risparmiando non imparando una nuova lingua, staresti sprecando cercando di inserire un piolo quadrato in un buco rotondo. Usa lo strumento giusto per il lavoro.

Scarica qualcosa come Visual Studio Express per C # o VB.Net e provalo. O Delphi, se hai un budget limitato con cui lavorare. Dici di conoscere PHP & MySQL. Bene, SQL è SQL, quindi non è un problema a prescindere dalla lingua scelta. La sintassi di C # non dovrebbe essere troppo diversa da quella a cui sei abituato a guardare in PHP. Ma VB.Net non dovrebbe essere troppo difficile da affrontare, neanche. Delphi rende i file eseguibili self-contained, rendendo la distribuzione molto più semplice. Quelle sono solo alcune opzioni. C'è anche il C ++. Python, Java ....

    
risposta data 06.02.2012 - 05:55
fonte
8

Un'applicazione web destinata a essere utilizzata da una persona può essere ospitata localmente, poiché un personal computer può fungere da server, ospitando:

  • Un server web.

    IIS è molto facile da configurare su qualsiasi macchina Windows e non è necessario scaricare nulla; Apache deve essere scaricato, ma è molto semplice da configurare.

  • PHP.

    Una volta che hai Apache / IIS, scaricare e installare PHP non è molto difficile.

  • Un database SQL.

    La maggior parte dei database sono prodotti ordinari che possono essere installati su personal computer. L'unico problema sarebbe il costo, ma questo non ti riguarda se scegli SQLite o una versione gratuita di Microsoft SQL Server o una versione gratuita di MySQL.

    SQLite sarebbe probabilmente il più semplice. Un prodotto in meno da installare è sempre meglio quando si ha a che fare con un personal computer, e non con un ambiente server rigorosamente controllato, protetto e documentato.

Un'applicazione web può anche essere utilizzata localmente. Invece di inserire un URI di un server remoto, come link , utilizzerai il link . Mentre alcuni browser si rifiuteranno di eseguire JavaScript di un file HTML che apri dal disco (file: //.../Desktop/Example.htm), questo non è un problema con gli URI localhost .

Ora, in che modo verrà utilizzata l'applicazione web? Hai detto:

I have to develop an app for a gas agency where a database will store consumer numbers, names, addresses, and date delivered for a town

Quindi, se capisco bene, avrai diversi dipendenti dell'agenzia che usano la stessa applicazione, giusto? In questo caso, non è possibile installare la propria applicazione Web su personal computer. Devono condividere lo stesso database, che richiede di ospitarlo su una macchina a cui si accederà da altri, ad esempio un server. Da quel punto, hai diversi approcci:

  • Ospita un file SQLite su un'unità condivisa (potrebbe anche essere un NAS, non un vero server) e accedervi da diversi PC. Questo approccio è fondamentalmente cattivo .

    Dal momento che stai effettivamente accedendo al file stesso, direttamente, se più utenti eseguiranno un'azione allo stesso tempo, accadranno cose brutte: il file sarà bloccato da un utente, o forse un utente sovrascriverà le modifiche apportate da un altro, ecc. Non farlo.

  • Ospita un database SQL su un server , ovvero un semplice PC dell'agenzia che chiamerà un server e tutto il resto sui PC. Tecnicamente, puoi farlo. Ad esempio, negli ambienti server, non è insolito ospitare il database e l'applicazione stessa su macchine diverse, principalmente per motivi di prestazioni (alcuni server potrebbero essere ottimizzati per la manipolazione dei dati, altri per il calcolo).

    Sebbene sia particolarmente rilevante nell'ambiente server, questo approccio deve essere evitato quando possibile in un contesto come il tuo, per motivi di sicurezza. Fornendo un accesso diretto al tuo database da qualsiasi macchina dell'agenzia, riduci la sicurezza dei tuoi dati. È possibile configurare correttamente la sicurezza per proteggere i dati da un utente malintenzionato, ma trascorrerai alcuni mesi a farlo e, con alcuni prodotti SQL, non è nemmeno possibile.

  • Ospita tutto su un server (vale a dire, di nuovo, un semplice PC dell'agenzia). Questa è probabilmente la soluzione più praticabile. Dovrai accedere all'applicazione web digitando qualcosa come link , che è brutto, o il nome della macchina, che è, nella maggior parte dei casi aziende, anche più brutte. Ma ancora:

    1. I dati dell'agenzia sono protetti da dipendenti malintenzionati,

    2. Quando si corregge un bug, è necessario inviare l'aggiornamento a una sola macchina, non ai PC. Lo stesso vale per PHP stesso. Preferiresti l'aggiornamento a PHP 5.3.11, una volta rilasciato, su un server, o preferisci farlo sui PC?

    3. Il codice sorgente è visibile solo da persone che possono accedere al server. Non vuoi che nessun dipendente possa leggere il tuo codice sorgente PHP.

    4. Esiste solo una versione del tuo codice. Se si ospita la tua app su ogni PC, cosa succederà se uno è effettivamente rotto mentre si spinge l'aggiornamento? O cosa succede se un dipendente ha deciso di modificare il codice sorgente della tua applicazione?

    5. Esiste solo una configurazione da prendere in considerazione, quella del server. PHP riassume abbastanza bene l'hardware e la configurazione di base, ma ancora. Che cosa succede se hai bisogno di memorizzare un file temporaneo e decidi di scriverlo su C:\Windows\Temp , e più tardi scopri che su un PC preciso, questa parte del tuo codice si blocca, perché non c'è C: su questo PC?

risposta data 05.02.2012 - 13:38
fonte
1

MySQL è sicuramente una scelta ragionevole per il tuo caso, non penso che sia un problema installare dal lato del cliente.

Se preferisci un database di "nessuna installazione", puoi utilizzare SQLite (che funziona con PHP)

    
risposta data 05.02.2012 - 12:45
fonte
1

Ho seguito la stessa cosa, ma per scopi diversi. La mia ricerca mi ha portato a Titanium

La sua descrizione dal suo sito web:

Titanium makes cross-platform native application development easy. A free and open source application development platform, Titanium lets you create native mobile, tablet and desktop application experiences using existing web skills like Javascript, HTML, CSS, Python, Ruby, and PHP

In alternativa puoi provare Server2Go . Fondamentalmente si tratta di un server WAMP standalone che si può mettere su un CD / disco USB ecc. Il problema con questo sarebbe il db MySQL sarebbe letto solo se il server deve essere su un CD. Ma puoi sempre usare SQLLite db memorizzato nel disco locale o aggirarlo diversamente.

Penso che il titanio risolverà il tuo problema ... Dovrei aggiungere che non l'ho usato abbastanza per sapere quanto è bello, ma di solito ci sono recensioni positive su questo argomento.

    
risposta data 07.02.2012 - 09:36
fonte
0

Se il tuo database non è online (voglio dire che il tuo database non è aggiornato), puoi usare JavaScript, HTML e CSS per creare la tua app offline (jQuery è una libreria di JavaScript). Se il database è aggiornato, puoi creare un sito Web per visualizzarlo ai tuoi clienti. E puoi chiedere ai tuoi clienti di aggiungere un segnalibro al tuo sito web per aggiornare le informazioni, oppure puoi creare app Chrome (se i tuoi clienti usano Chrome come browser web) affinché i client si installino direttamente sul loro browser Chrome.

    
risposta data 05.02.2012 - 12:21
fonte
0

Dai un'occhiata a CouchDB ?

Si tratta di un semplice database NoSQL basato su Web, basato su Web.

Hai solo bisogno di installare una singola applicazione e hai un database NoSQL con un'interfaccia web chiamata Futon. È possibile creare facilmente applicazioni Web leggere e connesse a db con html + javascript. I documenti CouchDB sono disponibili dal browser Web e il codice del programma (HTML + JavaScript + ...) può essere anche quello. E non hai bisogno di installare e configurare PHP, MySQL, ecc.

    
risposta data 06.02.2012 - 12:30
fonte

Leggi altre domande sui tag