ASP.NET Web Pages. Copyright Mahmud Al Hakim Först lite Classic ASP :-)

Relevanta dokument
ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

ASP.NET Web Forms. Copyright Mahmud Al Hakim Vad är Web Forms?

Kursplanering Utveckling av webbapplikationer

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

PHP. Dynamiska webbsidor

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Webbprogrammering. Sahand Sadjadee

HTML och CSS. Eric Elfving Institutionen för Datavetenskap (IDA)

PHP. TNMK30 - Elektronisk publicering

Avancerade Webbteknologier

Statistik från webbplatser

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

F8 Webbteknologier 1. Dynamiska webbsidor

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats.

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

E12 "Evil is going on"

Introduktion HTML och PHP 732G16 Databaser design och programmering

Användarhandledning Version 1.2

JAVASCRIPT. Beteende

Föreläsning 4. CSS Stilmallar för webben

Karlstads Universitet, Datavetenskap 1

Introduk+on +ll programmering i JavaScript

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

INTRODUKTION TILL ANGULAR JS

Introduktion till PHP

Statistik från webbplatser

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

E13 "Behind the Wild"

<script src= "

21/01/2016. Stilmallar. styra utseendet av webbplatsen DEL 1. Karin Fahlquist. index.html. recept.html frukt.html grönsaker.html

Webbprogrammering. Introduktion till PHP. Christian Ohlsson

ASP.NET Thomas Mejtoft

Lite mer om CGI-programmering

Webbservrar, severskript & webbproduktion

HTML och CSS. Eric Elfving Institutionen för datavetenskap. 18 augusti 2015

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Webbsidor och webbservrar

Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Exemple på Tentauppgifter Webbprogrammering

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Introducerande övningar i HTML

Objektorienterad programmering Föreläsning 2

Asp.net mvc intro PER KVARNBRINK,

Labora&on 8 Formulär övningar/uppgi6er

Labora&on 2 HTML och validering övningar/uppgi:er

Labora&on 7 Syfte med laborationen:

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5

Spelprogrammering med JavaScript och HTML5

Innehåll. PHP Grundkurs. Introduktion till PHP. Kurslitteratur. Webbserver. Lite historik. PHP Grundkurs 1

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

JavaScript. En Introduktion

PHP - Fortsättning. PHP och MySQL

Introduktion till programmering

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Innehåll. MySQL Grundkurs

<Webbutvecklare lektion="02"> Kursledare: Mahmud Al Hakim

Kommunikation. Dator med webbläsare Förfrågan: Webserver. Returnerar HTML-kod

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

En bortsprungen katt

Programbeskrivning. Chaos på Web. Version

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Webbserver och HTML-sidor i E1000 KI

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Nätet. Uppgiften. Nivå

Frekvenstabell över tärningskast med C#

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Labora&on 3 HTML och struktur övningar/uppgi:er

Elektronisk publicering TNMK30

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

F02 En första sida. Dagens agenda

Programmering B med Visual C

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Räkna med ASP.NET MVC 3

En snabb titt på XML LEKTION 6

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

<header> </header> <footer> </footer>

Objektorienterad programmering Föreläsning 5

En grundkurs i hemsidor och hur de är uppbyggda

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

WEBBUTVECKLING Kursplanering

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

Modul 8 Hantering av indata

Integrerad i egen cup-portal Sid 1

Lektion 2, Grundläggande funktioner i ASP.NET

Webbutveckling med AngularJS

E12 "Evil is going on"

CMS. - Content management system

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

TNMK30 - Elektronisk publicering

Språk för webben introduk4on 4ll HTML

MVC med Javascript och Ajax. Filip Ekberg

Transkript:

ASP.NET Web Pages Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se Innehåll Först lite Classic ASP :-) VBScript ASP Formulär ASP Cookies (Kakor) ASP.NET Web Pages Razor syntax Sökvägar (PATH) Formulär Mallar Filhantering (TXT och CSV) Helpers (Chart och WebImage) Copyright 2015 Mahmud Al Hakim www.webbacademy.se 2 ASP.NET Web Pages 1

