ASP.NET
Introduktion till ASP.NET
Utveckla i ASP.NET I ASP.NET kan och bör man separera HTML-kod från övrig kod (C#, VB ) I enklare fall läggas kod i script-block Vanligtvis läggs den i en Code Behind-fil Omfattande kod eller kod som ska återanvändas bör läggas i Affärsobjekt (Business Objects)
Sida med script-block.aspx Code Declaration Block -Script-block med ASP.NET-kod Code Render Block -HTML-kod med ASP.NET-taggar
Script och HTML-block <script runat="server"> //Page_Load startas alltid när sidan laddas void Page_Load(object sender, EventArgs e) { label1.text = "Hello World!"; } </script> <html> <body> <form id="form1" runat="server"> <div> <asp:label runat="server ID="label1"> </asp:label> </div> </form> </body> </html>
Code Behind Code Behind(.cs-sida) hanteras som objekt Kompilering sker på samma sätt som för kod i scriptblock Ingen prestandahöjning med Code Behind.cs.aspx C#- eller VB-Kod HTML och ASP.NET
CodeBehindi Visual Studio 1. Skriv aspx-kod direkt i koden eller lägg ut objekt via Toolbox i Visual Studio 2. Klicka på ett objekt för att nå dess bakomliggande kod (codebehind) eller öppna i Solution Explorer 3. Använd Start Debugging/Start WithoutDebugging för att kompilera och testa webbplatsen
CodeBehind detaljer aspxoch cs.aspx <%@ Page Title="An ASP.NET Page" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="_Default" %>.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
Web Server Control Relativt enkla Label, Button, TextBox, CheckBox, RadioButton, DropDownList Mer komplicerade GridView, DetailsView, Calendrar Övrigt Table, TableRow, Image, ImageButton, Valideringskontroller...
Mera om Webbserverkontroller Alternativ avslutning /> eller </asp:textbox> Översätts av servern till vanlig HTML-kod Kontroller hanterar händelser (events) och har egenskaper (properties).aspx <asp:textbox runat="server" ID="txtRuta" OnTextChanged="txtRuta_TextChanged"> </asp:textbox>
Händelser(Events) Hur hanteras händelsen OnTextChanged? Den kompileras och lagras i Assembly Cache Servern skickar ett dokument kodat i HTML Dokumentet innehåller en spion (ett script som detekterar händelsen) Information postas tillbaks till servern (PostBack) Servern tar hand om händelsen (Event)
Händelser (Events) Webbklient HTTP Request HTTP Response Spion Request Response Webbserver Processar HTTP Request & Eventbaserade Spion Request Klientskript agerar ASP.NET-spioner
Cookie, Session, Application Cookie -lagras på användarens hårddisk -unik för användare - ligger kvar efter avslutad session Session -lagras som en cookie och på webbservern - unik för användare - försvinner då webbläsaren stängs Application - gemensam för alla besökare
.NET Framework VB C# C++ Jscript Common Language Specification, CLS ASP.NET Windows Forms ADO.NET XML Visual Studio Base Class Library CLR Common Language Runtime Windows COM+ Service
Vad händer med koden? Källkod Traditionellt kompilering.net varianten Kod MSIL CLR Applikation MSIL - Microsoft Intermediate Language
Vad kan man bygga i.net? Windowsapplikationer Kontroller till Windowsformulär Windows Service-applikationer ASP.NET-Applikationer Webbtjänster Mobila applikationer Flerskiktade och distribuerade applikationer!
Tre-skiktade applikationer Presentation ASP, PHP, JSP, ColdFusion Logik Datasamling Affärsobjekt i C#, VB, C++, Javabönor Access, Oracle, mysql, SQL Server, XML
Exempel på tre-skiktad applikation Visa Data. (presentationslager) *.aspx *.aspx.cs *.cs Tar emot information från CodeBehind Hämtar efterfrågad data ur databas Behandlar data och leverar data till CodeBehind (logiklager) Kommunicerar med affärsobjekt Binder erhållen data till objekt i gränssnitt (logiklager) Databas (datalager)
Thomas Mejtoft TFE @ Umeå University thomas.mejtoft@tfe.umu.se