Infrastruktura aplikacji WWW



Podobne dokumenty
Infrastruktura aplikacji WWW I

Ćwiczenie 8. Kontrolki serwerowe

ASP.NET. Plan wykładu. Wykład prowadzi: Mikołaj Morzy. SSI - Przykład. Server Side Includes (SSI)

Kurs WWW ASP.NET. Paweł Rajba.

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

MasterPage w ASP.NET

Dostępne grupy kontrolek. Podstawowe kontrolki Web

Zaawansowane aplikacje internetowe - laboratorium

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Aplikacje internetowe i rozproszone - laboratorium

4. Proste przekazywanie stanu

Dodaj do kontrolki MultiView dwie kontrolki View, nazywając je po kolei: ankietaglowna i podsumowanie.

Zarządzanie stanem w aplikacjach ASP.NET

Aplikacje WWW. Otrzymuje odniesienie do obiektu Application w bieżącym żądaniu. Otrzymuje obiekt Cache aplikacji.

Aplikacje WWW - laboratorium

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Plan wykładu. Tworzenie programów dla platformy.net. Kontrolki list. Kontrolki weryfikujące. Wiązanie danych. Dostęp do danych

Laboratorium 10 - Web Services

Zajęcia 4 - Wprowadzenie do Javascript

Aplikacje internetowe - laboratorium

Projektowanie Graficznych Interfejsów Użytkownika. Robert Szmurło

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

ITA-103 Aplikacje Internetowe. Piotr Bubacz. Moduł 5. Wersja 1. Kontrolki serwerowe

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Zaawansowane aplikacje internetowe

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Dokumentacja Skryptu Mapy ver.1.1

Aplikacje internetowe laboratorium

Aplikacje WWW. Laboratorium z przedmiotu Aplikacje WWW - zestaw 01

Podstawy JavaScript ćwiczenia

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

ASP.NET Web Parts Krzysztof Jeliński Dawid Gawroński Toruń 2011/2012

5. Tworzenie prostego kalkulatora

Aplikacje WWW - laboratorium

Bazy Danych i Usługi Sieciowe

Aplikacje WWW - laboratorium

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Aplikacje internetowe i rozproszone - laboratorium

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Dostęp do baz danych w ASP.NET.

Aplikacje internetowe - laboratorium ASP.NET praca z bazą danych

Szczegółowy opis zamówienia:

Technologie internetowe ASP.NET Core. Paweł Rajba

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Architektura MVC w ASP.NET. Autor wykładu: Marek Wojciechowski

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Instrukcja laboratoryjna cz.2

Wykład 03 JavaScript. Michał Drabik

Aplikacje WWW - laboratorium

Laboratorium 1 Wprowadzenie do PHP

Logika prezentacji II

JavaScript - wykład 4. Zdarzenia i formularze. Obsługa zdarzeń. Zdarzenia. Mysz. Logiczne. Klawiatura. Beata Pańczyk

Aplikacje Internetowe

Laboratorium programowania urządzeń mobilnych

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tworzenie i wykorzystanie usług sieciowych

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

ASP.NET. Programowanie

Aplikacje Internetowe

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Aplikacje WWW - laboratorium

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Technologia WebParts

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Personal Home Page PHP: Hypertext Preprocessor

Systemy internetowe Wykład 3 PHP

Integracja frameworku Wicket z serwisem Platnosci.pl.

TIN Techniki Internetowe zima

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Platforma.NET Wykład 10 Technologia ASP.NET. Spis treści. Plan wykładu spotkania tydzień po tygodniu. Plan wykładu tydzień po tygodniu.

Programowanie obiektowe

Platforma.NET Wykład 10 Technologia ASP.NET

Google Web Toolkit Michał Węgorek ZPO 2009

Rys.2.1. Drzewo modelu DOM [1]

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Zaawansowane aplikacje internetowe laboratorium REST

Dokument hipertekstowy

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Leszek Stasiak Zastosowanie technologii LINQ w

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

4. Zabezpieczanie aplikacji przez logowanie

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Wprowadzenie do Internetu Zajęcia 5

Aplikacje internetowe i rozproszone - laboratorium

Scenariusz lekcji. wymienić elementy projektu w ASP.NET; opisać sposoby tworzenia stron ASP.NET; podać przykłady istniejących stron typu.

Część I Tworzenie aplikacji dla systemu Windows 15

Java wybrane technologie

Wykład 5: PHP: praca z bazą danych MySQL

Transkrypt:

ASP.NET WebForms

Infrastruktura aplikacji WWW Gotowe rozwiązania architektoniczne i szkielety aplikacji zwalniają twórców aplikacji z implementacji infrastruktury, zwiększając ich produktywność Stanowy, interaktywny interfejs użytkownika Nawigacja miedzy stronami Walidacja danych wprowadzanych do formularzy Bezpieczeństwo Obsługa wielu języków Obsługa różnych typów urządzeń końcowych

