530 likes | 731 Views
ASP.NET 2.0. Vladimir Kjahrenov vladimir@itcollege.ee. Tutvumisring. Kes Te olete ja millega tegelete Milline on Teie varasem kogemus Programmeerimisega Veebilehtede loomisega ASP.NET’iga Mida ootate algavalt kursuselt ?. Mis plaan ?. Mis asi on ASP.NET Kuidas teha lihtsamaid lehti
E N D
ASP.NET 2.0 Vladimir Kjahrenov vladimir@itcollege.ee
Tutvumisring • Kes Te olete ja millega tegelete • Milline on Teie varasem kogemus • Programmeerimisega • Veebilehtede loomisega • ASP.NET’iga • Mida ootate algavalt kursuselt ?
Mis plaan? • Mis asi on ASP.NET • Kuidas teha lihtsamaid lehti • Märgistuse kasutamine • Koodi kirjutamine • Veakontroll ja silumine • Kuidas ASP.NET lehti kujundada • Pealikud + nahad, näod jt • Kontrollid • Standardsed, Kommerts, Ise tehtud
Millist tarkvara on vaja ? • Visual Studio 2005 – Vahend .NET rakenduste loomiseks. • Lisainfot http://msdn.microsoft.com/vstudio Programmeerimistee alustamiseks ja katsetamiseks on loodud spetsiaalsed tasuta versioonid Visual Studio Express näol. • Express versioon http://msdn.microsoft.com/vstudio/express/
Üks lihtne veebileht <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML … <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Minu esimene leht</title> </head> <body> Tere maailm! </body> </html>
default.aspx.cs public class default : System.Web.UI.Page { // kood } Üks pisut keerulisem leht • default.aspx <%@ Page Language="C#“ CodeFile=“default.aspx.cs“ Inherits=“default“ %>
Märgistuse kasutamine <%@ … %> <%@ Page … <html> <asp: ….runat=“server”/>
Koodi kirjutamine • Kõik lehed pärinevad System.Web.UI.Page klassist • Loomulikult võite oma kihi vahele ehitada! • Koodi võib kirjutada kõigis .NET keeltes, mille kompilaatorid on ASP.NETile kättesaadavad • Erinevad lehed võib kirjutada erinevates keeltes
Lehe elutsükkel • Page request • Start • Page initialization • Load • Validation • Postback event handling • Rendering • Unload
LoadComplete PreRender SaveStateComplete Render Unload Life-cycle Events PreInit • Init • InitComplete • PreLoad • Load • Control Events
PreInit • Kontrolli IsPostBack omaduse abil, kas tegemist on esimese pöördumisega • Tekita või taasta dünaamilised kontrollid • Pane dünaamiline pealeht (master) • Pane dünaamiline nägu • Loe või määra profiili omadused • ViewState ei ole veel taastatud!
Init • Kutsutakse välja peale • kõigi kontrollide algväärtustamist • ning kõigi nahkade peale tõmbamist • Kasuta kontrollide omaduste • lugemiseks või • Algväärtustamiseks
InitComplete • Kutsutakse välja Page objekti poolt • Kasutada tegevuste jaoks, mis eeldavad kõigi kontrollide algväärtustamist
PreLoad • Kasutada, kui vaja teha midagi enne Load sündmuse tekkimist • Peale seda laetakse lehele ning kõikidele kontrollide ViewState
Load • Page objekt kutsub välja lehel oleva OnLoad meetodi ning seejärel rekursiivselt sama meetodi kõigil kontrollidel ning tema omakorda oma alamkontrollidel kuni leht ja kõik temal asuvad kontrollid on laetud • Kasuta OnLoad meetodit • Kasutaja tegevustest tulenevate omaduste määramiseks ning • Andmebaasiühenduste loomiseks
Control Events • Reageerimine kõigi kontrollide huvi pakkuvatele sündmustele • Sündmusele reageerides tasub alati kontrollida, kas lehel on kõik korras e. Page.IsValid ning kontrollida sama omadust ka kõigil kontrollijatel
LoadComplete • Kasuta seda sündmust tegevusteks, mis vajavad, et lehekülg oleks täielikult laetud
PreRender • Enne seda sündmust • Kutsub Page objekt välja kõigi kontrollide EnsureChildControls meetodi • Iga andmetega tegelev kontroll, mille DataSourceID on määratud kutsub välja enda DataBind meetodi. • PreRender sündmus on kõigil lehel asuvatel kontrollidel. • Kasuta seda sündmust viimaste muudatuste tegemiseks kontrollidele või lehele
SaveStateComplete • Enne selle sündmuse väljakutsumist salvestatakse ViewState • St. kõiki muudatusi kontrollidele ja lehele ignoreeritakse • Seda sündmust saab kasutada olukordades, kus lehekülg on renderdamiseks valmis ning kontrolle pole enam vaja muuta
Render • Page objekt kutsub välja kõigi kontrollide Render meetodid • Render väljastab märgistuse, mis saadetakse sirvijasse • Kui pole tegemist mingi eriti advanced kontrolliga pole erilist vajadust selle meetodi ülekirjutamiseks
Unload • See sündmus kutsutakse välja esmalt kõigil kontrollidel ning seejärel lehel endal. • Kasuta seda otste kokku tõmbamiseks e. • Sulge kõik andmebaasiühendused • Sulge failid • Vabasta muud mitte hallatavad ressursid • Kirjuta logisse viimased read • Kuna leht on selleks hekteks valmis renderdatud ei saa enam sirvijasse minevaid andmeid muuta!
Kontrollid • Standard • AdRotator, BulletedList, Button, Calendar, … • Html • a, p, table, body, title, input, textaera, img, … • Validation • RequiredFieldValidator, RangeValidator, … • Navigation • SiteMapPath, Menu, TreeView
User Controls (.ascx) • Kapseldatud loogika • Peaaegu nagu .aspx, kuid puudub form tag, koos kogu ümbritsevaga • Kõik kontrollid pärinevad System.Web.UI.UserControl klassil • <%Control … • <%Register …
Andmebaas (1) • Millised andmed sobivad • Kuidas tehakse ühendused • Millised kontrollid saavad ise hakkama • Kuidas programselt andmetele ligi saab • xxxConnection • xxxCommand • xxxDataReader • xxxDataAdapter
Andmebaas (2) • Millised andmebaasid sobivad • System.Data.Sql – SQL Server 200x • System.Xml - XML • System.Data.OracleClient – Oracle >= 8i • System.Data.Odbc – ODBC ühendused • System.Data.OleDb - OleDB • System.Data.Common - sõltumatu
SQL Server 2005 • Tasuta Express Edition • Väga võimsad kommerts versioonid • Sisuliselt piiramatu protsessorite, mälu ja ketta maht • Murdis 1M tran/min piiri • Arvestatavatest kommerts andmebaasimootoritest odavaim
SQL Server 2005 • Andmebaasimootor • Arendusvahendid • Service Broker • Analysis Services • Data Transformation Services • Reporting Services • Data Mining
GridView DataList DetailsView FormView Repeater Kontrollid • Andmetega tegelevad kontrollid • RadioButtonList • CheckBoxList • BulletedList • DropDownList • ListBox
Sündmused • DataBinding – enne PreRender sündmust • RowCreated/ItemCreated • RowDataBound/ItemDataBound • DataBound
XMLi põhitõed • XML on tõusutundlik! • Well Formed • 1 juurikas • Ei ole ülekattumist • Igal elemendil on algus ja lõpp • Atribuudid • on ülakomade või jutumärkide vahel • Atribuudid ei kordu • Valid
XMLi kasutamine .NETis • System.Xml • System.Xml.Schema • System.Xml.Serialization • System.Xml.XPath • System.Xml.Xsl
Sisendi kontrollimine • RequiredFieldValidator • RangeValidator • RegularExpressionValidator • CompareValidator • CustomValidator • ValidationSummary
Kontrollijate omadused • Display – kuidas näidatakse • ControlToValidate – mida kontrollida • ErrorMessage – pikk veateade • SetFocusOnError – kontrolli aktiveerimine • Text – lühike veateade • ValidationGroup – millega seotud
Piltide hoidmine andmebaasis • Image/binary(max) – väljad • System.Drawing • System.Drawing.Image • Response.ContentType • Response.BinaryWrite
XMLiga majandamine • Genereerimine • Teisendamine
Lokaliseerimine • Ressursid - .resx • App_GlobalResources • Saadavad kõigil lehtedel terves rakenduses • App_LocalResources • Lehekülje spetsiifilised määrangud • <%@Page Culture="Auto" UICulture="Auto“ %> • <globalization culture="auto" uiCulture="auto"/> • meta:resourcekey=“” • using System.Globalization;
Lokaliseerimine • Lokaalsed ressursid • meta:resourcekey=“võti” • GetLocalResourceObject(“võti.omadus”) • Globaalsed ressursid • <%$ Resources:konteiner,ressurss %> • GetGlobalResourceObject(“konteiner", “ressurss")
Teenusepakkujad • ASP.NET 2.0 kasutab väga paljude funktsioonide juures providereid e. teenusepakkujaid • Teenusepakkujate kasutamine vähendab oluliselt lehel oleva koodi hulka • Kui teile sobib see teenus, mida pakutakse!
Turvalisus • IIS • Veebiserveri seadistused • ASP.NET • Turvamäärangud • Rakendus • Programne kontroll
ASP.NET turvalisus • web.config • system.web <authentication mode=“Forms|Windows” <authorization> <allow users|roles … <deny users|roles … • <location path=“… • <pages • ValidateRequest="true“ • viewStateEncryptionMode="Always“ />
Turvalisus programmis • Kontrolli sisendit! • Kasutaja autentimine • Rollide kasutamine • Kasutaja autoriseerimine - kontrolli, kas • Kas lähteandmed on korrektsed • On tegevuseks õigus • Kas antud oludes võib tegevust teha
System.Security .AccessControl .Authentication .Permissions .Policy .Principal .RightsManagement Turvalisusega seotud nimeruumid • System .Net.Security .Security .Cryptography .Pkcs .Xml .X509Certificates .Web.Security .ServiceModel.Security .Tokens
Valmis ASP.NET kontrollid • Login - autentimine • LoginView - autoriseerimine • PasswordRecovery – abimees kasutajale • LoginStatus – info kasutajale • LoginName – info kasutajale • CreateUserWizard – kasutaja tekitamine • ChangePassword – abimees kasutajale
Teenusepakkujate kohandamine • Kui Teile pakutav teenus ei meeldi siis võite teenusepakkujad ümber ehitada • Ümber ehitamiseks tuleb • olemasolevate teenusepakkujate peale ehitada oma teenusepakkuja • konfiguratsioonis määrata, millist teenusepakkujat kasutada
WebPart • WebPartManager • Üks ja ainukene • WebPartZone • CatalogZone • EditorZone
Ülevaade AJAXist • AJAX – Active JavaScript And XML • Install • ASP.NET 2.0 AJAX Extension • ASP.NET 2.0 AJAX Futures CTP • ASP.NET 2.0 AJAX Control Toolkit • KONFIGURATSIOON! http://ajax.asp.net
Ülevaade veebiteenustest • Üle Interneti hajutatud rakenduste alustala