Vad är ASP? ASP står för Active Server Pages och är en teknik utvecklad av Microsoft (1996) för att skapa dynamiska webbsidor och webbapplikationer. ASP-koden tolkas av webbservern IIS (Internet Information Server) som sedan levererar vanlig HTMLkod till webbläsaren. ASP-koden är inte synlig för användaren. ASP-kod kallas för Server-Side Script", till skillnad från Client-Side Script", som tolkas av användarens webbläsare (exempelvis JavaScript). JScript eller VBScript används för att koda ASP-sidor. ASP kallas idag Classic ASP. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 3 Classic ASP En Asp-fil innehåller HTML och skript som körs på serversidan (ServerSide). När en webbläsare begär en asp-fil så skickar webbservern (IIS *) filen till en ASP-motor som tolkar filen och exekverar alla skript. Sedan skickas en ren HTML tillbaka till webbläsaren. * IIS = Internet Information Server Copyright 2015 Mahmud Al Hakim www.webbacademy.se 4 ASP.NET Web Pages 2

Classic ASP En grundmall <!DOCTYPE html> <html> <body> <% // Här skrivs ASP-kod %> </body> </html> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 5 Classic ASP Exempel 1 <!DOCTYPE html> <html> <body> <% Response är ett ASP-Objekt som används för att skicka utdata (Output) till webbläsaren från servern // Skicka text till webbläsaren Response.Write("Hej Classic ASP!") %> </body> </html> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 6 ASP.NET Web Pages 3

Classic ASP Exempel 2 <!DOCTYPE html> <html> <body> <% // Skicka vidare till en annan URL Response.Redirect("http://webbacademy.se") %> </body> </html> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 7 Lite VBScript VBScript (Visual Basic Scripting Edition) är skriptspråket som används som standard i Classic ASP. VBScript lanserades av Microsoft år 1996 och är baserad på programspråket Visual Basic. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 8 ASP.NET Web Pages 4

VBScript Variabler och fält Alla variabler i VBScript är av typen variant (otypade) och deklareras med nyckelordet Dim Fält (array) skapas genom att lägga till parenteser och antal element (minus 1) efter variabelnamnet t.ex. Dim lista(9) skapar ett fält med 10 platser. Flerdimensionella fält skapas genom att lägga till komma tecken i parentesen så här: Dim tabell(9,1) skapar ett tvådimensionellt fält med plats till 10 rader och två kolumner. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 9 VBScript Exempel 1 <% Dim namn namn = "Mahmud" Dim age age = 42 response.write("namn: " & namn) response.write("<br>") response.write("ålder: " & age) %> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 10 ASP.NET Web Pages 5

VBScript Exempel 2 <% Dim lista(1) lista(0) = "Mahmud" lista(1) = 42 response.write("namn: " & lista(0) ) response.write("<br>") response.write("ålder: " & lista(1) ) %> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 11 VBScript Sub Procedure En Sub Procedure är en enkel funktion som inte får returnera ett värde! Sub meddelande() response.write("detta är ett meddelande") End Sub Anrop sker genom att skriva Call eller bara procedure-namnet Call meddelande() Copyright 2015 Mahmud Al Hakim www.webbacademy.se 12 ASP.NET Web Pages 6

VBScript Function Procedure En Function Procedure är en funktion som kan returnera ett värde! Return sker genom att tilldela funktionsnamnet ett värde. Function medel(a,b) medel = (a+b)/2 End Function response.write(medel(3,4)) Copyright 2015 Mahmud Al Hakim www.webbacademy.se 13 VBScript If-satsen <% i = hour(time) If i < 12 Then response.write("god morgon") Elseif i > 19 AND i < 24 Then response.write("god kväll") Else response.write("god dag") End If %> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 14 ASP.NET Web Pages 7

VBScript For-satsen Dim vecka(6) vecka(0)="måndag" vecka(1)="tisdag" vecka(2)="onsdag" vecka(3)="torsdag" vecka(4)="fredag" vecka(5)="lördag" vecka(6)="söndag" For x=0 to 6 Next response.write(vecka(x) & "<br>") Copyright 2015 Mahmud Al Hakim www.webbacademy.se 15 VBScript For Each -satsen Dim vecka(6) vecka(0)="måndag" vecka(1)="tisdag" vecka(2)="onsdag" vecka(3)="torsdag" vecka(4)="fredag" vecka(5)="lördag" vecka(6)="söndag" For Each x In vecka response.write(x & "<br>") Next Copyright 2015 Mahmud Al Hakim www.webbacademy.se 16 ASP.NET Web Pages 8

