1 / 52

.NET web szolgáltatások

.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.

jolene-moon
Download Presentation

.NET web szolgáltatások

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET web szolgáltatások ASP.NET első rész Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv

  2. 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

  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álhatjuk • Eseménykezelés • Komplex 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> • .aspx kiterjesztés • Lap attribútumok • @ Pagefirektíva • Body tulajdonságok • Form tulajdonságok

  8. Szerver vezérlő • Runat="server" • Az események a szerveren történnek • Láthatjuk az elmentett állapotot • Beépített tulajdonságokkal rendelkezik • Általánons objektum modell • Mindengyik rendelkezikIdésTexttulajdonságokkal • Böngésző függő HTML-t gyárt <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ők • Sokoldalú vezérlők (rich) • Listához kötött vezérlők • Internet Explorer Web vezérlők

  10. Állapot mentés <%@ Page EnableViewState="False" %> <asp:ListBox id="ListName" EnableViewState="true" runat="server"> </asp:ListBox> • Rejtett állapot vezérlő, név-érték párokat tárol • Be van kapcsoklva, de beállítható • Web szerver farm <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" />

  12. Web Szerver vezérlők • ASystem.Web.UI.WebControls névtrében vannak Szintaxisuk: A generált HTML: <asp:TextBox id="TextBox1" runat="server">Text_to_Display </asp:TextBox> <input name="TextBox1" type="text" value="Text_to_Display" Id="TextBox1"/>

  13. Mikor melyiket válasszuk? HTML: Web Szerver: HTML-szerű objektum modell C# programn modell Meglévő HTML oldalak Több böngészőt is támogat Kliensen szertnénk a vezérlés elvégezni Specifikus funkció (naptár) A sávszélesség korlátozott Nincs sávszélesség korlát

  14. 1. Demó • Web form létrehozása • Nyomógomb • Beviteli mező

  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="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 Egy fájl Külön fájlok Kód <tags> Kód <tags> Form1.aspx.vb or Form1.aspx.cs Form1.aspx Form1.aspx

  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.cs public class WebForm1 { private void cmd1_Click() { … } } Page1.aspx <% @ Page Language="c#"Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %>

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

  21. Kliens oldali eseménykezelés • 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"> .HTM Pages Internet

  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"> .ASPX Pages Internet

  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)

  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 strGreeting = "Hello " & txtName.Text strGreeting = "Hello " + txtName.Text; lblGreeting.Text = "new text" lblGreeting.Text = "new text";

  26. Egy oldal életciklusa Az oldal megszűnik Page_Init Page_Load Vezérlő események Textbox1_Changed Change Events Button1_Click Action Events Page_Unload

  27. A Page.IsPostback események • Page_Load minden kérésre meghívódik • APage.IsPostBacktulajdonsá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 }

  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" /> 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írathatjuk • Figyelhetjük adott feltételek teljesülését • Követhetjük az alkalmazás végrehajtási útvonalát • Ezeket az információkat: • aTraceobjektum • és aDebugobjektumbiztosí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 <%@ Page Language="c#" Trace="true" %> <trace enabled="true" pageOutput="true" localOnly="true"/>

  33. A Trace objektum használata • Üzenetek beszúrása • Feltételes végrehajtás Trace.IsEnabled • Dinamikus állapotváltás Trace.Write ("category", "message") Trace.Warn ("category", "message") if (Trace.IsEnabled) { strMsg = "Tracing is enabled!"; Trace.Write("myTrace", strMsg); } Trace.IsEnabled = False

  34. Eredmények megtekintése

  35. Oldal Alkalmazás Eredmény Trace=True Trace=True or Trace=False • Az oldalon látható Trace=False Trace=True or Trace=False • Az eredmény nem látható Trace not set Trace=True • Az oldalon látható 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óak http://server/project/trace.axd

  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 using System.Web; HttpContext.Current.Trace.IsEnabled = True HttpContext.Current.Trace.Write ("component","this is my tracestatement");

  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 Felh. bevitel Hiba üzenet Érv.? Nem Kliens Igen Szerver Érv.? Nem Igen Feldolgozás

  41. ASP.NET ellenőrző vezérlők ASP.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 • Vezérlő hozzáadása • A beviteli vezérlő kiválasztása • Az érvényesítési tulajdonságok beállítása 1 2 3 <asp:TextBox id="txtName" runat="server" /> <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>

  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 • RequiredFieldValidator • InitialValue • CompareValidator • ValueToComparevagyControlToCompare • Type • Operator • RangeValidator • MinimumValue • MaximumValue • Type

  45. Reguláris kifejezések • Used when input must conform to a pre-defined pattern • Visual Studio .NET includes patterns for: • Telephone numbers • Postal codes • E-mail addresses <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ó • ClientValidationFunction • OnServerValidate • Érvényesít: • Formula • Adat • COM objektum • Web Szolgáltatássegí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 } }

  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"/>

More Related