Newsgroup: it.comp.lang.delphi
Titolo: ASP, PHP & CGI

Qualche anima caritatevole potrebbe essere cosi gentile da spiegarmi pregi e
difetti di questi 3 diversi modi di gestire un sistema di ricerca?In piu, da
un punto di vista di obsolescenza, cosa conviene usare e cosa no?
Tnx
AS
"Se è Microsoft non funziona"

Per quello che ho avuto modo di appurare personalmente, CGI è da scartare
per la pesantezza...
Quanto agli altri due (ASP e PHP) pregi e difetti si compensano... ma il mio
consiglio ricade su ASP per il quale esistono
diversi componenti gratuiti (...o quasi) in rete per l'integrazione con
Delphi.
Ad onor di cronaca ricordo che ASP è nato sotto Windows e PHP sotto Unix e,
sebbene entrmbi i SO supportino
tanto uno quanto l'altro liguaggio, è bene (almeno per ora) usare le cose
nel loro contesto (=> ASP in Windows e
PHP in Unix).
Se poi usi SQL Server la scelta ricade su ASP e se usi MySQL su PHP, ma
questo credo che sia ovvio...
Ciao,
  Roby

 un punto di vista di obsolescenza, cosa conviene usare e cosa no?
Da quello che ho potuto apprendere pochi giorni fa il + conveniente è
JSP...! [grazie Gian Luca]
Tutte queste sono tecniche per creare applicazioni Server Web ... supponi di
dover creare un sito a cui gli utenti possono accedere solo dopo aver
specificato UserName e Password, devi acquisire questi valori immessi
direttamente sulla pagina Web ... per fare questo devi utilizzare un tramite
tra la pagina e il database con le pwd!
Le CGI (Common Gateway Interface) sono componenti di terze parti, esterni
alle pagine, e richiamate dalle stesse ... quando una pagina richiama un CGI
questo svolge il suo compito e subito dopo si "auto-termina" ...
Il codice di un CGI potrebbe essere il seguente
Leggi il valore nella Edit1 della pagina Web che mi ha richiamato
Leggi il valore nella Edit2 della pagina Web che mi ha richiamato
Scorri il Database e vedi se i 2 valori sono presenti
Se sono presenti
  Permetti l'accesso
altrimenti
  Nega l'accesso
E' chiaro?
In Delphi hai la possibilità di scrivere dei CGI, il loro difetto però è il
seguente : essendo compilati su piattaforme Microsoft non funzionano su
molti Server Web (che montano Unix/Linux etc...)
Se devi apprendere i CGI ti consiglio di studiarti il Perl, ottimo per
questi lavori! Inoltre il codice Perl non viene compilato, ma interpretato
(un po' come il Bytecode di Java) e quindi basta avere un interprete per
Windows e uno per Linux e i tuoi CGI funzioneranno su entrambi i sistemi!
PHP e ASP funzionano in maniera diversa : questi vengono "compilati al volo"
all'interno della pagina Web ... in pratica il codice viene scritto
direttamente nella pagina ed eseguito prima di essere inviato all'utente che
lo richiede. Perchè ce ne sono 2? Beh, PHP è la risposta del mondo
Linux/Unix ad ASP di Microsoft (sia chiaro, le ASP funzionano solo su
sistemi M$ e PHP solo su Linux/Unix).
Entrambe funzionano mediante degli Script Engine, ovvero dei "motori script"
che eseguono il codice sorgente presente all'interno della pagina!
Il vantaggio di JSP (Java Server Page), che ti dicevo sopra, sta nel fatto
che funziona indipendentemente dal SO! Come sempre, Java si rivela molto
all'avanguardia per questo tipo di lavori!
Per ulteriori dettagli ti rimando a 
www.html.it
 e 
www.programmazione.it
Ciao!
--
- Carlo -

 all'avanguardia per questo tipo di lavori!
Mah, Java ha dei limiti abbastanza pesanti a mio [ma non solo mio] avviso.
Direi che fra le alternative proposte io propenderei per ASP e PHP (che più
o meno si equivalgono), se poi devo lavorarci con Delphi userei le ASP
(posso scrivermi gli oggettini OLE con Delphi e richiamarli dalle mie ASP).
Proprio in questi giorni mi sto cimentando nella costruzione di un piccolo
sito dinamico (ASP+2 oggettini OLE miei e 1 non mio [CDont]+1 Db MsSQL 7 su
Win2000) e direi che mi piace parecchio...
[nonostante ci siano alcune cose della sintassi che non capisco ma d'altra
parte non lo uso quasi mai... per esempio mi resta un dubbio grosso come una
casa su come faccia una mia pagina a funzionare: ho n checkbox (HTML) con lo
stesso nome e ad un certo punto nel submit della pagina ho un ciclo "For
each item in [nomeCheckBox]" ... beh, capirei se mi enumerasse tutte le
checkbox con quel nome ma proprio non mi spiego perchè mi enumera solo le
checkbox _checkkate_ di quella pagina...]
Ciao :-)
--
PS: io domani (e forse anche Venerdì) sono in SMAU, magari ci si vede...
Andrea Magni
E-Mail: 
ama...@interac.it

