lunes, 8 de abril de 2013

Pasos para crear una web en visual studio 2008




Para crear un proyecto web debemos seleccionar desde el entorno del Visual Studio 2008: Archivo ->Nuevo sitio web. Inmediatamente aparece un diálogo donde podemos configurar que versión de Framework será compatible nuestra aplicación, la ubicación dentro del disco donde se almacenará, el lenguaje de programación a utilizar:





En este ejemplo localizamos en la unidad D y desde el explorador de archivos creamos dos carpetas una llamada “TP4” y dentro de la misma la carpeta clase1 (en esta última carpeta es donde se almacenará nuestra aplicación web)
Hemos dejado seleccionado por defecto el framework a utilizar (.NET framework 2.0)
También dejamos seleccionado la plantilla a utilizar "Sitio Web ASP.NET)"
Ya tenemos el esqueleto básico para iniciar nuestro sitio web empleando la tecnología de Microsoft.




En la parte izquierda tenemos el “Cuadro de herramientas”, en esta aparecen las componentes visuales (Label, TextBox, Button etc.) que tenemos disponibles para crear nuestro formulario Web.
En el centro aparece la página en vista de código (se puede ver en “vista de diseño”, “Divisor” y “Código”)
En la parte derecha disponemos del “Explorador de soluciones” donde podemos identificar el directorio donde se almacena nuestra aplicación web y los archivos contenidos en dicho directorio.

Siempre que creamos una aplicación web nos crea un formulario web inicial y lo almacena en el archivo Default.aspx (la extensión aspx indica que se trata de una página dinámica ASP.Net, así como la extensión php indica que su contenido está programado en PHP).

Además del archivo Default.aspx se crea otro archivo llamada Default.aspx.vb (éste archivo contiene la codificación en Visual Basic de los eventos que definamos a los controles del formulario)
Otro archivo que veremos más adelante y que se crea en forma automático es el web.config.
Por último se crea una carpeta llamada App_Data.

Para nuestro primer ejemplo implementaremos el “Hola Mundo” para ello en el recuadro central seleccionamos la pestaña “Diseño” y desde el cuadro de herramientas arrastramos un control de tipo Label. Seguidamente desde el cuadro de propiedades ubicado en la pare inferior derecha de la pantalla inicializamos la propiedad text con el mensaje que queremos que muestre nuestra “Label”, en nuestro caso “Hola Mundo”. Una vez modificada la propiedad Text con el mensaje que queremos mostrar y presionada la tecla Enter podemos ver como se actualiza la ventana de Diseño en la parte centrar de nuestra pantalla:



Para probar nuestra pequeña aplicación desarrollada debemos presionar el triángulo verde que se encuentra en la barra de botones, o desde el menú de opciones: Depurar->Iniciar depuración, o presionar la tecla “F5”.
Inmediatamente nos aparece un diálogo que nos invita a modificar el archivo Web.config para que la página se pueda ejecutar en modo depuración (esto nos permite disponer puntos de interrupción o ejecutar paso a paso una aplicación) Seleccionamos el botón “Aceptar” para activar el modo depuración.
Podemos ver que inmediatamente aparece el navegador configurado por defecto con el resultado de la ejecución de la página:




El Visual Studio 2008 instala un servidor web propio que está escuchando en un puerto desocupado. Luego de cerrar la ventana del navegador debemos detener la depuración de nuestra aplicación para poder modificarla, para esto podemos seleccionar desde el menú Depurar -> Detener Depuración o presionar desde la barra de botones el cuadradito azul (luego de esto aparece el “Cuadro de herramientas”).


Eventos

Modificaremos ahora nuestra aplicación para que muestre la fecha del servidor en una Label. Cuando desde el navegador solicitamos una página aspx lo primero que se ejecuta es el evento Page_Load. Para poder definir un método para dicho evento hacemos doble clic sobre el WebForm con lo que inmediatamente se abre el archivo Default.aspx.vb y genera dicho método:


Partial Class _Default
    Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As _
            System.EventArgs) Handles Me.Load

    End Sub
End Class



Luego codificamos dentro del método Page_Load el algoritmo que muestra la fecha actual del servidor:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As _
          System.EventArgs) Handles Me.Load
      Me.Label1.Text = Date.Now.Day & "/" & Date.Now.Month & "/" & Date.Now.Year
End Sub

Mediante el objeto Date y accediendo a la propiedad Now obtenemos el día, mes y año disponible en el servidor.


Captura del evento click de un objeto de la clase Button.