Cookies (Kakor) En kaka (cookie) är en liten textfil som webbplatsen du besöker begär att spara på din dator. Kakor används på många webbplatser för att ge en besökare tillgång till olika funktioner. Det går att använda informationen i kakan för att följa hur användare surfar. Enligt lagen om elektronisk kommunikation ska alla som besöker en webbplats med kakor få tillgång till information om att webbplatsen innehåller kakor och ändamålet med användningen av kakor. Besökaren ska också lämna sitt samtycke till att kakor används. Källa: Post- och telestyrelsen www.pts.se Copyright 2015 Mahmud Al Hakim www.webbacademy.se 17 ASP Cookies (VBScript) dim numvisits response.cookies("numvisits").expires=date+365 numvisits=request.cookies("numvisits") if numvisits="" then response.cookies("numvisits")=1 response.write("welcome! This is the first time you are visiting this Web page.") else response.cookies("numvisits")=numvisits+1 response.write("you have visited this Web page ") response.write(numvisits) if numvisits=1 then response.write " time before!" else response.write " times before!" end if end if Copyright 2015 Mahmud Al Hakim www.webbacademy.se 18 ASP.NET Web Pages 9

Använd JScript i ASP För att ändra skriptspråket som används i asp-filer till JScript istället för VBScript behöver du ange detta med hjälp av en speciell språk-deklaration högst upp i filen. JScript är Microsofts implementation av JavaScript <%@ language="jscript"%> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 19 JavaScript i ASP Exempel <%@ Language="jscript" %> <% var datum = new Date(); var timme = datum.gethours(); if (timme < 12) Response.write("God morgon"); else if (timme > 19 && timme < 24) Response.write("God kväll"); else Response.write("God dag"); %> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 20 ASP.NET Web Pages 10

ASP Formulär När en webbläsare begär information så kallas detta för en request som betyder förfrågan eller begäran. Objektet Request i ASP används för att hämta information från en användare. Två olika metoder används; 1. QueryString för att hämta data via GET 2. Form för att hämta data via POST Copyright 2015 Mahmud Al Hakim www.webbacademy.se 21 ASP Formulär Metoden GET <form method="get" action="form.asp"> Skriv ditt förnamn <input type="text" name="fornamn"> <input type="submit" value="skicka"> </form> Välkommen <% Response.Write( Request.Querystring("fornamn") ); %> Titta i adressfältet Copyright 2015 Mahmud Al Hakim www.webbacademy.se 22 ASP.NET Web Pages 11

<form method="post" action="form.asp"> Skriv ditt förnamn <input type="text" name="fornamn"> <input type="submit" value="skicka"> </form> Välkommen <% Response.Write( Request.Form("fornamn") ); %> ASP Formulär Metoden POST Titta i adressfältet Copyright 2015 Mahmud Al Hakim www.webbacademy.se 23 Övning Skapa ett ASP-skript som beräknar medelvärdet av två godtyckliga tal Copyright 2015 Mahmud Al Hakim www.webbacademy.se 24 ASP.NET Web Pages 12

Vad är ASP.NET? ASP.NET ingår i Microsofts.NET Framework. ASP.NET lanserades 2002 och är inte en ny variant av ASP, utan ett helt nytt koncept. Fördelen med ASP.NET är att tekniken bygger på Common Language Runtime (CLR) vilket möjliggör att programmera i alla.net programspråk såsom C# ASP.NET är kraftfullare och snabbare än Classic ASP. ASP.NET har tillgång till flera tusen klasser som ingår i.net biblioteket. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 25 ASP.NET Tre olika utvecklingsmodeller ASP.NET Web Pages Web Forms MVC Copyright 2015 Mahmud Al Hakim www.webbacademy.se 26 ASP.NET Web Pages 13

