Et site med kursusmaterialer, der bruges i forbindelse med undervisning i forskellige it relaterede emnerEn skøn grafik du kan nyde mens der undervises.
   

Send spørgsmål eller kommentar til Thor - klik her: Send en kommentar til Thor - omkring undervisning eller kursus  Søg i kursusmaterialerne. Kan bruges i forbindelse med undervisningen eller efter kurset  Til forsiden af kursusmaterialer.dk 

 

ASP.NET I / Code behind / Hvorfor det


ASP.NET fjernundervisningskursus

- Vil du gerne på kursus NU?

- Vil du gerne lære i dit eget tempo?

- Har du ikke tid til at tage på kursus ude i byen?

Så køb et kursus i ASP.NET som fjernundervisning på www.it-fjernundervisning.dk


Code behind

Hvorfor bruger man det??

Når man bruger code-behind filer opnår man dels en total adskillelse af kode og design (ren html) og dels at kodedelen kan kompileres. Code behind er ikke specielt godt understøttet af WebMatrix, men det er svært at undgå at bruge det når/hvis man skifter til Visual Studio .NET - lad os se, hvordan det virker.

 

Hvordan gør man?

Jeg har sakset et lille eksempel fra nettet. Der er to dele i sådan en konstruktion:

Den almindelige .aspx fil

Der f.eks. kan se sådan her ud (den hedder WebForm2.aspx):

<%@ Page Language="vb" AutoEventWireup="false"
  Codebehind="WebForm2.aspx.vb" Inherits="WebForm2"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>WebForm2 Code-Behind Test</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">
   <asp:Button id="Button1" runat="server" Text="Button">
   </asp:Button>
   <br />
   <br />
   <asp:Label id="Label1" runat="server">Label</asp:Label>
    </form>
  </body>
</html>

Kode delen

Selve programmeringdelen ligger i en fil for sig selv, der kunne hedde WebForm.aspx.vb og den kunne se sådan her ud:

Public Class WebForm2
    Inherits System.Web.UI.Page
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label
    Private Sub Button1_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = "I was clicked at: " & System.DateTime.Now
    End Sub
End Class

 

Så skulle man tro det virkede men... prøver man vil man få en fejlmelding (prøv selv). Det er fordi koden skal kompileres til en dll, der skal ligge i bin biblioteket på dit web-site. Det gør man kan kommandoen:

vbc /t:library /out:bin\WebForm2.dll /r:System.dll /r:System.Web.dll WebForm2.aspx.vb 

Det kan være smart at kopiere vbc.exe filen til den samme mappe, som har de øvrige filer liggende i eller lave en lille bat fil til kompileringen.


Lidt ressourcer fra nettet:

  • ASP.NET Code Behind Pages from 4GuysFromRolla
  • INFO: ASP.NET Code-Behind Model Overview`
  • ASP.NET Unleashed Sample Chapter 6 - the section on code-behind is Separating Code from Presentation
  • Reusability in ASP.NET: Code-behind Classes and Pagelets
  • Developing User Controls in a Code-Behind File
  • Working with Single-File Web Forms Pages in Visual Studio .NET - a little on not using code-behind in VS.NET

  •    
    Spacer Spacer Spacer Spacer