Ahora nuevamente modificaremos nuestra pequeña aplicación para que muestre un objeto de una clase Button y una Label.
La propiedad Text de la Label la inicializamos con el valor “0” y la propiedad Text del objeto Button lo inicializamos con la cadena “Sumar”.
El objetivo es que cada vez que se presione el botón se actualice el contenido de la Label con el valor actual más uno.
La forma más sencilla de generar dicho evento es hacer doble clic sobre el objeto Button. Otra forma es seleccionar dicho objeto de la lista que aparece en la parte superior del editor y al lado derecho según el objeto seleccionado nos aparecen todos los métodos disponibles para dicho objeto:






 
Luego para el evento Button1_Click actualizamos el contenido de la propiedad Text de la Label con el valor actual más uno. El operador que utilizamos es el + y no el & (que nos concatenaría el valor y no lo sumaría numéricamente como necesitamos en este problema) Podemos utilizar directamente el operador + ya que el segundo operando es un número y por lo tanto el Visual Basic convierte automáticamente el primer operando a entero.


Controles Label, Button y TextBox.

Hasta ahora hemos utilizado los controles de tipo Label y Button, ahora utilizaremos el control TextBox. Crearemos una aplicación que nos permita ingresar dos números y luego en una label muestre la suma de los mismos.
(Si tenemos un proyecto abierto podemos cerrarlo seleccionando la opción: Archivo->Cerrar proyecto y luego seguir los mismos pasos que vimos anteriormente para crear un nuevo proyecto ASP.NET).


Crearemos un proyecto llamado pruebatextbox y desarrollaremos la siguiente interface:






Disponemos tres Label, dos TextBox y un Button. Las dos primeras Label las inicializamos con los textos: “Ingrese primer valor”, “Ingrese segundo valor” y la tercera Label borramos todo el contenido de la propiedad Text (como podemos ver el visor del Visual Studio muestra el nombre del objeto encerrado entre corchetes cuando la propiedad Text está vacía)
Inicializamos la propiedad Text del objeto de tipo Button con la etiqueta “Sumar”.
Luego codificamos el evento click del objeto de la clase Button (en este evento debemos extraer el contenido de los dos controles de tipo TextBox y proceder a convertirlos a tipo de dato entero y sumarlos):


Protected Sub Button1_Click(ByVal sender As Object, ByVal _
             e As System.EventArgs) Handles Button1.Click
        Dim s As Integer
        s = Integer.Parse(Me.TextBox1.Text) + Integer.Parse(Me.TextBox2.Text)
        Me.Label2.Text = "La suma de los dos valores es :" & s
  End Sub


La clase Integer tiene un método estático llamado Parse y que tiene por objetivo recibir un String y retornar el valor del mismo convertido a entero.
Luego de sumar mostramos en la tercer label el resultado de la suma de los dos valores ingresados.



Control RadioButton.

Para probar el funcionamiento del control RadioButton crearemos un nuevo sitio web llamado pruebaradiobutton.
Crearemos una interface similar al problema anterior, con la salvedad que le agregaremos dos controles de tipo RadioButton para poder indicar si queremos sumar o restar los valores ingresados:




Como vemos agregamos dos controles de tipo RadioButton, inicializamos las propiedades text con los textos “Sumar” y “Restar”. Luego para indicar que los controles RadioButton están en el mismo grupo debemos inicializar la propiedad GroupName con el mismo valor (con esto logramos que al seleccionar un RadioButton el otro se desmarca), si nos olvidamos inicializar la propiedad GroupName luego los dos controles de tipo RadioButton se podrán seleccionar en forma simultánea.

Si queremos que alguno de los dos RadioButton aparezca seleccionado por defecto debemos inicializar la propiedad Checked con el valor True.

La codificación del evento click del objeto Button1 es el siguiente:

  Protected Sub Button1_Click(ByVal sender As Object, ByVal e _
   As System.EventArgs) Handles Button1.Click
        Dim x1 As Integer = Me.TextBox1.Text
        Dim x2 As Integer = Me.TextBox2.Text
        Dim resultado As Integer
        If Me.RadioButton1.Checked Then
           resultado = x1 + x2
           Me.Label3.Text = "La suma de los dos valores es:"  & resultado
        Else
            If Me.RadioButton2.Checked Then
               resultado = x1 - x2
               Me.Label3.Text = "La diferencia de los dos valores es:" & resultado
            End If
        End If
  End Sub

Cuando se presiona el botón se ejecuta el método Button1_Click donde primero extraemos el contenido de los dos controles TextBox.
Verificamos con if cual de los dos controles RadioButton se encuentra seleccionado. La propiedad Checked del RadioButton indica si está seleccionado el control o no.


Control CheckBox.

Los controles CheckBox permiten que más de uno esté seleccionado. Similar a los controles RadioButton tiene dos estados (seleccionado o no seleccionado) y esto lo sabemos según el estado de la propiedad Checked.
Codificaremos un nuevo sitio web que permita cargar dos valores y luego calcule la suma y/o resta de los valores ingresados. Como podemos seleccionar ambas operaciones utilizaremos los controles de tipo CheckBox.
La interface visual es la siguiente:






