Newsgroup: it.comp.www.php
Titolo: ASP.NET o PHP?

Tempo fa ho sviluppato un progetto non banale con Php4 che mi ha
permesso di prendere confidenza con il linguaggio, che mi è piaciuto
molto. Poi, recentemente, ho messo le mani su un progetto Asp.Net per
delle marginali modifiche che mi hanno permesso di vedere alcune delle
principali differenze tra le due tecnologie.
Ora, dovendo progettare e sviluppare una applicazione web non banale
da zero mi trovo nella posizione di poter scegliere quale tecnologia
adottare. Tralasciando i costi materiali di sviluppo (la licenza
VS.Net mi servirebbe comunque per un progetto Desktop ed essendo
ancora studente per ora non la pago) rimangono due variabili, i costi
materiali di deployment e i costi immateriali di sviluppo (ergo
semplicità e facilità di sviluppo).
Ovviamente sui costi materiali di deployment Php ha un forte
vantaggio, i contratti di hosting su Linux sono tipicamente più
economici e/o più convenienti ed è questa la ragione per cui mi
piacerebbe poter scegliere php.
Asp.Net però ha un punto di vantaggio riguardo ai tempi e costi
immateriali di sviluppo e manutenzione. Php, almeno nella versione che
ho usato io, che non è l'ultima, vede ancora le pagine web come pagine
web, invece 
asp.net
 vede le pagine web come applicazioni cosa che
rende molto più semplice progettare e sviluppare siti web non banali,
che, di fatto, sono applicazioni e non collezioni di pagine web. In
effetti Asp.Net è un linguaggio di programmazione fortemente orientato
agli oggetti, fortemente tipizzato quindi più adatto a progetti più o
meno complessi e più semplice per il debug e testing. Php invece si
porta dietro il suo bagaglio da quando è nato, e, per quanto si sia
sviluppato rimane un linguaggio scarsamente tipizzato e con un
supporto lasco agli oggetti, più adatto forse quindi come linguaggio
di scripting che come linguaggio di programmazione.
Adesso vi chiedo, Php è in circolazione da diversi anni, ha una
community ricchissima, e, specialmente dopo l'uscita dell'ultima
versione, che ancora non conosco in dettaglio ma so che ha migliorato
il supporto alla OOP, dovrebbe avere arricchito le librerie standard e
non standard.
Quali sono le possibilità che un programmatore Php ha per
automatizzare fortemente meccanismi tipici di applicazioni web
(visualizzazione e paginazione di tabelle provenienti da selezioni su
basi dati, modifiche ai dati presenti in tabelle, gestione e
validazione dei form eccetera) senza riscriversele da zero? Tipo
librerie, framework, pacchetti, classi custom o altro.
Con Asp.Net mi sono ritrovato una vista sql paginata senza dover
scrivere una riga di codice e mi è bastato chiamare una funzione per
aggiungere un paio di colonne custom alla tabella. Per non parlare
della validazione dei form, che in Php andava fatta a manina mentre
Asp.Net usando il controllo apposito per la validazione può generare
la validazione lato server e lato client in Javascript quasi allo
stesso tempo.
In PHP queste cose non si potevano fare, con la versione 5 è cambiato
qualcosa?

 ha scritto nel messaggio
news:1181327410....@h2g2000hsg.googlegroups.com...
Tempo fa ho sviluppato un progetto non banale con Php4 che mi ha
permesso di prendere confidenza con il linguaggio, che mi è piaciuto
molto. Poi, recentemente, ho messo le mani su un progetto Asp.Net per
delle marginali modifiche che mi hanno permesso di vedere alcune delle
principali differenze tra le due tecnologie.
Ora, dovendo progettare e sviluppare una applicazione web non banale
da zero mi trovo nella posizione di poter scegliere quale tecnologia
adottare. Tralasciando i costi materiali di sviluppo (la licenza
VS.Net mi servirebbe comunque per un progetto Desktop ed essendo
ancora studente per ora non la pago) rimangono due variabili, i costi
alla fine lo paghi dopo
materiali di deployment e i costi immateriali di sviluppo (ergo
semplicità e facilità di sviluppo).
tieni conto che asp ha cambiato gia 3 versioni ed e' dipendente dal sistema
operativo
non e' portabile
non hai nessuna garanzia che cio che hai scritto sia usabile in futuro
ci si possono creare delle librerie che fanno le stesse cose
ma per il momento nn c'e' nulla.

 ma per il momento nn c'e' nulla.
