• No se han encontrado resultados

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

N/A
N/A
Protected

Academic year: 2021

Share "Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net"

Copied!
21
0
0

Texto completo

(1)

Marcos de Desarrollo

Diseño e implementación de aplicaciones Web con .NET

(2)

Objetivos

Conocer la solución de ASP.NET para crear "plantillas"

de páginas Web

(3)

Master Pages

ASP.NET 1.x carecía de sistema de plantillas

Solución: controles de usuario, que permiten agrupar varios

controles

ASP.NET 2.0:

Master Pages

Las

Master Pages

(páginas maestras) permiten crear un

diseño común, que será compartido por varias

Content Pages

(páginas de contenido)

Solución más elegante al problema de definir un "

look and

feel

" común

(4)

Master Pages

Página Maestra (Master Page)

Página de Contenido

(Content Page)

(5)

Master Pages

Las páginas maestras definen las zonas de contenido variable, con el control

<asp:ContentPlaceHolder>

Es posible definir varias zonas de contenido variable en una misma página maestra (varios

ContentPlaceHolders)

Las páginas de contenido hacen referencia a las páginas maestras y rellenan las zonas de

contenido variable con el control

<asp:Content>

Todo contenido de una página de contenido debe aparecer entre controles Content

<%@ Master ... <asp:ContentPlaceHolder ID="Main" runat="server" /> <%@ Page ... MasterPageFile= "~/Site.master" %> <asp:Content ID="Content1" ContentPlaceHolderID= "Main" runat="server" /> </asp:Content>

(6)
(7)

Master pages. Página maestra (.Master)

<%@ Master Language="C#" AutoEventWireup="true" Codebehind="MyMasterPage.master.cs" Inherits="AspDotNetTutorial.MyMasterPage" %>

<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">

<title>ASP.NET Tutorial</title>

<link href="Styles.css" rel="stylesheet" type="text/css" /> </head>

<body>

<div id="window">

<!-- Body content. --> <div>

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>

</div>

<!-- Footer. -->

<div id="footer">&copy; Universidad de A Coruña - 2012</div> </div> </body> </html>

MyMasterPage.Master

Identifica el espacio

para el contenido

(8)
(9)

Master pages. Página de contenido (.aspx)

<%@ Page Language="C#" MasterPageFile="~/MyPageMaster.Master" AutoEventWireup="true" Codebehind="MyContentPage.aspx.cs"

Inherits="AspDotNetTutorial.MyContentPage"

Title="My Content Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<form id="form1" runat="server">

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" /> </form>

</asp:Content>

MyContentPage.aspx

Indica qué

contenedor rellena

(10)

Contenido por defecto

Los controles

ContentPlaceHolder

pueden definir

contenido por defecto

El contenido por defecto se muestra únicamente si la

página de contenido no lo sobrescribe

<%@ Master ... %>

...

<asp:ContentPlaceHolder ID="Main" runat="server">

Este es el contenido por defecto, que aparecera si no hay ningun control <asp:content> que le proporcione contenido en una página de contenido hija

(11)

Páginas maestras anidadas

Es posible crear una página maestra que haga

referencia a una página maestra ya existente

Una página maestra (padre) define la apariencia general

del sitio

Otra página maestra basada en la primera (hija)

extiende la apariencia visual del sitio Web

De utilidad en grandes sitios Web en los que existen

subconjuntos de páginas que comparten apariencia

visual

(12)

Páginas maestras anidadas

Página maestra "padre"

<%@ Master Language="C#" AutoEventWireup="true"

Codebehind="ParentMaster.master.cs" Inherits="WebApplication1.ParentMaster" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server"> <title>New Website</title> </head>

<body>

<form id="form1" runat="server"> <div>

<h1>This is parent master code</h1>

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

</div> </form> </body> </html>

(13)

Páginas maestras anidadas

Página maestra "hija"

<%@ Master Language="C#" MasterPageFile="~/ParentMaster.Master" AutoEventWireup="true"

Codebehind="ChildMaster.master.cs" Inherits="WebApplication1.ChildMaster" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<h2>This is child master code</h2>

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

(14)

Páginas maestras anidadas

Página de contenido

<%@ Page Language="C#" MasterPageFile="~/ChildMaster.Master"

AutoEventWireup="true" Codebehind="WebForm1.aspx.cs"

Inherits="WebApplication1.WebForm1" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<p>This is content code</p>

(15)

Páginas maestras anidadas

(16)

Aplicar una página maestra a un sitio Web

Es posible designar la página maestra de todas las páginas pertenecientes a un

mismo sitio Web

Archivo

Web.config

Todas las páginas

que tengan controles Content

se combinarán con la página

principal especificada

Se asegura que todas las páginas del sitio Web seguirán el diseño de la página

maestra, incluso aquéllas que carezcan del atributo

MasterPageFile

en la

directiva

<%@ Page

La definición a nivel de página tiene preferencia sobre la definición a nivel de

aplicación

<configuration>

<system.web>

<pages masterPageFile="~/MasterPage.master" />

</system.web>

</configuration>

(17)

La propiedad

Page.Master

En ocasiones, puede ser necesario acceder desde una página de contenido a

controles definidos en la página maestra

La propiedad

Page.Master

devuelve una referencia a la página maestra

Instancia de clase derivada de

System.Web.UI.MasterPage

Null

si la página no está asociada a una página maestra

Permite acceder a contenido definido en la página maestra. Opciones:

Weak Typing

, utilizando FindControl()

(18)

La propiedad

Page.Master

Weak Typing

, utilizando FindControl()

Pág. Maestra, .aspx:

Pág. Contenido, .aspx.cs:

<asp: Label ID="Title" runat="server"/>

(19)

La propiedad

Page.Master

Strong Typing

, utilizando propiedad pública (más recomendable)

Pág. Maestra, .aspx:

Pág. Maestra, .aspx.cs:

Pág. Contenido, .aspx.cs:

public String TitleText {

get { return Title.Text; } set { Title.Text = value; } }

<asp: Label ID="Title" runat="server"/>

(20)

Página maestra según el navegador

Es posible seleccionar automáticamente una página

maestra dependiendo del navegador

Ejemplo:

Lista de navegadores disponibles (en el servidor de

producción):

C:\Windows\Microsoft.NET\Framework\[Version]\Config\Browsers

Algunos ejemplos:

blackberry, chrome, firefox, ie, iemobile, iphone, opera, safari

Se pueden añadir archivos .browser si es necesario

<%@ Page Language="C#" MasterPageFile="~/General.Master"

Chrome:MasterPageFile="~/Chrome.Master"

(21)

Bibliografía

Recomendada:

M. MacDonald, A. Freeman, M. Szpuszta. Pro ASP.Net

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Enviar correo electrónico, proveedores de correo electrónico, servicios adicionales de google, Página web, fases para el desarrollo de páginas web, foro de discusión,

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

No tienes que crear un fichero distinto para cada página, sino que el mismo fichero lo utilizarás en todas las páginas, a no ser que existan algunas páginas con estilos visuales

Sin embargo, esta interpretación ecomorfológica cuenta con una evidencia en contra, ya que en venta Micena está presente una especie de Praeovibos que exhibe también una gran

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o