Wednesday, August 20, 2008

First down

Så skete det at jeg fik klaret første afsnit i bogen. Indlæg om kode kommer nok til at se ud i stil som det her indlæg. Først en introduktion til "problemet", derpå et afsnit teori om nødvendigt, og slutteligt den praktiske kode, den praktiske kode vil ikke være den komplette kode, men burde være til at forstå hvor passer ind, derudover prøver jeg så vidt muligt at lave code highlighting.

Problemet

Find ud af hvornår den aktuelle fil sidst er ændret, i Classic ASP bruger vi FSO og i .Net hiver vi tingene ud med System.IO, som reelt er det samme. En anden problemstilling er at funktionen skal være tilgængelig fra alle sidder.

Teori

I den her omgang teori kigger jeg lidt på opbygningen af asp.net sider.

Efter .Net 2.0 er muligheden for MVC blevet meget bedre. MasterPages er implementeret og CodeBehind filerne eksisterer stadig. Derudover eksisterer App_code mappen også stadig.

Dictionary:

  • MVC: Model View Controller, et udviklings mønster hvori applikations logik(model) er adskilt fra præsentations logik(view), og bundet sammen med en controller
  • MasterPages: En template fil der i asp.net virker som en adskiller i præsentations logikken.
  • CodeBehind: En .cs eller .vb fil som regel har de formatet .aspx.cs. Den virker som controller
  • App_Code: Mappen hvor i al kode til applikations logikken(Model) ligger. Herunder Data manipulerings klasser.

I dette første eksempel har ObjectOrientering og MVC været en smule overkill, men eksisterer stadig. I bogen som denne artikel serie springer ud af er der ikke lagt vægt på udviklings mønstre da det ikke har været et generelt fokus i ASP verdenen, derfor er det også noget jeg vil kigge på i denne serie.

Praktisk

Default.aspx:
<form id="form1" runat="server">
<asp:label id="lbl1" runat="server" />
</form>

Default.aspx.cs:

HUSK: using System.IO;
protected void Page_Load(object sender, EventArgs e)
{
  ModifiedDate(lbl1, Request.PhysicalPath);
}

protected void ModifiedDate(Label reciever, string Path)
{
DateTime ModifiedDate = File.GetLastWriteTime(Path);
reciever.Text = ModifiedDate.ToString();
}

Code forklaring

Default.aspx: Der er form tags som har attributten runat, sat til server. Og så har vi en enkelt label, som er den der skal modtage vores Tid

Default.aspx.cs: her ligger funktionaliteten, Page_Load funktionen er en funktion der automatisk bliver kørt når siden loades. ModifiedDate modtager 2 argumenter, en label der skal modtage vores dato og en Sti til den fil vi vil checke. Så bruger vi File klassens metode GetLastWriteTime som modtager stien til en fil og returnerer et DateTime object, derefter udskrives det til den label vi modtog som parameter

Kommentarer er meget velkomne.

/Nicolai

Post a Comment

Choose a month: