net web szolgáltatások

Post on 03-Jan-2016

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

.NET web szolgáltatások. ASP .NET első rész Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv. A mai előadás tartalma:. ASP .NET Web űrlapok Vezérlés, megjelenítés elkülönítése Követés, hibakeresés Felhasználói bevitel ellenőrzése. Források. - PowerPoint PPT Presentation

TRANSCRIPT

1

.NET web szolgáltatások

ASP.NET első rész

Bilicki Vilmosbilickiv@inf.u-szeged.huwww.inf.u-szeged.hu/~bilickiv

2

A mai előadás tartalma: ASP.NET

Web űrlapokVezérlés, megjelenítés elkülönítéseKövetés, hibakeresésFelhasználói bevitel ellenőrzése

3

Források Microsoft 2310B official curriculum http://www.gotdotnet.com/

4

Web űrlapok Web űrlapő létrehozása Szerver vezérlők használata

5

ASP.NET A megszokott grafikus eszköztárat

használhatjukEseménykezelésKomplex objektumok (fa nézet, …)Bevitel ellenőrzés

Hasonló megoldás:Java Server Faces JSF

http://java.sun.com/j2ee/javaserverfaces/index.jsp

6

ASP.NET működése

7

Web űrlap (Web form)

<%@ Page Language=„cs" Codebehind="WebForm1.aspx.cs" SmartNavigation="true"%>

<html><body ms_positioning="GridLayout"> <form id="Form1" method="post" runat="server"> </form></body>

</html>

<%@ Page Language=„cs" Codebehind="WebForm1.aspx.cs" SmartNavigation="true"%>

<html><body ms_positioning="GridLayout"> <form id="Form1" method="post" runat="server"> </form></body>

</html>

.aspx kiterjesztés Lap attribútumok

@ Page firektíva Body tulajdonságok Form tulajdonságok

8

Szerver vezérlő

Runat="server"Az események a szerveren történnekLáthatjuk az elmentett állapotot

Beépített tulajdonságokkal rendelkezik Általánons objektum modell

Mindengyik rendelkezik Id és Text tulajdonságokkal

Böngésző függő HTML-t gyárt

<asp:Button id="Button1" runat="server" Text="Submit"/><asp:Button id="Button1" runat="server" Text="Submit"/>

9

Szever vezérlő típusai HTML szerver vezérlők Web szerver vezérlők

Belső vezérlőkÉrvényesítő vezérlőkSokoldalú vezérlők (rich)Listához kötött vezérlőkInternet Explorer Web vezérlők

10

Állapot mentés Rejtett állapot vezérlő, név-érték párokat

tárol

Be van kapcsoklva, de beállítható

Web szerver farm

<%@ Page EnableViewState="False" %>

<asp:ListBox id="ListName" EnableViewState="true" runat="server">

</asp:ListBox>

<%@ Page EnableViewState="False" %>

<asp:ListBox id="ListName" EnableViewState="true" runat="server">

</asp:ListBox>

<input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" />

<input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" />

11

HTML szerver vezérlők

HTML elemeken alapulnak A System.Web.UI.HtmlControls

névtérben vannak

<input type="text" id="txtName" runat="server" />

<input type="text" id="txtName" runat="server" />

12

Web Szerver vezérlők

A System.Web.UI.WebControls névtrében vannak

Szintaxisuk:

A generált HTML:

<asp:TextBox id="TextBox1"runat="server">Text_to_Display</asp:TextBox>

<asp:TextBox id="TextBox1"runat="server">Text_to_Display</asp:TextBox>

<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>

<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>

13

Specifikus funkció (naptár)Kliensen szertnénk a vezérlés elvégezni

Több böngészőt is támogatMeglévő HTML oldalak

C# programn modellHTML-szerű objektum modell

Web SzerverWeb Szerver::HTMLHTML::

Nincs sávszélesség korlátA sávszélesség korlátozott

Mikor melyiket válasszuk?

14

Web form létrehozása Nyomógomb Beviteli mező

1. Demó

15

Vezérlés, megjelenítés elkülönítés

Kód oldalak a web oldalak mögött Esemény kezelés Oldal események

16

Programkód helye Három hely:

A HTML tartalommal keverve (vegyes)A HTML oldalban egy kijelölt helyen

(beágyazott kód)Külön fájlban (VS alapértelmezett)

17

Beágyazott kód Tartalom, kód egy fájlban Más-más szekciókat használhatunk

<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="vb" runat="server"> Sub btn_Click(s As Object, e As EventArgs) Handles btn.Click ... End Sub</SCRIPT>

<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="vb" runat="server"> Sub btn_Click(s As Object, e As EventArgs) Handles btn.Click ... End Sub</SCRIPT>

<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="c#" runat="server"> private void btn_Click(object sender, System.EventArgs e) { . . . }</SCRIPT>

<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="c#" runat="server"> private void btn_Click(object sender, System.EventArgs e) { . . . }</SCRIPT>

18

Külön kód oldalak Tartalom, kód elkülönítés

A UI fejlesztők és a logika fejlesztők külön dolgozhatnak

