1 / 61

Platformy Technologiczne ASP.NET

Platformy Technologiczne ASP.NET. mgr inż. Tomasz Gawron. Protokół HTTP. Protokół zaprojektowany jako bezstanowy (brak pojęcia sesji grupującej interakcje). Interakcja przeglądarki z serwerem WWW odbywa się według schematu żądanie - odpowiedź: Serwer nadsłuchuje żądania,

delano
Download Presentation

Platformy Technologiczne ASP.NET

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. Platformy TechnologiczneASP.NET mgr inż. Tomasz Gawron

  2. Protokół HTTP • Protokół zaprojektowany jako bezstanowy (brak pojęcia sesji grupującej interakcje). Interakcja przeglądarki z serwerem WWW odbywa się według schematu żądanie - odpowiedź: • Serwer nadsłuchuje żądania, • Klient otwiera połączenie – serwer odpowiada potwierdzeniem, • Żądanie HTTP jest wysyłane przez klienta, • Serwer przekazuje w odpowiedzi żądane zasoby lub informację o ich niedostępności, • Połączenie zostaje zamknięte przez serwer • Protokół określa format komunikatu żądania oraz odpowiedzi • Domyślny numer portu: 80 Platformy Technologiczne 2012

  3. Request Line • Method • Request URI • HTTP Version Info • Response Line • HTTP Version Info • Status Code • Description Headers CRLF Message Body Struktura komunikatu HTTP • Formaty żądania i odpowiedzi są podobne: • wiersz początkowy (zależny od typu komunikatu) • dowolna liczba wierszy nagłówków • typy nagłówków: General, Request, Response, Entity • pusta linia (CRLF) – dla zaznaczenia końca sekcji nagłówkowej • opcjonalne ciało komunikatu Platformy Technologiczne 2012

  4. Rodzaje metod komunikatów • GET • Do pobrania informacji poprzez podanie URI wymaganego zasobu • Parametry dołączane do URI (po znaku zapytania) • Jeżeli adres wskazuje na proces wykonujący przetwarzanie danych to wynikiem jest wytworzona przez ten proces informacja • Możliwość warunkowego wykonania metody, gdy spełniony jest warunek podany w dodatkowych nagłówkach (If-Modified-Since, If-Match, …) • Ograniczona długość przekazywanych parametrów (~240 znaków) • POST • Przesłanie danych do zasobu o podanym URI, dane zawarte są w treści żądania (większa ilość przesyłanych danych) • Opisane dodatkowo nagłówkami Content-Type oraz Content-Length • Odwołanie do zasobu (URI) wskazuje zwykle na program obsługujący, nie zaś na pobierany zasób; odpowiedź jest zwykle dokumentem generowanym • HEAD • Jak GET, ale służy jedynie sprawdzeniu dostępności zasobu: zwracany w odpowiedzi tylko nagłówek dokumentu Platformy Technologiczne 2012

  5. Rodzaje metod komunikatów • PUT • Wymusza zapisanie zawartości żądania pod wskazanym adresem URI • OPTIONS • Żądanie przesłania informacji o opcjach związanych z wyspecyfikowanym zasobem. Pozwala określić możliwości serwera bez wywoływania akcji na zasobie. • DELETE • Do usunięcia wyspecyfikowanego zasobu • TRACE • Do zdalnego wywoływania śledzenia wysłanego żądania. Pozwala klientowi zobaczyć co zostało odebrane po drugiej stronie; użycie nagłówka Via daje informację o ścieżce wysłanego żądania • CONNECT • Do użytku z serwerami proxy, które mogą się przełączać dynamicznie w stan tunelowania Platformy Technologiczne 2012

  6. Elementy komunikatu odpowiedzi • Kody statusu • Nagłówki odpowiedzi Platformy Technologiczne 2012

  7. Web Client HTTP ASP.NET Applications IIS Asp.Net Engine .NETFramework Operating System Aplikacje ASP.NET • Obiektowe środowisko projektowania dynamicznych aplikacji WWW • Rozdzielenie projektowania prezentacji strony od kodu logiki biznesowej (logika strony) • Użycie komponentów dostarczanych przez .NET Framework - kontrolki Web, HTML działające po stronie serwera • Kod strony jest kompilowany przy pierwszym żądaniu strony ASP.NET (.aspx) • Możliwość użycia języków programowania VB.NET, C# • Organizacja UI - strony główne i strony z treścią • Zarządzanie stanem, bezpieczeństwem • Aplikacja ASP.NET może składać się elementów: • Formularze Internetowe (Web Form) – pliki z rozszerzeniem (.aspx) • Usługi Web (Web services) – pliki z rozszerzeniem (.asmx) • Pliki logiki aplikacji – pliki z rozszerzeniem (.vb lub .cs) • Globalnej klasy aplikacji (.asax) • Pliku konfiguracyjnego Web.config • innych pliki typu: strona HTML, arkusz CSS Platformy Technologiczne 2012

  8. Pliki konfiguracyjne i katalogi • Pliki konfiguracyjne • Machine.config - ustawienia dotyczą wszystkich aplikacji na komputerze lokalnym • Web.config - ustawienia dotyczą tylko wybranej aplikacji • Katalogi aplikacji • Bin - zawiera wszystkie prekompilowane podzespoły (assemblies) wykorzystywane w aplikacji • App_Browsers - zawiera tzw. „Browser Capabilities” – specjalne pliki, w których definiuje się, jakich funkcjonalności od klienta przesyłającego w żądaniu określony łańcuch USER-AGENT może oczekiwać serwer. • App_Code - zawiera pliki źródłowe klas wykorzystywanych na stronach. • App_Data - zawiera pliki z danymi dla aplikacji np. plikami baz danych Microsoft Access (.mdb), XML itp. • App_Themes - zawiera pliku definiujące wygląd strony internetowej i kontrolek. • App_GlobalResources - zawiera globalne pliki zasobów aplikacji (.resx) • App_LocalResources - zawiera pliki zasobów dla określonej strony (.resx). • App_WebReferences - zawiera pliki połączenia serwisów Web z aplikacją (.wsdl) Platformy Technologiczne 2012

  9. ASP.NET - od wewnątrz • Kod zawarty w aplikacjach i usługach WWW opartych na ASP.NET jest wykonywany w pojedynczej instancji procesu roboczego aspnet_wp.exe • Żądania dotyczące plików ASP.NET są obsługiwane przez rozszerzenie ASP.NET ISAPI działające w przestrzeni adresów procesu IIS (inetinfo.exe) • Komunikacja pomiędzy tym procesem a procesem roboczym ASP.NET odbywa się za pomocą potoku nazwanego • Izolacja aplikacji polega na utworzeniu odrębnych domen aplikacji w ramach procesu roboczego (po jednej dla każdego katalogu wirtualnego IIS lub usługi WWW opartej na ASP.NET) Platformy Technologiczne 2012

  10. Single file Separate files code code <tags> <tags> Form1.aspx Form1.aspx Form1.aspx.vb or Form1.aspx.cs Web Form • Sekcja dyrektyw strony • Konfigurują środowisko, w którym będzie pracowała strona. • Określają sposób przetwarzania strony przez moduł wykonawczy HTTP. • Umożliwiają importowanie przestrzeni nazw, ładowanie podzespołów, których nie ma w danym momencie w GAC, rejestrowanie nowych kontrolek z niestandardowymi nazwami tagów i prefiksami przestrzeni nazw. • Sekcja kodu • Opatrywana tagiem <script> zawiera kod związany z daną stroną. Zawiera zwykle procedury obsługi zdarzeń i funkcje pomocnicze. Kod aplikacji może zostać umieszczony bezpośrednio w pliku .aspx tzw. Code Inline lub w dodatkowym pliku tzw. Code Behind. • Sekcja układu strony • Zawiera reprezentację widoku strony w postaci zbioru kontrolek serwerowych, tekstu oraz znaczników HTML, który jest uszczegóławiany przez kod. Platformy Technologiczne 2012

  11. Web Form • Formularz Web składa się z znaczników ASP.NET oraz logiki przetwarzania • Rozdzielnie kodu obsługi strony od zawartości interfejsu użytkownika • Kod inline - kod znaczników i kod aplikacji (C#, VB) współistnieją w pojedynczym pliku .aspx • Kod ukryty - kod znaczników i kod aplikacji są w odrębnych plikach (.aspx, .aspx.cx, dll) • Kod ukryty - klasy częściowe – plik z kodem ukrytym jest implementowany za pomocą klas częściowych • Programiści i projektanci UI mogą pracować niezależnie Platformy Technologiczne 2012

  12. Składowe strony ASP.NET • Sekcja dyrektyw strony • Konfiguruje środowisko, w którym będzie pracowała strona • Określa przestrzeń nazw, języka programowania, sposób przetwarzania strony przez moduł wykonawczy HTTP (parametrów protokołu), • Umożliwia importowanie przestrzeni nazw, ładowanie podzespołów, których nie ma w danym momencie w GAC, rejestrowanie nowych kontrolek z niestandardowymi nazwami tagów i prefiksami przestrzeni nazw. • <%@ dyrektywa atrybut=”wartość” [, atrybut=wartość] %> • Sekcja kodu • Opatrywana tagiem <script> zawiera kod związany z daną stroną. • Zawiera zwykle procedury obsługi zdarzeń i funkcje pomocnicze. • Sekcja układu strony (page layout) • Zawiera reprezentację widoku strony, który jest uszczegóławiany przez kod. Zawiera kontrolki serwerowe, ciągi tekstu oraz znaczniki języka HTML. Wygląd strony może być zdefiniowany na stronie poprzez ustawienie właściwości indywidualnych elementów lub przy pomocy arkuszy styli. Platformy Technologiczne 2012

  13. Model strony ASP.NET Page Object <%@Page Language="C#" Debug="True" ...="etc" %> HTML Block <p>This is some text</p> <a href="mypage.aspx">link text</a> <img src="mypic.gif align="left" /> HTML Block HTML\Text <input type="text" name="mytext" size="40" runat="server" /> <input type="submit" name="gobtn" value="Go" runat="server" /> Server Control Other Objects <%@Import Namespace="System.Data" %> <%@Import Namespace="System.XML" %> Platformy Technologiczne 2012

  14. Strony ASP.NET • Strona prezentacyjna ASP.NET: widok HTML <%@ Page Language=„c#" Codebehind="WebForm1.aspx.cs" SmartNavigation="true"%> <html> <bodyms_positioning="GridLayout"> <form id="Form1" method="post" runat="server"> … </form> </body> </html> Platformy Technologiczne 2012

  15. Strony ASP.NET • Code behind using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace WebApplication1 { /// <summary> /// Summary description for WebForm1. /// </summary> partial class WebForm1 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here } #region Web Form Designer generated code } Platformy Technologiczne 2012

  16. ASPX Engine Code-behindclass Parse Generate ASPX File Compile Gen’dPageClass Request Request Instantiate Page DLL Instantiate, Process and Render Response Response Cykl życia strony • Przeglądarka użytkownika odwołuje się do pliku o rozszerzeniu .aspx • ASP.NET odczytuje plik z systemu plików serwera • ASP.NET przegląda wszystkie znaczniki w pliku i ładuje je do pamięci • jeśli znacznik zawiera atrybut runat=„server”, ASP.NET ładuje odpowiednią kontrolkę serwerową. Typ kontrolki jest określony przez nazwę znacznika. • znaczniki niezawierające atrybutu runat=„server” stanowią zwykły kod HTML. ASP.NET w niezmienionej postaci przekaże je do odbiorcy • Po załadowaniu wszystkich znaczników do pamięci ASP.NET wykonuje odpowiedni kod programu każdej z kontrolek serwerowych • Po zakończeniu przetwarzania kodu wszystkich kontrolek serwerowych, ASP.Net wywołuje metodę Render każdej kontrolki • Po wygenerowaniu strony ASP.NET uwalnia pamięć Platformy Technologiczne 2012

  17. Dyrektywy strony • Składnia:<%@ dyrektywaatrybut=”wartość” [, atrybut=wartość] %> • @Page - definiuje atrybuty strony wykorzystywane przez kompilator stron. Umożliwia określenie parametrów protokołu HTTP, określenie przestrzeni nazw, definicję języka programowania. • @Control – definiuje atrybuty kontrolki użytkownika (user control) • @Register – tworzy powiązanie pomiędzy nazwa pliku kontrolki użytkownika a nazwą odpowiadającego jej znacznika. • @Import - dołącza jawnie do strony przestrzeń nazw, co umożliwia elementom strony dostęp do wszystkich klas i interfejsów zdefiniowanych w tej przestrzeni • @Assembly -deklaruje stworzenie połączenia pomiędzy podzespołem a bieżącą stroną, co pozwala na wykorzystywanie na stronie klas i interfejsów zdefiniowanych w podzespole • @OutputCache - deklaruje sposób obsługi buforowania wyjścia dla strony Platformy Technologiczne 2012

  18. Klasyfikacja kontrolek serwerowych • Kontrolki serwerowe HTML (HTML Server Control) - z atrybutem runat=„server” • Kontrolki serwerowe Web (Web Server Control) – <asp:xx …runat=„server”</asp:xx> • Standardowe – etykiety, pola tekstowe, listy, … • Data – odczyt informacji z pojemników danych • Navigation – kontrolki wyświetlające elementy nawigacyjne, takie jak ścieżki, menu różnych typów • Login – udostępniające funkcje sterowania dostępem, rejestracji użytkownika • Walidacji danych • WebParts – umożliwiające wydzielanie części strony Web jako obszaru dynamicznego, który autoryzowani użytkownicy mogą dostosować do swoich preferencji • Kontrolki użytkownika (Web User Controls) • Wbudowane kontrolki Web (WebCustom Controls) Platformy Technologiczne 2012

  19. .ASPX Pages .HTM Pages Internet Internet Zdarzenia w modelu klient - serwer • Klient: • Zazwyczaj używane tylko z kontrolkami HTML • Interpretowane przez przeglądarkę • Brak dostępu do zasobów serwera • Używa <SCRIPT language="language"> • Serwer: • Używane z każdym typem kontrolki • Kod jest kompilowany i uruchamiany na serwere • Dostęp do zasobów serwera • Używa<SCRIPT language="vb" runat="server"> lub <SCRIPT language=“cs" runat="server"> Platformy Technologiczne 2012

  20. Postback • Postback polega na powracaniu do określonej strony WWW w czasie trwania sesji z serwerem • ASP.NET Postback model – mechanizm przesyłania stanu kontrolekze strony web do serwera oraz odtwarzaniu tych wartości gdy serwer zwróci odpowiedź • Pozwala zachować właściwości kontrolkom pomiędzy wieloma odwołaniami do serwera • Cross-Page Postback – możliwość skonfigurowania kontrolek do przesyłania żądań na inne strony • IsPostBack – właściwość strony umożliwiająca programowe rozróżnienie między żądaniami przesyłanymi zwrotnie a pierwszymi wywołaniami strony • AutoPostBack – właściwość kontroluje automatyczne odesłanie stanu kontrolki do serwera • EnableViewState– umożliwia zachowanie stanu kontrolki po przesłaniu żądania do serwera Platformy Technologiczne 2012

  21. AutoPostBack(wymusza natychmiastowe odwołanie do serwera) <asp:TextBox Runat="server" AutoPostBack="true" OnTextChanged="DoTextChanged" /> TextChanged Zdarzenia i Postback Round trip event(natychmiastowe odwołanie do serwera) <asp:Button Text="click me" Runat="server" OnClick="DoClick" /> Click Delayed event(zdarzenie obsłużone przy kolejnym odwołaniu do serwera) <asp:TextBox Runat="server" OnTextChanged="DoTextChanged" /> TextChanged <asp:ListBox Rows="3" Runat="server" OnSelectedIndexChanged="DoSIChanged" /> SelectedIndexChanged Platformy Technologiczne 2012

  22. Cross – Page Postback • Strony mogą wykonać post back do innych stron • Wykorzystywane właściwości: • control.PostBackUrl – adres docelowy żądania zwrotnego • Page.PreviousPage – zwraca referencję do strony, która generowała żądanie zwrotne • PreviousPage.IsCrossPagePostBack – informacja, czy wystąpiło żądanie zwrotne z innej strony <html> <body> <form runat="server"> <asp:TextBox ID="Input" RunAt="server" /> <asp:Button Text="Test" PostBackUrl="PageTwo.aspx"RunAt="server" /> </form> </body> </html> Platformy Technologiczne 2012

  23. Przetwarzanie kontrolek Init Inicjalizacja, dodanie do drzewa Load Wykonanie kodu użytkownika CreateChildControls() sprawdza renderowanie dzieci PreRender SaveViewState Zapisanie aktualnego stanu Render Renderowanie odpowiedziEach control renders itself to the Response Dispose Strony i kontrolki są usuwane Init LoadViewState Ostatni stan pobrany z ViewState Load Postback data Przesłane dane są przekazane do powiązanych kontrolek Postback events Zdarzenia uruchamianie zgodnie z kolejnoscią w drzewie; Zdarzenie, które wywołało postback wykonywane jest jako ostatnie PreRender SaveViewState Render Platformy Technologiczne 2012 Dispose

  24. Obsługa błędów • Przekierowanie użytkownika na stronę błędu • Konfiguracja na poziomie strony • atrybut errorPage w dyrektywie Page • własność Page.ErrorPage • Konfiguracja na poziomie aplikacji • sekcja customErrors w pliku Web.config • Przechwytywanie i obsługa wyjątków • Obsługa wyjątków na poziomie lokalnym • Obsługa wyjątków na poziomie strony • Obsługa wyjątków na poziomie aplikacji • Śledzenie wykonywania aplikacji – tracing • Śledzenie wykonywania na poziomie strony • Śledzenie wykonywania na poziomie aplikacji Platformy Technologiczne 2012

  25. Client Request Response ASP.NET Web Server IIS ASP.NET HTTP Runtime Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_EndRequest Application_ResolveRequestCache Application_UpdateRequestCache Application_AquireRequestState Application_ReleaseRequestState Application_PreRequestHandlerExecute Application_PostRequestHandlerExecute Page execution Kontrola zdarzeń aplikacji Platformy Technologiczne 2012

  26. Zdarzenia aplikacji Platformy Technologiczne 2012

  27. Global.asax protected void Session_Start(Object sender, EventArgs e) { } protected void Application_BeginRequest(Object sender, EventArgs e) { } protected void Application_EndRequest (Object sender, EventArgs e) { } protected void Application_AuthenticateRequest (Object sender, EventArgs e) { } protected void Application_Error(Object sender, EventArgs e) { } protected void Session_End(Object sender, EventArgs e) { } protected void Application_End(Object sender, EventArgs e) { } using System; using System.Collections; using System.ComponentModel; using System.Web; using System.Web.SessionState; namespace BenefitsCS { /// <summary> /// Summary description for Global. /// </summary> public class Global : System.Web.HttpApplication { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; public Global() { InitializeComponent(); } protected void Application_Start(Object sender, EventArgs e) { } … Platformy Technologiczne 2012

  28. Nawigacja i logowanie • Kontrolki ułatwiają nawigację pomiędzy stronami WWW • Plik .sitemap – opis struktury logicznej witryny (mapa witryny) to lista stron i adresów URL • Menu - wyświetla rozwijane lub wyskakujące menu w oparciu o dane przekazane przez SiteMapDataSource • TreeView – wyświetla dane jako hierarchiczny układ węzłów, które można rozwijać lub ukrywać; • SiteMapPath - pokazuje ścieżkę dostępu do aktualnej strony poprzez pośredniczące strony • SiteMapDataSource – dostęp do hierarchicznej listy łączy, zapisanej w pliku XML o domyślnej nazwie web.sitemap • Login controls • Kontrolki dla logowania, tworzenia użytkowników, odzyskiwania haseł, i inne... <siteMap> <siteMapNode title="Home" url="default.aspx"> <siteMapNode title="Tab1" url="subdir/default.aspx"> <siteMapNode title="SubPage" url="subdir/foo.aspx" /> </siteMapNode> <siteMapNode title="Tab2" url="Tab/default.aspx"> <siteMapNode title="SubPage" url="Tab/foo.aspx“/> </siteMapNode> </siteMapNode> </siteMap> Platformy Technologiczne 2012

  29. Przesyłanie informacji między stronami • Metoda GET lub POST • Przesyłanie informacji • Response.Redirect("Info.aspx?imie=" + imieTextBox.Text + "&nazwisko=" + nazwiskoTextBox); • Pobieranie informacji przesłanych • Request.Params["imie"] • Mechanizm Cross-Page Postback Platformy Technologiczne 2012

  30. Odwołanie do kontrolki na poprzedniej stronie <html> <body> <form runat="server"> <asp:TextBox ID="Input" RunAt="server" /> <asp:Button Text="Test" PostBackUrl="PageTwo.aspx"RunAt="server" /> </form> </body> </html> <html> <body> <asp:Label ID="Output" RunAt="server" /> </body> </html> <script language="C#" runat="server"> void Page_Load (Object sender, EventArgs e) { if (PreviousPage != null && PreviousPage.IsCrossPagePostBack) { TextBox input = (TextBox) PreviousPage.FindControl ("Input"); Output.Text = "Hello, " + input.Text; } } </script> Platformy Technologiczne 2012

  31. Walidacja danych • Obiekty sprawdzające poprawność danych wejściowych wprowadzanych przez użytkownika • RequiredFieldValidator • sprawdzający czy w danym polu została wprowadzona jakakolwiek wartość • RangeValidator • sprawdzający czy dane znajdują się w określonym przedziale wartości • CompareValidator • porównujący wartości dwóch pól tekstowych • CustomValidator • sprawdzanie poprawności określone przez algorytm użytkownika • RegularExpressionValidator • sprawdzanie poprawności „ na dopasowanie wzorca” określonego wyrażeniem regularnym Platformy Technologiczne 2012

  32. Dodawanie walidatora • Dodanie kontrolki sprawdzającej • Wybór kontrolki wejściowej do sprawdzania • Ustalenie właściwości kontroli • Display: sposób wyświetlania kontrolki sprawdzania poprawności: • Static - do strony zostanie dodane miejsce przeznaczone na wyświetlanie informacji • Dynamic - miejsce na wyświetlanie informacji kontrolki zostanie dodane dynamicznie, jeśli dane okażą się niepoprawne • None – wartość atrybutu ErrorMessage nigdy nie będzie wyświetlana <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> Platformy Technologiczne 2012

  33. ValidationSummary • Wyświetla listę komunikatów o błędach, zgłoszonych przez znajdujące się na stronie kontrolki sprawdzania poprawności • Może wyświetlać zawartość atrybutów text i error messages • Używa Text="*" do wskazania lokalizacji błędu • DisplayMode – format wyświetlania podsumowania; List - jako listę w osobnych wierszach, BulletList- jako listę wypunktowaną, SingleParagraph - w jednym paragrafie • EnableClientScript - włączenie/wyłączenie kodu generowanego po stronie klienta z podsumowania błędów sprawdzania poprawności • ShowSummary – gdy true, podsumowanie zostanie wyświetlone na Web Form … <asp:ValidationSummary id="valSummary" runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/> Page.IsValid Property private void cmdSubmit_Click(object s, System.EventArgs e) { if (Page.IsValid) { Message.Text = "Page is Valid!"; // Perform database updates or other logic here } } Platformy Technologiczne 2012

  34. Strony wzorcowe • Strona wzorcowa - umożliwia sterowanie wspólnym wyglądem dla całej witryny internetowej; zawiera tylko wspólne elementy • Strona zawartości - miejsce w którym ma zostać umieszczona treść strony zawartości jest określone przez specjalną kontrolkę ContentPlaceHolder • Plik .master zawiera szablon wykorzystywany przez wszystkie strony aplikacji • Inne strony zawierają się jako kontrolki w stronie „Master Page” Platformy Technologiczne 2012

  35. Tworzenie strony wzorcowej • Dodawanie strony wzorcowej do projektu • za pomocą menu Website\Add New Item, wybierając szablon Master Page • Dodawanie strony zawartości • Dodatkowo zaznaczenie opcji Select master page. Strona zawartości korzystająca z tej strony wzorcowej musi zawierać kontrolkę Content, która atrybut ContentPlaceHolderID jest równy wartości ContentPlaceHolderID strony wzorcowej. • Modyfikowanie istniejącej strony Web na stronę używającą strony wzorcowej Site.master default.aspx http://.../default.aspx <%@ Master %> <asp:ContentPlaceHolder ID="Main" RunAt="server" /> <%@ Page MasterPage- File="Site.master" %> <asp:Content ContentPlaceHolderID= "Main" RunAt="server" /> </asp:Content> Platformy Technologiczne 2012

  36. Definiowanie i korzystanie z szablonu <%@ Master %> <html> <body> <!-- Banner shown on all pages that use this master --> <table width="100%"> <tr> <td bgcolor="darkblue" align="center"> <span style="font-size: 36pt; color: white">ACME Inc.</span> </td> </tr> </table> <!-- Placeholder for content below banner --> <asp:ContentPlaceHolder ID="Main" RunAt="server" /> </body> </html> <%@ Page MasterPageFile="~/Site.master" %> <asp:ContentContentPlaceHolderID="Main" RunAt="server"> This content fills the place holder "Main" defined in the master page </asp:Content> Platformy Technologiczne 2012

  37. Motywy i skórki • Mechanizm stosowany dla kontrolek, stron i aplikacji polegający na grupowaniu właściwości inicjujących kontrolki • Skórki to wizualne atrybuty kontrolek • narzucają wygląd kontrolek, stron i całych aplikacji • dodawane deklaratywnie lub programistycznie • fizycznie przechowywane w plikach .skin • domyślne i nazwane skórki • Motywy to kolekcje skórek • fizycznie przechowywane w podkatalogu motywów • globalne i lokalne motywy Przypisaniemotywu do strony Przypisaniemotywu do aplikacji <%@ Page Theme="BasicBlue"> <configuration> <system.web> <pages theme="BasicBlue" /> </system.web> </configuration> Platformy Technologiczne 2012

  38. Lokalizacja • ASP.NET wspierabudowęserwisówwielojęzycznychpoprzezmechanizmzasobów (resources) • 2 typyzasobów: • /App_LocalResources – dotyczącepojedynczejstrony • /App_GlobalResources – dotyczącecałościserwisu • Prostastruktura: klucz=wartość • Typy zasobów: • Ciągi tekstowe • Grafika (obrazy i ikony) • Pliki tekstowe • Wykorzystanie zasobów: <asp:Label runat=„server” Text=„<%$ Resources: PlikRes, Etykieta1_Klucz %>” /> • Mechanizm lokalizacji domyślnie wykorzystuje ustawienia językowe przeglądarki Platformy Technologiczne 2012

  39. Wiązanie danych • Wiązanie danych – proces uzyskiwania danych ze źródła i dynamicznego wiązania ich z pewną właściwością elementu wizualnego (kontrolki) • Kontrolki serwera można powiązać logicznie ze źródłem danych, używając zbioru właściwości takich jak Text, DataSource, DataTextField • Powiązanie kontrolki z danymi uaktywniane jest poprzez wywołanie metody DataBind. • Źródło danych – obiekt implementujący interfejs ICollection • Dane reprezentowane przez klasy kolekcji .NET (tablice, słowniki, listy, sterty, kolejki) • Struktury danych definiowane przez użytkowników • Dane reprezentowane przez klasy bazodanowe (DataTable, DataSet, DataReader) • Kontrolki źródeł danych • Widoki reprezentowane przez klasę DataView Platformy Technologiczne 2012

  40. Kontrolki prezentacji i źródeł danych • Wyświetlanie informacji: • GridView: Wyświetlanie rekordów w formie arkusza, umożliwia modyfikację i usuwanie danych • DetailsView: wyświetla jeden rekord; wstawianie, modyfikacja, usuwanie • FormView: wyświetla jeden rekord w sformatowanej postaci; wstawianie, modyfikacja, usuwanie • … • Kontrolki źródeł danych: • SqlDataSource: umożliwia odczytywanie i zmianę informacji w bazie danych MS SQL • XMLDataSource: umożliwia odczytywanie i zmianę informacji w plikach XML • ObjectDataSource: umożliwia odczytywanie i zmianę danych zawartych w niestandardowych obiektach • SiteMapDataSource: odczytywanie informacji z pliku mapy witryny Platformy Technologiczne 2012

  41. Wiązanie danych prostych • Łączenie kontrolek jest użyteczne w prostym przekazywaniu danych między kontrolkami • Drugim sposobem jest DataBind <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(); } Platformy Technologiczne 2012

  42. Właściwość kontolki do której przyisujemy wartość txtCustomerAddress.DataBindings.Add("Text", dsNorthwindData1.Customers, "Address"); txtCustomerCity.DataBindings.Add("Text", dsNorthwindData1.Customers, "City"); Tabela źródła danych Kolumna Wiązanie przez właściwości • Używając kolekcji DataBindings możemy przypisywać właściwości ze źródła danych do kontrolki Platformy Technologiczne 2012

  43. Właściwość Opis DataSource • DataSet zawierający dane DataMember • DataTable w DataSet DataTextField • Wyswietlane pole z DataTable DataValueField • Pole, które po zaznaczeniu staje się wartością Wiązanie danych złożonych • Wiązanie danych złożonych - gdy wiążemy kontrolkę listy (DropDownList,CheckBoxList, RadioButtonList, ListBox) lub kontrolkę iteracyjną (Repeater, DataList, DataGrid) z jedną lub kilkoma kolumnami danych // data loading DataTable __dataTable; __dataTable = __dataHandler.Load(); // data binding DDList.DataSource = __dataTable; DDList.DataTextField = "Name"; DDList.DataValueField = "empID"; DDList.DataBind(); Platformy Technologiczne 2012

  44. Kontrolki wyświetlające dane Platformy Technologiczne 2012

  45. GridView • Zbliżona do kontrolki DataGrid • Generuje zbiór danych w postaci tabel HTML • Wbudowane funkcje: sortowanie, stronicowanie, wybieranie, modyfikowanie i kasowanie • Bogaty asortyment typów komórek: ImageFields, CheckBoxFields • Wiele możliwości modyfikacji UI <asp:SqlDataSource ID="Employees" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select lastname, firstname, title from employees" /> <asp:GridViewDataSourceID="Employees" Width="100%" RunAt="server" /> Platformy Technologiczne 2012

  46. Typy komórek GridView Platformy Technologiczne 2012

  47. Typy komórek GridView <asp:SqlDataSource ID="Employees" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select photo, lastname, firstname, title from employees" /> <asp:GridViewDataSourceID="Employees" Width="100%" RunAt="server" AutoGenerateColumns="false" > <Columns> <asp:ImageFieldHeaderText="" DataField="photo" /> <asp:TemplateFieldHeaderText="Name"> <ItemTemplate> <%# Eval ("firstname") + " " + Eval ("lastname") %> </ItemTemplate> </asp:TemplateField> <asp:BoundFieldHeaderText="Title" DataField="title" /> </Columns> </asp:GridView> Platformy Technologiczne 2012

  48. Kontrolki źródła danych • Zapełnienie kontrolek danymi poprzez wiązanie nie bezpośrednio z kolekcją danych, ale z kontrolką do obsługi źródła danych Platformy Technologiczne 2012

  49. SqlDataSource • Deklaratywne podpinanie danych do baz SQL • Dwustronne podpinanie danych • SelectCommand • InsertCommand, UpdateCommand i DeleteCommand • Możliwość umieszczania wyników zapytania w pamięci podręcznej Cache • Parametryzowane operacje <asp:SqlDataSource ID="Titles" RunAt="server" ConnectionString="server=localhost;database=pubs;integrated security=true" SelectCommand="select title_id, title, price from titles" /> <asp:DataGridDataSourceID="Titles" RunAt="server" /> Platformy Technologiczne 2012

  50. SqlDataSource • Najważniejsze właściwości: • ConnectionString – ciąg znaków połączenia umożliwiający dostęp do bazy danych, • SelectCommand, InsertCommand, UpdateCommand, DeleteCommand – ciąg znaków, które zawierają polecenie SQL lub nazwa składowanej procedury • DataSourceMode – tryb pobierania danych przez polecenie Select (DataSet lub DataReader) • ProviderName – dostawca danych np. System.Data.SqlClient • SqlDataSource wspiera także deklaratywne umieszczanie elementów w pamięci podręcznej cache. Właściwości: • EnableCaching – włączenie/wyłączenie mechanizmu pamiętania w pamięci podręcznej • CacheDuration – czas przechowywania zawartości źródła danych w pamięci Platformy Technologiczne 2012

More Related