ASP.NET Web Pages ASP.NET Web Pages är den enklaste programmeringsmodellen för utveckling av dynamiska webbsidor. Den likar i stort sätt PHP och Classic ASP Den har full stöd till HTML, CSS och JavaScript. På serversidan kan man använda VBScript eller C# med hjälp av Razor Syntax. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 27 Vad är Razor? Razor är inte ett nytt programspråk utan ett märkspråk som används på serversidan. Razor är en Server Side Markup Language Med hjälp av Razor-syntax kan man enkelt bädda in C#-kod (eller VBScript). Filer som innehåller C# sparas som.cshtml Razor kodblock skriv inom @{ Man kan även skriva variabler och funktioner inline med hjälp av @-tecknet. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 28 ASP.NET Web Pages 14

Razor Exempel 1 @{ var meddelande = "Välkommen till ASP.NET"; <!DOCTYPE html> Razor kodblock <html lang="sv"> <head> <meta charset="utf-8" > <title>asp.net och Razor</title> </head> <body> Razor inline <h1>@meddelande</h1> <p>@datetime.now</p> </body> </html> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 29 Razor Exempel 2 @{ string hello = "Hej"; <body> @* Detta är en kommentar i Razor *@ @hello; @* Skriver ut Hej; *@ <br> @hello @* Skriver ut Hej *@ <br> @hello. @* Skriver ut Hej. *@ <br> @@ @* Skriver ut @ *@ <br> mahmud@webbacademy.se <br> @* Det är helt okej med e-postadresser *@ @hello.mahmud @* Visar ett felmeddelande *@ @2015 @* Visar ett felmeddelande *@ </body> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 30 ASP.NET Web Pages 15

Razor Exempel 3 @{ string hello = "Hej \"ASP.NET\""; <body> @* Titta i webbläsarens källkod *@ @hello @* Skickar Hej "ASP.NET" *@ <br> @Html.Raw(hello) @* Skickar Hej ASP.NET *@ </body> Razor använder HTML-kodning Med Html.Raw() skickar vi ren HTML. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 31 Razor Exempel 4 <body> <h1> Klockan är @DateTime.Now.ToString("hh:mm") </h1> @if(datetime.now.hour < 12) { else { </body> <h2>god morgon</h2> <h2>god dag</h2> OBS! Vi måste alltid använda { i Block statements Copyright 2015 Mahmud Al Hakim www.webbacademy.se 32 ASP.NET Web Pages 16

@{ Razor Exempel 5 var meddelande = ""; if(datetime.now.hour < 12){ else{ <body> meddelande = "God morgon"; meddelande = "God dag"; <p>klockan är @DateTime.Now.ToString("hh:mm:ss")</p> <p>@meddelande</p> </body> OBS! Implicit typifierade lokala variabler måste initieras Copyright 2015 Mahmud Al Hakim www.webbacademy.se 33 Inline loopar med Razor syntax <table> @for(var x = 1; x <= 10; x++){ <tr> @for(var y = 1; y <= 10; y++){ <td> @(x*y) </td> </tr> </table> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 34 ASP.NET Web Pages 17

ASP.NET Sökvägar (PATH) Fysiska sökvägar t.ex. C:\Users\Mahmud\Documents\My Web Sites\ ASP\Images\bild1.jpg Virtuella sökvägar t.ex. /Images/bild1.jpg Virtuell rot anges med operatorn tilde ~ t.ex. var StyleSheet = "~/styles/stylesheet.css"; Copyright 2015 Mahmud Al Hakim www.webbacademy.se 35 Server.MapPath Metoden Server.MapPath konverterar virtuella sökvägar till fysiska sökvägar. Detta behövs t.ex. för att komma åt datafiler (txt, csv eller xml) Datafiler hittas inte via deras logiska adresser. var path = "~/datafil.txt"; var data = Server.MapPath(path); Copyright 2015 Mahmud Al Hakim www.webbacademy.se 36 ASP.NET Web Pages 18

Metoden Href Webbläsaren kan inte tolka sökvägar som innehåller en virtuell rot t.ex. @{var StyleSheet = "~/Shared/Style.css"; Med hjälp av metoden Href() konverteras virtuella adresser till webbläsarvänliga adresser t.ex. <link rel="stylesheet" href="@href(stylesheet)" > Copyright 2015 Mahmud Al Hakim www.webbacademy.se 37 Page objektet Sidor i ASP.NET är objekt av typen Page Några viktiga egenskaper IsPost Returnerar true om klienten använder metoden POST i ett formulär. Layout Sätter eller hämtar sökvägen till layoutsidan. Page Används för att skapa flera egenskaper t.ex. Page.Title Copyright 2015 Mahmud Al Hakim www.webbacademy.se 38 ASP.NET Web Pages 19

Razor Formulär @{ var num1 = Request["tal1"]; var num2 = Request["tal2"]; var medel =( num1.asdecimal()+ num2.asdecimal())/2 ; <form action="" method="post"> <p>ange tal 1 <input type="text" name="tal1"></p> <p>ange tal 2 <input type="text" name="tal2"></p> <p><input type="submit" value="beräkna medelvärde"></p> </form> @{ if(ispost ){ <p>medelvärdet av @num1 och @num2 är @medel</p> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 39 Konvertera datatyper i ASP.NET Metoden AsDecimal() från förra exemplet är en statisk metod som finns i klassen StringExtensions. Klassen StringExtensions finns i namnrymden System.Web.WebPages som importeras automatiskt till alla ASP.NET-sidor. Andra användbara metoder är AsInt() och isint() AsBool och IsBool() AsDateTime() och isdatetime() Copyright 2015 Mahmud Al Hakim www.webbacademy.se 40 ASP.NET Web Pages 20

ASP.NET Mallar (Layout) En ASP.NET Mall (kallas även Layout Page eller Template) innehåller en grundmall till en webbplats. Med hjälp av metoden RenderBody() i mallen inkluderar man innehåll från sidor som använder mallen. Sidor som använder mallen måste starta med en Layout-direktiv som ser ut så här @{ Layout="~/_Layout.cshtml"; Copyright 2015 Mahmud Al Hakim www.webbacademy.se 41 Layout Page Exempel Filen _Layout.cshtml <!DOCTYPE html> <html lang="sv"> <head> <meta charset="utf-8" /> <title>@page.title </title> </head> <body> <div id="meny"> <a href="index.cshtml">hem</a> <a href="kontakt.cshtml">kontakt</a> </div> @RenderBody() <footer> <p> 2015 Webbacademy</p> </footer> </body> </html> Filen index.cshtml @{ Layout="~/_Layout.cshtml"; Page.Title="Hem"; <h1>startsida</h1> Filen kontakt.cshtml @{ Layout="~/_Layout.cshtml"; Page.Title="Kontakt"; <h1>kontakt</h1> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 42 ASP.NET Web Pages 21

Infoga innehåll med RenderPage Filen default.cshtml Filen _meny.cshtml <div id="meny"> <a href="default.cshtml"> Hem </a> <a href="kontakt.cshtml"> Kontakt </a> </div> <body> @RenderPage("_meny.cshtml") <h1>startsida</h1> </body> Filen kontakt.cshtml <body> @RenderPage("_meny.cshtml") <h1>kontakt</h1> </body> Metoden RenderPage() är en statisk metod som finns i klassen WebPageBase Klassen som finns i namnrymden System.Web.WebPages. Tips: Understreck före filnamn förhindrar webbsidan från visning. Testa att visa sidan _meny.cshtml Copyright 2015 Mahmud Al Hakim www.webbacademy.se 43 DRY Principen DRY står för Don t Repeat Yourself. DRY är en viktig princip vid utveckling av ASP.NET Sidor och Applikationer. Använd t.ex. RenderPage och Layout Page för att återanvända din kod. The DRY principle states that these small pieces of knowledge may only occur exactly once in your entire system. Tips http://code.tutsplus.com/tutorials/3-key-softwareprinciples-you-must-understand--net-25161 Copyright 2015 Mahmud Al Hakim www.webbacademy.se 44 ASP.NET Web Pages 22

Globala Sidor _AppStart.cshtml Innehåller kod som exekveras när man startar applikationen. Här kan du t.ex. sätta globala värden som behövs av flera sidor. _PageStart.cshtml Innehåller kod som exekveras när man startar (öppnar) en sida. Här kan man t.ex. skapa en layoutsida för en specifik mapp. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 45 Bildkälla http://www.asp.net/web-pages/overview/ui,-layouts,-and-themes/ 18-customizing-site-wide-behavior 46 ASP.NET Web Pages 23

_AppStart.cshtml Sätta Globala värden Exempel Filen _AppStart.cshtml @{ AppState["sitename"] = "Webbacademy"; @* Eller använd en förkortad version av AppState *@ App.Webmaster = "Mahmud Al Hakim"; Filen _Layout.cshtml <footer> <p> @DateTime.Now.Year @AppState["sitename"] Webmaster: @App.Webmaster </p> </footer> </body> </html> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 47 Filhantering Filer som innehåller data brukar sparas i en speciell mapp som heter App_Data Mappen är skyddad och är oåtkomlig via webbläsaren! Exempel på filer som innehåller data TXT-filer (Textfiler) CSV-filer (Comma-separated value) XML-filer (Extensible Markup Language) Copyright 2015 Mahmud Al Hakim www.webbacademy.se 48 ASP.NET Web Pages 24

Filhantering - Exempel Filen kontakter.cshtml Filen kontakter.txt Eller kontakter.csv Mahmud;070-1234567 Erik;08-12345678 @{ var file = Server.MapPath("~/App_Data/kontakter.txt"); Array data = File.ReadAllLines(file); @foreach (string line in data) { foreach (string item in line.split(';')) { @item <text> </text> <br> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 49 ASP.NET Helpers ASP.NET har ett antal inbyggda så kallade Helpers som förenklar utvecklingen av avancerade komponenter. Exempel Chart Helper Kan visa diagram av olika slag. WebImage Helper Bildhantering t.ex. rotera, vända och lägga till vattenstämpel. Copyright 2015 Mahmud Al Hakim www.webbacademy.se 50 ASP.NET Web Pages 25

Chart Helper - Exempel Filen diagram.cshtml @{ var mychart = new Chart(width: 600, height: 400, theme: ChartTheme.Green).AddTitle("Antal elever").addseries(charttype: "column", xvalue: new[] { "Stockholm", "Göteborg", "Malmö", yvalues: new[] { "25", "29", "20").Write(); Tips: Läs mer här http://www.asp.net/web-pages/overview/data/7-displaying-data-in-a-chart Copyright 2015 Mahmud Al Hakim www.webbacademy.se 51 Chart Helper Exempel fort. Visa diagrammet på en valfri sida <img src="diagram.cshtml" alt="diagram"> Testa olika teman genom att ändra ChartTheme till Blue, Vanilla, Yellow eller Vanilla3D Copyright 2015 Mahmud Al Hakim www.webbacademy.se 52 ASP.NET Web Pages 26

@{ WebImage - Exempel WebImage photo = new WebImage("Original.jpg"); photo.addtextwatermark("copyright", fontcolor:"yellow",fontfamily:"arial", horizontalalign:"center"); photo.save(@"~/images/ny-bild.jpg"); <img src="~/images/ny-bild.jpg" alt="bild med vattenstämpel"> Copyright 2015 Mahmud Al Hakim www.webbacademy.se 53 Övning 1 Skapa en cshtml-sida som visar x 2 för alla tal mellan 1 och 100 i en HTMLtabell. Formatera tabellen med CSS (internt i en style-tagg) Exempel på resultatet: x x 2 1 1 2 4 3 9 Osv Osv 100 10000 Copyright 2015 Mahmud Al Hakim www.webbacademy.se 54 ASP.NET Web Pages 27

Övning 2 Skapa en dynamisk webbplats med hjälp av tekniken ASP Web Pages. Sajten ska innehålla 5 CSHTML-sidor och en extern formatmall (CSS-fil). Alla sidor måste ha unika titlar. Använd Page.Title Du måste använda en ASP.NET layout (Template). Spara mallen som _Layout.cshtml Använd en valfri responsiv mall (HTML5/CSS) från http://templated.co Spara menyn i en separat fil (_Meny.cshtml). Menyn ska visas högst upp på alla sidor. Menyn ska länka till alla sidor. 55 ASP.NET Web Pages 28