Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
ASP.NET
2
ASP oraz ASP.NET ASP (ang. Active Server Pages) jest technologią wykorzystywaną do pisania aplikacji na stronach Web. ASP działa w sieciowych systemach operacyjnych takich jak Windows NT lub Windows 2000 i wymaga serwera Web takiego jak Internet Information Server (IIS). Technologia ASP polega na tym, że w standardowym kodzie HTML umieszczane są elementy ASP, które są na serwerze przetwarzane i zwracane do przeglądarki klienta w postaci dokumentu HTML. Przeglądarka nie rozpoznaje znaczników ASP. Strony ASP mogą zawierać kod napisany wyłącznie w językach skryptowych, na przykład w VBScript.
3
ASP oraz ASP.NET Strony ASP są interpretowane przy każdorazowym uruchomieniu przez serwer, co zmniejsza wydajność aplikacji. Wdrażanie gotowej aplikacji wymaga rejestracji bibliotek DLL. Kod HTML jest wymieszany z kodem ASP, co przy bardziej skomplikowanych aplikacjach powoduje problemy w oddzieleniu części prezentacji od części logiki biznesowej.
4
ASP oraz ASP.NET W związku z rozwojem Internetu i stosowanych w nim technologii, Microsoft zdecydował się zmodernizować ASP i włączyć je w skład platformy .NET. Pierwotną nazwą nowego ASP było Active Server Pages Plus (ASP+). Nazwę tę zmieniono, aby dopasować ją do nowo powstającej platformy .NET. ASP.NET to najnowsza technologia tworzenia dynamicznych stron WWW, niezależnie od używanego języka programowania, której częścią są formularze i kontrolki WWW, działające po stronie serwera, pozwalające uzyskać takie rezultaty, jakie w ASP wymagały zarówno użycia języka HTML jak i skryptów.
5
ASP oraz ASP.NET ASP.NET jest nie tylko ulepszeniem ASP, ale jest całkowicie nową metodologią programowania. ASP jak i ASP.NET stanowią oddzielne instalacje: ASP jest instalowane automatycznie z IIS, posiada model konfiguracyjny korzystający z rejestru, oraz pracuje z typami plików z rozszerzeniem .asp, .asa, ASP.NET używa plików konfiguracyjnych XML oraz pracuje z typami plików z rozszerzeniem .aspx.
6
Zalety ASP.NET Podstawowa przewaga ASP.NET nad ASP wynika z tego, iż ASP.NET jest częścią .NET. Twórcy stron www mogą korzystać z ogromnych możliwości tej platformy, takich jak: możliwość tworzenia stron w dowolnym języku dostępnym na platformie .NET możliwość korzystania z klas napisanych w innych językach, a także dziedziczenia takich klas. rozbudowana biblioteka klas .NET. usługi Web ASP.NET jako interfejsu bazodanowego używa technologii ADO.NET.
7
Zalety ASP.NET Oprócz zalet wynikających z przynależności ASP.NET do .NET istnieją także liczne inne ulepszenia w porównaniu z technologią ASP, takie jak: strony są kompilowane, a nie interpretowane jak w ASP istnieje kontrola typów oddzielenie kodu od interfejsu użytkownika (Code behind) zawiera kontrolki działające po stronie serwera posiada kontrolki użytkownika i kontrolki dostosowane wywoływanie funkcji przez zdarzenia łatwa konfiguracja stron ASP.NET monitorowanie stron z wykorzystaniem obiektu Trace
8
ASP oraz ASP.NET ASP.NET jest częścią platformy .NET Framework, umożliwiającej tworzenie aplikacji rozproszonych w Internecie. ASP.NET korzysta z CLR (Common Language Runtime) mogącym uruchamiać skompilowany kod na serwerze Web, dzięki czemu można tworzyć potężne aplikacje sieciowe. Strony ASP.NET są kompilowane podczas pierwszego odwołania do nich na klasę platformy .NET, która przechowywana jest w pamięci podręcznej; jeżeli w stronie ASP.NET zostanie dokonana jakaś zmiana, klasa ta jest rekompilowana. Znaczniki definiujące wygląd strony przechowywane są w innych plikach niż kod źródłowy, co pozwala na niezależną pracę projektantów interfejsu i programistów
9
ASP oraz ASP.NET W ASP używano języki skryptowe, w których zmienne nie miały typów. Każda zmienna była tworzona jako typ variant; jest to rozwiązanie bardzo nieoptymalne. Zmienne typu variant zajmują taką samą ilość pamięci niezależnie od podtypu. Dodatkowo, brak kontroli typów był powodem wielu błędów. Na stronach ASP.NET nie można używać języków skryptowych. Stosuje się tylko języki kompilowane, takie jak Visual Basic.NET (VB.NET) i C#, zapewniające kontrolę typów.
10
ASP oraz ASP.NET Tworzenie skryptów jest możliwe po stronie serwera i po stronie klienta. Tworzenie skryptów po stronie serwera oznacza, że kod, zanim zostanie wysłany do przeglądarki klienta, przetwarzany jest najpierw na serwerze. Tworzenie skryptów po stronie klienta oznacza, że kod jest uruchamiany na komputerze klienta, bezpośrednio w przeglądarce.
11
ASP.NET – ogólne informacje
ASP.NET może używać plików z rozszerzeniami .aspx i plików Web Services. Web Services są rozproszonymi komponentami aplikacji działającymi po stronie serwera, których funkcjonalność jest dostępna w Internecie dla innych serwerów i usług sieciowych Web Services. W ASP.NET programy Web Services mogą być tworzone w .NET Framework i publikowane poprzez IIS Program ASP.NET jest tworzony jako plik tekstowy, rozpoczynający się od deklaracji języka, a następnie deklaracji zmiennych. Potem wykonywana jest seria akcji, jakie zachodzą w witrynie w jednym pliku „programu” z odpowiednimi stronami HTML wyświetlanymi w odpowiednim czasie.
12
Struktura strony ASP.NET
Domyślnie każda strona ASP.NET dziedziczy po klasie System.Web.UI.Page. ASP.NET stwarza możliwość oddzielenia kodu od interfejsu użytkownika. W atrybucie Codebehind lub Src dyrektywy Page można podać nazwę pliku zawierającego klasę z kodem obsługującym stronę, a w atrybucie Inherits nazwę tej klasy; wtedy strona będzie dziedziczyła po klasie podanej w atrybucie Inherits zamiast po klasie System.Web.UI.Page. Klasa, po której dziedziczy strona ASP.NET musi rozszerzać klasę System.Web.UI.Page.
13
Struktura strony ASP.NET
Przykładowo: Page language=”C#” CodeBehind=”MojaKlasa.cs” Inherits=”MojaKlasa”%> Przedstawione rozwiązanie pozwala zaawansowany kod obsługujący stronę umieścić w klasie znajdującej się w osobnym pliku; może się tam znaleźć na przykład obsługa połączeń z bazą danych lub funkcje do obsługi zdarzeń na stronie. Jeżeli kod źródłowy klasy zostanie wcześniej skompilowany do pliku .dll, to plik ten należy umieścić w katalogu bin wewnątrz katalogu wirtualnego.
14
Struktura strony ASP.NET
Na stronie ASP.NET może pozostać jedynie kod związany z jej wyglądem; pozwala to uzyskać większy porządek niż na stronach ASP, gdzie kod html’a był przeplatany skryptami. Nadal istnieje możliwość umieszczania kodu bezpośrednio na stronie ASP.NET. Można to zrobić za pomocą znacznika <script></script> z atrybutem RUNAT=Server lub ograniczników <% %> . Różnica w stosunku do ASP polega na tym, że deklaracje funkcji i zmiennych globalnych mogą się znaleźć tylko wewnątrz znacznika <script> . Na jednej stronie wewnątrz bloków skryptu można stosować tylko jeden język. Istnieje możliwość stosowania kontrolek użytkownika napisanych w dowolnym języku.
15
Klasa Page Domyślnie każda strona dziedziczy po klasie Page.
Istnieje też możliwość dziedziczenia po klasie wywodzącej się z klasy Page. Wynika z tego, iż każda strona posiada zdarzenia, funkcję i własności odziedziczone po klasie Page. Klasa Page jest podklasą System.Web.UI.TemplateControl, oraz implementuje interfejs System.Web.IhttpHandler, konieczny do synchronicznego przetwarzania żądań HTTP. Jedną z ważniejszych metod klasy Page jest metoda Validate, która wymusza wykonanie kontroli poprawności zawartości pól formularza przez kontrolki weryfikacji na tej stronie.
16
Klasa Page W klasie Page znajdują się również zdarzenia dziedziczone z klasy Control. Najważniejsze z nich to: Page_Load zgłaszane podczas ładowania strony; następnie wywoływane są metody związane z obsługą zdarzeń strony Page_Unload jest wykorzystywane do przeprowadzania „sprzątania”, tzn. zamykania plików lub otwartych połączeń z bazą danych.
17
Atrybuty strony ASP.NET
- definiuje zestaw atrybutów specyficznych dla pojedynczej strony w aplikacji, czyli atrybuty dla pliku o rozszerzeniu .aspx. Najczęściej używane atrybuty: Buffer - określa, czy buforowanie odpowiedzi HTTP jest włączone czy nie (True – domyślnie, lub False). Jeżeli buforowanie jest włączone, do użytkownika nie dotrze żadna odpowiedź dopóki całe przetwarzanie nie zostanie zakończone. Debug – umożliwia debugowanie aplikacji. Explicit - ustawiony na True, wymusza deklarowanie zmiennych instrukcją Option Explict; (domyślnie – False).
18
Atrybuty strony ASP.NET
Strict - ustawiony na True wymusza instrukcję Option Strict, co oznacza że nie można niejawnie przeprowadzać pewnych konwersji typów; (domyślnie - False). Transaction - ustawiony na True wymusza obsługę transakcji; (domyślna wartość – NotSupported). Import pozwala dołączyć zaimportowaną lub zdefiniowaną przez użytkownika przestrzeń nazw.
19
Właściwości klasy Page
Najważniejsze właściwości klasy Page: Request Response Server Application Session IsPostBack IsValid
20
Właściwości klasy Page
Pierwsze pięć z wymienionych właściwości klasy Page umożliwia dostęp do wbudowanych obiektów środowiska HTTP Runtime. Właściwość IsPostBack mówi, czy bieżące żądanie jest pierwszym żądaniem danego klienta. Na podstawie wartości tej własności można podejmować decyzję o przeprowadzaniu jednorazowej inicjalizacji podczas pierwszego żądania. Właściwość IsValid, informuje czy podczas sprawdzania poprawności pól formularza przez kontrolki do weryfikacji wykryto błędy. Używając tej własności można w prosty sposób zdecydować o rozpoczęciu dalszego przetwarzania danych lub wysłaniu odpowiedniego komunikatu o zaistniałym błędzie.
21
ASP.NET – obiekt Request
Obiekt Request - przechwytuje wszystkie dane przesłane przez użytkownika do serwera, łącznie za zmiennymi HTTP, cookie, stringami zapytań, certyfikatami bezpieczeństwa, oraz określonymi własnościami żądania, jakie mogą być użyte do zarządzania komunikacją. Wszystkie dane są natychmiast dostępne dla aktywowanego skrypty ASP. W ASP, obiekt Request zwraca tablicę wartości podczas dostępu do kolekcji. W ASP.NET, obiekt Request zwraca NameValueCollection.
22
ASP.NET – obiekt Request
Obiekt Request posiada pięć wbudowanych kolekcji, z których każda przechwytuje określony typ danych: Query string – pary nazwa/wartość dołączone na koniec adresu URL, lub pary nazwa/wartość wynikające z wysłania formularza, w którym atrybut method = GET Form - pary nazwa/wartość wynikające z wysyłania formy metodą POST Server variables – nazwy i wartości nagłówka HTTP plus nazwy i wartości pewnych zmiennych środowiskowych z serwera Cookies – wartości wszystkich ciasteczek wysłanych w żądaniu użytkownika (domyślnie wysyłane są tylko te cookie, które są ważne dla domeny i serwera) Client certificate – wartości pól/wpisów w certyfikacie klienta oferowanemu serwerowi.
23
Własności i metody obiektu Request
Jedyną własnością obiektu Request jest TotalBytes, która reprezentuje całkowitą liczbę bajtów w ciele żądania. Jedyną metodą obiektu Request jest BinaryRead, która pobiera określoną liczbę bajtów z żądania wysłanego przy użyciu METHOD=”POST” i jest uzupełnieniem do kolekcji Form. Metoda BinaryRead odczytuje dane w formie binarnej i zwraca dane w postaci tablicy typu Variant.
24
Kolekcja Request.Form Kolekcja Request.Form posiada własność Count, reprezentującą liczbę elementów w kolekcji, którą można wykorzystać w pętli przechodzącej przez wszystkie elementy kolekcji (zamiast stosowanej w skryptach ASP pętli For...Next). Przykładowo: For intlncr = 1 To Request.Form.Count Response.Write (Request.Form(intlncr) Next & “<BR>”) W ASP.NET zamiast stosowanych w ASP do oddzielenia kodu ASP od HTML ograniczników (%), stosuje się znacznik ”<BR>”
25
Kolekcja Request.Form Do przechodzenia przez wszystkie elementy kolekcji można stosować pętlę For Each : For Each collitem In Request.Form Response.Write (collitem & “ = “& Request.Form(collltem) & „<BR>” Next Spowoduje to wyświetlenie zarówno nazwy każdego elementu kolekcji w zmiennej collltem oraz powiązanej z nią wartości, np.: fullname = ichnazwisko address = ichadres phonenumber = ichnumertelefonu
26
Kolekcja QueryString String zapytania zawiera nazwy i wartości, na które wskazuje URL. Może być stworzony poprzez znacznik łącza hipertekstu i wyglądać np. tak: <A HREF=” ? fullname=Marek”> Click Here Nazwa pliku oznacza docelowy skrypt; dane za znakiem zapytania składają się z nazw i przypisanych im wartości. Zawartość kolekcji QueryString może zostać pobrana z łącza hipertekstu lub z wartości wysłanych z formularza przy użyciu metody GET. Jeżeli znane są nazwy w każdej parze, można je pobierać indywidualnie poprzez nazwę lub też pobrać cały string pomijając pola lub nazwę pary, przy pomocy instrukcji: Response.Write Request. QueryString
27
Kolekcja Server Variables
Gdy żądanie jest przysyłane z przeglądarki, wysyłane są niektóre nagłówki HTTP. Gdy pojawiają się one na serwerze, to serwer także generuje zestaw zmiennych. Obydwa te zestawy wartości są dostępne poprzez kolekcje ServerVariables. Przykładowy skrypt w kodzie ASP pokazujące te zmienne ma postać:
28
Kolekcja Server Variables
<HTML> <HEAD><TITLE>My Form Results</TITLE></HEAD> <BODY BGCOLOR=”blue” TEXT=”black”> <CENTER> <TABLE BORDER=l><TR><TD><B>Name</BX/TD> <TD><B>Value</B></TD></TR> <% For Each collltem In Request.ServerVariables %> <TR><TD><% Response.Write (collltem) %></TD> <TD><%Response.Write(Request.ServerVariables(collltem)) %></TD></TR> <% Next %> </TABLE> </CENTER> </BODY> </HTML>
29
Kolekcja Server Variables
Przykładowe wartości ServerVariables są następujące: Nazwa Wartość ALL_HTTP=HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg, image/ pjpeg, HTTP_ACCEPT_LANGUAGE en-us HTTP_CONNECTION Keep-Alive HTTP_HOST cx a HTTP_REFERERhttp://cx a/ASPBEG/CH03/default8.htm HTTP_USER_AGENT Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) HTTP_COOKIE ASPSESSIONID = GQGQGLZQ HTTP_ACCEPT_ENCODING gzip, deflate
30
Kolekcja Server Variables
HTTP_REFERER wskazuje adres URL i ścieżkę dostępu do pliku, z którego odwołano się do skryptu; pozwala pokierować użytkownika z powrotem do tej samej strony, w zależności od warunków, jakie wystąpią podczas przetwarzania żądania użytkownika (np. brakujące pole w formularzu). HTTP_USER_AGENT określa typ i wersję używanej przeglądarki, co umożliwia stworzenie i wysłanie strony specyficznej dla danej przeglądarki. HTTP_ACCEPT_LANGUAGE jest dostarczana przez użytkownika i określa jakiego języka używa przeglądarka, co pozwala na stworzenie strony w określonym języku.
31
Kolekcja Server Variables
HTTP_COOKIE zawiera wartości dowolnych sesji, jakie otrzymały cookies, co jest wykorzystywane do śledzenia przemieszczania się użytkownika po witrynie, a także np. do ustanawiania sesji za każdym razem po podłączeniu się użytkownika. Cookies są małymi ciągami tekstu danych (stringami), jakie serwer może przesłać do przeglądarki, a później pobrać w razie potrzeby. Cookies posiadają atrybuty, które mogą określać ich czas życia oraz dostępność, ustawiane przy pomocy obiektu Response.
32
Kolekcja Cookies Podstawowe wartości, które mogą być ustawiane w Cookies to: unikalny identyfikator, pozwalający odróżnić jedną przeglądarkę pomiędzy wieloma żądaniami; może być ustawiony niezależnie od wybranego schematu, czas wygaśnięcia, data, domena i ścieżka dostępu, nazwa użytkownika i hasło. Cookies mogą jednowartościowe lub wielowartościowe. Wszystkie indywidualne wartości Cookies mogą być zebrane poprzez wykorzystanie pętli For Each ... Next
33
Kolekcja Cookies For Each collItem In Request.Cookies
Response.Write(collltem & “ = “ & Request.Cookies(collltem) & Next W przypadku Cookies wielowartościowych do przejścia przez kolejne wartości można wykorzystać własność HasKeys kolekcji Cookies w następujący sposób: If Request.Cookies(collltem).HasKeys Then For Each collItemVal In Request.Cookies(collltem) Response.Write(collltem & “ (“ & collItemVal & “)” & “ = “ & Request.Cookies(collltem)(collItemVal) & “<BR>”) Next End If
34
Kolekcja Cookies Cookies mogą odgrywać specjalną rolę w interakcji z użytkownikiem. Niektóre cookies istnieją długo na komputerze użytkownika, podczas gdy inne trwają tylko przez jedną sesję. Cookies są tylko do odczytu i tylko do zapisu; po otrzymaniu wartości cookie nie można wrócić i ich zmienić. W celu uaktualnienia jakiejkolwiek wartości cookie należy zapisać od nowa całe cookie, dostarczając wszystkich nowych wartości. Wartości cookie wysyłane do strumienia wyjściowego są częścią nagłówka HTTP i jako takie muszą zostać stworzone przed wysłaniem jakiegokolwiek wyniku do przeglądarki; mogą być one tworzone w dowolnym miejscu strony.
35
ASP.NET – obiekt Response
Obiekt Response jest narzędziem do generowania odpowiedzi na żądanie użytkownika, ale może pełnić także inne funkcje, np..: pozwala selektywnie kierować użytkowników do innych adresów URL lub stron przy pomocy metody Redirect, działa z funkcją buforowania, która powoduje przechowywanie zawartości zwracanej strony dopóki nie zakończy się całe przetwarzanie, co pozwala wysyłać indywidualnie kompletne części, podczas gdy użytkownik czeka aż zakończą się inne przetwarzania.
36
ASP.NET – obiekt Response
W obiekcie Response znajduje się tylko jedna kolekcja, Cookies, która zawiera wartości wszystkich Cookies, jakie mają być wysłane do przeglądarki w aktualnej odpowiedzi. Wartości Cookies muszą być stworzone zanim staną się częścią odpowiedzi. Gdy już do tego dojdzie, są tylko do zapisu, co oznacza, że można określić ich nazwy z obiektu Response ale nie ich wartości. Obiekt Response posiada dziewięć własności, z których większość jest odczytywalna i edytowalna; są one tworzone przez serwer, ale można je zmieniać w zależności od potrzeb
37
ASP.NET – obiekt Response
Własności obiektu Response są następujące: Buffer - może posiadać wartość true lub false i określa, czy przetworzone wyjście zostanie przetrzymane w buforze dopóki nie będzie gotowa cała strona; własność ta musi być ustawiona przed wszelkim innym wypisywaniem, zwykle jest ona pierwsza linią na stronie ASP. IsClientConnected - przyjmuje wartości true lub false, w zależności od tego, czy przeglądarka jest wciąż połączona i ładuje stronę; pozwala zapoczątkować jakąś inną akcję, zanim zakończy się przetwarzanie.
38
ASP.NET – obiekt Response
Expires – wartość tej własności jest liczbą reprezentującą ilość minut w ciągu których strona jest ważna. Jeśli użytkownik posiada tę stronę zachowaną przez mniejszą ilość czasu, to zostanie ona wyświetlona; w przeciwnym razie zostanie wygenerowana nowa strona. ExpireAbsolute – określa datę i czas wygaśnięcia strony, niezależnie od tego jak jest stara. Jest ona wyrażona jako wartość data/czas za znakiem funta przed i po. Status – wartość typu String zawierająca komunikat jaki zostanie wysłany do przeglądarki w razie błędu; może być także użyta do oznaczenia udanego końca przetwarzania.
39
ASP.NET – obiekt Response
CacheControl – kontroluje (lub przynajmniej powinna), czy serwer proxy buforuje stronę (posiada jej kopie); nie wszystkie serwery proxy ją honorują; ustawiona jako Public pozwala na buforowanie, jako Private - zabrania. Charset – wartość typu String, dodająca nazwę zestawu znaków ustawioną w nagłówku HTTP Content-Type; ContentType – wartość typu String, która może być użyta do ustawienia typu zawartości HTTP dla odpowiedzi; jeżeli jej użyjemy, zostanie wstawione „text-html”. PICS – wartość typu String dodająca dane do nagłówka określające dodatkowe informacje w odpowiedzi.
40
ASP.NET – obiekt Response
Obiekt Response posiada następujące metody: Write(„string lub inna wartość”) – służy do wypisywania stringu (lub innej wartości) do całkowitej odpowiedzi i zwykle jest wstawiana w kod HTML w miejscu, gdzie chcemy aby wypisywany string stał się częścią strony, np.: <h2><%Response.write("Dziękujemy za rejestrację")%> </h2> TWOJE DANE TO: <br /> <%RESPONSE.WRITE(Request.Form("FirstName")) %>
41
ASP.NET – obiekt Response
Redirect(„url”) – mówi przeglądarce aby załadowała stronę lub podany URL (jako string). Flush() – wymusza opróżnienia bufora na aktualnym etapie przetwarzania; jest użyteczna dla dostarczania użytkownikowi częściowej odpowiedzi, szczególnie wtedy, gdy pozostały proces może zająć sporo czasu. End() – kończy przetwarzanie i zwraca to co zostało zrobione; jest użyteczna, gdy proces zajmuje za dużo czasu lub nie może być zakończony normalnie. Clear() – wymazuje zawartość bufora odpowiedzi (ale nie nagłówki HTTP)
42
ASP.NET – obiekt Response
AddHeader(„nazwa”, „zawartość”) - dodaje własny nagłówek do odpowiedzi, o wartościach nazwa i zawartość; musi zostać przetworzona przed wysłaniem zawartości strony AppendToLog(„wpisdziennika”) - dodaje string do dziennika wpisów serwera dla odpowiedzi gdy używamy formatu plików W3C Extendet Log File Format BinaryWrite(SafeArray) - jest używana dla zapisu danych zawartych w typie Variant SafeArray do wyjściowego strumienia, bez konwersji znaków; jest użyteczna dla zapisu danych binarnych, np. plików obrazu.
43
ASP.NET – obiekt Server Obiekt Server pomaga: przy obsłudze błędów,
tworzeniu komponentów, translacji znaczników HTML do właściwych kodów jakie mają być wyświetlone, kontroli przekierowania oraz innych różnorodnych zadaniach. Obiekt Server zastępuje obiekt ASP o nazwie ObjectContext, dostępny jawnie wtedy, gdy potrzebne jest odwołanie do kontekstu strony. Obiekt Server pozwala sterować działaniem serwera oraz wpływać na jego środowisko operacyjne.
44
ASP.NET – obiekt Server Obiekt Server posiada tylko jedną własność - ScriptTimeout, za pomocą której można ustawić lub zwrócić czas przetwarzania strony zanim zostanie wygenerowany błąd (liczbę sekund) Obiekt Server posiada następujące metody: CreateObject(„identyfikator”) - tworzy instancje obiektu, który może być aplikacją, obiektem skryptu lub komponentem Execute(„url”) – zatrzymuje wykonywanie aktualnej strony i wykonuje inną stronę, po czym wznawia wykonywanie aktualnej strony
45
ASP.NET – obiekt Server Transfer(„url”) – działa podobnie do metody Execute (zatrzymuje wykonywanie aktualnej strony i przenosi wykonywanie do innej strony), ale nie zwraca kontroli z powrotem do strony, MapPath(„url”) – zwraca fizyczną ścieżkę i nazwę pliku lub zasobu, HTMLEncode(„string”) – konwertuje string znaków HTML ze zwykłych znaków na znaki specjalne, URLEncode(„string”) – zamienia string znaków składających sią na URL z nielegalnych znaków takich jak np.”?” i „” na legalne znaki jak np. „%3F” i „+” GetLastError() – zwraca szczegóły (poprzez obiekt ASPError) dotyczące ostatniego błędu jaki wystąpił.
46
ASP.NET – obiekt Application
Obiekt Application zapewnia globalną przestrzeń na przechowywanie zmiennych, które mogą zawierać tekst, liczby, daty, tablice oraz wskaźniki na obiekty COM. W obiekcie Application dane dostępne są w całej aplikacji Web, podczas gdy dane znajdujące się w indywidualnym obiekcie Session są dostępne tylko dla tej określonej sesji. Dane w zmiennych stworzonych w czasie działania skryptu lub procedury są dostępne tylko dopóki trwa przetwarzanie na tej stronie. Obiekt Application nie posiada własności, ale posiada kolekcje, metody oraz zdarzenia.
47
ASP.NET – obiekt Application
Zdarzenia obiektu Application są następujące: onStart – zdarzenie to występuje na początku aplikacji, przed wykonaniem pierwszego żądania strony lub stworzeniem sesji, onEnd – zdarzenie to występuje na zakończenie aplikacji, po zakończeniu wszystkich sesji. Obiekt Application posiada dwie kolekcje: Contents – kolekcja ta składa się ze zmiennych w obiekcie Application, które nie zostały określone za pomocą znacznika <OBJECT> StaticObjects –kolekcja ta zawiera zmienne w obiekcie Application, które zostały określone za pomocą znacznika <OBJECT>.
48
ASP.NET – obiekt Application
Obiekt Application posiada następujące metody: Contents.Remove(„nazwazmiennej”) – pozwala na usunięcie zmiennej poprzez podanie jej nazwy, Contents.RemoveAll() – pozwala na usunięcie wszystkich zmiennych w kolekcji Contents, Lock() –pozwala na zablokowanie obiektu Application, tak że do kolekcji Contents będzie miała dostęp tylko aktualna strona, Unlock() – odblokowuje obiekt Application. Do usuwania zmiennych można stosować metodę Application.Contents.Remove i podać nazwę zmiennej, lub można użyć metody RemoveAll, aby usunąć wszystkie zmienne.
49
ASP.NET – obiekt Session
Obiekt Session udostępnia zmienne oraz je inicjalizuje w chwili rozpoczęcia lokalnej sesji użytkownika; Zmienne w sesji są dostępne tylko dla użytkownika, który ją rozpoczął. ASP domyślnie tworzy sesję gdy tylko użytkownik po raz pierwszy zażąda strony. Informacje identyfikujące jakie są przesyłane, to specjalne cookie. Jeżeli cookie są wyłączone, można użyć metody URL poprzez dołączenie informacji na końcu adresu URL żądania. Jeśli wiemy, że pewne strony przeprowadzają akcje, które nie wymagają sesji, można wyłączyć sesje dla tych stron za pomocą następującej dyrektywy: <% ENABLESESSIONSTATE %>
50
ASP.NET – obiekt Session
Sesje rozpoczynają się, gdy żądana jest pierwsza strona i kończą, gdy upłynął limit czasu sesji (domyślnie 20 minut) lub wywołana została metoda Session.Abandon. Obiekt Session posiada dwa uchwyty zdarzeń sesji działające analogicznie, jak w obiekcie Application, wykorzystywane w pliku global.asa; są to: onStart - pozwala na zapoczątkowanie akcji gdy sesja się zaczyna, onEnd – zakończenie sesji. Obiekt Session posiada trzy własności: CodePage – ustala kod strony (stronę kodową) jako liczbę reprezentującą zestaw znaków jakie będą użyte w przeglądarce podczas wyświetlania stron.
51
ASP.NET – obiekt Session
LCID – ustala identyfikator lokalizacji; każda lokalizacja posiada unikalny identyfikator, który odnosi się do takich rzeczy jak np. typ symbolu waluty jaki ma być użyty na stronie SessionID – zawiera numer identyfikatora sesji (typu long), który jest generowany przez serwer po stworzeniu sesji. Wewnątrz instancji obiektu Application wszystkie SessionID są unikalne, ale mogą się powtarzać w kolejnych instancjach aplikacji. Obiekt Session, podobnie jak Application posiada 2 kolekcje: kolekcja Contents zawiera wszystkie zmienne oraz ich wartości, które zostały wygenerowane w danej sesji, ale nie są zdefiniowane poprzez znacznik <OBJECT>.
52
ASP.NET – obiekt Session
Kolekcja StaticObjects zawiera wszystkie zmienne, które zostały wygenerowane w danej sesji i są definiowane poprzez znacznik <OBJECT>. Obiekt Session posiada następujące metody: Contents.Remove(„nazwazmiennej”) – usuwa zmienną o podanej nazwie Contents.RemoveAll() – usuwa wszystkie zmienne z kolekcji Contents Abandon() – kończy aktualną sesję i niszczy obiekt Session gdy zakończy się wykonywanie strony. Użycie metody Contents.Remove i Contents.RemoveAll jest takie samo jak dla obiektu Application; użycia metody Abandon jest następujące: <% Session.Abandon %>.
53
ASP.NET – Kontrolki serwera
Kontrolki serwera są to znaczniki, które umieszcza się na stronie ASP.NET w sposób analogiczny do znaczników HTML. Aby znacznik ten został rozpoznany przez kompilator jako kontrolka serwera, musi posiadać atrybut runat=”Server” . Twórcy ASP.NET stworzyli bibliotekę gotowych kontrolek serwera. Istnieją dwa typy gotowych kontrolek serwera: kontrolki HTML i kontrolki sieci WWW. Można również tworzyć własne kontrolki. Kontrolki HTML należą do przestrzeni nazw System.Web.UI.HtmlControls i wywodzą się z klasy bazowej HTMLControl. Każdej kontrolce HTML odpowiada jeden znacznik HTML.
54
ASP.NET – Lista kontrolek HTML
55
ASP.NET – Lista kontrolek HTML
56
ASP.NET – kontrolki HTML
Używanie kontrolek HTML na stronie ASP.NET jest analogiczne do stosowania znaczników HTML; jedyne różnice to wymagany dla kontrolek atrybut runat=”server” oraz id, który określa nazwę instancji tej kontrolki na serwerze. Atrybut id jest wymagany, jeśli na stronie występuje więcej niż jedna kontrolka danego typu. Wszystkie kontrolki HTML można podzielić na trzy grupy w zależności od ich klasy bazowej. kontrolki wejścia dziedziczące z abstrakcyjnej klasy HTMLInputControl, kontrolki pojemników dziedziczące z klasy HtmlContainerControl, kontrolki obrazów dziedziczące z klasy HtmlImage.
57
ASP.NET – kontrolki sieci WWW
Kontrolki sieci WWW należą do przestrzeni nazw System.Web.UI.WebControls i wywodzą się z klasy bazowej WebControl. W przeciwieństwie do kontrolek HTML, wymagają one zapisu zgodnego ze składnią XML. Kontrolki WWW posiadają następujące dwie najważniejsze cechy: właściwości dotyczące wyglądu kontrolek takie, jak ForeColor, BackColor, Font, Enabled, odziedziczone po klasie WebControl. możliwość dostosowania generowanego kodu do rodzaju przeglądarki.
58
ASP.NET – kontrolki użytkownika
Kontrolki użytkownika to własne znaczniki, które mogą być używane na stronach ASP.NET. Ich podstawowa rola to: oddzielenie interfejsu użytkownika od części logiki, co usprawnia zarządzanie stroną i sprawia, że staje się ona bardziej czytelna. umożliwienie wielokrotnego wykorzystania raz stworzonego kodu. Wykorzystując kontrolki użytkownika można zdefiniować własny spójny interfejs użytkownika w całym serwisie.
59
ASP.NET – kontrolki użytkownika
W kontrolkach użytkownika umieszcza się powtarzające się elementy: bannery, nagłówki, stopki; poprawia to przejrzystość kodu na stronie, a także przyśpiesza dokonywanie zmian w witrynie – wszelkie zmiany wprowadzamy tylko w jednym miejscu. Na jednej stronie można umieszczać kontrolki użytkownika napisane w dowolnym języku należącym do języków obsługiwanych przez wspólne środowisko uruchomieniowe CLR. Kontrolki użytkownika spełniają na stronach ASP.NET podobną rolę jak dołączanie plików za pomocą polecenia include.
60
ASP.NET – kontrolki użytkownika
Kontrolki użytkownika mają jednak wiele cech, które decydują o ich przewadze nad plikami wstawianymi: parametryzację za pomocą atrybutów, czytelniejszy wygląd, odrębną przestrzeń nazw, która pozwala uniknąć konfliktów, możliwość wielokrotnego używania na stronie, możliwość tworzenia kontrolek w innym języku niż język zawierającej je strony. Aby kontrolka użytkownika była rozpoznawana na stronie ASP.NET należy użyć dyrektywy Register podając nazwę pliku zawierającego kod kontrolki oraz prefix i nazwę znacznika.
61
ASP.NET – kontrolki użytkownika
W celu uruchomienia kontrolki na stronie trzeba podać atrybut runat=Server. Kontrolka użytkownika dziedziczy po klasie System.Web.UI.Control. Podstawowe różnice między kontrolkami użytkownika a Web Form są następujące: kontrolki użytkownika mają rozszerzenie .ascx, zaś strony ASP.NET .aspx kontrolki użytkownika muszą być osadzone na stronie ASP.NET, nie mogą być bezpośrednio żądane od serwera przez przeglądarkę. dla stron odpowiada dla kontrolek użytkownika.
62
ASP.NET – kontrolki użytkownika
Tworząc kontrolki można stosować oddzielenie kodu od interfejsu użytkownika analogiczne do stosowanego na stronach ASP.NET. Interfejs użytkownika znajduję się w pliku z rozszerzeniem .ascx, a nie jak w przypadku stron .aspx. Kod umieszcza się w oddzielnym pliku zawierającym klasę dziedziczącą po klasie UserControl; plik ten oraz nazwę klasy podajemy dyrektywie Control w taki sam sposób jak w dyrektywie Page na stronie ASP.NET. Kontrolki użytkownika mogą zawierać atrybuty, które wewnątrz kontrolki widziane są jako publiczne własności.
63
ASP.NET – kontrolki użytkownika
Odpowiednie wykorzystanie kontrolek użytkownika umożliwia zrealizowanie częściowego buforowania strony. Umieszczenie w kontrolce następującego wiersza OutputCache Duration=”10” VaryByParam=”None”%> sprawia, że strona i kontrolka użytkownika są uruchamiane podczas pierwszego żądania. Wejście kontrolki jest buforowane; przy kolejnych żądaniach kontrolka nie jest wykonywana, a na stronie jest umieszczany wynik działania kontrolki, który pochodzi z bufora. Dzieje się tak dopóki zawartość bufora nie wygaśnie; wtedy kontrolka generowana jest ponownie.
64
ASP.NET – kontrolki użytkownika
Atrybut VaryByParam jest wymagany i służy do kontroli buforowania na podstawie parametrów przekazywanych do strony za pomocą HTTP metodami GET lub POST. Atrybut Duration określa co ile sekund odświeżana jest zawartość kontrolki. Buforowanie części strony może znacznie poprawić wydajność; należy buforować te części strony, które nie zmieniają się zbyt często, a pozostawić bez buforowania te, które wymagają częstej aktualizacji np. w oparciu o bazę danych. Częściowe buforowanie stron jest dostępne wyłącznie w ASP.NET Premium Edition.
65
ASP.NET – kontrolki dostosowane
Kontrolki użytkownika podlegają kompilacji w locie przez system uruchomieniowy ASP.NET. Kontrolki dostosowane podlegają jawnej kompilacji do postaci bibliotek .dll . Kontrolki dostosowane są zaprojektowane z myślą o wielokrotnym ich wykorzystywaniu i dystrybucji w postaci niezależnych kontrolek. Po dodaniu kontrolki dostosowanej do wizualnego środowiska programistycznego takiego, jak Visual Studio .NET kontrolka ta może być dodawana do strony metodą „przeciągnij i upuść”. Dostęp do właściwości kontrolek dostosowanych jest równie łatwy jak dla gotowych kontrolek.
66
ASP.NET – kontrolki dostosowane
Kontrolkę dostosowaną tworzymy jako podklasę klasy System.Web.UI.Control. Aby uzyskać możliwość wysyłania danych tekstowych na stronę, należy nadpisać metodę Render. Metoda ta pozwala uzyskać obiekt HtmlTextWriter, dzięki któremu można wysyłać swój kod HTML do strumienia wyjściowego strony. Aby zdefiniować atrybuty przyjmowane przez kontrolkę należy zadeklarować publiczne zmienne; najlepiej, jeśli będą to właściwości. Jeśli właściwości są obiektami zawierającymi wewnątrz inne właściwości, to sposób odwoływania się do nich ze strony ASP.NET ma postać: NazwaWłaściwości-NazwaPodwłaściwości.
67
ASP.NET – kontrolki dostosowane
Interfejs System.Web.UI.IpostBackDataHandler ma możliwość obsługi zwrotnego przesyłania danych; zawiera on dwie funkcje, które należy zaimplementować: LoadPostData, mającą dostęp do danych przesłanych przez użytkownika z formularza, wywoływaną, gdy wystąpi przesłanie zwrotne na serwer; RaisePostDataChangeEvent, Służącą do zgłaszania zdarzeń, wywoływaną wyłącznie dla kontrolek, dla których metoda LoadPostData zwróciła true. Kontrolki dostosowane mogą zgłaszać własne zdarzenia, które będą obsługiwane przez stronę zawierającą kontrolkę. Zgłoszenie zdarzenia należy umieścić w funkcji RaisePostDataChangeEvent.
68
ASP.NET – Obsługa zdarzeń po stronie klienta na serwerze
Obsługa zdarzeń zachodzących po stronie klienta, czyli przeglądarki nie jest realizowana u klienta tak jak ma to miejsce w Javie Script. Zdarzenia są obsługiwane na serwerze po przesłaniu strony z powrotem na serwer (ang. postback event). Takie rozwiązanie pozwala na efektowniejszą obsługę zdarzeń wywoływanych w przeglądarce. Zbyt częste odwoływanie się do serwera dla obsługi zdarzeń, które mogą zostać obsłużone po stronie klienta, powoduje jednak większe obciążenie serwera i wydłużenie czasu oczekiwania na realizację obsługi zdarzenia.
69
Konfiguracja stron w ASP.NET
W ASP.NET, w odróżnieniu do ASP, twórcy poszczególnych witryn mogą zmieniać sami ustawienia właściwe dla swoich serwisów WWW bez konieczności wprowadzania zmian w konfiguracji IIS (Internet Information Services) przez administratora i ponownego uruchamiania serwera WWW. Ustawienia konfiguracja aplikacji ASP.NET znajdują się w plikach konfiguracyjnych i są zapisane w formacie XML. Zmiany dokonane w plikach konfiguracyjnych są automatycznie wykrywane przez system i natychmiast uwzględniane.
70
Konfiguracja stron w ASP.NET
Ustawienia konfiguracyjne aplikacji WWW znajdują się w pliku web.config w katalogu głównym tej aplikacji. Ustawienia te dotyczą tego katalogu i wszystkich jego podkatalogów. Każdy podkatalog może zawierać własny plik web.config. Zmieniając plik web.config można skonfigurować prawie wszystkie cechy środowiska aplikacji ASP.NET, np. możliwa jest konfiguracja serwera IIS, bezpieczeństwa, zarządzania stanem, ogólna konfiguracja aplikacji (język strony, obsługa błędów, śledzenie).
71
Monitorowanie stron w ASP.NET
W ASP monitorowanie stron było realizowane najczęściej przy pomocy instrukcji Response.Write(...); technika ta pogarszała czytelność strony i wydajność aplikacji. Potrzebna jest możliwość wyłączenia śledzenia za pomocą jednej instrukcji, gdy nie jest ono potrzebne i włączenia go, gdy pojawią się problemy. W ASP.NET do monitorowania stron wykorzystywana jest klasa TraceContext. Na stronie ASP.NET istnieje dostęp do obiektu tej klasy o nazwie Trace.
72
Monitorowanie stron w ASP.NET
Włączenie lub wyłączenie śledzenia na poziomie strony polega na użyciu atrybutu Trace dyrektywy Page: Page Trace=”true” %> Po włączeniu śledzenia na dole strony w przeglądarce pojawia się tabela zawierająca informacje o sesji, coocies, formularzach, nagłówkach i wielu innych rzeczach. Można również dodać własne informacje. Wykorzystuje się do tego dwie metody klasy TraceContext: Write i Warn. Pierwsza metoda wysyła informacje do systemu śledzenia, a druga wysyła ostrzeżenia, które zostaną oznaczone kolorem czerwonym. Obie metody przyjmują jako argumenty kategorię i łańcuch do wysłania.
73
Monitorowanie stron w ASP.NET
Istnieje możliwość wpływania na kolejność wyświetlania informacji. Mogą one być sortowane według czasu lub kategorii. Oprócz śledzenia na poziomie strony można włączyć również śledzenie na poziomie aplikacji; odpowiada za to sekcja <trace> w pliku konfiguracyjnym web.config. Element trace posiada atrybuty, które pozwalają dokładniej skonfigurować śledzenie, np. atrybut odpowiadający za to, czy podgląd śledzenia ma być dostępny tylko na komputerze, na którym działa serwer. Podgląd rezultatów śledzenia jest możliwy za pomocą Trace.axd. Plik ten jest umieszczony w katalogu głównym aplikacji, jeżeli włączone jest śledzenie.
74
Monitorowanie stron w ASP.NET
Przykładowe informacje, przy włączonym śledzeniu
75
Porównanie technologii Javy z ASP.NET
Podstawowe różnice i podobieństwa pomiędzy technologią ASP.NET a analogicznymi komponentami J2EE dla tworzenia stron WWW są następujące: W ASP.NET można używać wszystkich języków programowania dostępnych w ramach platformy .NET ASP. NET jest zaprojektowane dla systemu Windows W JSP i w serwletach można używać wyłącznie języka Java; można używać funkcje napisane w innym języku. Java jest całkowicie przenośna
76
Porównanie technologii Javy z ASP.NET
W ASP.NET dostępne oprogramowanie pochodzi od jednego producenta; zaleta – bardzo rozbudowane i mające mało błedów, wada – drogie. Strony ASP.NET są kompilowane jako klasa pochodna klasy Page Istnieje wiele wersji oprogramowania różnych firm do tworzenia aplikacji Javy; jednak przeniesienie aplikacji między nimi wymaga często zmian w kodzie i ustawieniach. Wiele aplikacji jest darmowych. Strony JSP są kompilowane jako klasa pochodna klasy HttpServlet
77
Porównanie technologii Javy z ASP.NET
W ASP.NET można tworzyć własne klasy pochodne klasy Page, po których będzie dziedziczyła strona WWW (atrybut inherits dyrektywy Page). Jest to sposób oddzielenia logiki od prezentacji. ASP.NET posiada własne kontrolki dostosowane i kontrolki użytkownika, tworzone jako fragmenty strony. W JSP można tworzyć serwlety, które realizują zadania programistyczne. Na stronach JSP umieszcza się tylko warstwę prezentacji, przy czym istnieją różne sposoby współpracy między stronami JSP i serwletami. W JSP można tworzyć własne biblioteki tagów, wymagające definiowania klas.
78
Porównanie technologii Javy z ASP.NET
Na stronach ASP.NET do tworzenia formularzy html można korzystać z WebForms; zarządzanie takimi formularzami związane jest z obsługą zdarzeń po stronie serwera. W ASP.NET do łączenia się z bazami danych wykorzystywane są klasy ADO.NET, uniwersalne lub zoptymalizowane dla różnych źródeł danych. Na stronach JSP można umieszczać aplety, które zapewniają obsługę zdarzeń; wymagają one jednak zainstalowania odpowiedniego plugin’a w przeglądarce. W JSP do łączenia z bazami danych wykorzystuje się JDBC pozwalające łączyć się z różnymi źródłami danych.
79
Porównanie technologii Javy z ASP.NET
Zarówno strony ASP.NET jak i strony JSP są kompilowane Strony ASP.NET oraz strony JSP składają się z kodu HTML i fragmentów kodu w innym języku, oddzielonych odpowiednimi znacznikami; składnia obu rodzajów stron jest bardzo podobna. Wiele rozwiązań zastosowanych w ASP.NET przypomina rozwiązania z Javy, jednak ASP.NET jest bardziej przyjazne dla programisty, oraz posiada wiele gotowych rozwiązań stworzonych specjalnie dla twórców aplikacji Internetowych. Stworzenie takich samych aplikacji z wykorzystaniem ASP.NET jest szybsze, prostsze i wymaga mniejszej ilości kodu niż z wykorzystaniem komponentów J2EE.
80
Literatura Dino Esposito : Tworzenie aplikacji za pomocą ASP.NET oraz ADO.NET (Microsoft Press, Wydawnictwo RM Warszawa 2002) Julian Templeman, David Vitter : Visual Studio .NET: .NET Framework. Czarna Księga (Helion 2003) Microsoft Press : Microsoft Visual C#.NET Encyklopedia (Helion 2003) Rusty Harold : XML. Księga Eksperta (Helion 2001) Scott Worley : ASP.NET. Vademecum Profesjonalisty (Helion, 2003) Steaven Holzner : XML. Vademecum Profesjonalisty (Helion2001) 2069/
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.