1 / 71

Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5

Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5. Prowadzący: Jarosław Kurek kurekj@iem.pw.edu.pl. Agenda. I Przypomnienie architektury .NET II Podstawy witryny internetowej III Walidacja IV Dane i dostęp do danych. I. Architektura platformy .NET. I. Architektura platformy .NET.

naasir
Download Presentation

Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5

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. Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5 Prowadzący: Jarosław Kurek kurekj@iem.pw.edu.pl

  2. Agenda • I Przypomnienie architektury .NET • II Podstawy witryny internetowej • III Walidacja • IV Dane i dostęp do danych

  3. I. Architektura platformy .NET

  4. I. Architektura platformy .NET • Nowości w ASP.NET 2.0 • Ponad 40 nowych kontrolek w porównaniu z 1.1 • Strony wzorcowe (Master Pages) • Motywy graficzne (Themes) • mechanizmy autoryzacji, ról i konfiguracji, (ASP.NET Membership Provider). • Kontrolki Data source • Kontrolki Web Parts • Profile użytkownika (Profiles)

  5. I. Architektura platformy .NET • Nowości w Framework 3.0 • WPF (Windows Presentation Foundation) • WCF (Windows Communication Foundation) • WF (Windows Workflow Foundation) • Skok z ASP.NET 2.0 -> ASP.NET 3.5 bo: • Framework 3.0 nie wprowadził nowego CLR • Framework 3.0 nie wprowadził nowego ASP.NET

  6. I. Architektura platformy .NET • Nowości w ASP.NET 3.5 • LINQ (Language Integrated Query) • ASP.NET AJAX • Korzysta z silnika ASP.NET 2.0 • SilverLight • Zestawy algorytmów kryptograficznych • Korzysta nawet z katalogu ASP.NET podczas „cachowania” C:\WINDOWS\Microsoft.NEt\Framework\v2.0.50727\Temporary ASP.NET Files

  7. Framework 4.0 (wkrótce) Więcej na posterze pod linkiem PlakatNETFX4.pdf

  8. I. Architektura platformy .NET • Nowości w Visual Studio .NET 2008 • Projectless vs project-based • Wybór wersji ASP.NET 2.0/3.5 (multitargeting) • Łatwiejsza obsługa CSS (Cascading Style Sheets)

  9. II. Podstawy witryny internetowej ASP.NET 2.0 • Struktura klasy Page, • Kod z treścią oraz kod ukryty (separacja warstw), • Metody przekierowania do innej strony • Metody przesyłanie danych pomiędzy stronami, • Automatyczny postback (autopostback) • Cykl życiowy strony,

  10. 1. Struktura klasy Page • Strona – plik (*.aspx) • Plik *.aspx- „plik z treścią” – wizualna zawartość strony (HTML+kontrolki ASP.NET) • Plik *.aspx.cs (C#) *aspx.vb (VB) – „kod ukryty” –”code behind” • Elementy HTML nie są przetwarzane przez serwer platformy .NET (chyba , że runat =„server”) • Pierwsze żądanie strony- kompilacja JIT platformy .NET klasy użytkownika • Klasa użytkownika wywodzi się z System.Web.UI.Page

  11. 1. Struktura klasy Page c.d. • Klasa kompilowana do podzespołu (buforowany w pamięci serwera) • Kolejne żądania – z bufora (brak kompilacji) • Nazwa klasy np. _Default może być różna od nazwy pliku z treścią np. „_Default1.aspx • W pierwszej linijce strony *.aspx - dyrektywa strony:

  12. 1. Struktura klasy Page c.d. Właściwości klasy Page 3.5 • Application • AppRelativeVirtualPath • AsyncTimeout • BindingContainer • Buffer • Cache • ClientID • ClientQueryString • ClientScript • ClientTarget • CodePage • ContentType • Controls • Culture • EnableEventValidation • EnableTheming • EnableViewState • EnableViewStateMac

  13. 1. Struktura klasy Page c.d. Właściwości klasy Page 3.5 • ErrorPage • Form • Header • ID • IdSeparator • IsAsync • IsCallback • IsCrossPagePostBack • IsPostBack • IsReusable • IsValid • Items • Master • MasterPageFile • Page • Parent • PreviousPage • Request

  14. 1. Struktura klasy Page c.d. Właściwości klasy Page 3.5 • Response • ResponseEncoding • Server • Session • SkinID • StyleSheetTheme • Theme • Title • Trace • TraceEnabled • User • Validators • ViewStateEncryptionMode • ViewStateUserKey • Visible

  15. 2. Kod z treścią oraz kod ukryty Dwa podejścia pisania stron ASP.NET: • Tylko jeden plik *.aspx • oraz …

  16. 2. Kod z treścią oraz kod ukryty Dwa podejścia pisania stron ASP.NET: • Dwa pliki powiązane (*.aspx i *.aspx.cs- C#) Plik z treścią: JedenPlik.aspx Plik ukryty: DrugiPlik.aspx.cs

  17. 2. Metody przekierowania Cztery główne metody: • HyperLink – wartość właściwości NavigateURL, ( bez ponowengo zapytania serwera) • Metoda Server.Transfer – klasa HttpServerUtility, przerywa przetwarzanie bieżącej strony i przetwarza nową (brak w historii przeglądarki + adres pozostaje stary) • Metoda Response.Redirect – klasa HttpResponse ( bez ponownego zapytania serwera) • Mechanizm Cross-Page-Posting (PostBackURL) - nowość

  18. 2. Metody przekierowania Różnica pomiędzy Response.Redirect i Server.Transfer

  19. 4.Metody przesyłania danych pomiędzy stronami

  20. 4.Metody przesyłanie danych pomiędzy stronami

  21. 4.Metody przesyłanie danych pomiędzy stronami Przykład zapisu wartości kontrolek za pomocą stanu widoku - ViewState

  22. 4.Metody przesyłania danych pomiędzy stronami Przykład zapisu wartości kontrolek za pomocą stanu widoku - ViewState W przypadku klas własnych, należy dodać [Serializable] !!!

  23. 4.Metody przesyłanie danych pomiędzy stronami cd. Przykład przekazania zmiennych za pomocą metody GET - QueryString Page.aspx Test.aspx

  24. 4.Metody przesyłanie danych pomiędzy stronami Przykład zapisu wartości kontrolek za pomocą ciasteczek (Cookies) - informacji jawne - Konieczny using System.Net; Odczyt cookie Tworzenie cookie Usuwanie cookie

  25. 4.Metody przesyłanie danych pomiędzy stronami -SESJA • Zamknięci sesji, przekroczenie limitu czasu • Jeżeli Cookie wyłączony, SessionID w URL • Wywołuje zdarzenia sesji: Session_Start i Session_End, obłsuga zdarzeń w global.asax • Sesja korzysta z 120 bit identyfikatora SessionID • Konfiguracja stanu sesji nadzorowana –dyrektywa strony EnableSesionState: true,false,readonly • Stan sesji w pamięci serwera jako cześć procesu asp.net

  26. 4.Metody przesyłanie danych pomiędzy stronami -Sesja Trzy metody magazynowania stanu sesji: SessionID : -w cookies -w URL Stan sesji: implementowany za pomocą właściwości Contents collection klasy HttpSessionState

  27. 4.Metody przesyłanie danych pomiędzy stronami -Sesja Trzy metody magazynowania stanu sesji: • Konfiguracja typu stanu sesji (mode) w web.config: • mode=off – stan sesji wyłączony • mode=InProc – w procesie na serwerze lokalnym (default) • mode=StateServer – stan sesji na serwerze zdalnym, konieczny wpis stateConnectionString • mode=SqlServer, stan sesji na serwerze SQL, konieczny wpis sqlConnectionString • mode=Custom, pozwala na określenie własnego dostawcy

  28. 4.Metody przesyłanie danych pomiędzy stronami –Sesja • Przykład użycia sesji w trybie InProc z wymuszonym odrzuceniem plików cookies jako magazynu SessionID Klasa użytkownia class1 Ustawieni trybu W web.config Obsługa zapisu i odtworzenie Obiektu klasy class1

  29. 4.Metody przesyłanie danych pomiędzy stronami –stan sesji Wynik kodu z poprzedniego slajdu: Wymuszony brak obsługi cookies

  30. 4. Metody przesyłanie danych pomiędzy stronami –stan aplikacji • Stan aplikacji istnieje do momentu restartu serwera • Plik global.asax zawiera globalny kod całej aplikacji i zawiera obsługę zdarzeń: Application_Start, Application_End, Application_Error • W stanie aplikacji współużytkowane są zmienne globalne za pomocą słownika obiektów • Dzięki właściwości Application klasy HttpApplication

  31. 4. Metody przesyłanie danych pomiędzy stronami –stan aplikacji • Przykład użycia - licznik żądań Niepoprawny kod Poprawny kod

  32. 4. Nowość w ASP.NET 2.0mechanizm Cross-Page-Posting • Otrzymywanie danych z poprzedniej strony • Dla kontrolki (np. Button) ustawiamy PostBackUrl lub przekierowanie z udziałem servera: Server.Transfer • Nie działa z Response.Redirect – bez udziału serwera. • Kontrolki z poprzedniej strony dostępne dzięki właściwości Page.PreviousPage

  33. 4. Nowość w ASP.NET 2.0mechanizm Cross-Page-Posting Przykład użycia: Bez deklaracji dyrektywy Późne wiązanie Użycie deklaracji dyrektywy Użycie Akcesora na stronie CrossPagePostinaspx.aspx

  34. 5. AutoPostback • Automatyczny postback możliwy jest przez ustawienie właściwości kontrolki na Autopostback na True • Gdy kontrolka zmieni stan (u klienta) wychwytuje to zdarzenie onchange w javascript • generuje się automatycznie funkcja function __doPostBack(eventTarget, eventArgument) • Zapisane w postaci pól ukrytych przesyłane są dane dotyczące kontrolki: • <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> • <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />

  35. 6. Cykl życiowy strony

  36. III Znajdowanie i usuwanie błędów 1. Śledzenie wykonywania programu 2. Debugowanie programu 3. Obsługa błędów

  37. III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu • Poprzednio (ASP 3.0) Response.Write(); • w ASP.NET 2.0 śledzenie na poziomie: Request Details, Time of Request, Request Type, Status Code, Trace Information, Control Tree własne komentarze: Trace.Write(„Kategoria”,”Komunikat ostrzeżenia”,wyjątek) Trace.Warn…. – kolor czerwony • Na poziomie strony (w dyrektywie Trace=„true”): • Na poziomie aplikacji (wpis w web.config): wywołujemy: http://mojastrona/trace.axd

  38. III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu na poziomie strony

  39. III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu na poziomie aplikacji

  40. III Znajdowanie i usuwanie błędów debugowanie aplikacji

  41. IIIZnajdowanie i usuwanie błędów debugowanie aplikacji • Właściwości punktu kontrolnego (zatrzymuje wykonanie programu w wyznaczonym wierszu): • Location – ustawia punkt kontrolny w wyznaczonym wierszu, • Condition – ustawia warunek is true/has change • Hit Counter – zatrzymuje wykonywanie programu po osiągnięciu danej liczby powtórzeń kodu • Filter- punkt stopu dla określonych procesów, wątków, itp. • When Hit – uruchomienie np. makr w momencie stopu

  42. III Znajdowanie i usuwanie błędów debugowanie aplikacji – obsługa błędów • Cel – przechwycenie błędu zanim aplikacja wyśle klientowi podstawową stronę błędu • Konfiguracja obsługi błędów- plik web.config dla całej aplikacji • W przypadku przechwycenia błędu o danych kodzie następuje przekierowanie • mode: true, false, RemoteOnly • Dla konkretnej strony „ErrorPage”:

  43. IV Walidacja danych • Do sprawdzanie poprawności danych wprowadzonych przez użytkownika: • Nr karty kredytowej, • Kodów pocztowych, • Nr Pesel, NIP, ISBN • Adres email, … • W ASP.NET wykorzystujemy kontrolki do sprawdzania poprawności wejściowych danych użytkownika. • Przeglądarki uplevel >=IE 4.0, .Net – u klienta, • Przeglądarki downlevel <IE 4.0,.Net – na serwerze • Wymuszenie walidacji po stronie serwera:

  44. IV Walidacja danych • kontrolki do sprawdzania poprawności wejściowych danych użytkownika: • RequiredFieldValidator – wymagane dane • RangeValidator – wartość w podanym zakresie • CompareValidator – porównanie z inną wartością lub wartością kontrolki • RegularExpressionValidator – walidacja za pomocą wyrażeń regularnych • CustomValidator – własne metody do sprawdzania poprawności danych wejściowych (u klienta –javascript, na serwerze np.c#) • ValidationSummary- podsumowuje błędy

  45. IV Walidacja danych - RequiredFieldValidator • Gwarantuje wpisanie wartości do kontrolki nadzorowanej oraz może wymagać zmiany domyślnej wartości przez użytkownika • Właściwość ControlToValidate – wskazuje kontrolkę, w którą będzie nadzorował, • Właściwość InitialValue – jeżeli wartość w kontrolce nadzorowanej=InitialValue ->blad • SetFocusOnError=true - ustawia skupienie na pierwszą kontrolkę z błędem • Można skorzystać programowo z właściwości Page.IsValid • ErrorMessage - komunikat błędu

  46. IV Walidacja danych – ValidationSummary • Podsumowuje wszystkie błędy w jednej kontrolce i wyświetla komunikaty o błędach • HeaderText- Nagłówek w kontrolce podsumowującej • ShowSummary=true, pokazuje informacje o błędach w HTML’u • ShowMessageBox=true, pokazuje informacje o błędach w oknie informacyjnym Javascript • DisplayMode=0 –BulletList • DisplayMode=1 –List • DisplayMode=2 –SingleParagraph

  47. IV Walidacja danych – CompareValidator • Porównuje wartości w kontrolce nadzorowanej z kryteriami narzuconymi • Stosowana np. do weryfikacji wpisania ponownie hasła w formularzu rejestracyjnym • Type np. integer, string, data... • Operator, GreaterThan, Equals, DataTypeCheck – sprawdza typ danych • ValueToCompare – wartość stała stosowana w kryterium • ControlToCompare- zamiast ValueToCompare pobiera wartość do porównania z wybranej kontrolki

  48. IV Walidacja danych – RangeValidator • Kontroluje zakres danych wejściowych: liczb, znaków lub dat • MinimumValue, MaxiumumValue • Atrybut Type: Integer ,String, Currency, Date, Double • Wszystkie kontrolki stosowane do walidacji można grupować poprzez właściwość ValidationGroup - przycisk wysyłający formularz musi mieć tą samą wartość ValidationGroup

  49. IV Walidacja danych – RegularExpressionValidator • Kontrolka sprawdzająca wprowadzone dane o największych możliwościach- korzysta z wyrażeń regularnych • ValidationExpression – wartość wyrażenia regularnego Np.\d{2}-\d{3} – 02-567 – kod pocztowy • Udogodnienie w VS.NET Edytor Regular Expression Editor

  50. IV Walidacja danych – Custom Validator • Tworzymy własną metodę sprawdzania poprawności która zwraca true lub false • Metoda powinna być zarówno po stronie serwera (downlevel) jak i po stronie klienta (uplevel) • ValidateEmptyText =false- błąd w przypadku braku wartość w kontrolce nadzorowanej- bardzo pomocne • ServerValidator – metoda po stronie serwera • ClientValidationFunction – metoda po stronie klienta

More Related