Allora... vediamo un po'...
    - CGI è la tecnologia più vecchia... Sono programmi console che vengono
eseguiti dal Server Web, ricevono l'input dallo standard input e sputano
codice HTML dallo standard output... Esistono innumerevoli linguaggi per
fare CGI sia in Unix che in Windows... La cosa scomoda è che devi codificare
all'interno del CGI stesso la pagina HTML che deve essere visualizzata.
    - ASP, PHP e aggiungerei JSP sono praticamente delle pagine HTML nelle
quali all'interno di tag speciali, viene scritto del vero codice di
programmazione per far divenire la pagina dinamica. ASP è la tecnologia
Microsoft e quindi diventa la scelta obbligata se il server Web è basato su
tecnologia Windows, PHP è la tecnologia del mondo Unix/Linux e quindi se il
server appartiene a quel mondo difficilmente potrai scrivere ASP... Infine
JSP sono pagine basate su Java e se non lo conosci non è il caso che tu ti
vada a impegolare...
    I linguaggi ASP e PHP sono molto differenti tra loro (io personalmente
ho lavorato e lavoro moltissimo con PHP perché il server dove lavoro è
basato su Linux ), ma permettono di ottenere le stesse funzionalità, in
particolare sono molto curati gli accessi ai RDBMS... ASP con la tecnologia
OLE e ADO (in ASP riesci a utilizzare facilmente tutti gli ActiveX presenti
nel sistema) ti permette l'accesso ai database (da Accesss in su), PHP
risponde con una serie di funzioni studiate appositamente per ogni RDBMS...
    In conclusione, il più vecchio e fuori moda sono i CGI semplici... Se ne
trovano ancora moltissimi (soprattutto nel mondo Unix) perché sono testati
da molti anni e sono molto funzionali, ma diciamo che al giorno d'oggi
difficilmente si scrive una pagina dinamica partendo da CGI. ASP e PHP sono
molto diversi tra loro ma permettono, con una base di studio, di ottenere
degli ottimi risultati; sostanzialmetne la scelta dipende dal web server
dove andrai a far "girare" le pagine. Come ti ho già detto, io lavoro in PHP
e tempo un mese di training sono riuscito a costruire motori di ricerca e
carrelli per la spesa elettronica (non ho fatto nulla però per quanto
riguarda la sizurezza); comunque in giro ho visto lavori simili fatti in
ASP... La scelta finale spetta a te...
    P.S. Come strumenti di sviluppo delle pagine siamo alle solite... Con
PHP si va avanti con il Blocco Note ed un help in formato HTML (molto ben
fatto), mentre con ASP Micorsoft mette a disposizione uno strumento
sofisticato (che io non ho mai visto) di nome Visual Interdev...
    Saluti!
