Lenguaje de Programación III_2
-
Upload
anonymous-zcbvkulstu -
Category
Documents
-
view
225 -
download
0
Transcript of Lenguaje de Programación III_2
-
8/17/2019 Lenguaje de Programación III_2
1/52
LENGUAJE DE PROGRAMACIÓN I I I 49
CIBERTEC CARRERAS PROFESIONALES
ADMINISTRANDO LOS ESTADOSY DISEÑANDO UNA APLICACIÓN
WEBLOGRO DE LA UNIDAD DE APRENDIZAJE
Al término de la unidad, los alumnos, utilizando las técnicas explicadas en clase y loscontroles que proporciona el Framework 3.5, construyen el diseño de páginas Webpara personalizar el diseño y apariencia de una página Web.
TEMARIO
•
Tipos de Web Site en Visual Studio 2008• Gestión de Web Form• Tipos de programación :Script y Code-Behind• Manejo de controles estándar de Servidor: Implementación, configuración y
programación• Manejo de controles de validación: RequiredFieldValidator, CompareValidator,
RegularExpressionValidator, CustomValidator, RangeValidator• Trabajar con objetos intrínsecos de ASP.NET: Request, Response, Server,
ViewState, Cookies, Session, Application• Diseño e implementación de una página web: Hojas de estilo, temas, master
page, App_Themes, StyleSheetTheme
ACTIVIDADES PROPUESTAS
• Los alumnos manejan los estados de una página: Cookies, ViewState, Application ySession.
• Los alumnos diseñan un master page, definen hojas de estilos y temas paraimplementar un sitio Web
UNIDAD DE
APRENDIZAJE
1
SEMANA
3
-
8/17/2019 Lenguaje de Programación III_2
2/52
50
CARRERAS PROFESIONALES CIBERTEC
1. INFORMACIÓN GENERAL SOBRE LA ADMINISTRACIÓN DEESTADOS EN ASP .NET
Cada vez que la página se envía al servidor, se crea una nueva instancia de laclase de la página Web. En la programación Web tradicional, esto se traduce enque toda la información asociada a la página y sus controles se pierden con cada
recorrido de ida y vuelta.Para superar esta limitación inherente de la programación Web tradicional,ASP.NET incluye varias opciones que ayudan a preservar los datos en cadapágina y en toda la aplicación. Estas características son las siguientes:
• Estado de vista• Estado de control• Campos ocultos• Cookies• Cadenas de consulta• Estado de aplicación• Estado de sesión• Propiedades de perfiles
1.1 OPCIONES DE ADMINISTRACIÓN DE ESTADO EN EL CLIENTELas siguientes secciones describen opciones para administrar el estado quealmacenan la información en la página o en el equipo cliente.
1.1.1 Estado de vista: ViewStatePermite conservar valores entre las distintas solicitudes de una mismapágina. Éste es el método predeterminado que la página utiliza paraconservar los valores de las propiedades de la propia página y suscontroles entre recorridos de ida y vuelta.
1.1.2 Estado de control: ControlState
La propiedad ControlState permite mantener la información de laspropiedades que es específica de un control y que no se puededesactivar como ocurre con la propiedad ViewState. Por ejemplo, si haescrito un control personalizado con varias fichas que muestran distintostipos de información, el control debe saber la ficha que se selecciona enlos recorridos de ida y vuelta para que funcione tal y como se espera.
1.1.3 Campos ocultos: HiddenFieldUn control HiddenField almacena una única variable en su propiedadValue y se debe agregar en la página de forma explícita.Para que los valores de los campos ocultos estén disponibles durante elprocesamiento de la página, debe enviarla mediante el método POSTde HTTP. Si utiliza campos ocultos y una página se procesa comorespuesta a un vínculo o a un comando GET de HTTP, los camposocultos no estarán disponibles.
1.1.4 CookiesUna cookie es una cantidad pequeña de datos que se almacena en unarchivo de texto en el sistema de archivos del cliente o que se mantieneen la memoria durante la sesión del explorador cliente. Contieneinformación específica del sitio que el servidor envía al cliente junto conel resultado de la página.
-
8/17/2019 Lenguaje de Programación III_2
3/52
LENGUAJE DE PROGRAMACIÓN I I I 51
CIBERTEC CARRERAS PROFESIONALES
1.1.5 Cadenas de consulta: QueryStringUna cadena de consulta es información que se anexa al final de ladirección URL de una página. Un ejemplo típico de cadena de consulta:http://www.contoso.com/listwidgets.aspx?category=basic&price=100En la ruta URL indicada, la cadena de consulta empieza por un signo deinterrogación (?) e incluye dos pares de atributo-valor, uno de ellos sedenomina "category" y el otro, "price".Para que los valores de las cadenas de consulta estén disponiblesdurante el procesamiento de la página, debe utilizar el método GET deHTTP.
1.2 OPCIONES DE ADMINISTRACIÓN DE ESTADO EN EL SERVIDOR ASP.NET proporciona una serie de medios para mantener la información deestado en el servidor, en lugar de conservarla en el cliente. Con laadministración de estados basada en servidor, puede reducir la cantidad deinformación que se envía al cliente para conservar el estado.
1.2.1 Estado de aplicación: ApplicationStateEl estado de aplicación es un mecanismo de almacenamiento global alque se puede obtener acceso desde todas las páginas de la aplicaciónWeb.Es una instancia de la clase HttpApplicationState, de cada aplicaciónWeb activa. Por tanto, el estado de aplicación resulta útil paraalmacenar la información que se debe mantener en los recorridos de iday vuelta del servidor y entre las solicitudes de las páginas.
1.2.2 Estado de sesión: SessionStateEstado de sesión es similar a estado de aplicación con la diferencia deque el ámbito es la actual sesión del explorador. Si hay varios usuariosutilizando la aplicación, cada uno de ellos tendrá un estado de sesióndistinto.
2. INFORMACIÓN GENERAL SOBRE LAS COOKIESLas cookies son pequeños fragmentos de texto que acompaña a las solicitudes ya las páginas mientras éstas se transmiten del servidor Web al explorador yviceversa. Permiten a los sitios Web almacenar información sobre los visitantes.Se utilizan para muchos propósitos; todos ellos destinados a facilitar al sitio Webel reconocimiento de los usuarios. Por ejemplo, un sitio que lleva a cabo unsondeo podría utilizar una cookie, simplemente, como un valor booleano paraindicar si el explorador del usuario ya ha participado en la votación con el fin deevitar que el usuario vote dos veces.
La mayoría de los exploradores admiten cookies de un tamaño máximo de 4096bytes. Los exploradores también imponen limitaciones: sólo permiten 20 cookiespor sitio; si se intenta almacenar más, las cookies más antiguas se descartan.
2.1 MODO DE ESCRIBIR COOKIESEl explorador administra las cookies en los equipos de los clientes. Lascookies se envían al cliente utilizando el objeto HttpResponse, que exponeuna propiedad denominada Cookies.Cuando escriba una nueva cookie, deberá especificar sus propiedades Name y Value. Cada cookie debe tener un nombre único para que la aplicación Webpueda identificarla cuando el explorador la envíe con solicitudes futuras.
-
8/17/2019 Lenguaje de Programación III_2
4/52
52
CARRERAS PROFESIONALES CIBERTEC
Hay dos maneras de escribir una cookie en el equipo de un usuario:Establecer las propiedades de la cookie directamente en la colección Cookies
Crear una instancia del objeto HttpCookie y agregarla a la colección Cookies .
Las cookies también pueden almacenar varios pares de nombre y valor enuna sola cookie.
En el ejemplo siguiente se muestra la manera de escribir la mismacookie, cada una con dos subclaves:
Para limitar las cookies a una carpeta del servidor, establezca lapropiedad Path de la cookie, como en el ejemplo siguiente:
2.2 MODO DE LEER LAS COOKIES
En sus aplicaciones ASP.NET, puede leer las cookies mediante el objetoHttpRequest, que está disponible como propiedad Request de la clasePage. En el ejemplo, se muestran dos maneras de obtener el valor de unacookie denominada username
Para leer los nombres y los valores de todas las cookies disponiblespara la página, puede recorrer la colección Cookies mediante códigocomo el siguiente.
Response.Cookies("userName").Value = "patrick"Response.Cookies("userName").Expires = DateTime.Now.AddDays(1)
Dim aCookie As New HttpCookie("lastVisit")aCookie.Value = DateTime.Now.ToString()aCookie.Expires = DateTime.Now.AddDays(1)Response.Cookies.Add(aCookie)
Dim aCookie As New HttpCookie("userInfo")aCookie.Values("userName") = "patrick"aCookie.Values("lastVisit") = DateTime.Now.ToString()aCookie.Expires = DateTime.Now.AddDays(1)Response.Cookies.Add(aCookie)
Dim appCookie As New HttpCookie("AppCookie")appCookie.Value = "written " & DateTime.Now.ToString()appCookie.Expires = DateTime.Now.AddDays(1)appCookie.Path = "/Application1"Response.Cookies.Add(appCookie)
If Not Request.Cookies("userName") Is Nothing ThenDim aCookie As HttpCookie = Request.Cookies("userName")Label1.Text = Server.HtmlEncode(aCookie.Value)
End If
-
8/17/2019 Lenguaje de Programación III_2
5/52
LENGUAJE DE PROGRAMACIÓN I I I 53
CIBERTEC CARRERAS PROFESIONALES
2.3 ELIMINACIÓN DE LAS COOKIESLa eliminación de una cookie, es decir, su borrado físico del disco duro del
usuario, es una variación del proceso de modificación. No es posibleeliminar directamente una cookie, ya que se encuentra en el equipo delusuario. Sin embargo, puede conseguir que el explorador la elimine.
3. INFORMACIÓN GENERAL SOBRE EL ESTADO DE VISTA
El estado de vista es el método que permite conservar los valores de página ycontrol entre acciones de ida y vuelta. Puede tener acceso al estado de vista ensu propio código mediante la propiedad ViewState de la página para conservarlos datos durante las acciones de ida y vuelta al servidor Web.
3.1 MODO DE GUARDAR VALORES EN EL ESTADO DE VISTA
El estado de vista es un repositorio de una página ASP.NET en el que sepueden almacenar valores que deben conservarse durante la devolución dedatos.Los datos de estado de vista se almacenan en uno o más campos ocultoscomo cadenas codificadas en base64. Puede tener acceso a información deestado de vista mediante la propiedad ViewState de la página que expone un
objeto de diccionario. Puesto que el estado de vista se envía como un campooculto, se pueden realizar cambios en el estado hasta el evento PreRender.
3.1.1 Para guardar un valor en el estado de vista:
Dim output As System.Text.StringBuilder = New System.Text.StringBuilderDim aCookie As HttpCookieFor i as Integer= 0 to Request.Cookies.Count - 1aCookie = Request.Cookies(i)output.Append("
")output.Append("Name=" & Server.HtmlEncode(aCookie.Name) & "
")output.Append("Value=" & Server.HtmlEncode(aCookie.Value) & "
")NextLabel1.Text = output.ToString()Dim aCookie As HttpCookie
Dim cookieName As StringDim limit As Integer = Request.Cookies.Count - 1For i as Integer=0 To limit
cookieName = Request.Cookies(i).NameaCookie = New HttpCookie(cookieName)aCookie.Expires = DateTime.Now.AddDays(-1)Response.Cookies.Add(aCookie)
Next
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)Me.ViewState.Add("arrayListInViewState", PageArrayList)
End Sub
-
8/17/2019 Lenguaje de Programación III_2
6/52
54
CARRERAS PROFESIONALES CIBERTEC
3.1.2 Para cifrar el estado de vista:En la directiva @Page, establezca el atributo ViewStateEncryptionModeen "Always", como en el ejemplo siguiente:
3.2 MODO DE HABILITAR O DESHABILITAR EL VIEWSTATE PARA UNCONTROL O PÁGINA
Para habilitar o deshabilitar el estado de vista para un control:• Seleccione el control en la vista diseño del Web form.• En la ventana de propiedad, seleccione la propiedad EnabledViewState
y seleccione el valor de true para habilitar el estado; seleccione falsepara deshabilitar el estado de la vista del control
Para habilitar o deshabilitar el estado de vista de una página:• Seleccione la vista de origen (Source View) de la página Web.• Ubique la directiva • Para habilitar el ViewState, añada a la directiva
EnabledViewState=”true”; para deshabilitar el ViewState, a ladirectiva EnabledViewState=”false”.
4. INFORMACIÓN GENERAL SOBRE EL ESTADO DE SESSION
El estado de sesión de ASP.NET identifica las solicitudes recibidas desde elmismo explorador durante un tiempo limitado como una sesión y conserva losvalores de las variables mientras dure esa sesión.
Por ejemplo, crear las variables de sesión FirstName y LastName pararepresentar el nombre y el apellido de un usuario y las variables seestablecen en los valores recuperados de los controles
4.1 EVENTOS DEL ESTADO DE SESSIONASP.NET proporciona dos eventos que ayudan a administrar las sesiones deusuario: Session_OnStart se desencadena cuando inicia una nueva sesión,y Session_OnEnd se desencadena cuando se abandona una sesión.
4.1.1 Session_OnStartSe ejecuta al principio de una solicitud, si ésta inicia una nueva sesión.Se utiliza para inicializar las variables de sesión, así como para realizarel seguimiento de la información relacionada con la sesión.
4.1.2 Session_OnEndSe ejecuta cuando se llama al método Abandon o cuando la sesión hacaducado. Una sesión caduca cuando el número de minutosespecificado por la propiedad Timeout transcurre sin que se hayacreado ninguna solicitud para la sesión.Si la propiedad Mode del objeto Session es StateServer o SQLServer,se omite el evento Session_OnEnd en el archivo Global.asax. Puedeutilizar el evento Session_OnEnd para limpiar la informaciónrelacionada con la sesión.
Session("FirstName") = FirstNameTextBox.TextSession("LastName") = LastNameTextBox.Text
-
8/17/2019 Lenguaje de Programación III_2
7/52
LENGUAJE DE PROGRAMACIÓN I I I 55
CIBERTEC CARRERAS PROFESIONALES
Ejemplo de eventos de sessionLas subrutinas definidas en este ejemplo crean un contador querealiza el seguimiento del número de usuarios de la aplicación queutilizan dicha aplicación de forma activa. Observe que este ejemplo
sólo funcionará correctamente cuando la propiedad de estado de sesiónMode se establezca en InProc, ya que el evento Session_OnEnd sólo escompatible con el almacén de estado de sesión en proceso.
4.2 RECUPERAR LOS VALORES EN UN ESTADO DE SESSIONLa propiedad Ítem permite recuperar los valores de un estado de sesión.
El estado de la sesión caduca, de forma predeterminada, después de 20minutos de inactividad. Puede controlar el período de duración del estado de
sesión mediante el atributo timeout de la sección de configuraciónsessionState.
4.3 MODOS DE UN ESTADO DE SESSIONEl estado de sesión de ASP.NET es compatible con distintas opciones dealmacenamiento de los datos de la sesión. En la lista siguiente se describenlos modos de estado de sesión disponibles:• Modo InProc, que almacena el estado de sesión en memoria en el servidor
Web. Éste es el valor predeterminado.• Modo StateServer, que almacena el estado de sesión en un proceso
distinto denominado "servicio de estado de ASP.NET". Este modogarantiza que el estado de sesión se mantiene si se reinicia la aplicaciónWeb y que esté disponible también para varios servidores Web.
• Modo SQLServer, que almacena el estado de sesión en una base dedatos de SQL Server. Este modo garantiza que el estado de sesión semantiene si se reinicia la aplicación Web y que esté disponible tambiénpara varios servidores Web en una batería de servidores Web.
• Modo Custom, que permite especificar un proveedor de almacenamientopersonalizado.
Public Sub Application_OnStart()Application("UsersOnline") = 0End Sub
Public Sub Session_OnStart()Application.Lock()Application("UsersOnline") = CInt(Application("UsersOnline")) + 1Application.UnLock()End Sub
Public Sub Session_OnEnd()Application.Lock()
Application("UsersOnline") = CInt(Application("UsersOnline")) - 1Application.UnLock()End Sub
Dim firstName as String = CType(Session.Item("FirstName"), String)Dim lastName as String = CType(Session.Item("LastName"), String)
-
8/17/2019 Lenguaje de Programación III_2
8/52
56
CARRERAS PROFESIONALES CIBERTEC
5. INFORMACIÓN GENERAL SOBRE EL ESTADO DEAPLICACION
El estado de aplicación es un repositorio de datos disponible para todas las clasesde una aplicación ASP.NET. El estado de aplicación se almacena en la memoriadel servidor y ofrece más rapidez que el almacenamiento y la recuperación de
información de una base de datos.El estado de aplicación se almacena en una instancia de la claseHttpApplicationState. Esta expone un diccionario de objetos con valores yclaves. La instancia de HttpApplicationState se crea la primera vez que elusuario tiene acceso a cualquier recurso de dirección URL de la aplicación.
5.1 MODO DE GUARDAR VALORES EN UN ESTADO DE APLICACIÓN El estado de aplicación se almacena en la memoria del servidor, por lo queuna cantidad grande de datos puede llenarla rápidamente. Si se reinicia laaplicación, los datos de estado de aplicación se pierden.
5.1.1 Modo de escribir un valor en el estado de aplicaciónEstablezca el valor de la variable en la clase HttpApplicationState, en
el controlador Application_Start del archivo Global.asaxEn el ejemplo de código siguiente, se muestra cómo establecer lavariable de aplicación Message en una cadena.
5.1.2 Modo de escribir un valor en el estado de aplicación con bloqueoVarios subprocesos pueden tener acceso, simultáneamente, a lasvariables de estado de aplicación. Para establecer los valores esnecesario bloquearlas para que sólo pueda escribir en un subproceso. Para establecer el valor de la variable de aplicación, llame al métodoLock, y, a continuación, llame al método UnLock a fin de desbloquear
el estado de aplicación y liberarlo para otras solicitudes de escritura.En el ejemplo de código siguiente, incremente la variable Count enuno (1) y, a continuación, desbloquee el estado de aplicación.
5.2 MODO DE LEER VALORES EN UN ESTADO DE APLICACIÓN El estado de aplicación almacena los datos como tipos de datos Object. Porconsiguiente, debe convertirlos al tipo apropiado al recuperarlos.
5.2.1 Modo de leer un valor desde el estado de aplicaciónDetermine si la variable de aplicación existe y, a continuación,conviértala al tipo adecuado cuando tenga acceso a ella.
En el ejemplo de código siguiente se recupera el valor AppTime deestado de aplicación y se convierte en una variable denominadaAppStartTime de tipo DateTime.
Application("Message") = "Bienvenido al Portal Cibertec"Application("Count") = 0
Application.Lock()Application("Count") = CInt(Application("Count")) + 1Application.UnLock()
If (Not Application("AppTime") Is Nothing) ThenDim AppTime As DateTime = CDate(Application("AppTime"))
End If
-
8/17/2019 Lenguaje de Programación III_2
9/52
LENGUAJE DE PROGRAMACIÓN I I I 57
CIBERTEC CARRERAS PROFESIONALES
6. INFORMACIÓN SOBRE EL ALMACENAMIENTO EN CACHÉ
Para ayudarle a aumentar el rendimiento de la aplicación, ASP.NET proporcionaalmacenamiento en caché mediante dos mecanismos básicos: almacenamientoen caché de aplicaciones y caché de los resultados de las páginas
6.1 CACHÉ DE APLICACIONESPermite almacenar en memoria datos arbitrarios mediante programaciónutilizando pares de clave y valor. Los datos de la caché de aplicaciones sonvolátiles. La ventaja de utilizar la caché de aplicaciones es que ASP.NET seencarga de administrarla y elimina los elementos cuando caducan o seinvalidan, o cuando hay poca memoria.
6.2 CACHÉ DE RESULTADOS DE PÁGINASAlmacena en memoria el contenido de una página ASP.NET procesada. Estopermite a ASP.NET enviar una página de respuesta a un cliente sin volver arecorrer el ciclo de vida de procesamiento de la página. El almacenamientoen caché de los resultados de las páginas resulta especialmente útil enaquellas páginas que no cambian a menudo, pero cuya creación requiere un
cantidad significativa de procesamiento.El almacenamiento en caché de resultados de páginas proporciona dosmodelos de almacenamiento: almacenamiento en caché de páginascompletas y almacenamiento en caché de una parte de las páginas. Elalmacenamiento en caché de páginas completas permite conservar elcontenido completo de la página en memoria y utilizarlo para satisfacer lassolicitudes de los clientes. El almacenamiento en caché de una parte de laspáginas permite almacenar en la caché ciertas partes de una página,mientras otras se recuperan de forma dinámica.
6.1 MODO DE AGREGAR ELEMENTOS A CACHEEl objeto Caché tiene acceso a los elementos en la caché de la aplicación.Puede agregar un elemento a la caché de la aplicación utilizando:• El método Insert: agrega un elemento a la caché, si un elemento con el
mismo nombre se reemplaza el elemento de la caché.• El método Add: maneja las mismas opciones que el método Insert; sin
embargo, si ya existe un elemento con el mismo nombre en la caché, elmétodo no reemplazará el elemento y no producirá una excepción.
6.1.1 Modo de agregar un elemento a la caché estableciendodirectamente el elemento a través de la clave y valorCache("CacheItem1") = "Cached Item 1"
6.1.2 Modo de agregar elementos a la caché mediante el método InsertCache.Insert("CacheItem2", "Cached Item 2")
6.1.3 Modo de agregar un elemento a la caché especificando unadependencia
El siguiente ejemplo de código agrega un elemento denominadoCacheItem3 que es dependiente de otro elemento en la cachédenominado CacheItem2:
Dim dependencies As String() = {"CacheItem2"}Cache.Insert("CacheItem3", "Cached Item 3", _New Caching.CacheDependency(Nothing, dependencies))
-
8/17/2019 Lenguaje de Programación III_2
10/52
58
CARRERAS PROFESIONALES CIBERTEC
6.1.4 Modo de agregar un elemento a la caché con directivas decaducidadLlame al método Insert pasándole una hora de caducidad absoluta oun plazo de tiempo.
El ejemplo agrega un elemento a la caché con plazo decaducidad de 10 minutos:
6.1.5 Modo de agregar un elemento a la caché mediante el método AddLlame al método Add, que devuelve un objeto que representa elelemento.
El siguiente ejemplo agrega un elemento a la caché y estableceel valor de la variable para que sea el elemento que se agregó.
6.2 MODO DE RECUPERAR VALORES ALMACENADOS EN CACHEPara recuperar los datos de la caché, especifique la clave con la que sealmacenó el elemento en memoria caché.
6.2.1 Modo de obtener el valor de un elemento almacenado en cachéCompruebe si el elemento no es null, en el objeto Cache. Si existe,asígnelo a su variable. De lo contrario, vuelva a crear el elemento,agréguelo a la caché y, a continuación, tenga acceso a él.
En el ejemplo, se muestra cómo recuperar el elementodenominado CacheItem de la memoria caché. Si el elemento noestá en la caché, el código agrega el elemento a la caché y, a
continuación, asigna el elemento a cachedString.
6.3 MODO DE ELIMINAR ELEMENTOS DE CACHÉ EN ASP.NETLos datos almacenados en la caché de ASP.NET son volátiles. Se puedeneliminar automáticamente de la caché por una de las razones siguientes:• La caché está llena.• El elemento ha caducado.• Un elemento depende de ciertos cambios.El método concreto utilizado para eliminar un elemento de la caché sedetermina en el código que se emplea para agregar el elemento a la caché.
6.3.1 Modo de eliminar un elemento de la caché de forma explícitaLlame al método Remove y pásele la clave del elemento a eliminar.
Cache.Remove("MyData1")
Cache.Insert("CacheItem7", "Cached Item 7", Nothing, _Caching.Cache.NoAbsoluteExpiration, New TimeSpan(0, 10, 0))
Dim CacheIt As String = CStr(Cache.Add("Item9", "Item 9", _Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _System.Web.Caching.Cache.NoSlidingExpiration, _System.Web.Caching.CacheItemPriority.Default, Nothing))
Dim cachedString As String = CStr(Cache("CacheItem"))If cachedString Is Nothing Then
cachedString = "Hello, World."Cache.Insert("CacheItem", cachedString)
End If
-
8/17/2019 Lenguaje de Programación III_2
11/52
LENGUAJE DE PROGRAMACIÓN I I I 59
CIBERTEC CARRERAS PROFESIONALES
7. DISEÑANDO UNA APLICACIÓN WEB ASP.NET
En este capítulo vamos a crear, personalizar y administrar una aplicación WebASP.NET (a veces denominada simplemente sitio Web). En estos temas, se ofreceinformación relativa a la aplicación o sitio en su totalidad: la estructura de archivos deun sitio Web ASP.NET, el ciclo de vida de una aplicación, los métodos para crear unaspecto (temas) y un diseño (páginas principales) coherentes en todas las páginas delsitio y cómo ampliar la aplicación con módulos personalizados.
7.1 PÁGINAS PRINCIPALES DE ASP.NETLas páginas principales de ASP.NET permiten crear un diseño de páginaque se puede utilizar en ciertas páginas o en todas (páginas de contenido) enun sitio Web.Una página principal es un archivo de ASP.NET con la extensión .master quetiene un diseño predefinido que puede incluir texto estático, elementos HTMLy controles de servidor. La página principal se identifica mediante unadirectiva @Master especial que reemplaza la directiva @Page utilizada en laspáginas .aspx ordinarias. El aspecto de la directiva es el siguiente:
Además de la directiva @ Master, la página principal también incluye todoslos elementos HTML de nivel superior de una página, como html, head yform. Por ejemplo, en una página principal podría utilizar una tabla HTMLpara el diseño, un elemento img para el logotipo de la compañía, textoestático para el aviso de copyright y controles de servidor para crear laexploración estándar del sitio.Además del texto estático y los controles que aparecerán en todas laspáginas, la página principal también incluye controles ContenPlaceHolder.
7.2 CONTENT PAGES (PÁGINAS DE CONTENIDO)Para definir el contenido de los controles PlaceHolder de la página principal,cree páginas de contenido individuales, que son páginas ASP.NET que estánenlazadas a una página principal concreta. El enlace se establece en ladirectiva @ Page de la página de contenido al incluir un atributoMasterPageFile que apunta a la página principal que se va a utilizar.Por ejemplo, una página de contenido podría tener la siguiente directiva@ Page, que la enlaza con la página Master1.master.
En la página de contenido, cree el contenido agregando los controlesContent y asignándolos a los controles ContentPlaceHolder de la páginaprincipal.
-
8/17/2019 Lenguaje de Programación III_2
12/52
60
CARRERAS PROFESIONALES CIBERTEC
7.3 ÁMBITO DE LAS PÁGINAS PRINCIPALESPuede adjuntar páginas de contenido a una página principal en tres niveles:1. En el nivel de la página Puede utilizar una directiva de página en
cada página de contenido para enlazarla a una página principal, comoen el ejemplo de código siguiente.
2. En el nivel de la aplicación Al establecer la configuración delelemento pages en el Web.config, puede especificar que todas laspáginas de ASP.NET (archivos .aspx) de la aplicación se enlacenautomáticamente a una página principal. El elemento podría tener elaspecto siguiente:
3. En el nivel de la carpeta Esta estrategia es igual que la estrategia dedefinir enlaces en el nivel de la aplicación, excepto en que laconfiguración se define en un archivo Web.config en una única carpeta.
7.4 MODO DE CREAR UNA PÁGINA PRINCIPALLa página principal es la plantilla que define la apariencia que tendrán laspáginas. A continuación se creará primero una página principal.
7.4.1 Modo de añadir una página principal al Web Site1. En el Explorador de soluciones, haga clic con el botón secundario
del mouse en el sitio Web y, a continuación, seleccione Agregar nuevo Item.
2. En Plantillas, haga clic en Página principal.3. En el cuadro Nombre, escriba Master1.4. En la lista Lenguaje, haga clic en el lenguaje de programación con
el que prefiera trabajar y, a continuación, haga clic en Agregar.
7.4.2 Edición de la página principalLa página principal define la apariencia de las páginas del sitio. Puedecontener cualquier combinación de texto estático y controles. Unapágina principal también contiene uno o más marcadores de posición decontenido los cuales indican dónde aparecerá el contenido. Cuandoedita una página principal, el diseñador le ayuda de las siguientesmaneras:• Como valor predeterminado, la página principal contiene un único
control ContentPlaceHolder. Se pueden agregar tantosContentPlaceHolder adicionales como sean necesarios.
• En la vista de código fuente, el editor comprueba el marcado de lapágina para asegurarse de que no agrega elementos o atributos queno sean válidos en las páginas principales. Por ejemplo, si agrega
un control Content a una página principal en la vista de códigofuente, el editor marca el control porque los controles Content noestán permitidos en las páginas principales.
• Cuando edita una página principal en el diseñador, el menú SitioWeb y el menú del botón secundario contienen el comando Agregarpágina de contenido, el cual crea una página nueva que ya estávinculada con la página principal actual.
-
8/17/2019 Lenguaje de Programación III_2
13/52
LENGUAJE DE PROGRAMACIÓN I I I 61
CIBERTEC CARRERAS PROFESIONALES
7.5 PÁGINAS PRINCIPALES ANIDADASLas páginas principales anidadas permiten crear páginas principales divididasen componentes. Por ejemplo, un sitio de gran volumen podría contener unapágina principal general en la que se define la apariencia del sitio. Otroscolaboradores del contenido del sitio pueden definir sus propias páginasprincipales secundarias que harán referencia a la página principal del sitio yque, a su vez, definirán la apariencia del contenido de ese colaborador.
Una página principal secundaria tiene la extensión de nombre de archivo.master, como cualquier página principal. La página principal secundaria,normalmente, contiene controles de contenido que están asignados a losmarcadores de posición de contenido de la página principal primaria. En estesentido, la página principal secundaria está diseñada como cualquier páginade contenido.Este es el archivo principal primario:
Este es el archivo principal secundario:
Este es un archivo secundario que hace referencia a la página principalsecundaria:
Parent Master
This is parent master content.
Child master
This is childmaster content.
This is childmaster content.
-
8/17/2019 Lenguaje de Programación III_2
14/52
62
CARRERAS PROFESIONALES CIBERTEC
8. MANEJO DE TEMAS Y MÁSCARAS EN ASP.NET
Los temas de ASP.NET son una colección de propiedades que definen el aspectode las páginas y los controles de un sitio Web. Un tema puede contener archivosde máscara, que definen los valores de las propiedades de los controles de
servidor Web de ASP.NET; también pueden contener archivos de hojas de estilosen cascada (archivos .css) y gráficos. Si se aplica un tema, se puede dar a todaslas páginas del sitio Web un aspecto coherente.
8.1 MODO DE APLICAR TEMAS EN ASP.NETPuede aplicar los temas a una página, un sitio Web o globalmente. Alestablecer un tema en el nivel del sito Web los estilos y máscaras se aplican atodas las páginas y controles del sitio, a no ser que reemplace un tema parauna página individual. Al establecer un tema en el nivel de la página, losestilos y máscaras se aplican a esa página y a todos sus controles.
8.1.1 Aplicar un tema a un sitio webEn el archivo Web.config de la aplicación, establezca el elemento
en el nombre del tema, ya sea éste global o de página, comose muestra en el siguiente ejemplo:
Para establecer un tema como tema de la hoja de estilos de forma quese subordine a la configuración local del control, establezca en su lugarel atributo styleSheetTheme:
8.1.2 Aplicar un tema a una página individualEstablezca el atributo Theme o StyleSheetTheme de la directiva@ Page en el nombre del tema que se va a utilizar, como se muestra enel siguiente ejemplo:
8.2 MODO DE APLICAR MÁSCARAS A LOS CONTROLESLas máscaras definidas en el tema se aplicarán en todas las instancias decontroles de la aplicación o en las páginas a las que se aplique el tema. Enalgunos casos, es posible que desee aplicar un conjunto concreto depropiedades a un control individual. Puede hacerse creando una máscara connombre (entrada en un archivo .skin que tiene establecida la propiedad
-
8/17/2019 Lenguaje de Programación III_2
15/52
LENGUAJE DE PROGRAMACIÓN I I I 63
CIBERTEC CARRERAS PROFESIONALES
SkinID) y aplicándola a continuación mediante el identificador a controlesindividuales.8.2.1 Aplicar una máscara con nombre a un control
Establezca la propiedad SkinID del control, como se muestra en elejemplo siguiente:
8.3 MODO DE APLICA TEMAS MEDIANTE PROGRAMACIÓNAparte de especificar las preferencias de máscaras y temas en lasdeclaraciones de página y los archivos de configuración, puede aplicar temasmediante programación. Puede establecer mediante programación temas depáginas y temas de hojas de estilos; sin embargo, el procedimiento paraaplicar cada tipo de tema es diferente.
8.3.1 Aplicar un tema mediante programaciónEn el ejemplo siguiente se muestra cómo establecer el tema de unapágina basándose condicionalmente en un valor pasado en la cadenade consulta.
8.3.2 Aplicar máscaras de control mediante programaciónEn el ejemplo de código siguiente se muestra cómo se establece lapropiedad SkinID de un control Calendar. En el ejemplo se supone queya se ha establecido el tema de la página.
8.4 CREACIÓN DE TEMAS GLOBALESUn tema global se aplica a todos los sitios Web de un servidor. La ubicaciónen la que se crea una carpeta para los temas globales depende de si seejecuta el sitio Web con Servicios de Internet Information Server (IIS) o si seprueba con el servidor de desarrollo de ASP.NET.
8.4.1 Modo de crear un tema global1. Cree una carpeta Themes con la ruta de acceso siguiente.
%windows%\Microsoft.NET\Framework\version\ASP.NETClientFiles\T hemes
Protected Sub Page_PreInit(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Me.PreInit
Select Case Request.QueryString("theme")
Case "Blue"
Page.Theme = "BlueTheme"
Case "Theme2"
Page.Theme = "PinkTheme"
End Select
End Sub
Sub Page_PreInit(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Me.PreInit
Calendar1.SkinID = "CustomSkin"
End Sub
-
8/17/2019 Lenguaje de Programación III_2
16/52
64
CARRERAS PROFESIONALES CIBERTEC
Cree una subcarpeta de la carpeta Themes para que contenga losarchivos de temas globales.
2. Agregue archivos a la carpeta para incorporar las máscaras decontroles, hojas de estilos e imágenes que compondrán el temaglobal.
3. Si el sitio Web es un sitio Web de sistema de archivos que estáprobando con el servidor de desarrollo de ASP.NET, el tema estálisto para realizar las pruebas.
4. Si está probando el sitio Web utilizando un sitio Web local de IIS,abra una ventana de comandos y ejecute aspnet_regiis -c parainstalar el tema en el servidor donde e ejecuta IIS.
5. Si está probando el tema en un sitio Web remoto o en un sitio Webde FTP, debe crear manualmente una carpeta de temas en lasiguiente ruta de acceso.
IISRootWeb\aspnet_client\system_web\version\Themes
-
8/17/2019 Lenguaje de Programación III_2
17/52
LENGUAJE DE PROGRAMACIÓN I I I 65
CIBERTEC CARRERAS PROFESIONALES
LABORATORIO 3.1DISEÑO DE UN SITIO WEBEn este laboratorio, se creará Sitio Web utilizando un Master Page. El master Pagedeberá visualizar un banner de imágenes, el logo de la institución, el usuario y lainstitución a la que pertenece.1. Ingrese a Visual Studio 2008
2. Seleccione FilesNew Web Site; asigne el nombre de WebSite3 3. Agregue al Web Site un nuevo elemento; seleccione en Plantillas el ítem
Master Page. 4. Asigne el Nombre: Principal.master. 5. Active la casilla de verificación, Colocar codigo en un archivo independiente
6. Con el Master Page agregado, establezca al color de fondo (BgColor) deldocumento un color distintivo: Seleccione DOCUMENT de la ventana depropiedades y seleccione un color a la propiedad BgColor.
Seleccione laplantillaMaster Page
Nombre alMaster Page
Pagina deContenido delMaster Page
PropiedadBgColor deDOCUMENT
-
8/17/2019 Lenguaje de Programación III_2
18/52
66
CARRERAS PROFESIONALES CIBERTEC
7. En el menú TABLA, seleccione la opción INSERTARTABLA.
8. En la ventana insertar tabla defina el tamaño de la tabla:5 filas y 1 columna, tal como se muestra en la figura y, acontinuación, haga clic en Aceptar.
9. Agregue los siguientes controles a las celdas de la tabla de la página principal:control Image, AdRotator y Label.Para configurar el control AdRotator, agregue un archivo XML llamadoXMLFile.xml; agregue las etiquetas para configurar el banner. Luego en lapropiedad AdvertisimentFile del control AdRotator asociarlo con el archivoXML.
Arrastre el ContentPlaceHolder al centro de la tabla, tal como se muestra enla figura.
Seleccione 5 filas
Seleccione 1columna
En la cabecera agregue uncontrol Image y un controlAdRotator
En el pie agregue un label:Co ri ht 2009 Cibertec
Arrastre elContentPlaceHolder alcentro de la tabla
-
8/17/2019 Lenguaje de Programación III_2
19/52
LENGUAJE DE PROGRAMACIÓN I I I 67
CIBERTEC CARRERAS PROFESIONALES
10. Para establecer máscara a los labels, vamos a definir un Skin llamadoSkinLabel.skin
11. Defina las máscaras para los labels dentro del archivo SkinLabel
12. Para activar las máscaras, en la etiqueta del archivo web.config agregue el atributo theme:
13. Para establecer las máscaras a cada label, asinarleen la propiedad SkinID de la ventana depropiedades.
14. Agregue un Web Form al proyecto llamado Default.aspx; en la casilla deverificación Seleccionar Página Principal y, a continuación, haga clic enAgregar. Aparece el cuadro de diálogo Seleccionar Master Page. Haga clicen Principal.master y en Aceptar.
Dentro de la carpetaApp_Themes agregue el
tema Labels; a partir deallí agregue la máscara
Agregue una máscaracuyo nombre esSkinLabel.skin
Habilite la opciónSeleccionar la páginaprincipal al Web Form
-
8/17/2019 Lenguaje de Programación III_2
20/52
68
CARRERAS PROFESIONALES CIBERTEC
Agregue dentro deContent1 loscontroles Label eImage
15. En la página Default.aspx personalizar el Content para agregar controles;habilte la opción Crear contenido personalizado desde la lista de tareas delContent, tal como se muestra.
16. Agregue los controles Label e Image dentro del Content1, tal como se muestraen la figura.
Seleccione la páginaprincipal que se asocia alWeb Form Default.aspx,luego presione el botónAceptar
Desde la lista de tareasdel Content, habilite la
opción Crear contenidopersonalizado
-
8/17/2019 Lenguaje de Programación III_2
21/52
LENGUAJE DE PROGRAMACIÓN I I I 69
CIBERTEC CARRERAS PROFESIONALES
17. En la ventana Explorador de Soluciones, seleccione la página Default comopágina de inicio, presione la combinación de teclas CTRL + F5 para ejecutarla aplicación.
LABORATORIO 3.2IMPLEMENTACIÓN DE ESTILO A LOS CONTROLES ENTIEMPO DE EJECUCIONEn este laboratorio, implemente una página Web que calcule los HonorariosProfesionales donde, si el monto de la remuneración a pagar es mayor a 1500, sele aplicará un descuento del 10% de su remuneración sino su descuento será cero.Implemente estilos para visualizar los resultados de los controles.
1. En el WebSite3 agregue un Web Form llamado pageBoletas.aspx.2. Diseñe la página Web tal como se muestra
TextBox, ID: txtempleado
TextBox, ID: txtbasico
TextBox, ID: txtbonif
TextBox, ID: txtremun
TextBox, ID: txtdescuento
TextBox, ID: txtneto
-
8/17/2019 Lenguaje de Programación III_2
22/52
70
CARRERAS PROFESIONALES CIBERTEC
3. Defina las funciones de estilo para los controles de tipo Label y Button y lafunción Resultados.
4. Programe el evento Load que inicialice la definición de los controles Label yButton a través de la propiedad ApplyStyle. En el evento Click del controlBtnCalcular, calcula la remuneración, el descuento y neto; además, asigne elestilo a los controles txtdescuento y txtneto a través de la función Resultados.
5. Seleccione la página como página de inicio y presione la combinación de teclasCTRL + F5.
-
8/17/2019 Lenguaje de Programación III_2
23/52
LENGUAJE DE PROGRAMACIÓN I I I 71
CIBERTEC CARRERAS PROFESIONALES
El atributo ,indica que se ejecutara losprocesos en el lado del servidor
LABORATORIO 3.3MANEJO DE UN ESTADO DE VISTAEn este laboratorio, se implementará una página en la cual los alumnos puedenvisualizar el plan curricular del ciclo que ha seleccionado en una lista.
1. En el WebSite3, agregue nuevo Elemento.2. Agregue un Web form llamado pageCurricula.
3. Diseñe el Web Form agregado, tal como se muestre en la figura.
4. Cifre los estados de vista, asigne al atributo ViewStateEncriptionMode el valorde “Always”.
5. Inicie la codificación en la vista,defina dentro de la etiqueta body
la etiqueta .
Control ListBoxpermite mostrarlos ciclosacadémicos.
Defina el atributoViewStateEncryptionModey asigne el valor de Always
Control GridViewvisualiza lacurrícula por cicloseleccionado.
-
8/17/2019 Lenguaje de Programación III_2
24/52
72
CARRERAS PROFESIONALES CIBERTEC
FunciónTablaCiclos define lascolumnas del plancurricular.Función Ciclos
define los ciclos
académicos de lacarrera.
Defina unafunción de tipoDataTable para
cada ciclo.
6. Defina dos funciones: la función TablaCiclos que define los campos del plancurricular por ciclo y la función Ciclos, que almacena los ciclos de estudios dela carrera.
7. Defina las funcionespara cada cicloacadémico, donde seregistrará, en cada
ciclo, los cursos, elnúmero de créditospor curso y el pre-requisito, tal como semuestra.
-
8/17/2019 Lenguaje de Programación III_2
25/52
LENGUAJE DE PROGRAMACIÓN I I I 73
CIBERTEC CARRERAS PROFESIONALES
8. En el evento Init,registre a cada estadode vista una funciónque representa el ciclo.
9. En el evento Load asigne a la propiedadDataSource delListBox1 el estado devista ciclos.
10. Defina el controlador de evento Selecciona que permite evaluar el textoseleccionado del control ListBox1. Según el texto seleccionado (ciclo),visualizamos el plan curricular del ciclo, tal como se muestra.
LABORATORIO 3.4MANEJO DE COOKIESEn este laboratorio, implemente una página Web form que permita registrar losdatos personales de un usuario: nombre, email y confirmar su email.Si está correcto su ingreso, visualizaremos en otra página los datos ingresados.
1. Agregue un Web form llamado pageIngreso 2. Agregue los controles de servidor y controles de validación tal como se
muestra en la figura
RequiredFieldValidator quevalida al control txtusuario
RequiredFieldValidator quevalida al control txtemail
Control CompareValidator,que se compara con elcontrol txtemail
-
8/17/2019 Lenguaje de Programación III_2
26/52
74
CARRERAS PROFESIONALES CIBERTEC
3. A continuación, procedemos a codificar el botón Aceptar
4. Diseña el Web Form PageDatos.aspx y agregamos sus controles
5. Para visualizar los datos de la página anterior, codifiquemos en el eventoPage_Load de la página.
6. En el Explorador de Soluciones, seleccione la página pageIngreso comopágina de inicio, presione la combinación de teclas CTRL + F5 para ejecutar.
LABORATORIO 3.5MANEJO DE UN ESTADO DE APLICACIÓNEn este laboratorio, se implementa una página que imprima el total de visitas y lacantidad de usuarios activos en el sitio Web.1. En el WebSite3 agregue un Web form llamado pageVisitas.
Defina el cookie“datos”, agregue
dos valores:nombre, email
Control txtusuario
Control txtemail
Pregunto si existe elcookie “datos”
Declaro al cookie“cookiedatos” y le asignoal cookie “datos”
Mostrar los valores delcookie en los TextBox
Expirar el cookie
-
8/17/2019 Lenguaje de Programación III_2
27/52
LENGUAJE DE PROGRAMACIÓN I I I 75
CIBERTEC CARRERAS PROFESIONALES
2. Diseñe el Web Form agregado, tal como se muestre en la figura.
3. Para trabajar con estadode aplicación, agregue alWebSite3 el elementoClase de aplicaciónglobal cuyo nombre esGlobal.asax, tal como semuestra en la figura.
4. Para registrar las visitas y los usuarios activos, definimos dos objetosapplication: visitas y usuarios, en el evento Application_Start Cuando se inicie la aplicación, los objetos visitas y usuarios, incrementarán suvalor. Cuando cerramos la aplicación, descontamos en 1 el valor del objetousuario en el evento Application_End
Control label, ID lblusuarios
Control label, ID lblvisitas
Evento donde seincrementausuarios y visitasal iniciar
Evento dondedisminuyeusuarios alterminar
-
8/17/2019 Lenguaje de Programación III_2
28/52
76
CARRERAS PROFESIONALES CIBERTEC
5. Programe el evento Page_Load de la página para visualizar la cantidad devisitas y los usuarios activos en los controles: lblusuarios y lblvistitas.
6. Seleccione la página pageVisitas como página de inicio, presione lacombinación de teclas CTRL + F5 para ejecutar.
LABORATORIO 3.6MANEJO DE UN ESTADO DE SESIÓNEn este laboratorio, implemente una página la cual ingresará los datos delsolicitante y de los cursos que desea tener información en el departamento detecnología de Cibertec DAT. Los datos del solicitante y los cursos seleccionadosse visualizarán en otra página.
1. En el WebSite3, agregue un Web Form llamado PageInformacion. 2. Diseñe el Web Form agregado, tal como se muestre en la figura.
3. En el archivo Global.asax, definimos el estado de sesión para los objetosnombre, apellido y mail; para el caso de los cursos, defina un objeto DataTable
Control textbox, ID:txtnombre
Control textbox, ID:txtapellido
Control textbox, ID:txtmail
ControlCheckBoxList1,agregue sus ítemsen la ventana depropiedades: Items
-
8/17/2019 Lenguaje de Programación III_2
29/52
LENGUAJE DE PROGRAMACIÓN I I I 77
CIBERTEC CARRERAS PROFESIONALES
y agregue las columnas; a continuación defina un estado de sesión llamadotabla para el DataTable definido.
4. En el Web Form PageInformacion, registre los datos del solicitante yseleccione los cursos en la lista. El botón Resumen permite almacenar losdatos ingresados en los estados de sesión.
5. Agregue y diseñe elWeb FormPageResumen talcomo se muestra.
Defina los estadosde Session en el
eventoSession_Start para cada objeto.
Al terminar lasesión en eleventoSession_End, libere la sesiónactual: ejecute elmétodo Abandon.
Asigne a cadaestado de sesión unvalor.
Defina un objeto de tipoDataTable al cual se leasignará el estado desesión “tabla”convertida aDataTable, donde esteobjeto almacenará loscursos seleccionados.
-
8/17/2019 Lenguaje de Programación III_2
30/52
78
CARRERAS PROFESIONALES CIBERTEC
6. Para mostrar los datos, almacenados en los estados de sesión, en loscontroles web de la form PageResumen, codifique las operaciones en elevento Page_Load
7. En el Explorador de Soluciones, seleccione la página PageInformacion comopágina de inicio, presione la combinación de teclas CTRL + F5 para ejecutar.
-
8/17/2019 Lenguaje de Programación III_2
31/52
LENGUAJE DE PROGRAMACIÓN I I I 79
CIBERTEC CARRERAS PROFESIONALES
Autoevaluación
1. Defina cada una de las opciones para administrar el estado en el cliente---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2. Defina cada una de las opciones para administrar el estado en el servidor------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------3. ¿Qué es una cookie y cuál es su limitación?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------4. ¿Cómo escribir una cookie? ¿Se puede definir una cookie con varios valores?
Explique.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------5. ¿Qué es un estado de sesión y cuales son sus eventos?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------6. ¿Qué es un estado de aplicación y cómo se declara un estado de aplicación?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------7. ¿Qué es un Master Page y cómo funciona?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------8. ¿Qué es una página de contenido, cual es la sintaxis al añadir una página de
contenido al Master Page?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------9. ¿Cuál es el comportamiento de un Master Page en tiempo de ejecución?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------10. ¿Cómo configurar una página de contenido en un Master Page?------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
8/17/2019 Lenguaje de Programación III_2
32/52
80
CARRERAS PROFESIONALES CIBERTEC
Para recordar
El estado de vista es el método que utiliza el marco de trabajo de la páginaASP.NET para conservar los valores de página y control entre acciones de iday vuelta. La propiedad ViewState es un diccionario que contiene paresclave/valor con los datos del estado de vista.
El estado de sesión de ASP.NET permite almacenar y recuperar los valores deun usuario cuando el usuario explora diferentes páginas ASP.NET queconforman una aplicación Web. El estado de sesión de ASP.NET identifica lassolicitudes recibidas desde el mismo explorador durante un período limitado detiempo como una sesión y conserva los valores de las variables durante laduración de esa sesión. ASP.NET proporciona dos eventos que ayudan aadministrar las sesiones de usuario: Session_OnStart se desencadenacuando comienza una nueva sesión, y Session_OnEnd se desencadenacuando se abandona o caduca una sesión.
El estado de aplicación es un repositorio de datos disponible para todas lasclases de una aplicación ASP.NET. El estado de aplicación se almacena en lamemoria del servidor y ofrece más rapidez que el almacenamiento y larecuperación de información de una base de datos.
La caché de aplicaciones permite almacenar, en memoria, datos arbitrariosmediante programación utilizando pares de clave y valor. La caché deaplicaciones son volátiles, lo que significa que no se almacenan en memoriadurante toda la duración de la aplicación.
Un Master Page es un archivo de ASP.NET con la extensión .master que tieneun diseño predefinido que puede incluir texto estático, elementos HTML ycontroles de servidor. El Master Page se identifica mediante una directiva@Master que reemplaza la directiva @Page utilizadas en las paginas aspx.
Para definir el contenido de los controles de la página principal, cree páginasde contenido individuales, que son páginas ASP.NET (archivos .aspx y,opcionalmente, archivos de código subyacente) que están enlazadas a unapágina principal concreta. El enlace se establece en la directiva @ Page de lapágina de contenido al incluir un atributo MasterPageFile que apunta a lapágina principal que se va a utilizar.
Puede adjuntar páginas de contenido a un Master Page en tres niveles:En el nivel de la página, puede utilizar una directiva de página en cadapágina de contenido para enlazarla a una página principal.En el nivel de la aplicación, en el Web.config, puede especificar todas laspáginas de ASP.NET (archivos .aspx) de la aplicación que se van a enlazar.En el nivel de la carpeta, la configuración se define en un archivo Web.config
en una única carpeta. Si desea hacer consultas: http://msdn.microsoft.com/es-es/library/18sc7456.aspx
Página referente al Master Page http://msdn.microsoft.com/es-es/library/wcyt4fxb.aspx
Página referente al manejo de temas y máscaras http://msdn.microsoft.com/es-es/library/75x4ha6s.aspx
Página referente al manejo de estados
-
8/17/2019 Lenguaje de Programación III_2
33/52
LENGUAJE DE PROGRAMACIÓN I I I 81
CIBERTEC CARRERAS PROFESIONALES
ACCESO A DATOS
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al término de la unidad, los alumnos elaboran aplicaciones Web que acceden a unorigen de datos y construyen reportes, listados y gráficos en Crystal Report usando elmodelo de objetos ADO.NET.
TEMARIO
El modelo de objetos ADO.NET Manejo de datos utilizando DataSet y DataReader Manejo de controles de datos: GridView, DataList, DropDownList. Manejo de controles DataSource: SqlDataSource, ObjectDataSource y
XmlDataSource, LinqDataSource. Manejo de reportes con Crystal Report Uso de reportes gráficos Llamar a un servicio Windows Communication Foundation (WCF) o a un
servicio Web desde una página Web ASP.NET.
ACTIVIDADES PROPUESTAS
• Los alumnos manejan la conexión a la base de datos de un origen de datos.• Los alumnos consultan y actualizan los datos desde un origen de datos• Los alumnos configurar los controles enlazados a los datos para realizar
operaciones de consultas y actualización.
UNIDAD DE
APRENDIZAJE
2
SEMANA
4
-
8/17/2019 Lenguaje de Programación III_2
34/52
82
CARRERAS PROFESIONALES CIBERTEC
1. INTRODUCCIÓN AL ACCESO A DATOS
La mayoría de las aplicaciones se escriben para que procesen información queestá almacenada o lo estará en un soporte concreto: una base de datos o unRDBMS. Es fundamental contar con servicios que hagan posible conectar conesos recursos y transferir la información desde y hacia la aplicación.
Estos servicios reciben la denominación genérica de ADO.NET. Esta nuevaiteración aporta una serie de interfaces y objetos, así como nuevos controles ymejoras en las clases ya existentes y, también, en el propio motor que se encargade la manipulación de los datos en el cliente.ADO.NET incorpora varios proveedores de datos, entre ellos dos que permitenconectar con SQL Server y Oracle, así como otros que facilitan el uso decontroladores ODBC y OLE DB para acceder a aquellos provenientes de Excel,Access, MySQL, etc.
2. ARQUITECTURA DE ADO .NET
Tradicionalmente, el procesamiento de datos ha dependido principalmente de unmodelo de dos niveles basado en una conexión. A medida que el procesamiento
de datos utilizacada vez másarquitecturas devarios niveles, losprogramadoresestán pasando aun enfoque sinconexión con elfin deproporcionar unaescalabilidadmejor para susaplicaciones.
2.1 COMPONENTES DE ADO.NET Existen dos componentes de ADO .NET que se pueden utilizar para obteneracceso a datos y manipularlos:• El DataSet• Proveedores de datos de .NET FrameWork
2.1.1 El DataSetEstá diseñado para el acceso a datos independientemente del origen dedatos. Como resultado, se puede utilizar con múltiples y distintos orígenesde datos, con datos XML o para administrar datos locales de la aplicación. ElDataSet contiene una colección de uno o más objetos DataTable formadospor filas y columnas de datos, así como información sobre clavesprincipales, claves externas, restricciones y relaciones relativas a los datosincluidos en los objetos DataTable
2.1.2 Proveedores de datos de .NET FrameworkUn proveedor de datos de .NET Framework sirve para conectarse a unabase de datos, ejecutar comandos y recuperar resultados. Los proveedoresde datos de .NET Framework crean un nivel mínimo entre el origen dedatos y su código, con lo que aumenta el rendimiento sin sacrificar sufuncionalidad.
-
8/17/2019 Lenguaje de Programación III_2
35/52
LENGUAJE DE PROGRAMACIÓN I I I 83
CIBERTEC CARRERAS PROFESIONALES
2.1.3 Objetos principales de los proveedores de datos de .NET FrameworkEn la tabla siguiente se describen los cuatro objetos centrales queconstituyen un proveedor de datos de .NET Framework.
Objeto Descripción
Connection Establece una conexión a un origen de datosdeterminado.
Command Ejecuta una sentencia o procedure. Expone Parameters y puede ejecutarse en el ámbito de un objetoTransaction.
DataReader Lee una secuencia de datos de sólo avance y sólolectura desde un origen de datos.
DataAdapter Llena un DataSet y realiza las actualizacionesnecesarias en el origen de datos.
Los proveedores de datos de .NET Framework también incluyen las que se
enumeran en la tabla siguiente:Objeto Descripción
Transaction Permite incluir comandos en las transacciones quese realizan en el origen de datos.
CommandBuilder Objeto que genera las propiedades de comando deun DataAdapter o que obtiene, de unprocedimiento almacenado, información acerca deparámetros con las que puede rellenar la colecciónParameters de un objeto Command.
Parameter Define los parámetros de entrada, salida para loscomandos y procedimientos almacenados.
Error Expone la información relacionada con unaadvertencia o error devueltos por un origen dedatos.
ClientPermission Se proporciona para los atributos de seguridad deacceso a código de los proveedores de datos de.NET Framework.
Proveedor de Datos
System.Data.SqlClient : Acceso a datos para SQL Server 7.0 o posterior
System.Data.OleDb: Origen de datos que se exponen mediante OLE DB
System.Data.Odbc: Origen de datos que se exponen mediante ODBC
System.Data.OracleClient : Acceso a datos de Oracle 8.1.7 o posterior
-
8/17/2019 Lenguaje de Programación III_2
36/52
84
CARRERAS PROFESIONALES CIBERTEC
3. CONEXIÓN A UNA BASE DE DATOS EN ADO.NET
3.1 CADENAS DE CONEXIONProporciona la información que un proveedor necesita para comunicarse conuna base de datos determinada. Puede almacenarse en el archivoWeb.config y hacer referencia en un control de origen de datos.
Una cadena de conexión generalmente proporciona el origen de datos, labase de datos que se debe utilizar y la información de autenticación.
3.2 MODO DE ALMACENAR UNA CADENA DE CONEXIÓN EN ELARCHIVO WEB.CONFIGIncluir las cadenas de conexión en el archivo Web.config. En el elemento, se puede crear un elemento secundario denominado e incluir allí las cadenas de conexión:
Una ventaja del almacenamiento de la cadena de conexión en el Web.configes que permite cambiar el nombre del servidor, la base de datos o lainformación de autenticación. Además, puede proteger la cadena de conexiónmediante cifrado.
3.3 MODO DE RECUPERACIÓN DE UNA CADENA DE CONEXIÓNPROGRAMÁTICAMENTEPodemos recuperar cadenas de conexión programáticamente desde elWeb.config en tiempo de ejecución. En el siguiente ejemplo, se muestracómo recuperar una cadena de conexión y utilizarlo para abrir una conexión.
3.4 MODO DE PROTEGER CADENAS DE CONEXIÓN El comando Aspnet_regiis.exe permite para cifrar la cadena de conexión;este comando se ejecuta en la línea de comandos de Windows con lasopciones siguientes:• La opción -pe, pasándole la cadena "connectionStrings" para cifrar el
elemento connectionStrings.• La opción -app, pasándole el nombre de su aplicación.En el ejemplo se muestra cómo se cifra la sección connectionStrings delarchivo Web.config de una aplicación denominada AplicacionWeb.
3.4.1 Para descifrar el contenido cifrado del archivo Web.config Ejecute la herramienta aspnet_regiis.exe con la opción -pd. La sintaxises igual para cifrar el contenido, excepto que no se especifica ningúnproveedor de configuración protegido.En el siguiente ejemplo de código se muestra cómo descifrar elelemento connectionStrings de la aplicación ASP.NET AplicacionWeb.
Dim strcon as String = _ConfigurationManager.ConnectionStrings(“Cn”).ConnectionStringDim cn as new Data.SqlClient.SqlConnection(strcon)
aspnet_regiis -pe "connectionStrings" -app "/AplicacionWeb"
aspnet_regiis -pd "connectionStrings" -app "/ AplicacionWeb "
-
8/17/2019 Lenguaje de Programación III_2
37/52
LENGUAJE DE PROGRAMACIÓN I I I 85
CIBERTEC CARRERAS PROFESIONALES
4. ACCESO A DATOS UTILIZANDO CONTROLES ENLAZADOSA DATOS ASP.NETLos controles enlazados a datos se pueden enlazar a un control de origen dedatos y buscar datos automáticamente en el momento apropiado del ciclo de vidade la solicitud de página.
Los controles enlazados a datos pueden aprovechar las ventajas de las funcionesproporcionadas por un control de origen de datos entre las que se incluyen laordenación, la paginación, el almacenamiento en caché, el filtrado, laactualización, la eliminación y la inserción.
Un control enlazado a datos establece una conexión con un control de origen dedatos a través de su propiedad DataSourceID. Los controles enlazados a datosque se describen en la tabla siguiente:
Controlesenlazados a datos Descripción
Controles de
Lista
Representan los datos en una variedad de formato de
listas. Entre los controles de lista se incluyen los controlesBulletedList, CheckBoxList, DropDownList, ListBox yRadioButtonList.
DataList Muestra un registro cada vez en disposición de tabla ypermite editar, eliminar e insertar registros. También sepuede realizar la paginación a través de varios registros.
DetailsView Permite trabajar con un archivo XML, que esespecialmente útil para controles de servidor ASP.NET jerárquicos tales como el control TreeView o Menu.
FormView Permite definir una disposición de formato libre para cadaregistro. El control FormView es como un control
DataList para un registro único.GridView Muestra los datos en una tabla e incluye compatibilidad
para editar, actualizar, ordenar y paginar datos sinnecesidad de código.
TreeView Representa los datos en un árbol jerárquico de nodos quese pueden expandir.
5. ARQUITECTURA DE DATOS EN ASP.NET
Se ha convertido en un principio ampliamente
aceptado en el diseño de aplicacionesdistribuidas la división de la aplicación encomponentes que ofrezcan servicios depresentación, empresariales y de datos.
Los componentes que realizan tipos defunciones similares se pueden agrupar encapas, que en muchos casos estánorganizados en forma de apilamiento para que
-
8/17/2019 Lenguaje de Programación III_2
38/52
86
CARRERAS PROFESIONALES CIBERTEC
los componentes que se encuentran por "encima" de una capa determinadautilicen los servicios proporcionados por ésta, y un componente especifico utilizarála funcionalidad proporcionada por otros componentes de su propia capa, y otrascapas "inferiores", para realizar su trabajo.
Desde un punto de vista de alto nivel, se puede considerar que la solución basadaen servicios está formada por varios servicios, los cuales se comunican entre sípasando mensajes. Desde el punto de vista conceptual, los servicios se puedenconsiderar como componentes de la solución global. Sin embargo, internamente elservicio está formado por componentes de software, al igual que cualquier otraaplicación, los cuales se pueden agrupar de forma lógica en servicios depresentación, empresariales y de datos.
5.1 TIPOS DE COMPONENTES DE LA ARQUITECTURA
5.1.1 Componentes de interfaz de usuario (IU).La mayor parte de las soluciones necesitan ofrecer al usuario un modode interactuar con la aplicación. Las interfaces de usuario seimplementan utilizando formularios de Windows Forms, páginasMicrosoft ASP.NET, u otro tipo de tecnología que permita procesar yvalidar los datos.
5.1.2 Componentes empresariales (BL).La aplicación requiere del uso de componentes que implementen reglasempresariales y realicen tareas empresariales. Por ejemplo, en laaplicación comercial, deberá implementar una funcionalidad que calculeel precio total del pedido y agregue el costo adicional correspondientepor el envío del mismo. Los componentes empresariales implementan lalógica empresarial de la aplicación.
5.1.3 Componentes lógicos de acceso a datos (DAL). La mayoría de las aplicaciones y servicios necesitan obtener acceso a
un almacén de datos en un momento determinado del procesoempresarial. Por ejemplo, la aplicación empresarial necesita recuperarlos datos de los productos para mostrar al usuario los detalles de losmismos. Por tanto, es razonable abstraer la lógica necesaria paraobtener acceso a los datos en una capa independiente de componenteslógicos de acceso a datos, ya que de este modo se centraliza lafuncionalidad de acceso a datos y se facilita la configuración y elmantenimiento de la misma.
5.14 Componentes de entidad empresarial (BE).La mayoría de las aplicaciones requieren el paso de datos entre distintoscomponentes. Por ejemplo, en la aplicación comercial es necesariopasar una lista de productos de los componentes lógicos de acceso a
datos a los componentes de la interfaz de usuario para que éste puedavisualizar dicha lista. Los datos se utilizan para representar entidadesempresariales del mundo real, como productos o pedidos. Las entidadesempresariales que se utilizan de forma interna en la aplicación suelen serestructuras de datos, como conjuntos de datos, DataReader osecuencias de lenguaje de marcado extensible (XML), aunque tambiénse pueden implementar utilizando clases orientadas a objetospersonalizados que representan entidades del mundo real necesariaspara la aplicación, como productos o pedidos.
-
8/17/2019 Lenguaje de Programación III_2
39/52
LENGUAJE DE PROGRAMACIÓN I I I 87
CIBERTEC CARRERAS PROFESIONALES
Propiedad que permite navegara una determinada á ina
Titulo del ítem de menú
LABORATORIO 4.1DEFINICIÓN DE UN MASTER PAGE Y PUBLICACIÓN DEUNA CONEXIÓN A UN ORIGEN DE DATOSImplemente un portal para realizar consultas y actualización de datos. Diseñe unMasterPage, agregue un control Menú para listar las opciones de consultas;publique la conexión a la base de datos llamada DBVentas, para que lasoperaciones de consultas y/o actualización puedan acceder a esta base de datos.1. Ingrese a Microsoft Visual Studio 20092. Agregue el proyecto de tipo Web Site y asigne el nombre de WebSite4.3. Agregue la plantilla Master Page, asigne el nombre de Principal.master. 4. Diseñe los controles al Master Page tal como se muestra en la figura.
5. Dentro del Master Page, dibuje un control Menú. Agregue en la ventana deleditor ítems y subitems donde a cada subitems se le ha asociado una página
Web form a través de la propiedad NavigateUrl tal como se muestra
6. Abra el archivo web.config y en la etiqueta , añada unaconexión a la base de datos.
Control Image
Control Menú:Orientación horizontal.Agregue Ítems para lasopciones del control
ControlContenPlaceHolder
-
8/17/2019 Lenguaje de Programación III_2
40/52
88
CARRERAS PROFESIONALES CIBERTEC
LABORATORIO 4.2DEFINICIÓN DE LA ARQUITECTURA DE DATOS:CONSULTA DE DATOS EN UN CONTROL GRIDVIEWEn este laboratorio, implemente una arquitectura de datos para realizar lasoperaciones de consulta y actualización de datos.1. Defina las siguientes carpetas y clases dentro del App_Code
2. Defina la cadena de conexión a la base de datos DBVentas en la claseConexionDAO
3. En la clase PedidosDAO, defina una función que retorne los pedidosalmacenados en la base de datos DBVentas
Carpeta para almacenarlas Entidad del Negocio
Carpeta para almacenar laCapa lógica del Negocio
Carpeta para almacenar laCapa de Acceso a Datos
FunciónGetCadenaConexionque retorna la cadenade conexiónpublicada en elweb.confi
Instancia de la claseConexiónDAO
Función Listado queretorna los pedidos
-
8/17/2019 Lenguaje de Programación III_2
41/52
LENGUAJE DE PROGRAMACIÓN I I I 89
CIBERTEC CARRERAS PROFESIONALES
4. En la clase PedidosBL defina la función que retorne los registros de la funciónListado de PedidosDAO
5. Agregue un Web form llamado pagePedidos, marque la opción Select MasterPage y seleccione el Master Page Principal.master. Dentro de Content1, agregue los controles que se muestra en la figura
6. Declare una función llamada pedidos de tipo DataTable que retorne losregistros de la tabla tb_pedidoscabe.
Control GridView,para establecerpaginación:AllowPa in = true
Instancia de PedidosBL
Función Listado de tipoDataTable que retornelos registros de pedidos
utilizando la funciónlistado de PedidosDAO
En el evento Load cargar elGridView con el método Listadode la instancia de PedidosBL
-
8/17/2019 Lenguaje de Programación III_2
42/52
90
CARRERAS PROFESIONALES CIBERTEC
7. En el evento PageIndexChanging del control GridView1, permite visualizar losregistros al cambiar de página en el control.
8. En el Explorador de Soluciones, seleccione la página PagePedidos comopágina de inicio, presione la combinación de teclas CTRL + F5 para ejecutar.
LABORATORIO 4.3CONSULTA DE DATOS UTILIZANDO COMANDOSPARAMETRIZADOSEn este laboratorio, implemente una página donde listará todos los pedidosalmacenados en la base de datos DBVentas al seleccionar un cliente desde uncontrol DropdownList.
1. En la clase ClientesDAO defina una función que retorne los clientes.
2. En la clase ClientesBL, defina la función que retorne los registros de la funciónListado de ClientesDAO
Al realizar el cambio de página, volver aasignar al origen de datos del GridViewlos registros a través del método listadode la instancia PedidosBL
Instancia de la claseConexiónDAO
Función Listadoque retorna losclientes
Función Listado de tipoDataTable, retorna losregistros de clientesdesde el método listadode ClientesDAO
-
8/17/2019 Lenguaje de Programación III_2
43/52
LENGUAJE DE PROGRAMACIÓN I I I 91
CIBERTEC CARRERAS PROFESIONALES
3. En la clase PedidosDAO, defina la función Listado_Cliente que retorne losregistros de pedidos por Cliente, valor de parámetro
4. En la clase PedidosBL, defina la función que retorne los registros de lospedidos por cliente en PedidosDAO
5. Agregue un Web form llamado pagePedidosCliente, marque la opción SelectMaster Page y seleccione el Master Page Principal.master. Dentro delContent1, agregue los controles como se muestra en la f igura.
Control DropDownListlista los génerosalmacenadas,AutoPostBack = true
Función Listado_Clienteque retorna los pedidos
por cliente.
Programación quepermite listar los pedidospor cliente
Función Listado_Cliente queretorna los registros depedidos por cliente desde elmétodo listado_cliente dePedidosDAO
-
8/17/2019 Lenguaje de Programación III_2
44/52
92
CARRERAS PROFESIONALES CIBERTEC
6. Defina las instancia de las entidades de negocio para pedidos y clientes
7. Programe el evento Load de la página para configurar el control DropdownListcon la información de los clientes
8. Programe el evento SelectedIndexChanged del control DropDownList paravisualizar los pedidos del cliente seleccionado
9. Presione la combinación de teclas CTRL + F5 para ejecutar y seleccione de laopción de menú Consulta de Pedidos por Clientes.
Definición de las instancias denegocios pedidos y clientes
Evento Load que configura eldropdownlist con el métodolistado de clientes
Al seleccionar un cliente,se ejecuta el método
Listado_Cliente
-
8/17/2019 Lenguaje de Programación III_2
45/52
LENGUAJE DE PROGRAMACIÓN I I I 93
CIBERTEC CARRERAS PROFESIONALES
LABORATORIO 4.4MANEJO DE PROCEDIMIENTOS ALMACENADOSEn este laboratorio, implemente una página donde liste los pedidos entre dosfechas seleccionadas desde DBVentas. En este proceso se utilizará unprocedimiento almacenado llamado usp_pedidos_fechas .
1. Defina el procedimiento almacenado para realizar las consultas de pedidos
entre fechas.
2. Defina el procedimiento almacenado para listar las fechas de la tabla pedidos.
3. En la clase PedidosDAO, defina los métodos Fechas () y Listado_Fechas ()
4. En la clase PedidosBL, defina los métodos asociados a la clase PedidosDAO.
CREATE PROCEDURE usp_pedidos_Fechas@f1 datetime, @f2 datetimeAsSelect * from tb_pedidoscabeWhere Fechapedido BETWEEN @f1 AND @f2
CREATE PROCEDURE usp_FechasAsSelect distinct FechaPedido from tb_pedidoscabe Order by 1
Método fechas,retorna las fechas delos pedidos
Método que lista lospedidos entre dosfechas, ejecuta unprocedure llamadousp_pedidos_fechas
Función Fechas, retorna las
fechas de pedidos
Función Listado_Fechas, retorna lospedidos entre dos fechas desde elmétodo de PedidosDAO
-
8/17/2019 Lenguaje de Programación III_2
46/52
94
CARRERAS PROFESIONALES CIBERTEC
5. Agregue un Web form llamado pagePedidosFechas , seleccione el MasterPage Principal.master. Agregue los controles como se muestra en la figura.
6. Defina la instancia de la capa de Negocios de pedidos
7. Programe el evento Load para cargar las fechas en los controles DropDownList
8. Programe el evento Click del control Button para ejecutar el métodoListado_Fechas enviando como parámetros los valores seleccionados de loscontroles DropDownList.
Método que lista los pedidos entredos fechas, ejecuta un procedurellamado usp_pedidos_fechas
-
8/17/2019 Lenguaje de Programación III_2
47/52
LENGUAJE DE PROGRAMACIÓN I I I 95
CIBERTEC CARRERAS PROFESIONALES
LABORATORIO 4.5CONSULTA DE DATOS UTILIZANDO CONTROLES DEORÍGENES DE DATOS Y MANEJO DE PROCEDIMIENTOSALMACENADOS EN ADO.NETEn este laboratorio, implemente una página donde liste los productos por
categoría, seleccionados desde un control DropDownList, visualizando losproductos en un control DataList. En este proceso defina procedimientosalmacenados para la solución del problema.
1. Defina el procedimiento almacenado para realizar las consultas de categorías.
2. Defina el procedimiento almacenado para listar las fechas de la tabla pedidos.
3. En la clase ProductosDAO, defina el método categorías que retorne susregistros
4. En la clase productosDAO, defina el método pedidos por categoría que retornelos pedidos por categoría
CREATE PROCEDURE usp_categoriasAS
Select * from tb_categorias
CREATE PROCEDURE usp_pedidos_categorias@cat char(4)AS
Select * from tb_productosWhere idcategoria=@cat
Método que lista los productos poruna categoría ejecutando elprocedure usp_pedidos_categorías
-
8/17/2019 Lenguaje de Programación III_2
48/52
96
CARRERAS PROFESIONALES CIBERTEC
5. Agregue un Web form llamado pageProductos, seleccione el Master PagePrincipal.master. Agregue los controles como se muestra en la figura
6. A continuación, editamos el DataList para agregar controles en su plantilla:seleccione desde la lista de Tareas la opción Editar plantillas.
7. En el ItemTemplate del control DataList, agregue los controles los cualespermitirán visualizar los datos del producto. Al finalizar seleccionar la opciónTerminar edición de plantilla
Control DataList que permite listarlos productos por columnas y filas
Seleccione la opción Editar Plantilla
para agregar controles
Control Image de HTML
Controles Label
-
8/17/2019 Lenguaje de Programación III_2
49/52
LENGUAJE DE PROGRAMACIÓN I I I 97
CIBERTEC CARRERAS PROFESIONALES
8. Enlace a cada Label, agregado al ItemTemplate, una columna de la tablatb_productos, tal como se muestra, presione el botón Aceptar
9. Para determinar el número de columnas por fila, seleccione de Tareas delDataList la opción Generador de Propiedades
10. Asignada lapropiedad, elDataList sevisualiza talcomo semuestra en lafigura
Asigne a lapropiedad ColumnsColumnsColumnsColumnsel valor de 3,donde, por cadafila se visualizatres productos
En la propiedad Text de cada Label,asigne la expresión Eval(“nombre campo”)
-
8/17/2019 Lenguaje de Programación III_2
50/52
98
CARRERAS PROFESIONALES CIBERTEC
11. Como siguiente paso desarrollamos la parte de la programación en el modelode la arquitectura “n” capas. En la clase clase ProductosBL referencie losmétodos de la clase ProductosDAO:
12. Para realizar el proceso de la consulta, en la página PageProductos.aspx,instancie la clase ProductosBL en productos; en el evento Page_Loadconfigure el control DropDownList con los registros de Categorías.
13. Programe el evento SelectedIndexChanged del control DropDownList dondeliste los productos por categoría.
13. Presione Ctrl + F5, al seleccionar una categoría liste los productos.
Método Categorías () quereferencia al método de laclase ProductoDAO
Método Producto_Categorías ()que referencia al método de laclase ProductoDAO
Evento Load que configura eldropdownlist con las categorías
Instancia de ProductosBL
Evento SelectedIndexChanged deldropdownlist para listar los productos porlas categorías
-
8/17/2019 Lenguaje de Programación III_2
51/52
LENGUAJE DE PROGRAMACIÓN I I I 99
CIBERTEC CARRERAS PROFESIONALES
Autoevaluación
1. ¿Qué es ADO.NET?2. Explique cada uno de los componentes que su utilizan en ADO.NET3. ¿Cuáles son los proveedores de base de datos más utilizados en ADO.NET?
Explique cada uno de ellos.4. ¿Cuáles son los objetos principales de los proveedores de base de datos?
Explique cada uno de ellos.5. ¿Cómo se almacena una cadena de conexión en el web.conifg?6. Explique brevemente cada uno de los controles de orígenes de datos en
ASP.NET
Para recordar
ADO.NET incorpora varios proveedores de datos, entre ellos dos que permitenconectar con SQL Server y Oracle, así como otros que facilitan el uso decontroladores ODBC y OLE DB para acceder a aquellos provenientes deExcel, Access, MySQL, etc.
Existen dos componentes de ADO .NET que se pueden utilizar para obteneracceso a datos y manipularlos: DataSet, Proveedores de datos de .NETFrameWork
El DataSet está diseñado para el acceso a datos independientemente delorigen de datos. Contiene una colección de uno o más objetos DataTableformados por filas y columnas de datos, así como información sobre clavesprincipales, claves externas, restricciones y relaciones relativas a los datosincluidos en los objetos DataTable
Proveedores de datos sirve para conectarse a una base de datos, ejecutarcomandos y recuperar resultados. Los proveedores de datos de .NETFramework crean un nivel mínimo entre el origen de datos y su código, con loque aumenta el rendimiento sin sacrificar su funcionalidad.
Una cadena de conexión proporciona la información que un proveedornecesita para comunicarse con una base de datos determinada. Se puedealmacenar en el archivo Web.config y hacer referencia en un control de origende datos.
Es recomendable incluir las cadenas de conexión en el archivo Web.config. Enel elemento , se puede crear un elemento secundariodenominado
Los controles enlazados a datos representan datos como marcados alexplorador que realizó la solicitud. Un control enlazado a datos se puedeenlazar a un control de origen de datos y buscar datos automáticamente en elmomento apropiado del ciclo de vida de la solicitud de página.
Consultar a las siguientes páginas: http://bjcu.uca.edu.ni/LibrosIstiII/Arquitectura%20de%20Aplicaciones%20.N
ET_%20Dise%C3%B1o%20de%20Aplicaciones%20y%20Servicios.pdf Página referente a la arquitectura de servicios
-
8/17/2019 Lenguaje de Programación III_2
52/52
100