Mi pare strano, mi sarei aspettavo qualcosa, magari non qualcosa di
completo ma cmq qualcosa per cominciare e su cui basarsi. Scriversele
da zero si può, certo, ma porta via tempo, tanto tempo.
E' uscito un sacco di anni fa ed è popolarissimo e nessuno ha fatto un
set di librerie per automatizzare questo tipo di operazioni? Mi sembra
un tema in cui ci si potrebbe fare un bel progetto per sourceforge.
Costruire un framework intorno a Php.

 Costruire un framework intorno a Php.
Ottima idea ! Magari costruire tre tipologie di progetti:
1) un set di librerie, una raccolta di packages da utilizzare
individualmente (come PEAR, ad esempio);
2) un repository di classi pronte da integrare nel proprio progetto,
prelevabili da un sito web (come phpclasses, ad esempio);
3) un framework che fornisca degli strumenti per lo sviluppo "rapido" e
"robusto" di applicazioni web (come cakephp o zend o symfony, ad esempio);
:-) Luigi

 "robusto" di applicazioni web (come cakephp o zend o symfony, ad esempio);
Il precedente poster ha detto che Php non offriva nulla di quanto
chiedevo.
Mi fa piacere scoprire che non diceva il vero, anche perchè come ho
scritto, mi sembrava alquanto strano.
Sto dando un occhio a phpclasses e sembra un gran casino, c'è molta
roba ma è difficile trovare quello che si cerca.
PEAR sembra più organizzato, nel mio progetto non ne avevo avuto
bisogno. Sembra interessante ed approfondirò.
Zend purtroppo costa, non l'ho mai usato, vale i soldi spesi?

 Zend purtroppo costa, non l'ho mai usato, vale i soldi spesi?
Luigi parlava del framework open source: 
http://framework.zend.com/
Quanto all'IDE, l'ottimizzatore, ecc., di Zend, sicuramente sono ottimi
prodotti (PHP stesso si basa su engine Zend), ma quando tempo fa usai
l'IDE lo trovai abbastanza pesante (benché avesse un buon debugger) e da
allora preferisco utilizzare Dreamweaver, ma giusto perché lo utilizzavo
da tempo.
Infine, un'altra cosa che non mi pare sia stata detta: a breve uscirà
PHP6, ma già PHP5 ha tutte le principali caratteristiche dell'OOP. La
differenza, ripeto, secondo me è semmai nel fatto che non esiste un
prodotto che si sia imposto su tutti gli altri e che faccia ciò che fa
Visual Studio.
Per alcuni, comunque, questo non è un problema.
Una volta progettate le proprie classi oppure imparato ad usare un
framework, infatti, scrivere il restante codice a mano è abbastanza
semplice e rapido.
Ciao, Maurizio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 qualcosa?
No. E' cresciuto il linguaggio, quindi i framework che lo usano sono piu'  
semplici e potenti, ma non è cambiato dal giorno alla notte.
Ciao
Tac
-- 
Using Opera's revolutionary e-mail client: 
http://www.opera.com/mail/

 Zend purtroppo costa, non l'ho mai usato, vale i soldi spesi?
Zend studio sicuramente li vale, ma si stavano riferendo ai framework  
opensource, progettati - appunto - per lo sviluppo rapyd.
http://codeigniter.com/
veloce e relativamente piccolo. Documentazione sobria e ben costruita.  
Community piu' che decente.
Un tizio ci ha implementato sopra una libreria che potresti trovare  
interessante ( 
http://www.rapyd.com
 ).
Php 4 e php5
http://www.cakephp.org/
Molto diffuso, ottima community. Non posso commentare la qualità del  
codice ma si è diffuso parecchio.
Non conosco la qualità della documentazione ma sicuramente in giro ne  
troverai tanta, ma tanta.
Dimensione del codice media, php4 e 5.
http://www.symfony-project.com/
L'autore è francese, non so dare indizi su qualità di codice e community.  
Il progetto è analogo a cake e codeigniter, ma l'autore si è basato su  
librerie open-source mature invece che riscriverle. Questo comporta una  
base di codice molto grande e probabilmente un tempo di apprendimento  
maggiore, ma anche forse qualche feature in piu' e la possibilità di fare  
riferimento alla documentazione delle librerie originali. Solo php5.
http://framework.zend.com/
Il tentativo di zend di inserirsi nella mischia. Per un motivo o per  
l'altro, è il framework meno maturo di tutti nonostante non sia di molto  
piu' giovane. E' progettato per poter essere utilizzato anche solo in  
parzialmente, come conseguenza magari è un po' piu' laborioso da mettere  
assieme.
Il codice interno di zend ha avuto un buon riscontro da parte di molti.  
Sulla documentazione si sentono voci discordi: bella, brutta, semplice,  
incasinata..
Solo php5.


 principali differenze tra le due tecnologie.