ASP.NET i Web Forms Nacisk na stanowy i interaktywny interfejs aplikacji na wzór aplikacji desktopowych integracja z Visual Studio Wsparcie dla: walidacji danych bezpieczeństwa obsługi urządzeń mobilnych nawigacji internacjonalizacji aplikacji zapewniania spójnego wyglądu stron i personalizacji Nie promuje wzorca Model-View-Controller (MVC)

Problem stanu interfejsu formularz HTML (1/2) 1 2 3 4 5 <%@ Page Language="c#" %> HtmlForm.aspx <html><body> <form> Podaj imię: <input type="text" name="imie"> <select name="kolor"> <option value="black">czarny</option> <option value="blue">niebieski</option> <option value="red">czerwony</option> </select> <input type="submit" value="powitaj"> <br><span style="color: <%= Request.Params["kolor"] %>"> Witaj <%= Request.Params["imie"] %>!</span> </form> </body></html>

Problem stanu interfejsu formularz HTML (2/2) Formularze HTML są bezstanowe kolejne wywołania tej samej strony obsługiwane niezależnie problem szczególnie dotkliwy przy walidacji danych

Web Forms: stanowy interfejs (1/3) 1 2 3 4 5 6 WebForm.aspx <%@ Page Language="c#" CodeFile="WebForm.aspx.cs" Inherits="WebForm" %> <html><body> <form runat="server"> Podaj imię: <asp:textbox id="imie" runat="server"></asp:textbox> <asp:dropdownlist id="kolor" runat="server"> <asp:listitem Value="Black">Czarny</asp:ListItem> <asp:listitem Value="Blue">Niebieski</asp:ListItem> <asp:listitem Value="Red">Czerwony</asp:ListItem> </asp:dropdownlist> <asp:button id="submitbutton" runat="server" Text="Powitaj"></asp:Button> <br><asp:label id="powitanie" runat="server"></asp:label> </form></body></html>

Web Forms: stanowy interfejs (2/3) public partial class WebForm : System.Web.UI.Page {... private void submitbutton_click(object sender, EventArgs e) { powitanie.text = "Witaj "+imie.text+"!"; powitanie.style["color"] = kolor.selectedvalue; } } WebForm.aspx.cs

Web Forms: stanowy interfejs (3/3) Formularze Web Forms są stanowe wartości wprowadzane do formularzy zawsze zachowywane możliwe zachowanie stanu wszystkich kontrolek

Stan interfejsu ASP.NET: View State Zakodowany stan wszystkich kontrolek na stronie Przydatny do zapamiętania: stanu kontrolek wyświetlających dane zawartości programowo wypełnianych list wyboru Zapisany w ukrytym polu formularza na stronie <input type="hidden" name=" VIEWSTATE" value="ddwtmtcymtezndaznzs7pgdq3cuwkhiqn3y33yrulch8x qba" /> Obsługa włączana atrybutem EnableViewState <asp:label id=label1 runat="server" EnableViewState="false" />

View State dla dynamicznej zawartości list wyboru WebForm.aspx.cs 1 2 3... private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { kolor.items.add(new ListItem("Czarny", "Black")); kolor.items.add(new ListItem("Niebieski", "Blue")); kolor.items.add(new ListItem("Czerwony", "Red")); } }... <asp:dropdownlist id="kolor" runat="server" EnableViewState="true"> 4 WebForm.aspx

Mechanizm Auto Post Back Zdarzenia z kontrolek Web Forms obsługiwane na serwerze Odwołanie do serwera tylko w wyniku zatwierdzenia formularza Kontrolki Web Controls posiadają atrybut AutoPostBack, którego ustawienie spowoduje zatwierdzenie formularza po zmianie stanu kontrolki poprzez automatycznie generowany kod JavaScript Mechanizm Auto Post Back zwiększa interaktywność aplikacji

Auto Post Back dla listy rozwijanej 2 WebForm.aspx <asp:dropdownlist id="kolor" runat="server" AutoPostBack="true">... private void kolor_selectedindexchanged(object sender, System.EventArgs e) { powitanie.text = "Witaj "+imie.text+"!"; powitanie.style["color"] = kolor.selectedvalue; }... 1 WebForm.aspx.cs <select name="kolor" onchange=" dopostback('kolor','')" language="javascript" id="kolor"> 3

Walidacja danych w ASP.NET Predefiniowane kontrolki walidacyjne z grupy Web Controls: CompareValidator CustomValidator RangeValidator RegularExpressionValidator RequiredFieldValidator ValidationSummary Walidacja po stronie klienta (JavaScript) i na serwerze interaktywność, bezpieczeństwo

