Ho utilizzato Web Form di ASP.Net per l'ultimo anno o due al lavoro per lo sviluppo, ma ho usato PHP per progetti personali per 10 anni. Quindi, sono molto più esperto nello sviluppo con PHP.
Quando si tratta di ASP.Net MVC, non ho esperienza con esso perché l'ho evitato perché pensavo che sarebbe stata solo una forma più complicata di WebForms. Recentemente, ho fatto più ricerche e sembra che MVC potrebbe essere più vicino a ciò che voglio. Ma qualcosa su cui non sono ancora chiaro è quale modello di programmazione ASP.Net è più vicino allo sviluppo con PHP.
- La mia più grande lamentela su ASP.Net WebForms è la "scatola magica". Vale a dire lo stato di visualizzazione e ScriptManager.
- Non mi piace che WebForms abbia problemi con il mio lato client HTML / JavaScript / CSS. WebForms fa molto questo incluso, ma non limitato a:
- Inserimento di JavaScript che non posso modificare e devo fare affidamento su Microsoft per garantire la compatibilità cross-browser.
- Modifica forzata degli attributi
name
dei tag che utilizzanorunat="server"
. - Racchiudere il contenuto di
<form>
con un tag<div>
. - Forzare il wrapping di tutto all'interno di un grosso tag
<form>
.
- Tutto in WebForm sembra che sia adatto a sviluppatori Web con esperienza che sanno solo come scrivere applicazioni Windows con .Net.
- I nomi standard per tag e attributi vengono modificati quando si utilizzano i tag
<asp:xxx>
. Ad esempio, invece di un tag di ancoraggio (<a>
), è un "collegamento ipertestuale" (cioè<asp:HyperLink>
). Invece dihref=
èNavigationUrl=
. - Il modello guidato dagli eventi.
- I nomi standard per tag e attributi vengono modificati quando si utilizzano i tag
-
Inoltre non mi piace la completa separazione del codice lato server dal codice lato client. Mi manca essere in grado di fare cose come questa ...
<table> <tr> <td>Name</td> <td>Age</td> </tr> <? foreach( $people as $person ) { ?> <tr> <td><?= $person->name ?></td> <td><?= $person->age ?></td> </tr> <? } ?> </table>
Quindi, tenendo a mente questi punti, quale modello di programmazione è più vicino allo sviluppo con PHP (cioè, i fastidi dei WebForms che ho elencato qui esistono in MVC)?
Nota: ho trovato il modo di aggirare molti, se non tutti questi fastidi, ma non ho ritenuto che le soluzioni che uso siano rivelatrici della domanda in questione.