Form1.aspxForm1.aspx Form1.aspxForm1.aspx Form1.aspx.vbForm1.aspx.vbor Form1.aspx.csor Form1.aspx.cs

<tags><tags> KódKód

KódKód

Külön fájlokEgy fájl

19

Hogyan működik Külön fájlok a UI-nek és a logikának A @ Page elemben lehet jelezni Előre fordított vagy JIT-telt

Page1.aspx

<% @ Page Language="c#"Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %>

Page1.aspx.cs public class WebForm1 { private void cmd1_Click() { … } }

20

Esemény kezelés Reakciók a felhasználói műveletekre

21

Kliens oldali eseménykezelés

Internet .HTM Pages

Tipikusan HTML vezérlőkkel használt A böngésző futtatja Nincs hozzáférése a szerver

erőforrásaihoz <SCRIPT language="language">

22

Szerver oldali eseménykezelés Web és HTML vezérlőkkel egyaránt

használatos A kód a szerveren fut Hozzáfér a szerver erőforrásaihoz <SCRIPT language="vb" runat="server"> vagy

<SCRIPT language=“cs" runat="server">

Internet.ASPX Pages

23

Eseménykezelők használata Visual Studio .NET deklarálja a

változókat és létrehozza az eseménykezelőt

protected System.Web.UI.WebControls.Button cmd1;private void InitializeComponent(){ this.cmd1.Click += new System.EventHandler(this.cmd1_Click); this.Load += new System.EventHandler(this.Page_Load);} private void cmd1_Click(object s, System.EventArgs e)

protected System.Web.UI.WebControls.Button cmd1;private void InitializeComponent(){ this.cmd1.Click += new System.EventHandler(this.cmd1_Click); this.Load += new System.EventHandler(this.Page_Load);} private void cmd1_Click(object s, System.EventArgs e)

24

2. Demó Támogatás a Visual Studio-ban

Esemény kezelők létrehozása Generált kód

25

Vezérlők használaat Tulajdonság olvasás

Tulajdonság írás

lblGreeting.Text = "new text"lblGreeting.Text = "new text"

strGreeting = "Hello " & txtName.TextstrGreeting = "Hello " & txtName.Text

strGreeting = "Hello " + txtName.Text;strGreeting = "Hello " + txtName.Text;

lblGreeting.Text = "new text";lblGreeting.Text = "new text";

26

Egy oldal életciklusa

Page_LoadPage_Load

Page_UnloadPage_Unload

Textbox1_ChangedTextbox1_Changed

Button1_ClickButton1_Click

Az oldal megszűnik

Page_InitPage_Init

Vezérlő eseményekVezérlő események

Change EventsChange Events

Action EventsAction Events

27

A Page.IsPostback események Page_Load minden kérésre meghívódik

A Page.IsPostBack tulajdonságot lehet figyelni

private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack)

{ // executes only on initial page load}

//this code executes on every request}

private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack)

