Børre Stenseth
Moduler>Websites>Templates>Kurssite

Webkurs

Hva
En enkel versjon av kurssite

Dette er resultatet av en rask (halvtime) oversetting av materialet fra vevstdet som administrerer et kurs i .Net ved høgskolen. Merk at eksempelet ikke oppdateres og ikke på noen måte er noen korrekt beskrivelse av kurset.

Originalen finnes på: http://www.it.hiof.no/~borres/dnkurs. Originalen er bygget med WXT som også arbeider med et skille mellom templates, innholdssider, vevstruktur og stilsett.

Du kan se det oversatte vevstedet herhttp://donau.hiof.no/borres/dn/demosite5/Default.aspx

Templates

Den viktigste prinsippielle forskjellen mellom de to måtene å lage vevstedet på (WXT og .NET) er måten innholdet plasseres i templaten (Masterpage).

WXT

I WXT gjøres dette i en byggeprosess der XPATH-uttrykk brukes til å hente inn innhold til en template og produsere faste sider. Mekanismen er Processing Instructions som er lovlige XML-uttrykk. I en template

<div>
	<?_wxt import xpath="//div[@id='mainblock']/*"?>
</div>

I en innholdsfil finner vi matcen slik:

<div class="mainblock">
	<p>
	innhold.....
	</p>
</div>

WXT har altså en strategi der templaten er utgangspunktet og innholdet hentes inn.

.Net

I .Net gjøres jobben dynamisk ved hjelp av webkontrollene: asp:contentplaceholder på masterpage og asp:Content på innholdsside. Sistenevnte referer til en placeholder i Masterpage.

På en masterpage:

<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>

På en innholdsside:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<p>
	Innhold ...
</p>
</asp:Content>

Vi ser at referansen går motsatt vei.

Sitemap

En annen forskjell er at i WXT lages vevstedstrukturen i det XML-skriptet som driver hele byggeprosessen, mens i .Net lages strukturen i en sitemap, som også er en XML-fil, som brukes under den dynamiske byggingen.

WXT

Et skript i WXT inneholder i prinsipp alt som er nødvendig for å bygge. Vi ser at skriptet nedenfor innholder definisjoner av det som er kalt propertie. Slike XML-fragmenter kan hentes inn og plasseres hvor som helst på sidene og opptrer som en slags konstanter. Vi ser også at vi definerer templates. Skriptet i WXT ser slik ut.:

<?xml version="1.0" encoding="ISO-8859-1"?>
<script version="1.0">
<property name="pub_address">
<a href="http://www.it.hiof.no/~borres/dnkurs">
http://www.it.hiof.no/~borres/dnkurs
</a>
</property>
<property name="fagref">
      <a href="http://www.it.hiof.no/~borres/dn">BS: .Net/C#</a><br/>
      <a href="http://www.it.hiof.no/~borres/ml">BS: XML etc.</a><br/>
</property>
<property name="forum">
  <a href="http://webboard.hiof.no/" 
           title="external link" class="external" >WebBoard</a><br/>
</property>
<property name="navigare">
<div style="text-align:right">
        <span class="prev"><?_wxt xref pageid="_prev" image="gfx/prev.gif"?></span>
        <span class="home"><?_wxt xref pageid="_home" image="gfx/home.gif"?></span>
        <span class="next"><?_wxt xref pageid="_next" image="gfx/next.gif"?></span>
 </div>
</property>
<group name=".Net" location="_scriptpath">
    <addressing tagname="script" attribute="src"/>
    <description>Kursgjennomføring .Net</description>
    <commons name="gfx" location="../common/kurssites/gfx/"/>
    <template name="P" location="../common/kurssites/templates/p_template.xml"/>
    <template name="I" location="../common/kurssites/templates/i_template.xml"/>
    <property name="keywords">.net,c#</property>
    <page name="Om kurset" template="P" location="pages/p-kurs.html">
      <description>Kursplan, samlinger og frister</description>
      <content location="blocks\b-kurs.xml"/>
    </page>
    <page name="Aktuelt" template="I" location="index.html">
      <description>Informasjon om aktuell kursgjennomføring</description>
      <content location="blocks\b-aktuelt.xml"/>
    </page>
    <page name="Ressurser" template="P" location="pages/p-ressusrer.html">
      <description>Ressurser i kurset</description>
      <content location="blocks\b-ressurser.xml"/>
    </page>
    <page name="Arbeidsform" template="P" location="pages/p-oppgave.html">
      <description>Beskrivelse av prosjektarbeidet i kurset</description>
      <content location="blocks\b-oppgave.xml"/>
    </page>
</group>
</script>

.Net

siteMap i .Net ser slik ut:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title=""  description="" >
        <siteMapNode url="Omkurset.aspx" title="Om kurset"  description="" />
        <siteMapNode url="Default.aspx" title="Velkommen"  description="" />
        <siteMapNode url="Arbeidsform.aspx" title="Arbeidsform"  description="" />
        <siteMapNode url="Ressurser.aspx" title="Ressurser"  description="" />
    </siteMapNode>
</siteMap>
Referanser
Prosjekt:
https://svn.hiof.no/svn/psource/Csharpsites/demosite5
Vedlikehold

B.Stenseth, januar 2007

(Velkommen) Moduler>Websites>Templates>Kurssite (Flerbrukssider)