View Full Version : [ASP.NET] Alcuni dubbi da chiarire
mangzeus
27-05-2006, 09:34
Sto iniziando con questo linguaggio di programmazione. SOno all'inizio e ho un pò di dubbi. Io vengo da vb.net e sfogliando qualche manuale per imparare ASP ho notato che ci sono tanti modi per inserire codice per poter sviluppare un'applicazione. Gli esempi che trovo sui libri alcuni sono sotto forma di script, altri sotto forma di html, e altri ancora sotto forma di codice vb.net. VOlevo sapere come fare per capire dove inserire gli script che trovo ad esmepio quelli che trovo in alcuni siti che iniziano con <% e finiscono con %> è sempre codice vb.net????gli script vanno messi nel file web.config???ho un po di confusione in testa come vedete...e se qualcuno mipotrebbe fare un pò di chiarezza ne sarei felice...
Ti ho scritto qua di seguito una pagina aspx semplicissima che calcola area e circonferenza di un cerchio dato il raggio, tanto per mostrarti le varie sezioni più importanti:
<%@ Page Language="VB" %>
<%@ import Namespace="System.Math" %>
<script runat="server">
Sub cerchio(Sender As Object, E As EventArgs)
' dichiaro una variabile che conterrà il raggio
' e assegno alla variabile raggio il contenuto
' della textbox convertito in double
dim raggio as Double
raggio = cdbl(tbRaggio.text)
' ciclo IF-THEN
' se il raggio < 0 allora esco dalla sub (non effettuo nessun calcolo)
' e visualizzo un messaggio
if raggio < 0 then
msgbox("Inserire un raggio maggiore o uguale a zero!")
exit sub
' se il raggio > o = 0 allora visualizzo nella label
' i risultati in 2 modi:
' a) effettuo i calcoli richiamando delle Function
' b) effettuo i calcoli direttamente all'interno della label
else
lblRisultato.Text = "Area: " & area(raggio) & "<br>Circonferenza: " & circonferenza(raggio)
lblRisultato2.Text = "Area: " & PI*raggio^2 & "<br>Circonferenza: " & 2*PI*raggio
end if
End Sub
' Function che calcola la circonferenza
' richiede come parametro il raggio di tipo double
' restituisce un valore double (la misura della circonferenza)
Function circonferenza(r as Double) as Double
' PI è una funzione presente in System.Math che da il valore di PiGreco 3,14...
return 2*r*PI
End Function
' Function che calcola l'area di un cerchio
' richiede come parametro il raggio di tipo double
' restituisce un valore double (la misura dell'area)
Function area(r as Double) as Double
' PI è una funzione presente in System.Math che da il valore di PiGreco 3,14...
return r*r*PI
End Function
</script>
<html>
<head>
</head>
<body>
<font size=”5”>Area e circonferenza di un cerchio</font>
<hr />
<form runat="server">
Raggio:
<asp:textbox id="tbRaggio" runat="server"></asp:textbox>
<asp:button id="btFat1" onclick="cerchio" runat="server" Text="Calcola"></asp:button>
<p>
Calcolo tramite Function:<br />
<asp:Label id="lblRisultato" runat="server" font-size="14pt"></asp:Label>
</p>
<p>
Calcolo nella label:<br />
<asp:Label id="lblRisultato2" runat="server" font-size="14pt"></asp:Label>
</p>
</form>
</body>
</html>
Come vedi la pagina è divisa in 3 sezioni:
- intestazioni ed import dei vari namespace (<%@ Page Language="VB" %> e <%@ import Namespace="System.Math" %>)
- la parte dello script in cui sono dichiarate le varie sub, function e tutto il codice (<script runat="server"> ... </script>)
- la parte html della pagina (<html> ... </html>) che come vedi contiente anche degli oggetti asp (quali label, textbox, button ...)
I vari controlli label, button etc vanno dichiarati con questa forma (di solito):
<asp:button id="btFat1" onclick="cerchio" runat="server" Text="Calcola"></asp:button>
in cui imposti le varie proprietà e le azioni da compiere (es: onclick="cerchio" significa che quando scatta l'evento onclick viene richiamata la sub cerchio) ... importante è la proprietà runat="server" che indica che il controllo è gestito dal server, senza quella proprietà non funziona nulla.
mangzeus
27-05-2006, 12:35
Ti ho scritto qua di seguito una pagina aspx semplicissima che calcola area e circonferenza di un cerchio dato il raggio, tanto per mostrarti le varie sezioni più importanti:
<%@ Page Language="VB" %>
<%@ import Namespace="System.Math" %>
<script runat="server">
Sub cerchio(Sender As Object, E As EventArgs)
' dichiaro una variabile che conterrà il raggio
' e assegno alla variabile raggio il contenuto
' della textbox convertito in double
dim raggio as Double
raggio = cdbl(tbRaggio.text)
' ciclo IF-THEN
' se il raggio < 0 allora esco dalla sub (non effettuo nessun calcolo)
' e visualizzo un messaggio
if raggio < 0 then
msgbox("Inserire un raggio maggiore o uguale a zero!")
exit sub
' se il raggio > o = 0 allora visualizzo nella label
' i risultati in 2 modi:
' a) effettuo i calcoli richiamando delle Function
' b) effettuo i calcoli direttamente all'interno della label
else
lblRisultato.Text = "Area: " & area(raggio) & "<br>Circonferenza: " & circonferenza(raggio)
lblRisultato2.Text = "Area: " & PI*raggio^2 & "<br>Circonferenza: " & 2*PI*raggio
end if
End Sub
' Function che calcola la circonferenza
' richiede come parametro il raggio di tipo double
' restituisce un valore double (la misura della circonferenza)
Function circonferenza(r as Double) as Double
' PI è una funzione presente in System.Math che da il valore di PiGreco 3,14...
return 2*r*PI
End Function
' Function che calcola l'area di un cerchio
' richiede come parametro il raggio di tipo double
' restituisce un valore double (la misura dell'area)
Function area(r as Double) as Double
' PI è una funzione presente in System.Math che da il valore di PiGreco 3,14...
return r*r*PI
End Function
</script>
<html>
<head>
</head>
<body>
<font size=”5”>Area e circonferenza di un cerchio</font>
<hr />
<form runat="server">
Raggio:
<asp:textbox id="tbRaggio" runat="server"></asp:textbox>
<asp:button id="btFat1" onclick="cerchio" runat="server" Text="Calcola"></asp:button>
<p>
Calcolo tramite Function:<br />
<asp:Label id="lblRisultato" runat="server" font-size="14pt"></asp:Label>
</p>
<p>
Calcolo nella label:<br />
<asp:Label id="lblRisultato2" runat="server" font-size="14pt"></asp:Label>
</p>
</form>
</body>
</html>
Come vedi la pagina è divisa in 3 sezioni:
- intestazioni ed import dei vari namespace (<%@ Page Language="VB" %> e <%@ import Namespace="System.Math" %>)
- la parte dello script in cui sono dichiarate le varie sub, function e tutto il codice (<script runat="server"> ... </script>)
- la parte html della pagina (<html> ... </html>) che come vedi contiente anche degli oggetti asp (quali label, textbox, button ...)
I vari controlli label, button etc vanno dichiarati con questa forma (di solito):
<asp:button id="btFat1" onclick="cerchio" runat="server" Text="Calcola"></asp:button>
in cui imposti le varie proprietà e le azioni da compiere (es: onclick="cerchio" significa che quando scatta l'evento onclick viene richiamata la sub cerchio) ... importante è la proprietà runat="server" che indica che il controllo è gestito dal server, senza quella proprietà non funziona nulla.
grazie mille....
io ho dato un occhiata nel frattempo ad altre pagine e smanettando un pò ho capito molte cose. Io però usando visualstudio.net il codice lo posso generare tutto come se fosse una semplice applicazione vb.net, esempio:connessione database, interrogazione dello stesso, poi sempre in vs ho la possibilità di modificare il codice html come mi hai fatto vedere tu. Ho provato a modificare il codice html inserendo queste semplici rihe di codice:
<%-- Prova per vedere come modificare direttamente una pagina ASP.NET da codice html --%>
<% dim i as integer
for i =0 to 7 %>
<font size="<%=I%>"> Welcome to ASP.NET </font> <br>
<% next %>
cmq io posso fare tutto da codice normale, quindi come vb.net poi al limite se serve aggiungere qualcosa vado a modificare direttamente il codice html...
quindi le funzioni sub ecc tu le hai messe direttamente nel codice html, io le posso mettere usando vs2003 nel codice del webform direttamente poi ci pensa vs a scriverle nel file html, esempio io trascino un oggetto datagrid all'interno del webform, automaticamente lui mi genera codice html dove inserisce tutte le proprietà del grid, poi io se volgio le posso modificare sia da codice vb.net, da codice html oppure direttamente facendo tasto dx sul controllo e modificando le proprietà con l'interfaccia grafica dello stesso.
quindi le possibilità sono molte con vs2003 viene gestito automaticamente il codice html che poi se uno vuole, come ho fatto l'esempio prima, va a modificare.
grazie cmq perchè l'esempio della struttura della pagina ha chiarito i miei dubbi.
grazie molte.
Io ho sempre creato le pagine con tool come Dreamweaver e poi inserivo il codice usando webmatrix o vs.net ...
Ora che ho acquistato vs.net 2005, creo le pagine in Dreamweaver e poi modifico il codice con vs 2005, sicuramente mille volte meglio del 2003, in quanto la scrittura del codice è di molto migliorata e supportando asp.net 2 ci sono numerosi controlli aggiuntivi molto validi che semplificano molte operazioni comuni quali connessione a database, login o altre procedure.
Einstein
27-05-2006, 21:10
Uno dei tantissimi vantaggi di ASP.NET è la possibilità di separare il codice di funzionamento della pagina (il codice VB.NET o C#, per intenderci) dal codice di presentazione (l'HTML).
Per questo è stato introdotto il concetto di "codebehind" (più genericamente "code file" in ASP.NET 2.0, ma il concetto è circa lo stesso). In pratica ad ogni pagina aspx viene associato il rispettivo file di codice che contiene la logica di funzionamento. Questa associazione è gestita tramite la direttiva <% @Codebehind="miapagina.aspx.vb" %>, ed è questo che di default fa Visual Studio 2003 (e anche 2005).
In sostanza non trovo molto conveniente in ASP.NET scrivere la logica di funzionamento all'interno dello stesso file del codice HTML, perché non si usa una caratteristica secondo me fondamentale.
Consigli da applicare, secondo me, nel codice di mynos79 (visto che è solo di esempio, facciamolo didattico del tutto ;) ):
1. MsgBox in ASP.NET non funziona.
2. CDbl() è una funzione presente per retrocompatibilità con VB6, ma non andrebbe usata. Ti consiglio di usare Double.Parse().
Ciao
mangzeus
29-05-2006, 08:54
Io ho sempre creato le pagine con tool come Dreamweaver e poi inserivo il codice usando webmatrix o vs.net ...
Ora che ho acquistato vs.net 2005, creo le pagine in Dreamweaver e poi modifico il codice con vs 2005, sicuramente mille volte meglio del 2003, in quanto la scrittura del codice è di molto migliorata e supportando asp.net 2 ci sono numerosi controlli aggiuntivi molto validi che semplificano molte operazioni comuni quali connessione a database, login o altre procedure.
anch'io fra un pò passo a vs 2005...una cosa ti chiedo a questo punto...Io adesso come adesso ho vs 2003 incontrerò problemi nel convertire i progetti da 2003 a 2005 o è una cosa automatica???
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.