Walidacja danych w ASP.NET - Przykład 1 2 <form runat="server"> Etat: <asp:textbox id="etat" runat="server"></asp:textbox> <asp:requiredfieldvalidator id="rfv1" runat="server" ErrorMessage="Pole wymagane!" ControlToValidate="etat"></asp:RequiredFieldValidator> <br>... Do: <asp:textbox id="p_do" runat="server"></asp:textbox> <asp:rangevalidator id="rv22" runat="server" ErrorMessage="Wartość musi być nieujemna!" ControlToValidate="p_do" MinimumValue="0" MaximumValue="99999"></asp:RangeValidator> <br>... </form>

Nawigacja w aplikacjach ASP.NET Formularz wywołuje sam siebie Kod obsługujący zdarzenie zatwierdzenia formularza może przekazać sterowanie do innej strony: Response.Redirect() Server.Transfer() URL 1 Page 1 URL 1 Page 1 Redirect URL 2 Page 2 Transfer Page 2

Nawigacja w ASP.NET - Przykład 1 Pracownicy.aspx.cs... private void submitbutton_click(object sender, EventArgs e) { if (etat.text == "DYREKTOR" etat.text == "PROFESOR") { Context.Items["etat"] = etat.text; Server.Transfer("Zakazane.aspx"); } }... Zakazane.aspx <%@ Page Language="c#" %> <html><body> Płace pracowników na etacie <%=Context.Items["etat"] %> są tajne! </body></html> 2

Cross-Page Posting w ASP.NET 2.0 Możliwość przesłania zatwierdzanego formularza pod inny adres niż bieżąca strona atrybut PostBackUrl przycisku itp. <form id="form1" runat="server">... <asp:linkbutton ID="LinkButton3" runat="server" PostBackUrl="~/Druga.aspx"> Oblicz </asp:linkbutton> </form>

Dostęp do poprzedniej strony (1/3) Możliwy przy przekierowaniu metodami: Server.Transfer Cross-Page Posting Realizowany poprzez właściwość PreviousPage if (Page.PreviousPage!= null) { TextBox temp = (TextBox) PreviousPage.FindControl("Kontrolka"); Label3.Text = temp.text; }

Dostęp do poprzedniej strony (2/3) Gdy poprzednia strona jest jednoznacznie określona można określić jej typ dzięki temu można będzie odwoływać się bezpośrednio do publicznych właściwości poprzedniej strony Publiczna właściwość udostępniająca kontrolkę w pliku code behind public TextBox Wlasciwosc { } get { return Kontrolka; }

Dostęp do poprzedniej strony (3/3) Wskazanie typu poprzedniej strony <%@ PreviousPageType VirtualPath="~/Pierwsza.aspx" %> Dostęp do publicznych właściwości poprzedniej strony if (Page.PreviousPage!= null) { Label3.Text = PreviousPage.Wlasciwosc.Text; }

Uwagi o Response.Redirect W porównaniu z innymi metodami generuje większy ruch w sieci Z punktu widzenia przekazywania danych zachowuje jak kliknięcie na zwykły link do nowej strony Możliwe sposoby przekazania danych: umieszczenie w obiekcie Session zaszycie w adresie URL Response.Redirect("Default.aspx?x=5&y=7");

Deklaratywna nawigacja oparta o mapę serwisu i kontrolki nawigacyjne <sitemap xmlns="..." > Web.sitemap <sitemapnode title="kontrolki ASP.NET" url="~/index.aspx" > <sitemapnode title="data Controls" url="~/datacontrols.aspx"> <sitemapnode title="gridview" url="~/gridview.aspx"/> <sitemapnode title="formview" url="~/formview.aspx"/> </sitemapnode> <sitemapnode title="html Controls" url="~/htmlcontrols.aspx">... </sitemap> 1 <asp:sitemapdatasource ID="SM" runat="server"/> Strona.aspx 2 3 <asp:treeview ID="MyTreeView" DataSourceId="SM" runat="server"> <LevelStyles>...</LevelStyles> <Databindings> 4 <asp:treenodebinding TextField="Title" NavigateUrlField="Url" /> </Databindings> </asp:treeview>

Internacjonalizacja aplikacji ASP.NET Automatyczny odczyt preferencji kulturowych klienta Formatowanie dat i liczb zależnie od ustawień kultury Lokalizacja komunikatów oparta o pliki zasobów <%@ Page UICulture="auto" Culture="auto" %> Strona.aspx... <asp:label ID= "l1" runat="server" Text="<%$ Resources:Greet %>! <data name="greet"> <value>welcome</value></data> Strona.aspx.resx <data name="greet"> <value>witaj</value></data> Strona.aspx.pl.resx