Master Pages:
Master Pages is een van de nieuwe dingen van Visual Studio 2005.
In dit artikel zal ik proberen aan te geven welk (nieuwe) voordelen Master Pages hebben.
Master Pages zijn ASP.NET bestanden die kunnen bestaan uit: HTML, Web server controls en server side code. Master pages vertegenwoordigen echter niet complete webpagina’s. De content en functionaliteit die in een Master Page zit is samengesteld uit andere pagina’s.
In tegenstelling tot Webforms heeft een master page geen @Page directive. In plaats daarvan heeft de Master Page een @master directive..
De voordelen van Master Pages zijn:
• Ze bieden je de mogelijkheid om een gemeenschappelijke functionaliteit te centraliseren. Het voordeel is dat als je een update wilt doen je dat maar op een plek hoeft te doen.
• Het is gemakkelijk om een set van controls en code te maken en deze op een aantal pagina’s te plaatsen.
• Master Pages geven je goede controlemogelijkheden over de layout van een bepaalde pagina. Dit wordt gedaan door de mogelijkheid om te controleren hoe de content van een pagina dat de Master Page gebruikt wordt gerendered.
• Ze bieden een objet model die je in staat stellen om elementen van de Master Page te benaderen van de pagina’s die de Master Page gebruiken.
Master Pages worden niet direkt door de browser aangeroepen. In plaats daarvan worden asp.net website’s, aspx files door de browser aangeroepen..
Als een webpagina een referentie heeft naar een Master Page dan handelt ASP.NET de aanroep op de volgende wijze af.
• ASP.NET haalt de opgevraagde pagina op;
• ASP.NET haalt de Master Page op. Dit gebeurt doordat er vanuit de opgevraagde pagina een referntie is naar de Master Page;
• Vervolgens voegt ASP.net de content van de master page met de content van de opgevraagde pagina.
• ASP.NET stuurt deze samenvoeging naar de browser.
Master pages hebben een of meer ContentPlaceholder controls. In deze Placeholder controls is de locatie aangegeven waar de content van de opgevraagde pagina(de pagina die een referentie heeft naar de Master Page) wordt samen gevoegd.
Content Pages:
Content pagina’s zijn web pagina’s die een referentie hebben naar de master page. Deze referentie wordt gedaan door een Master PageFile attribuut toe te voegen in de @Page directive.
Content pages bieden je de mogelijkheid om specifieke content te genereren. Deze content wordt in runtime samengevoegd met de generieke content van de master page.
In het volgende voorbeeld wordt weergegeven hoe een content page de Master PageFile attribuut gebruikt om een verbinding te leggen met de
Master1.master page:
//[C#]
<%@ Page Language=”C#” Master PageFile=”~/Master1.master”%>
Op het moment dat een content page getoond wordt dan zitten daar de layout, controls en code van de master page. Dit natuurlijk vanwege de referentie naar de master page.
Nested Master Pages:
Ook kun je master pages nesten. Hierbij legt een master page een referentie naar een andere master page. De master page waar naar de referentie gelegd wordt is dan de parent master. De Master Page waarin de referentie staat naar de parent wordt dan de child master genoemd.
Geneste master pages bieden je de mogelijkhheid om componentized master pages te maken. Een grote pagina heeft bijvoorbeeld een overkoepelend Master Page. Deze master page bepaalt de algemene outlook voor de site. Bepaalde delen van de site kunnen dan child master pages gebruiken om voor die specifieke delen een consistente layout of controls of functionaliteit te maken.
Conclusie:
In Visual Studio 2005 heb je nog meer mogelijkheden gekregen om een gemeenschappelijke en consistete layout te maken met behulp van Master pages
Mesfun Habtab is .Net programmeur bij Universal Music Group in Baarn.
In 2003 is hij zich gaan verdiepen in .Net. Hij heeft meegewerkt aan projecten bij T-Systems en Interpolis.
Binnen Universal Music Group ontwikkelt hij ASP.NET applicatie’s. Deze applicatie’s maken gebruik van een eigen ontwikkeld framework. Dat framework is ontwikkeld volgens een 4 lagen model.