Desde ayer Viernes 11 de Agosto me ha entrado curiosidad por, probar el
ASP.NET y es que lo habÃa ignorado ya que ASP 3.0 y anteriores, nunca me
gustaron. Siempre he usado PHP para programación en WEB
Debo aclarar que no tengo mucha experiencia, (Horas de Vuelo/Programación) en
ASP 3.0 y anteriores y que nunca he programado en PHP en modo objetos “POO� para
mi PHP siempre ha sido un Script lineal y ese el uso que le doy, sin embargo el
ASP.NET me obliga a usar lenguajes orientados a objetos y para lo .NET siempre
uso C#, Asà que he comenzado a escribir algunos programas de practica con
ASP.NET en lenguaje C#
Mi entorno de trabajo es un servidor GNU/Linux con Mono y XSP como proveedor de
ASP.NET
Lo primero que he notado en ASP.NET es que no tengo que saber mucho de HTML, en
PHP al dar salida a un navegador. Tengo que preocuparme por el formato del mismo
en HTML, por ejemplo
PHP
Echo “<input type=\�submit\� value=\�Enviar\�>�;
ASP.NET
<asp:Button id=�nombreobjeto� Text=�Enviar�/>
Ambos códigos van producir la salida de un botón que indica Enviar, el problema
con PHP es que el botón se produce por que yo escribà el código HTML y por lo
tanto no sabe que se trata de un botón, Sin embargo en ASP.NET no escribà código
HTML, ASP.NET sabe que se trata de un botón y a la hora de dar salida a la
pagina WEB escribirá los tags necesario para darle forma a mi botón, ósea va a
escribir <input type=�submit� value=�Enviar�>
Hasta este punto, lo que he puesto de ASP.NET no se parece en nada a C#, sin
embargo esa etiqueta ASP.Net equivale a:
Button nombreobjeto = new Button();
Asà que cada etiqueta <asp:tipo> es en realidad una instancia a un objeto que ya
en el código C# podremos manipular, incluso algunos eventos como el OnClick, Por
lo tanto desde la misma etiqueta podemos acceder a sus métodos y a sus eventos.
Otra habilidad que he notado del ASP.NET es poder guardar el estado de cada
objeto y valor de variables sin la intervención del programador, a la vista del
programador esto es similar a programa localmente, ya que en un programa local,
almacenamos variables y sabemos que mientras el programa este corriendo nuestra
variable y su valor estará ahÃ.
En PHP esto lo podemos hacer mediante sesiones o pasándonos los valores de cada
variable por medio de formularios en campos ocultos (hidden), sin embargo en
ASP.NET los valores se conservan mientras estemos en la pagina, tal como un
programa los conserva, mientras esta corriendo en memoria. Por lo tanto ASP.Net
da la sensación d que nuestro programa C# en el WEB esta corriendo al igual que
un programa en nuestra computadora y hasta que no cerremos la pagina no se
perderán los valores de la memoria.
A continuación voy a escribir un código de C# en ASP.NET que contara los clicks
a un botón y almacenara en memoria los mediante un dropdownlist o en Windows
combobox, los nombres que entren por un TextBox
<html>
<title>Programando en el WEB con C#</title>
<head>
<%@ language="C#" %>
<script runat="server">
// Aqui va el codigo C#
static int contador = 0;
void eventobotonclick (object o, EventArgs e)
{
// Vengo por el llamado del evento
click, a darle click al boton
contador++;
l1.Text = "Le has dado Click al boton
"+ contador.ToString() + " Veces";
}
void eventoclickagregar (object o, EventArgs e)
{
// Se ejecuta cuando el dado click al
boton agregar
if (nombre.Text != "Agregar otro
nombre")
{
lista.Items.Add (nombre.Text);
l1.Text = "Agregado: " + nombre.Text;
}
else l1.Text = "Error, Agrega otro nombre";
nombre.Text = "Agregar otro nombre";
}
</script>
</head>
<body>
<center>Texto simple de HTML<br><asp:Label id="l1" Text="Texto del Objeto Label"
runat="server"/></center>
<form runat="server">
<p><asp:Button id="boton" Text="Darme Clic" runat="server" OnClick="eventobotonclick"/></p>
</form>
<p>
<form runat="server">
<asp:TextBox id="nombre" runat="server"/>
<asp:DropDownList id="lista" runat="server"/>
<asp:Button id="agregar" Text="Agregar" runat="server" OnClick="eventoclickagregar"/>
</form>
</p>
</body>
</html>
Salida en el WEB
El código HTML automáticamente generado por ASP.NET de este programa es:
<html>
<title>Programando en el WEB con C#</title>
<head>
</head>
<body>
<center>Texto simple de HTML<br><span id="l1">Le has dado Click al boton 19
Veces</span></center>
<form name="_ctl0" method="post" action="objetos.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE" value="DA0ADgIFAQUFDgINDQ8BAQRUZXh0ASNMZSBoYXMgZGFkbyBDbGljayBhbCBib3RvbiAxOSBWZWNlcwAAAAANAA4CBQEFAw4CDQ0PAQIAAAETQWdyZWdhciBvdHJvIG5vbWJyZQAAAAANDQAMGhgNU3lzdGVtLlN0cmluZ05tc2NvcmxpYiwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkDAQ9NYXJpYW5vIFZlbnRhamEBD0ZlbGlwZSBDYWxkZXJvbgENQW5kcmVzIE1hbnVlbBoZAwADAgQAAgUAAgYADgEFAAAAAA=="
/>
<p><input type="submit" name="boton" value="Darme Clic" id="boton" /></p>
</form>
<p>
<form name="_ctl1" method="post" action="objetos.aspx" id="_ctl1">
<input type="hidden" name="__VIEWSTATE" value="DA0ADgIFAQUFDgINDQ8BAQRUZXh0ASNMZSBoYXMgZGFkbyBDbGljayBhbCBib3RvbiAxOSBWZWNlcwAAAAANAA4CBQEFAw4CDQ0PAQIAAAETQWdyZWdhciBvdHJvIG5vbWJyZQAAAAANDQAMGhgNU3lzdGVtLlN0cmluZ05tc2NvcmxpYiwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkDAQ9NYXJpYW5vIFZlbnRhamEBD0ZlbGlwZSBDYWxkZXJvbgENQW5kcmVzIE1hbnVlbBoZAwADAgQAAgUAAgYADgEFAAAAAA=="
/>
<input id="nombre" type="text" value="Agregar otro nombre" name="nombre" />
<select name="lista" id="lista">
<option selected="selected" value="Mariano Ventaja">Mariano Ventaja</option>
<option value="Felipe Calderon">Felipe Calderon</option>
<option value="Andres Manuel">Andres Manuel</option>
</select>
<input type="submit" name="agregar" value="Agregar" id="agregar" />
</form>
</p>
</body>
</html>
Temporalmente el programa lo tendre disponible ONLINE en la dirección:
https://www.lastdragon.net:8080/objetos.aspx