vado controcorrente. hai valutato altre tecnologie emergenti? ruby/rails 
o python/django?

 o python/django?
Personalmente (non solo l'OP :) si`.
Python/Django l'ho scartato (per ora) perche` finora non c'erano framework 
standard per il web con python, quindi l'ho rimandato attendendone gli 
sviluppi, pur conoscendo Python.
Ruby/Rails lo stavo valutando, ma ho scoperto che CakePHP e` praticamente 
identico. Avrei il vantaggio di una community in forte crescita, ma 
diversi svantaggi: community ancora piccolissima (si parla del 2% contro 
il 20-25% di PHP), linguaggio nuovo da imparare, scelta limitata (per PHP 
ci sono una decina di framework, 4-5 ottimi, per ruby solo rails), 
supporto misero sugli hosting, e difficoltoso anche in proprio (non e` 
banale installare e gestire rails, mentre PHP lo installi con un comando, 
in Debian, per esempio).
Bye.

 in Debian, per esempio).
di hosting in italia c'e ne sono pochi (unibit) ma all'esterno molti di più.
in proprio non è per nulla difficile. per la fase di svilupppo rails ha 
un suo webserver interno (webrick) più che adeguato. poi fai girare 
tutto su apache.
su debian esite il pacchetto ruby rubygem e rails, quindi...

 su debian esite il pacchetto ruby rubygem e rails, quindi...
Si`, ok. Ma in php lo installi, metti un index.php dentro al virtualhost, 
e funziona. Con ruby e rails non e` cosi` semplice, devi configurare i 
CGI, creare un progetto, ecc.
Bye.


Devo essere sincero e ti rispondo di no.
Ho perlopiù considerato Php e .Net perchè ho già avuto a che fare con
entrambi i linguaggi e bene o male li conosco, anche se non
profondamente (con Php ho lavorato bene ma con la versione precedente,
con C# invece ho lavorato poco ma mi son fatto una panoramica del
framework).
Considerare Ruby on rails oppure Python aggiungerebbe l'apprendimento
da zero del linguaggio che magari non è tutta questa gran fatica, ma
magari potrebbe anche esserlo, non posso saperlo. con Php e C# invece
parto avvantaggiato.


Grazie per la panoramica. Insieme a PEAR è quello che stavo cercando
per farmi un idea della situazione.
Adesso dovrei avere abbastanza materiale per scegliere cosa usare, me
lo studio un po' con calma  e poi traggo le conclusioni.

 Mi chiedo se hai letto cosa ho scritto, vista la risposta...
certo che ho letto. cosa intendi quando dici che non esistono framework 
standard per il web?

 standard per il web?
Non ho detto che non esistono. Ho detto che "finora non c'erano".
Python sta avendo un framework abbastanza diffuso solo ora con django, ma 
fino a pochi mesi fa era il delirio: da mod_python a twisted, passando per 
zope/plone
In una comunita` piccola come quella di python, il rapporto con PHP 
sarebbe piu` o meno come se ci fossero un centinaio di framework diversi 
per PHP, e che la comunita` fosse equamente divisa tra tutti.
In pratica non si capiva chi l'avrebbe spuntata.
Ora sembra che la stia spuntando django, ma io (sottolineo io) preferisco 
aspettare e vedere cosa succede, anche perche` hanno beccato una bella 
mazzata proprio da ruby (con rails), che si e` portato via molta piu` 
gente dalla comunita` python che da quella PHP e dalle altre.
Il problema e` che e` una "guerra tra poveri". Sia python che ruby hanno 
piu` o meno il 2-3% di share, secondo alcune statistiche.
E te lo dico con un po' di malinconia perche` python (a parte 
l'indentazione sintattica) mi piace molto, e mi piacerebbe soppiantasse 
Java e ASP(.Net) e che facesse dimenticare Perl e C per le CGI.
Considero ancora PHP migliore per il web (e sottolineo web), sia "crudo", 
sia con gli ottimi framework sviluppati di recente.
Bye.

 in Debian, per esempio).
In ubuntu, rails è disponibile dal package manager.