{ // executes only on initial page load}

//this code executes on every request}

28

Vezérlők összekapcsolása A vezérlők egymás értékeit használhatják

Data binding

<asp:DropDownList id="lstOccupation" autoPostBack="True" runat="server" >You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" />

<asp:DropDownList id="lstOccupation" autoPostBack="True" runat="server" >You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" />

private void Page_Load(object sender, System.EventArgs e){ lblSelectedValue.DataBind();}

private void Page_Load(object sender, System.EventArgs e){ lblSelectedValue.DataBind();}

29

3. Demó Felirat csatolás lista vezérlőhöz

30

Követés (Tracing) Futásidejű információ A követés engedélyezée A Trace objektum Az eredmények vizsgálata Alkalmazás szintű követés

31

Futásidejű információ Futás idő alatt:

A változók értékeit kiírathatjukFigyelhetjük adott feltételek teljesülésétKövethetjük az alkalmazás végrehajtási

útvonalát Ezeket az információkat:

a Trace objektumés a Debug objektum

biztosítja

32

Követés engedélyezése Oldal szintű követés csak az oldalon definiált

követéssel foglalkozik Oldalszintű követés engedélyezése

Alkalmazás szintű minden oldalra vonatkozik Engedélyezése a Web.config fájlban

lehetséges

<trace enabled="true" pageOutput="true"localOnly="true"/><trace enabled="true" pageOutput="true"localOnly="true"/>

<%@ Page Language="c#" Trace="true" %> <%@ Page Language="c#" Trace="true" %>

33

Üzenetek beszúrása

Feltételes végrehajtás Trace.IsEnabled

Dinamikus állapotváltás

A Trace objektum használata

Trace.Write ("category", "message")Trace.Warn ("category", "message")Trace.Write ("category", "message")Trace.Warn ("category", "message")

Trace.IsEnabled = FalseTrace.IsEnabled = False

if (Trace.IsEnabled){ strMsg = "Tracing is enabled!"; Trace.Write("myTrace", strMsg);}

if (Trace.IsEnabled){ strMsg = "Tracing is enabled!"; Trace.Write("myTrace", strMsg);}

34

Eredmények megtekintése

35

Alkalmazás szintű követés

Alap értelmezésben az eredmények minden egyes oldalon láthatóak

A pageOutput=false beállításával Web.config az eredmények itt láthatóakhttp://server/project/trace.axdhttp://server/project/trace.axd

OldalOldalOldalOldal

Trace=TrueTrace=True

Trace=FalseTrace=False

Trace not setTrace not set

AlkalmazásAlkalmazásAlkalmazásAlkalmazás

Trace=True or Trace=FalseTrace=True or Trace=False

Trace=True or Trace=FalseTrace=True or Trace=False

Trace=TrueTrace=True

EredményEredményEredményEredmény

Az oldalon látható Az oldalon látható

Az eredmény nem látható Az eredmény nem látható

Az oldalon látható Az oldalon látható

36

4. Demó

Oldalszintű Alkalmazás szintű

37

Követés a komponensen belül A System.Web könyvtár importálása

Engedélyezés

Trace metódus meghívása

HttpContext.Current.Trace.IsEnabled = TrueHttpContext.Current.Trace.IsEnabled = True

using System.Web;using System.Web;

HttpContext.Current.Trace.Write("component","this is my trace statement");

HttpContext.Current.Trace.Write("component","this is my trace statement");

38

Felhasználói bevitel ellenőrzése Áttekintés Ellenőrző vezérlők Oldal ellenőrzés

39

Bevitel ellenőrzés Ellenőrzi a vezérlő értékét Az oldal feldolgozását letiltja amíg nincs

minden rendben Megelőzi

kártékony kódok bevitelét

40

Kliens és szerver oldali ellenőrzés ASP.NET mindkét

oldalt legenerálja Kliens oldali

Böngésző függő Azonnali válasz Csökkenti a

webszerver terhelését

Szerver oldali ellenőrzés Megismétli a klines

oldali ellenőrzést Tárolt adatokat is

használhatunk

Érv.?

Érv.?

Felh. bevitel

Nem

Nem

Igen

Igen

Hiba üzenet

Kliens

Szerver

Feldolgozás

41

ASP.NET ellenőrző vezérlőkASP.NET az alábbi funkciókat támogatja: Érték összehasonlítás Saját minta alapján összehasonlítás Tartomány ellenőrzés Reguláris kifejezés Felhasználói bevitel megkövetelése Az adott oldal ellenőrzéseinek összegzése

42

Ellenőrző vezérlők hozzáadása

1. Vezérlő hozzáadása

2. A beviteli vezérlő kiválasztása

3. Az érvényesítési tulajdonságok beállítása

<asp:Type_of_Validator id="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">

</asp:Type_of_Validator>

<asp:Type_of_Validator id="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">

</asp:Type_of_Validator>

<asp:TextBox id="txtName" runat="server" /><asp:TextBox id="txtName" runat="server" />

1111

2222

3333

43

Ellenőrző vezérlők kombinálása Több ellenőrző is tartozhat egy beviteli vezérlőhöz Csak a RequiredFieldValidator ellenőrzi az üres

vezérlőket

44

Bevitel ellenőrző vezérlők

RequiredFieldValidatorInitialValue

CompareValidatorValueToCompare vagy

ControlToCompareTypeOperator

RangeValidatorMinimumValueMaximumValueType

45

Reguláris kifejezések Used when input must conform to a

pre-defined pattern Visual Studio .NET includes patterns

for:Telephone numbersPostal codesE-mail addresses

<asp:RegularExpressionValidator …ControlToValidate="US_PhoneNumber"…ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4} "…>*</asp:RegularExpressionValidator >

<asp:RegularExpressionValidator …ControlToValidate="US_PhoneNumber"…ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4} "…>*</asp:RegularExpressionValidator >

46

5. Demó Ellenőrző vezérlők használata RequiredFieldValidator RangeValidator RegularExpressionValidator

47

CustomValidator vezérlő Kliens, szerver vagy mindkét oldalon

használhatóClientValidationFunctionOnServerValidate

Érvényesít: FormulaAdatCOM objektumWeb Szolgáltatás

segítségével

48

Oldal ellenőrzés

A Page.IsValid tulajdonság ValidationSummary vezérlő

49

A Page.IsValid tulajdonság

Minden vezérlőt lekérdez

private void cmdSubmit_Click(object s, System.EventArgs e)

{ if (Page.IsValid){ Message.Text = "Page is Valid!";

// Perform database updates or other logic here}

}

private void cmdSubmit_Click(object s, System.EventArgs e)

{ if (Page.IsValid){ Message.Text = "Page is Valid!";

// Perform database updates or other logic here}

}

50

A ValidationSummary vezérlő Összegyűjti az összes hibamezőt az oldalon Üzenetek megjelenítésére is alkalmas A Text="*" mintát használjuk a hiba

megjelölésére

<asp:ValidationSummary id="valSummary"runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>

<asp:ValidationSummary id="valSummary"runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>

51

Áttekintés: ASP.NET

Web űrlapokVezérlés, megjelenítés elkülönítéseKövetés, hibakeresésFelhasználói bevitel ellenőrzése

52

A következő előadás tartalma ASP.NET második rész

ÁllapotkövetésSaját komponensek fejlesztéseBiztonságOptimalizálásASP.NET 2.0

top related