_________________________________
Gian Luca Dalla Torre
E - Mail: 
gianluca....@casteo.net
_________________________________

 PS: io domani (e forse anche Venerdì) sono in SMAU, magari ci si vede...
Perchè no ... io vado Venerdì, ci dovrebbe essere anche parecchia gente del
NG di Cantù!


Scusate ma per quanto riguarda ISAPI e/o NSAPI??...
come mai non li trattate ?? e proprio un altro pianeta o li avete
accomunati ad i cgi??
<html>
<font face="Brush Script MT" size=5>---------------------<br>
&nbsp; Is there anybody out of there? <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
Vincenzo Gonino: 
vigo...@tin.it
<br>
----------------------</font></html>

 è tutt'altro discorso!
Più che altro a me non piace proprio avere una VM sopra la testa che cambia
a seconda delle piattaforme, facendo i salti mortali (a scapito delle
prestazioni e dell'affidabilità) per cercare di mantenere lo stesso codice
su sistemi assolutamente diversi.
è come progettare un freno che vada bene sia ad un jumbo jet che ad una
bicicletta... Ok, ci si riuscirà anche e alla fine potrete comprare un freno
che va bene da tutte le parti, ma sinceramente non prenderei mai nè quella
bicicletta nè (tanto meno) quel jumbo jet...
Come sintassi/semantica è carino, perfino l'idea del garbage collector
potrebbe andare via liscia, ma secondo me [e secondo quanto riportatomi da
gente che ne ha piena padronanza]resta un qualcosa di molto "sperimentale"
(nel senso che va bene per gli studi accademici).
Ciao
--
Andrea Magni
E-Mail: 
ama...@interac.it

 sofisticato (che io non ho mai visto) di nome Visual Interdev...
? nessuno ti obbliga ad usare VInterdev...
Io sto realizzando un sito intero a suon di ASP senza aver mai toccato nè
FrontPage nè Visual Interdev...
Non uso il notepad perchè mi è antipatico, uso EditPad che è un sostituto
del notepad (e anche del Wordpad) scritto interamente in Delphi.


    Dunque, visto che la vostra documentazione scarseggia e visto che io con
queste cose ci lavoro, vi confermo che:
    - esistono i moduli ASP per Apache e sono scaricabili al sito
dell'Apache stesso 
http://www.apache.org
, questi moduli aggiuntivi
permettono l'utilizzo effettivo di ASP sotto Linux... Va da se che però non
si possono fare collegamenti con OLE perché in Linux non esistono
    - esistono le ISAPI PHP scaricabili al sito 
http://www.php.net
 con
all'interno il supporto per il RDBMS MySql (scaricabile ANCHE in versione
WINDOWS al sito 
http://www.mysql.com
 ), tutti i supporti agli altri RDBMS si
ottengono con DLL esterne da richiamare dal linguaggio PHP stesso
    - JSP io l'ho visto funzionante su APACHE e andava via  bene, sia sotto
Windows, ma non con IIS bensì con WebSphere (la soluzione IBM per il Web
Server)


 No, questo non è vero... sono sicuro che ci sia un motore per ASP che gira


 (nel senso che va bene per gli studi accademici).
Ricordo ancora (e specifico) che Java è nato come linguaggio per la gestione
di elettrodomestici, poi di colpo è diventato General Purpose! Il salto è
parecchio evidente;  non c'è paragone tra Delphi e Java se devi sviluppare
applicazioni, ma se Java è molto richiesto (ne cercano a bizzeffe di
programmatori Java) un suo valore lo avrà!
Ciao!
--
- Carlo -
c.b...@libero.it

 (nel senso che va bene per gli studi accademici).
    Qui ti posso un po' contraddire... Nelle aziende Venete oltre allo
