Mentre è in corso un lungo download da Internet... colgo l'occasione di una domanda sul forum per stendere alcune considerazioni che ho raccolto durante la transizione da Client/Server ad Internet, la stessa che molte aziende hanno affrontato grazie a .NET (e che quindi ho vissuto da vicino).
- - -
Ci sono molte differenze architetturali tra WinForm e WebForm:
1) - L'interazione GUI di una applicazione WinForm è tipicamente sincrona mentre quella di una applicazione WebForm è potenzialmente asincrona (es. quando l'utente invia una richiesta al server, nel tempo che intercorre per ricevere la risposta può annullare la richiesta, fare una richiesta alternativa o aggiungere una nuova richiesta duplicando la finestra corrente) come previsto da HTTP/HTML
2) - L'interazione GUI di una applicazione WinForm è tipicamente state-full (esiste uno stato complessivo della applicazione) mentre una applicazione WebForm è tipicamente stateless (la pagina corrente potenzialmente contiene l'intero stato del dialogo di interazione); anche se l'infrastruttura di ASP.NET semplifica l'implementazione state-full di una applicazione WebForm ci sono alcuni aspetti di cui il programmatore deve essere consapevole e gestire consapevolmente (a volte caso per caso) ad esempio guarda questo ottimo tip [1]
3) - L'interazione GUI di una applicazione WinForm tipicamente segue le Guidelines dell'interfaccia fornite da MS per Windows (il sistema operativo è Windows) mentre una applicazione WebForm dovrebbe seguire linee guida dell'interfaccia utente determinate dallo standard HTML (il sistema operativo è "la rete")
4) - Una applicazione WinForm può essere Fat-Client, Thin-Client, Multi-Tiers, Client/Server o Distribuita mentre una applicazione WebForm è tipicamente Thin-Client, almeno 2-Tiers e molto spesso distribuita (per ragioni di scalabilità e robustezza)
Infine ci sono aspetti legati alla differenza tra una LAN/MAN e Internet:
1) - In una applicazione WinForm/LAN tipicamente gli utenti che la utilizzano sono noti a priori nel numero (medio) e nella loro identità mentre in una applicazione WebForm/Internet il numero di utenti è molto variabile e l'identità degli utento non è nota a priori
2) - In una applicazione WinForm/LAN tipicamente i tempi massimi di disposta (della LAN) sono noti e molto bassi mentre in una applicazione WebForm/Internet i tempi massimi di risposta (di Internet) non sono noti o controllabili e comunque sono lunghi (rispetto ad una LAN di pari livello)
3) - In una applicazione WinForm/LAN tipicamente puoi usare tecnologie proprietarie mentre in una applicazione WebForm/Internet solitamente conviene usare tecnologie/formati/protocolli standard.
Queste differenze restringono di molto (anche se non annullano del tutto) l'utilità di un ipotetico Tool di conversione da WinForm a WebForm... almeno per ora e per il futuro che è sul radar ;-)
Ti segnalo inoltre queste due valide letture sull'argomento [2], [3].
bye (luKa)
[1] ASP.NET: intercettare l'utilizzo dei tasti BACK/FORWARD del browser
http://www.ugidotnet.org/tips/tips_read.aspx?ID=126
[2] Windows Forms and Web Forms Recommendations
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskchoosingbetweenwinformswebforms.asp
[3] Visual Studio .NET la sfida più difficile (mi cito addosso :D :D :D)
Computer Programming, Ottobre 2002 - http://online.infomedia.it/riviste/cp/117/numerocp.htm
Tags : Progettazione Software |