La codificación del evento click del botón es:

  Protected Sub Button1_Click(ByVal sender As Object, _
   ByVal e As System.EventArgs) Handles Button1.Click
        Dim x1 As Integer = Me.TextBox1.Text
        Dim x2 As Integer = Me.TextBox2.Text
        Dim resultado As Integer
        Me.Label3.Text = ""
        If Me.CheckBox1.Checked Then
           resultado = x1 + x2
           Me.Label3.Text = "La suma de los dos valores es:"  & resultado
        End If
        If Me.CheckBox2.Checked Then
           resultado = x1 - x2
           Me.Label3.Text = Me.Label3.Text & "<br />La" & _
             " diferencia de los dos valores es:" & resultado
        End If
  End Sub


Disponemos dos if a la misma altura ya que ambos CheckBox pueden estar seleccionados. Previo a los if borramos el contenido de la Label en el caso que tenga el resultado de operaciones anteriores.
Luego en el primer if verificamos si el primer CheckBox está seleccionado y procedemos a inicializar la propiedad Text de la Label con el resultado de la suma de los dos valores ingresados, seguidamente verificamos con un segundo if si el siguiente CheckBox está seleccionado, en caso afirmativo agregamos al contenido actual de la Label el resultado de la diferencia de los valores ingresados (Como vemos podemos añadir marcas HTML a la propiedad Text de una Label, luego estas serán interpretadas por el navegador).



Control ListBox.

El control ListBox permite crear una lista de valores.
La propiedad Item permite definir los miembros de la lista (cada item define las propiedades Text (valor a mostrar), Value (valor a retornar en caso de estar seleccionado), Selected (con un valor lógico))
Otra propiedad muy importante del control ListBox es SelectionMode, esta admite dos valores: Single o Multiple.

Crearemos una aplicación que permita cargar dos valores y mediante un control ListBox poder seleccionar si queremos sumar, restar, multiplicar o dividir dichos valores (como podemos seleccionar varias operaciones en forma simultánea configuraremos la propiedad SelectionMode del ListBox con el valor Multiple)
Luego la interface visual a crear es la siguiente (insertamos también una Label luego del botón “Calcular”, con el objetivo de mostrar los resultados):





Cuando se presiona el botón calcular verificamos cual de las opciones está seleccionada y procedemos a calcular y mostrar los resultados.

 Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        Dim x1 As Integer = Me.TextBox1.Text
        Dim x2 As Integer = Me.TextBox2.Text
        Me.Label3.Text = ""
        If Me.ListBox1.Items(0).Selected Then
            Dim suma As Integer = x1 + x2
            Me.Label3.Text &= "La suma es:" & suma & "<br />"
        End If
        If Me.ListBox1.Items(1).Selected Then
            Dim resta As Integer = x1 - x2
            Me.Label3.Text &= "La diferencia:" & resta & "<br />"
        End If
        If Me.ListBox1.Items(2).Selected Then
            Dim multi As Integer = x1 * x2
            Me.Label3.Text &= "El producto:" & multi & "<br />"
        End If
        If Me.ListBox1.Items(3).Selected Then
            Dim divi As Integer = x1 / x2
            Me.Label3.Text &= "La division:" & divi & "<br />"
        End If
  End Sub

Como podemos ver primero vaciamos el contenido de la Label3 y procedemos mediante cuatro if a verificar cuales de los elementos del ListBox se encuentran seleccionados:

        If Me.ListBox1.Items(0).Selected Then

Si por ejemplo el primer elemento del ListBox se encuentra seleccionado procedemos a sumar los dos valores almacenados en los TextBox y los agregamos a la Label:

            Dim suma As Integer = x1 + x2
            Me.Label3.Text &= "La suma es:" & suma & "<br />"




Control DropDownList.

El control DropDownList permite crear una lista de valores y luego seleccionar solo uno de ellos, esta es la diferencia fundamental con el control ListBox.

Para probar este control implementaremos el problema propuesto con el control ListBox, ahora la interface es la siguiente:




Cargamos las cuatro operaciones básicas en el control DropDownList y para el evento clic del botón tenemos que codificar:

        Dim x1 As Integer = Me.TextBox1.Text
        Dim x2 As Integer = Me.TextBox2.Text
        If Me.DropDownList1.Items(0).Selected Then
            Dim suma As Integer = x1 + x2
            Me.Label3.Text = "La suma es:" & suma & "<br />"
        ElseIf Me.DropDownList1.Items(1).Selected Then
            Dim resta As Integer = x1 - x2
            Me.Label3.Text = "La diferencia:" & resta & "<br />"
        ElseIf Me.DropDownList1.Items(2).Selected Then
            Dim multi As Integer = x1 * x2
            Me.Label3.Text = "El producto:" & multi & "<br />"
        ElseIf Me.DropDownList1.Items(3).Selected Then
            Dim divi As Integer = x1 / x2
            Me.Label3.Text = "La division:" & divi & "<br />"
        End If

Como solo un elemento del control DropDowList puede estar seleccionado disponemos una serie de if/elseif para verificar cual de ellos es el seleccionado. Cuando identificamos el item seleccionado procedemos a efectuar el cálculo correspondiente y mostrarlo en la Label3.






0 comentarios:

Publicar un comentario



 
contador de visitas