stradominio di C++ e (ahime) Cobol, ci sono alcuni impianti che cominciano a
basare il loro lavoro su Java... Senza contare che io ho visto moltissime
industrie basarsi sulla tecnologia web di IBM (WebSphere) e assumere una
marea di programmatori Java per implementare JSP e soprattutto Servlet per
la trasmissione sicura di dati. Infine anche per il Trading on Line si
procede in questo senso. Il software Fineco per il trading è completamente
fatto in Java, molto pesante, ma allo stesso tempo molto sicuro perché tutti
i dati che vengono passati sono gestiti dal manager di sicurezza Java... A
differenza di alcuni software fatti con COM di cui il protocollo (pur
essendo molto più veloce di quello di Java) è stato facilmente decodificato
da hacker costringendo la sostituzione del programma da parte delle banche.
    Infine non dimenticare CORBA, pur essendo una tecnologia un po' remota è
molto funzionale ( e come al solito il nostro amico Bill la copiata in
piccolo e l'ha chiamata COM, guarda che caso) e ti posso garantire che è
molto più facile utilizzare CORBA sia dal lato server che da quello client
in Java che non in C++, e nemmeno in Delphi che, per accedere a CORBA, deve
per forza passare attraverso COM.
    Dopo aver spezzato innumerevoli lance per Java c'è da dire però che è
ancora tremendamente vorace di risorse... Per lavorare bene con un RAD tipo
Visual Age, ci vogliono richieste spaventose di Memoria e anche quando è in
esecuzione è lentissimo... Anch'io ho delle lamentele su Java... Come
l'eliminazione dei puntatori e il dispositivo di Garbage Collector che
rallenta la VM... Però tutto sommato è molto più ad alto livello di C++ e
questo non può favorire che lo sviluppo del software e... dei programmatori
della domenica!


    Diciamo che le abbiamo accumulate a CGI, inoltre hanno anche un grosso
difetto... Essendo fortemente integrate con il Web Server, se si piantano
bloccano l'intero Web Server e non è moolto carino!


 della domenica!
Mah, non so... io dubito che avrà tutto il successo che gli viene
prospettato...



    Dipende cosa intendi per il successo che gli viene prospettato.. Secondo
me Java ha già finito la sua parabola di ascesa... In America non lo usano
quasi più (è arrivato Python)... Diciamo che è un buon linguaggio che ti
permette di fare tutto in più sistemi diversi... Poi se le esigenze sono
diverse...


 scelto?
Beh, ovvio che bisogna cercare un compromesso...
Resta il fatto che scrivere due volte quell'applicazione (per quanto scomodo
possa essere) risulterebbe di sicuro la soluzione tecnicamente + efficace
(ipotizzando di avere mezzi e conoscenze sufficienti a ricreare le stesse
funzionalità nelle due versioni del programma) anche se ovviamente ciò
significa moltiplicare almeno per 2 il tempo di sviluppo (anche se direi che
moltiplicare per 2 è un'analisi _molto_ ottimistica)...
La domanda che sta a monte è "è giusto che lo stesso software giri su due
hardware diversi?". In teoria direi di no, in pratica "bisogna che si"...
;-)
Ciao :-)
Ps: mi sa che siamo mostruosamente OT...


 ancora sentito parlare di Kilyx per quel Windows Manager...
mah, da quanto Borland ha dichiarato la prima versione di Kylix
sara' "neutrale" per quanto riguarda i desktop,
solo nelle successive release ci saranno chiamate dirette ad API
dei vari windows manager...
speriamo in bene ... :)
Ciao,
Alan Solo

 Ps: mi sa che siamo mostruosamente OT...
    Hai ragione, forse è meglio chiuderla qui...
    Alla prossima!


     Hai ragione, forse è meglio chiuderla qui...
Sinceramente ci ho un po' ripensato: con le valanghe di msg inutili
(flames, OT veri, Faq troppo faq ecc ecc) direi che possiamo anche
permetterci un thread come questo. ;-)
Ciao


 E che ne so... ;-)
    Java è troppo pesante... Come fai a far stare una VM in un frullatore o
in una lavatrice Jini non è altro che uno snellimento del linguaggio e
sporattutto della VM
    Saluti!
