Professional Documents
Culture Documents
Aplikacje Internetowe
ITA-103
Wersja 1
Warszawa, padziernik 2008
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Strona i-2
2008 Piotr Bubacz. Autor udziela prawa do bezpatnego kopiowania
i dystrybuowania wrd pracownikw uczelni oraz studentw objtych
programem ITAcademy. Wszelkie informacje dotyczce programu mona
uzyska: pledu@microsoft.com.
Wszystkie inne nazwy firm i producentw wymienione w niniejszym
dokumencie mog by znakami towarowymi zarejestrowanymi przez ich
wacicieli.
Inne produkty i nazwy firm uywane w treci mog by nazwami
zastrzeonymi przez ich wacicieli.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Strona i-3
Spis treci
Wprowadzenie i-4
Modu 1 Podstawy HTML 1-1
Modu 2 Kaskadowe Arkusze Stylw CSS 2-1
Modu 3 Podstawy JavaScript 3-1
Modu 4 Wprowadzenie do ASP.NET 4-1
Modu 5 Kontrolki serwerowe 5-1
Modu 6 Projektowanie serwisw internetowych 6-1
Modu 7 Kolokwium 1 7-1
Modu 8 Kontrolki danych w ASP.NET 8-1
Modu 9 LINQ w ASP.NET 9-1
Modu 10 Bezpieczestwo serwisw internetowych 10-1
Modu 11 Zarzdzanie stanem w aplikacjach ASP.NET 11-1
Modu 12 Technologia WebParts 12-1
Modu 13 ASP.NET AJAX 13-1
Modu 14 ASP.NET AJAX Control Toolkit 14-1
Modu 15 Kolokwium 2 15-1
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Strona i-4
Wprowadzenie
Informacje o kursie
Opis kursu
Kurs zawiera informacje dotyczce programowania dynamicznych stron
internetowych w technologii ASP.NET. Przedstawia kompletny projekt
witryny internetowej sklepu Adventure Works realizowany w czasie zaj,
dziki ktremu zapoznasz si z najwaniejszymi komponentami tej
technologii.
Kurs rozpoczynamy od przedstawienia podstaw HTML i CSS, by pniej
przeprowadzi Ci przez podstawy tworzenia aplikacji internetowych oraz
dodawania i konfigurowania kontrolek dostpnych w ASP.NET. Te wszystke
zagadnienia poznajemy na przykadzie projektu sklepu internetowego, ktry
stopniowo rozbudowujemy o nowe, poznawane w kolejnych moduach
elementy.
Cel kursu
Celem kursu jest przedstawienie zagadnie zwizanych z tworzeniem
aplikacji internetowych w ASP.NET, dziki ktrym bdziesz w stanie
samodzielnie projektowa i wykonywa proste serwisy internetowe.
Uzyskane kompetencje
Po zrealizowaniu kursu bdziesz:
potrafi tworzy strony w XHTML przyjazne dla CSS
rozumia potrzeb tworzenia stron internetowych zgodnych ze
standardami
potrafi tworzy proste aplikacje dziaajce po stronie klienta w
jzyku JavaScript
potrafi tworzy aplikacje internetowe w Visual Studio 2008
potrafi dodawa i konfigurowa kontrolki serwerowe dostpne w
ASP.NET
potrafi zaprojektowa szablon strony i zarzdza wygldem serwisu
potrafi dodawa i konfigurowa rne kontrolki rda prezentacji
danych
potrafi tworzy proste zapytania LINQ
rozumia potrzeb i zna moliwoci zabezpieczania portalu przed
niepowoanym dostpem
potrafi zarzdza stanem aplikacji
potrafi tworzy aplikacje internetowe konfigurowalne przez
uytkownika
potrafi wykorzystywa zalety asynchronicznej komunikacji z
serwerem przy pomocy AJAX
wiedzia jak wykorzysta kontrolki dostpne w ASP.NET AJAX
Control Toolkit
Wymagania wstpne
Do zrealizowania tego kursu powiniene posiada:
wiedz z zakresu programowania obiektowego w jzyku C#, ktr
obejmuj kursy ITA-104 Wprowadzenie do programowania i
ITA-105 Programowanie obiektowe
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Strona i-5
Zakres tematyczny kursu
Opis moduw
W Tab. 1 przedstawiony zosta opis moduw, zawierajcy podzia na
zajcia. Kade zajcie jest zaplanowane na 90 minut. Wykadowca moe
dostosowa harmonogram do swoich potrzeb.
Tab. 1 Zakres tematyczny moduw
Numer modu
Tytu
Opis
Modu 1
Podstawy HTML
W tym module znajdziesz informacje dotyczce jzyka
HTML. Poznasz jego moliwoci i ograniczenia.
Zobaczysz, w jaki sposb uywa tabel i formularzy do
pobierania informacji od uytkownika. Nauczysz si, jak
tworzy proste strony i serwisy internetowe.
Modu 2
Kaskadowe Arkusze
Stylw CSS
W tym module znajdziesz informacje dotyczce
kaskadowych arkuszy stylw i zalet wynikajcych z ich
stosowania. Zobaczysz, w jaki sposb uywa
selektorw i jak utworzy ukad strony wykorzystujc
pozycjonowanie CSS. Dodatkowo nauczysz si, jak
zmieni istniejcy dokument HTML wykorzystujcy
formatowanie przy pomocy tabel, aby by zgodny ze
standardem XHTML i przyjazny dla CSS.
Modu 3
Podstawy JavaScript
W tym module znajdziesz informacje dotyczce podstaw
jzyka JavaScript. Nauczysz si tworzy kod dziaajcy po
stronie klienta w przegldarce. Poznasz sposoby
sprawdzania poprawnoci wprowadzanych informacji
przez uytkownika.
Modu 4
Wprowadzenie do
ASP.NET
W tym module znajdziesz informacje dotyczce podstaw
tworzenia aplikacji internetowych w Visual Studio 2008.
Nauczysz si dodawa strony internetowe do aplikacji
oraz umieszcza na nich kontrolki dostpne w ASP.NET.
Poznasz zasady programowego odwoywania si do
kontrolek oraz interakcji z uytkownikiem strony.
Modu 5
Kontrolki serwerowe
W tym module znajdziesz informacje dotyczce
kontrolek dostpnych w ASP.NET. Poznasz rnice
midzy kontrolkami serwerowymi HTML a kontrolkami
Web. Nauczysz si wykorzystywa nie tylko rne
kontrolki serwerowe, ale rwnie walidowa
wprowadzone dane po stronie klienta lub/i po stronie
serwera.
Modu 6
Projektowanie
serwisw
internetowych
W tym module znajdziesz informacje dotyczce
zarzdzania wygldem aplikacji i tworzenia elementw
nawigacyjnych. Poznasz moliwoci centralnego
zarzdzania wygldem witryny przy pomocy stron
wzorcowych i kompozycji. Poznasz metody tworzenia
mapy witryny internetowej oraz nauczysz si, jak
wykorzystywa kontrolki nawigacyjne.
Modu 8
Kontrolki danych w
ASP.NET
W tym module znajdziesz informacje dotyczce
komunikacji i wywietlania informacji z bazy danych w
aplikacjach internetowych. Nauczysz si definiowa
zapytania przy pomocy kontrolki LinqDataSource i
wywietla wyniki w kontrolkach GridView oraz
Repeater.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Strona i-6
Modu 9
LINQ w ASP.NET
W tym module znajdziesz informacje dotyczce
technologii LINQ. Nauczysz si, jak formuowa proste
zapytania z wykorzystaniem zintegrowanego jzyka
zapyta i w jaki sposb poczy go z ASP.NET.
Modu 10
Bezpieczestwo
serwisw
internetowych
W tym module znajdziesz informacje dotyczce
sposobw zabezpieczania dostpu do aplikacji
internetowej przy pomocy mechanizmw autoryzacji.
Poznasz kontrolki logowania oraz nauczysz si, jak
mona ukrywa opcje menu przed rnymi grupami
uytkownikw.
Modu 11
Zarzdzanie stanem w
aplikacjach ASP.NET
W tym module znajdziesz informacje dotyczce
moliwoci zarzdzania stanem w aplikacjach ASP.NET.
Nauczysz si przechowywa zmienne i obiekty w stanie
sesji i aplikacji. Zobaczysz, w jaki sposb mona
dodawa, zarzdza i usuwa obiekty z tych stanw.
Modu 12
Technologia WebParts
W tym module znajdziesz informacje dotyczce
technologii umoliwiajcej personalizacj wygldu
strony przez jej uytkownikw WebParts. Nauczysz si,
jak tworzy i zarzdza kontrolkami WebPart, jak
rwnie, jak zachowa ukad kontrolek umieszczonych
na szablonie strony na wszystkich stronach serwisu.
Modu 13
ASP.NET AJAX
W tym module znajdziesz informacje dotyczce
tworzenia aplikacji internetowych z wykorzystaniem
AJAX. Zobaczysz, jak prosto i skutecznie mona
wykorzystywa podstawowe kontrolki dostpne w
ASP.NET AJAX. Nauczysz si, jak kilkoma klikniciami
myszy rozszerzy funkcjonalno aplikacji o moliwo
asynchronicznej komunikacji z serwerem.
Modu 14
ASP.NET AJAX Control
Toolkit
W tym module znajdziesz informacje dotyczce
biblioteki ASP.NET AJAX Control Toolkit. Nauczysz si
rozszerza moliwoci standardowych kontrolek
ASP.NET o funkcjonalnoci zawarte w bibliotece.
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 2
Wersja 1
Podstawy HTML
Spis treci
Podstawy HTML ................................................................................................................................... 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Uwagi dla studenta .................................................................................................................... 18
Dodatkowe rda informacji..................................................................................................... 18
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce jzyka HTML. Poznasz jego
moliwoci i ograniczenia. Zobaczysz, w jaki sposb uywa tabel
i formularzy do pobierania informacji od uytkownika. Nauczysz si, jak
tworzy proste strony i serwisy internetowe.
Cel moduu
Celem moduu jest przedstawienie moliwoci wykorzystania jzyka HTML,
formatowania dokumentu przy uyciu tabel oraz pobierania informacji od
uytkownika.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
potrafi tworzy nowe strony internetowe w jzyku HTML
wiedzia jak tworzy i kiedy warto stosowa tabele
potrafi tworzy formularze i przesya je do odbiorcy
Wymagania wstpne
Ten modu nie ma adnego wymagania wstpnego. Moesz od razu
rozpocz prac z tym moduem.
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu nie jest wymagane zapoznanie si z materiaem
zawartym w innych moduach.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-3
Przygotowanie teoretyczne
Przykadowy problem
Znajomo jzyka HTML w projektowaniu stron internetowych w dobie narzdzi pracujcych w
trybie WYSIWYG (ang. What You See Is What You Get, co znaczy dosownie to co widzisz jest tym,
co otrzymasz) wydaje si niepotrzebna. Nie jest to prawd. Projektant aplikacji internetowej musi
w swojej pracy siga rwnie na poziom znacznikw HTML.
Pena kontrola nad kodem tworzonym po stronie uytkownika wymaga jawnego odwoania si do
znacznikw HTML. Znaczniki HTML nie wymagaj przetwarzania na serwerze Znajomo
znacznikw pozwala nam rwnie atwiej zrozumie problemy wywietlania informacji.
Bez znajomoci jzyka HTML bardzo trudno jest nam tworzy dobre strony. Tabele w HTML s
bardzo przydatne do przedstawiania danych tabelarycznych, cho niektrzy do dzisiaj buduj w
oparciu o nie wygld aplikacji. Nie jest to bd, ale powoduje ograniczenie dostpnoci strony dla
urzdze mobilnych, czy dla osb z ograniczonymi zdolnociami percepcji.
Formularze w jzyku HTML udostpniaj podstawow funkcjonalno tworzenia elementw
interakcji z uytkownikiem.
Podstawy teoretyczne
World Wide Web (w skrcie WWW lub Web) jest multimedialnym, hipertekstowym systemem
informacyjnym opartym na publicznie dostpnych, otwartych standardach. Podstawowym
zadaniem WWW jest publikowanie informacji.
WWW jest sieci milionw komputerw dziaajcych w oparciu o model klient-serwer. Serwer
przechowuje informacje i obsuguje zapytania klienta. Klient tworzy zapytanie, wysya, odbiera je i
przetwarza, a nastpnie wywietla informacje dla kocowego uytkownika. Klientem sieci Web jest
najczciej przegldarka internetowa.
Cechy WWW:
hipertekstowy system informacyjny
graficzna reprezentacja informacji
atwa nawigacja
system wieloplatformowy
system rozproszony
sie dynamiczna
sie interaktywna
uniwersalny sposb nazewnictwa zasobw informacyjnych (URI)
ustalony protok dostpu do zasobw (HTTP)
stosowanie specjalnego typu jzyka w celu nawigacji po zasobach (HTML)
Strona internetowa
Strona internetowa to dokument tekstowy napisany w jednej z odmian jzyka znacznikw, np.
HTML, interpretowanego przez przegldark uytkownika. Strony mona podzieli ze wzgldu na
sposb jej tworzenia na statyczne i dynamiczne.
Strona statyczna musi by przygotowana wczeniej przez twrc. Jej ostateczny wygld oraz caa
tre musi by znany na etapie projektowania.
Zalety:
atwo implementacji
Wady:
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-4
brak elastycznoci
Strona dynamiczna jest generowana przez serwer na podstawie dziaania uytkownika serwisu i
danych zapisanych najczciej w relacyjnej bazie danych.
Zalety:
interaktywno
atwo aktualizacji
Wady:
trudno w implementacji, testowaniu i wdraaniu
wiksze wymagania sprztowe serwera i cz internetowych
Serwis internetowy
Zbir powizanych ze sob i umieszczonych w jednej lokalizacji stron internetowych nazywa si
witryn lub serwisem internetowym. Portal jest zbiorem wielu informacji i zasobw z kilku lub
jednej dziedziny. Portale zawieraj najczciej: wiadomoci, informacje tematyczne, forum,
Portale mona podzieli na:
poziome zawieraj informacje z wielu dziedzin, dodatkowo mog udostpnia np.
wyszukiwarki, poczt elektroniczn
pionowe zawieraj informacje z jednej dziedziny (nazywane wortalami)
Protok HTTP
HTTP (ang. HyperText Transfer Protocol) protok warstwy aplikacji sucy do transferu
dokumentw HTML, obrazw, multimediw itp. Jest protokoem bezstanowym interakcja klienta
(najczciej przegldarki internetowej) z serwerem WWW odbywa si w modelu
bezpoczeniowym:
Klient nawizuje poczenie TCP/IP z serwerem, najczciej na porcie 80.
Klient wysya danie do serwera wraz z informacjami na temat systemu operacyjnego,
wersji jzyka, obsugiwanych protokow informacyjnych. W sieci przesyane s polecenia
tekstowe zorganizowane w wiersze np.:
GET /KatalogNaSerwerze/plik.html HTTP/1.0
Useragent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
Acceptlanguage:pl
[dodatkowa pusta linia]
Serwer wysya do klienta kod odpowiedzi (informujcy o sukcesie lub problemach z
wysyaniem danego zasobu), informacje dotyczce rodzaju zawartoci zasobu, kodowania,
itp. oraz dany zasb:
HTTP/1.1 200 OK.
Server: ASP.NET Development Server/8.0.0.0
Date: Sat, 29 Jul 2006 22:49:42 GMT
XAspNetVersion: 2.0.50727
CacheControl: private
ContentType: text/html; charset=utf8
ContentLength: 487
Connection: Close
Serwer po przesaniu odpowiedzi automatycznie zamyka poczenie z klientem.
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-5
Najwaniejsze metody klienta
Jeli uytkownik musi poda jakie dane, to jedyn moliwoci jest pobranie ich ze standardowego
formularza HTML. Dane podane mog by przesane do serwera za pomoc omiu metod, z ktrych
najczciej wykorzystywane to:
GET pobieranie zasobu wskazanego przez URL. Moe zawiera parametry doczane do URL
(po znaku zapytania).
POST wysya dane uytkownika do okrelonego zasobu:
dane zawarte s w ciele komunikatu
nagwek ContentType i ContentLength
w odpowiedzi klient otrzymuje dokument wygenerowany dynamicznie.
Przekazywanie parametrw
Parametry mona przesya przy pomocy metody POST lub GET.
W metodzie GET Parametry s przekazywane w adresie URL po znaku zapytania, oddzielone od
siebie znakiem &, w formacie parametr=warto, np.
GET /index.aspx?cat=2&prodid=23
Znaki zastrzeone (=, &, &, +) s kodowane do postaci %xx, gdzie xx jest kodem ASCII znaku
zapisanym szesnastkowo, np. znak spacji zamieniany jest na %20.
W metodzie POST informacje s pobierane z formularza znajdujcego si na stronie internetowej.
Jzyk HTML
HTML (ang. HyperText Markup Language) jest jzykiem znacznikw zaprojektowanym do tworzenia
stron internetowych. Suy on do opisywania struktury dokumentu (nagwki, akapity, listy), a nie
jego formatowania. Umieszczanie informacji o formatowaniu w dokumencie jest z praktyk.
Interpretacj znacznikw i graficznym przedstawieniem zawartoci zajmuj si przegldarki
internetowe. Gramatyka jzyka jest oparta o standard SGML.
SGML (ang. Standard Generalized Markup Language) to ustandaryzowany nadrzdny jzyk
znacznikw sucy do ujednolicania struktury i formatu rnego typu informacji. Umoliwia
zapisywanie informacji w formie dokumentu tekstowego, dziki czemu moliwe jest ich atwe
przenoszenie, wywietlanie i drukowanie.
Podstawowe waciwoci:
Znacznik jest reprezentowany przez tekst zawarty w nawiasach trjktnych (< i >).
Tekst pomidzy nawiasami to nazwa znacznika.
Istniej trzy rodzaje znacznikw:
otwierajcy postaci <znacznik>
zamykajcy postaci </znacznik>
samodzielny postaci <znacznik />
Znacznik otwierajcy moe posiada szereg atrybutw definiowanych jako
nazwa="warto".
Znaki biae, np. spacje, tabulatory lub znaki nowej linii s ignorowane.
Dokument HTML
Dokument HTML jest plikiem tekstowym, w ktrym znajduj si polecenia (znaczniki) HTML. Z tego
wynika, e dokument taki mona utworzy za pomoc dowolnego edytora tekstowego, rcznie
dodajc znaczniki. Metoda taka jest skuteczna, ale zbyt uciliwa i podatna na bdy, szczeglnie
przy projektowaniu duych serwisw internetowych. Dlatego na rynku pojawio si wiele
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-6
specjalizowanych edytorw, ktre wydatnie uatwiaj konstruowanie dokumentu, wspomagajc
wprowadzanie polece. Narzdzia mona podzieli na dwie kategorie: narzdzia graficzne
WYSIWYG oraz tekstowe. Narzdzia graficzne umoliwiaj tworzenie serwisw osobom, ktre nie
znaj jzyka HTML, jednak znajomo tego jzyka uatwia prac twrcom stron.
Dokument rozpoczyna si definicj typu dokumentu. W jzyku HTML w wersji 4.01 element ten jest
wymagany, podobnie jak w jzyku XHTML. Cay dokument zawarty jest w znaczniku <html> i
skada si z dwch gwnych czci: nagwka (<head>) oraz ciaa treci dokumentu <body>.
Wersja minimalna dokumentu:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<! Naglowek dokumentu >
<title> Tytu strony </title>
</head>
<body>
<! Tresc dokumentu >
</body>
</html>
Definicja typu dokumentu
Definicja typu dokumentu okrela wersj jzyka, ktra jest wykorzystywana w dokumencie.
Poprawny dokument HTML w wersji 4.01 zawiera w pierwszym wierszu definicje typu dokumentu.
Podobnie jest w XHTML. Deklaracja typu zawiera informacje o dokumencie definicji typu (ang.
Document Type Definition, DTD) wykorzystywanym w dokumencie. DTD zawiera definicje
elementw, ktre mona uy w danym dokumencie.
W jzyku HTML w wersji 4.01 okrelono trzy dokumenty definicji typu, ktre mona uy w
projektowanej stronie internetowej:
cisy (ang. strict) zawiera wszystkie elementy i atrybuty, ktre s zdefiniowane w
standardzie bez elementw nie zalecanych oraz informacji dotyczcych dokumentw
zawierajcych ramki. Deklaracja typu dokumentu:
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Przejciowy (ang. transitional) zawieray wszystkie elementy typu bezporedniego oraz
elementy i atrybuty niezalecane (wikszo dotyczy wizualnej formatowania). Deklaracja
typu dokumentu:
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Zbir ramek (ang. frameset) zawiera wszystkie elementy typu przejciowego oraz elementy
zbioru ramek. Deklaracja typu dokumentu:
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
W dokumencie XHTML przed elementem korzenia (najczciej znacznikiem <html>) musi
znajdowa si deklaracja typu dokumentu, tzw. DOCTYPE. Publiczny identyfikator doczony do tej
deklaracji musi odnosi si do jednego z trzech DTD:
<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1strict.dtd">
<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-7
<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1frameset.dtd">
Nagwek strony
Nagwek strony zawiera informacje, ktre nie s wywietlane na stronie, ale maj wpyw na jej
wygld. Przykady tu prezentowane zapisane zostay zgodnie z jzykiem HTML. Rnica pomidzy
zapisem HTML a XHTML to przede wszystkim konieczno stosowania w XHTML bardziej
restrykcyjnych regu formatowania dokumentu, np. zamknicie znacznika czy pisanie nazw
znacznikw maymi literami, lub otaczanie wartoci atrybutw cudzysowem, podczas gdy w HTML
mona uy apostrofw, w XHTML wymagana jest rwnie odpowiednia kolejno zamykania
znacznikw.
Przykadowe znaczniki w sekcji <head>:
<title> zawiera tytu dokumentu wywietlany w pasku tytuowym okna przegldarki.
Zgodnie ze specyfikacj jzyka, kady dokument musi posiada ten znacznik w sekcji <head>.
<meta> umoliwia autorom strony na podawanie informacji o stronie. Informacje mog
by zawarte w nastpujcych atrybutach:
lang okrela jzyk zawartoci
content ustala warto atrybutu
name ustala nazw i rodzaj informacji
scheme okrela schemat interpretacji informacji
httpequiv ustala nazw i rodzaj informacji
<link> okrela relacj pomidzy poczonymi dokumentami. Znacznik wykorzystywany do
okrelania lokalizacji zewntrznego dokumentu CSS. Atrybuty znacznika:
charset definiuje kodowanie znakw we wskazanym zasobie
href adres zasobu
type okrela typ MIME wskazanego zasobu
href adres zasobu
rel definiuje zwizek pomidzy aktualnym, a wskazywanym zasobem.
Rodzaje zwizkw:
stylesheet zewntrzny arkusz styli
alternate alternatywna wersja dokumentu, czsto stosowana z atrybutem Lang
glosssary sownik
copyright prawa autorskie dokumentu
help plik z dodatkow pomoc, linkami itp.
rev definiuje zwizek pomidzy wskazywanym, a aktualnym zasobem
Formatowanie treci dokumentu
W znaczniku <body> umieszczona jest tre dokumenty. W tym miejscu moliwe jest korzystanie z
penej palety moliwoci jzyka HTML, w szczeglnoci:
Definiowanie struktury tekstu:
nagwki, akapity itp.
listy wypunktowane i numerowane
wyrnianie cytatw, itp.
Formatowanie tekstu:
wielko i kolor tekstu
podkrelanie, pogrubianie, pochylanie, wyrwnanie tekstu do lewej, prawej, rodka, lub
do obydwu marginesw, itp.
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-8
Tabele
Osadzanie grafiki i innych obiektw
Odnoniki
Formularze
Definiowanie struktury tekstu
Definiowanie struktury dokumentu polega na okrelaniu podziau tekstu na rozdziay, akapity i inne
jednostki logiczne dokumentu.
Nagwki
Znacznik <h1> do <h6> okrela nagwek tytu rozdziau. <h1> definiuje nagwek najwyszego
poziomu (dotyczy gwnego rozdziau i jest wywietlany najwikszymi literami), a <h6> najniszego
poziomu (jest wywietlany najmniejsz czcionk). Dobr praktyk jest umieszczanie co najwyej
jednego nagwka pierwszego poziomu <h1>.
<h1>To jest nagwek 1</h1>
<h2>To jest nagwek 2</h2>
<h3>To jest nagwek 3</h3>
<h4>To jest nagwek 4</h4>
<h5>To jest nagwek 5</h5>
<h6>To jest nagwek 6</h6>
Akapity i wiersze
Akapity s podstawow jednostk logiczn podziau dokumenty. HTML nie rozpoznaje biaych
znakw (spacje, znaki koca linii), traktujc je, niezalenie od ich iloci, jak pojedyncz przerw
odstp. Zawarto akapitu naley umieci w specjalnym znaczniki <p>. Znacznik <p> musi zosta
zamknity (</p>).
Przegldarka sama decyduje, w ktrym miejscu ma zosta przeamana linia. Uytkownik moe
wymusi przeamanie za pomoc znacznika <br />.
Listy wypunktowane i numerowane
W wielu dokumentach istnieje potrzeba zaprezentowania fragmentu tekstu za pomoc listy
wypunktowanej lub numerowanej. Moliwe jest rwnie tworzenie wielopoziomowych list.
Znacznik <ul> umoliwia utworzenie szkieletu wykazu wypunktowanego. Poszczeglne punkty
wykazu naley umieszcza midzy znacznikami <li> i </li>. Standardowo pozycje listy oznaczone
s koem. Do utworzenia listy numerowanej zamiast znacznika <ul> wykorzystuje si znacznik
<ol>. Standardowo pozycje listy s numerowane za pomoc liczb arabskich.
Zmiana wygldu oraz sposobu znakowania listy jest moliwa przy pomocy kaskadowych arkuszy
stylw, ktre poznasz w kolejnym module.
Inne wyrnienia tekstu
W jzyku HTML moliwe jest logiczne wyrnianie pewnych informacji, np. cytatw. Wyrnienie
nie tylko dodaje informacje o strukturze, ale rwnie jest zwizane z formatowaniem danego
fragmentu przez przegldark. Przegldarki albo zmieniaj wygld zawartoci tekstu, albo ignoruj
dany znacznik nie zmieniajc formatowania.
Lista znacznikw:
<em> wyrnienie
<strong> mocniejsze wyrnienie
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-9
<cite> zawiera cytowanie lub odnonik do innego rda
<dfn> zawiera definicj
<code> fragment kodu programu komputerowego
<samp> zawiera przykadowy wynik dziaania programu, skryptu, itp.
<kbd> okrela tekst, ktry ma wprowadzi uytkownik
<var> zawiera zmienn lub argument programu
<acronym> zawiera akronim, np. WWW, HTTP, URI, itp.
Osadzanie grafiki i innych obiektw
Grafika oraz inne multimedialne elementy s dzisiaj jedn z najbardziej charakterystycznych
wyrnikw stron internetowych.
Osadzanie grafiki na stronie
Podstawowa konstrukcja ma nastpujc posta:
<img src="zrodlo_pliku" alt="tekst">
Atrybut alt suy do wywietlania tekstu, gdy nie jest moliwe wywietlenie grafiki.
Atrybuty wymagane:
src lokalizacja pliku (URL)
alt krtki opis wywietlany, gdy nie mona wywietli grafiki
Pozostae atrybuty opcjonalne s w wikszoci przestarzae i zamiast nich lepiej jest uywa styli
CSS.
Osadzanie multimediw na stronie
Do osadzania grafiki suy znacznik <object>. Umoliwia on okrelenie danych i parametrw
obiektu osadzonego w dokumencie HTML wraz z kodem, ktry moe by uyty do wywietlenie lub
manipulacji danymi.
Atrybuty znacznika:
align wyrwnanie obiektu (top, bottom, left, right)
archive lista adowanych wstpnie zasobw
border rozmiar ramki obiektu
classid klasa obiektu
codebase okrela adres bazowy dla classid, data i archive
codetype okrela typ obiektu
data wskazuje adres danych obiektu
declare deklaracja obiektu
height okrela wysoko obiektu
hspace pionowy odstp od obiektu
name unikatowa nazwa elementu
standby informacja pokazywana w trakcie adowania obiektu
type okrela typ danych
usemap podaje map elementu
vspace odstp poziomy od obiektu
width okrela szeroko obiektu
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-10
Grupowanie liniowe i blokowe
Znacznik <span> tworzy uniwersalny zakres liniowy i pozwala nada mu wsplne atrybuty za
pomoc stylu.
Znacznik <div> obejmuje blokiem grup elementw w dokumencie i pozwala im nada wsplne
atrybuty. Element ten jest kontenerem umoliwiajcym dodanie struktury do dokumentu HTML.
Najczciej suy on do logicznego podziau zawartoci strony, np. nawigacji, nagwka czy stopki
strony.
Odnoniki
Odnoniki (odsyacze, hipercza, cza hipertekstowe, odnoniki) s najbardziej
charakterystycznym elementem sieci WWW. Dziki nim mona mwi o HTML jako jzyku
hipertekstowym odnoniki w jednym kontekcie do innego kontekstu. Bez odsyaczy nie byoby
moliwe tworzenie serwisw internetowych, bez nawigacji staby si on tylko zbiorem
niepowizanych dokumentw lub musiaby zosta przedstawiony na jednej stronie, co jest
najczciej moliwe, chocia w przypadku duych portali mao prawdopodobne.
Odnonik to wskazanie do innego miejsca. Kliknicie na nim przenosi uytkownika do okrelonego
miejsca. Moe to by miejsce na tej samej stronie, w tym samym serwisie, ale rwnie dobrze moe
to by strona na drugim kocu wiata.
Do utworzenia odnonika w jzyku HTML potrzebne s lokalizacja zasobu oraz tekst opisujcy
zasb. Format najprostszego odnonika:
<a href="lokalizacja_zasobu">Tekst opisujcy zasb</a>
Parametr href (ang. Hypertext Reference) odnonik hipertekstowy. Suy do okrelenia URL
zasobu, wskazywanego przez dane poczenie.
Lokalizacja to najczciej adres URL do zasobu lub nazwa pliku. Lokalizacja moe zawiera ciek
wzgldn lub bezwzgldn.
cieka wzgldna jest podawana wzgldem aktualnego pliku, np.:
<a href="../plik_w_katalogu_nadrzednym">Tekst opisujcy zasb</a>
<a href="/kat/plik_w_katalogu_podrzednym">Tekst opisujcy zasb</a>
cieka bezwzgldna jest podawana jako peny adres internetowy strony.
<a href="http://www.example.com/plik">Tekst opisujcy zasb</a>
Poczenie do okrelonych miejsc w dokumencie
Aby odwoa si do okrelonego miejsca w dokumencie naley okreli zakadk (kotwic,
etykiet), a nastpnie wskaza j w odnoniku.
Aby utworzy zakadk naley uy konstrukcji:
<a name="nazwa_zakladki"> </a>
Moliwe jest utworzenie dowolnej iloci etykiet na stronie. Jest to szczeglnie wygodne w
przypadku stron o duej objtoci.
Odnonik do etykiety ma posta:
<a href="strona.html#nazwa_zakladki">Odnonik do zakadki</a>
lub jeli odnonik jest na tej samej stronie co zakadka, to mona odnie si w skrconej formie:
<a href="#nazwa_zakladki">Odnonik do zakadki</a>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-11
Odnoniki do adresu e-mail
Odnonik do adresu e-mail jest taki sam, jak standardowy odnonik. Rnica polega na tym, e po
kliknici go nie zostanie otworzona nowa strona, lecz aplikacja do wysyania listw elektronicznych.
Linki do adresw e-mail s szczeglnie pomocne dla kontaktu z autorem strony czy biurem obsugi
klienta na stronie firmowej.
Odnonik do adresu e-mail ma posta:
<a href="mailto:adres@serwer">Wylij do nas list</a>
Tabele
Tabele w jzyku HTML s podobne do tabel spotykanych w innych dziedzinach ycia, umoliwiajc
przedstawienie danych w uporzdkowanej postaci. Dodatkowo umoliwiaj ukadanie danych
tekstu, obrazkw, odnonikw, formularzy, pl formularza, innych tabel, itp. w wiersze i kolumny
komrek. Naley jednak doda, e wspczenie panuje tendencja odchodzenia od
wykorzystywania tabel w charakterze szkieletu strony.
Tabela moe zawiera nagwek zawierajcy krtki opis zawartoci tabeli. Tabel skada si z
wierszy, ktre zawieraj komrki. Istnieje moliwo scalania wielu wierszy lub kolumn.
Znacznik <table>
Tabel rozpoczyna znacznik <table>, a koczy </table>. Znacznik <table> posiada kilka
atrybutw. Atrybut width okrela szeroko tabeli. Moe by ona podana m.in. w pikselach lub
jako procent caej szerokoci dostpnej dla okna przegldarki. Przykady:
<table width="150"> <table width="50%">
Innym atrybutem jest border, ktry okrela grubo ramki. Parametr ten okrela w pikselach
grubo ramki. Warto 0 oznacza cakowite wyczenie ramki.
Dodatkowo moliwe jest okrelenie odlegoci pomidzy komrkami atrybut cellspacing.
Odlego od komrki do jej zawartoci okrela atrybut cellpadding. Obie wartoci okrelane s
w pikselach.
<table border="2" cellspacing="3" cellpadding="3">
Wiersze tabeli
Podstawow jednostk tabeli s wiersze. Kada tabela musi zawiera co najmniej jeden wiersz.
Wiersz tabeli reprezentowany jest przez znacznik <tr>.
<table border="2" cellspacing="3" cellpadding="3">
<tr> </tr>
</table>
Wiersz tabeli tworzy ramy dla komrek z danymi. Moliwe jest dodanie wielu wierszy do tabeli:
<table border="2" cellspacing="3" cellpadding="3">
<tr> </tr>
<tr> </tr>
</table>
Komrka tabeli
Komrka tabeli dodaje pionow kolumn do tabeli. S one reprezentowane przez znacznik <td>.
Wsplnie ze znacznikami <table> oraz <tr>, znacznik <td> stanowi najwaniejsze elementy
budowy tabeli:
<table width="80%" border="2" cellspacing="3" cellpadding="3">
<tr>
<td></td>
<td></td>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-12
</tr>
</table>
Powyszy kod HTML tworzy tabel przedstawion poniej.
Nagwki tabeli
Nagwek tabeli okrela nagwek kolumny lub wiersza. Tekst w komrce, ktra jest nagwkiem
jest pogubiony. Nagwek tabeli reprezentowany jest przez znacznik <th>.
W przypadku nagwka wiersza:
<table width="80%" border="2" cellspacing="3" cellpadding="3">
<tr>
<th>Lp.</th>
<th>Imi</th>
</tr>
<tr>
<td>1</td>
<td>Piotr</td>
</tr>
</table>
W przypadku nagwka kolumny:
<table width="80%" border="2" cellspacing="3" cellpadding="3">
<tr>
<th>Lp.</th>
<td>1</td>
</tr>
<tr>
<th>Imi</th>
<td>Piotr</td>
</tr>
</table>
Tytu tabeli
Czsto niezbdne jest doczenie do tabeli jej tytuu. Tytu powinien zawiera krtki opis
wyjaniajcy jej tre. Tytu reprezentowany jest przez znacznik <caption>, ktry naley umieci
zaraz za znacznikiem <table>, a przed znacznikami <tr>.
<table width="80%" border="2" cellspacing="3" cellpadding="3">
<caption>Tytu</caption>
<tr>
<th>Lp.</th><td>1</td>
</tr>
<tr>
<th>Imi</th><td>Piotr</td>
</tr>
</table>
Scalanie wierszy
Czasem istnieje konieczno scalenia kilku wierszy w jednej komrce. W tym celu naley uy
atrybutu rowspan, podajc ile wierszy ma zosta poczonych.
Przykad:
<table border="1" cellpadding="2"cellspacing="2">
<tr>
<th rowspan="2" >Nagowek (scalone 2 wiersze)</th>
<td>dane</td>
<td rowspan="3" > dane (scalone 3 wiersze)</td>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-13
<td> dane</td>
</tr>
<tr>
<td>dane</td>
<td>dane</td>
</tr>
<tr>
<th>Nagowek</th>
<td>dane</td>
<td>dane</td>
</tr>
</table>
Scalanie kolumn
Podobnie jak wiersze, mona rwnie scali kolumny. Suy do tego atrybut colspan.
<table border="2" cellpadding="2" cellspacing="2">
<tr>
<th>Nagwek</th>
<th>Nagowek</th>
<th colspan="2">Nagwek (scalne 2 kolumny)</th>
</tr>
<tr>
<td>dane</td>
<td colspan="2"> dane (scalone 2 kolumny)</td>
<td>dane</td>
</tr>
<tr>
<td colspan="2">dane (scalone 2 kolumny)</td>
<td>dane</td>
<td>dane</td>
</tr>
</table>
Moliwe jest rwnie jednoczesne scalanie wierszy i kolumn:
<table border="2" cellpadding="2" cellspacing="2">
<tr>
<th>Nagwek</th>
<th>Nagowek</th>
<th>Nagwek</th>
<th>Nagwek</th>
<th>Nagwek</th>
<th>Nagwek</th>
</tr>
<tr>
<td>dane</td>
<td colspan="2">dane (scalone 2 kolumny)</td>
<td rowspan="2" colspan="2">dane (scalone 2 wiersze, 2 kolumny)</td>
<td>dane</td>
</tr>
<tr>
<td>dane</td>
<td>dane</td>
<td>dane</td>
<td>dane</td>
</tr>
</table>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-14
Rys. 2 Przykad tabeli
Formularze
Formularz umoliwia pobranie od uytkownika pewnych informacji. Zawiera przycisk umoliwiajcy
wysanie danych do okrelonego pliku/aplikacji na serwerze. Przykady wykorzystania formularza
to:
podanie danych osobowych i adresu email w celu zapisania si na forum
rezerwacja miejsca wakacji w biurze podry
podawanie danych do przelewu w bankowoci elektronicznej
zakup okrelonych towarw i usug w sklepie internetowym
Formularze s relatywnie proste do tworzenia, przynajmniej z pozycji kodu HTML. Najwikszy
problem stanowi przetworzenie wpisanych danych po stronie serwera tak, aby odpowiaday one
zamierzeniom projektanta i uytkownika.
Formularz zawarty jest w znaczniku <form>. Ma on dwa atrybuty:
method okrela metod, jak zostan wysane dane do serwera. S to metody
protokou http, takie jak GET i POST.
action okrela ciek do miejsca, w ktrym skrypt zostanie przetworzony.
Parametr action moe wskazywa nie tylko ciek na serwerze, ale rwnie w prostych
przypadkach umoliwia przesyanie danych z formularza przy uyciu poczty elektronicznej:
<form method="post" action="mailto:adres@serwer?subject=tytu">
Pola tekstowe
Pola tekstowe s wykorzystywane w wielu przypadkach do pobrania od uytkownika okrelonych,
krtkich fragmentw tekstu, takich jak imi, nazwisko i numeru telefonu. Pole tekstowe jest
tworzone przy wykorzystaniu znacznika input z parametrem type="text".
Przykad:
<form method="post" action="Default.aspx">
Imi: <input type="text" /><br />
Nazwisko: <input type="text" /><br />
Telefon: <input type="text" />
</form>
Rys. 3 Przykad formularz
Naley zauway, e nie ma moliwoci rozrnienia poszczeglnych pl formularz. Do tego celu
su parametry name i id z odpowiednimi wartociami. Wykorzystanie obu parametrw zapewni
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-15
kompatybilno z wczeniejszymi aplikacjami oraz umoliwi identyfikowanie okrelonych
przestrzeni formularza dla formatowania oraz oprogramowania.
<form method="post" action="Default.aspx">
Imi: <input id="imie" name="imie" type="text" /> <br />
Nazwisko: <input id="nazwisko" name="nazwisko" type="text" /> <br />
Telefon: <input id="telefon" name="telefon"type="text" />
</form>
Kolejnym elementem zwizanym z polem tekstowym jest okrelanie rozmiaru pola za pomoc
atrybutu size oraz okrelanie maksymalnej iloci znakw, jak pole akceptuje za pomoc atrybutu
maxlength.
Pole tekstowe umoliwia rwnie ukrywanie wprowadzanych wanych informacji, takich jak hasa,
zamieniajc atrybut type="text" na type="password":
Haso <input id="haslo" name="haslo" type="password" />
Rys. 4 Pole ukryte
Obszar tekstowy
Obszar tekstowy to miejsce, w ktrym uytkownik strony moe wpisa swoje dodatkowe uwagi.
Obszar ten umoliwia rwnie wielowierszowe wprowadzanie danych. Jest on tworzony przy
pomocy znacznika <textarea> wraz z parametrami rows i cols, okrelajcymi odpowiednio ilo
wierszy i kolumn przeznaczonych do wprowadzania tekstu.
<form method="post" action="Default.aspx">Wpisz swoje uwagi:<br />
<textarea id="komentarz" cols="20" rows="20" > </textarea>
</form>
Rys. 5 Przykad obszaru tekstowego
Pole opcji i pole wyboru
Pole opcji (przecznika) jest polem, w ktrym uytkownik wybiera jedn z dostpnych moliwoci.
W polu stosowany jest znacznik <input> oraz parametr type="radio".
Do grupowania wartoci poszczeglnych opcji wykorzystywany jest parametr name, ktry musi by
wsplny dla wszystkich elementw listy. Parametr checked="checked" umoliwia domylne
zaznaczenie danej opcji.
<form method="post" action="Default.aspx">
Podaj swoj pe<br />
<input id="mezczyzna"name="plec" type="radio" /> Mczyzna<br />
<input id="kobieta" name="plec" type="radio" /> Kobieta<br />
<input id="brak" name="plec" type="radio" checked="checked" />
Wol nie podawa<br />
</form>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-16
Rys. 6 Przykad pola opcji
Pole wyboru umoliwia dokonanie wyboru kilku opcji jednoczenie, np. zaznaczenie kilku
zainteresowa, czy kilku sposobw odpoczynku. W polu stosowany jest znacznik <input> oraz
parametr type="checkbox".
<form method="post" action="Default.aspx">
<input type="checkbox" name="zain" id="elektronika"/>elektronika<br />
<input type="checkbox" name="zain" id="fotografia"/>fotografia<br />
<input type="checkbox" name="zain" id="internet"/>internet<br />
<input type="checkbox" name="zain" id="inwestycje"/>inwestycje<br />
<input type="checkbox" name="zain" id="ksiazki"/>ksiazki<br />
<input type="checkbox" name="zain" id="muzyka"/>muzyka<br />
<input type="checkbox" name="zain" id="sport"/>sport<br />
<input type="checkbox" name="zain" id="polityka"/>polityka
</form>
Rys. 7 Przykad pola wyboru
Lista rozwijana oraz wyboru
Lista rozwijana suy do tworzenia rozwijanych menu, zawierajcych kilka opcji. Uytkownik moe
wybra jedn z nich. Skadnia jest nastpujca:
<select name="nazwa_listy" size="liczba_wywietlanych_pozycji" >
<option> pierwsza pozycja</option>
<option> druga pozycja</option>
<option> trzecia pozycja</option>
...
</select>
Przegldarka tworzy list rozwijan zawierajc poszczeglne elementy zawarte w znaczniku
<option>, parametr value umoliwia rozpoznanie wybranego elementu:
<form method="post" action="Default.aspx">
Wybierz ulubion potraw:<br />
<select id="potrawa">
<option value="pierogi">Pierogi</option>
<option value="slatka">Saatka warzywna</option>
<option value="slimaki">limaki</option>
</select>
</form>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-17
Rys. 8 Przykad listy rozwijanej
Lista wyboru suy do tworzenia do tworzenia menu, zawierajcych kilka opcji. Moliwe jest
wybranie jednej lub kilku z nich. List ta tworzy si podobnie do listy rozwijanej dodajc atrybut
size="wywietlana wielko listy". wybr wielokrotny moliwy jest po dodaniu atrybutu
multiple="multiple".
<form method="post" action="Default.aspx">
<select id="potrawa" size="5" multiple="multiple">
<option value="pierogi">Pierogi</option>
<option value="slatka">Saatka warzywna</option>
<option value="slimaki">limaki</option>
</select>
</form>
Rys. 9 Przykad listy wyboru
Wysyanie informacji
Po wykonaniu formularza naley jeszcze zapewni wysanie jego zawartoci do autora. Sposb
wysania jest okrelony w atrybutach method i action znacznika <form>. Do wysania suy
znacznik input z atrybutem type="submit". Po klikniciu tego przycisku przegldarka wyle
dane (wypenione pola tekstowe, wybrane opcje itp.) do miejsca zdefiniowanego w znaczniku form.
Czsto istnieje potrzeba zresetowania caego formularza, suy do tego znacznik input z
atrybutem type="reset".
<form method="post" action="Default.aspx">
<input type="reset" />
<input type="submit" />
</form>
Rys. 10 Przyciski formularza - Reset i Submit
Parametr value w obu przypadkach umoliwia dopasowanie wywietlanego komunikatu na
przyciskach:
<form method="post" action="Default.aspx">
<input type="reset" value="Skasuj dane"/>
<input type="submit" value="Wylij"/>
</form>
Piotr Bubacz Modu 1
ITA-103 Aplikacje Internetowe Podstawy HTML
Strona 1-18
Podsumowanie
W tym rozdziale przedstawione zostay podstawy jzyka HTML. Pokazalimy najwaniejsze
znaczniki, ktre s wykorzystywane do tworzenia stron internetowych.
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
znasz podstawowe znaczniki HTML
wiesz jak tworzy tabel i jak czy wiersze i kolumny
wiesz jak tworzy i przesya formularze internetowe napisane w jzyku HTML
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. Bryan Pfaffenberger, Steven M. Schafer, Chuck White, Bill Karow, HTML, XHTML i CSS. Biblia,
Helion, 2005
Ksika zawiera opis najnowszych standardw zwizanych z tworzeniem stron
WWW obowizujcej obecnie specyfikacji HTML, CSS oraz XHTML. Przedstawia
nowoczesne metodologie tworzenia i testowania witryn WWW oraz ich
aktualizowania i modyfikowania.
2. Wempen Faithe, HTML i XHTML Krok po kroku, RM, 2007
Z ksiki nauczysz si nadawa struktur stronom WWW, stosujc tabele, ramki lub
makiety oparte na podziaach. Utworzysz listy wypunktowane i numerowane, aby
poprawi przekaz informacji. Bdziesz wiedzia, jak doda hipercza i paski menu,
aby uatwi nawigacj. Dowiesz si, w jaki sposb umie obrazki, klipy dwikowe i
wideo na stronach WWW. Wprowadzisz kolory, rozmiary czcionek i rne
formatowanie, stosujc znaczniki i kaskadowe arkusze stylw. Zbudujesz
formularze z przyciskami opcji, polami wyboru i rozwijanymi menu.
3. Jennifer Niederst Robbins, HTML i XHTML. Leksykon kieszonkowy, Helion, 2006
W ksice znajdziesz zestawienie znacznikw HTML wraz z atrybutami i ich
dopuszczalnymi wartociami ktre jest niezwykle przydatne kademu
projektantowi witryn WWW. Autor opisuje najnowsze specyfikacje HTML i XHTML,
wskazuje podobiestwa i rnice pomidzy nimi, a take zawiera praktyczne
informacje, dziki ktrym Twoja witryna WWW zostanie zaprojektowana zgodnie z
rekomendacjami W3C.
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 2
Wersja 1
Kaskadowe Arkusze Stylw CSS
Spis treci
Kaskadowe Arkusze Stylw CSS ........................................................................................................ 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Przykadowe rozwizanie ............................................................................................................. 9
Porady praktyczne ..................................................................................................................... 11
Uwagi dla studenta .................................................................................................................... 12
Dodatkowe rda informacji..................................................................................................... 12
Laboratorium podstawowe ................................................................................................................ 14
Problem 1 (czas realizacji 20 min) .............................................................................................. 14
Problem 2 (czas realizacji 25 min) .............................................................................................. 17
Laboratorium rozszerzone ................................................................................................................. 21
Zadanie 1 (czas realizacji 45 min) ............................................................................................... 21
Zadanie 2 (czas realizacji 45 min) ............................................................................................... 21
Zadanie 3 (czas realizacji 90 min) ............................................................................................... 21
Zadanie 4 (czas realizacji 90 min) ............................................................................................... 21
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce kaskadowych arkuszy
stylw i zalet wynikajcych z ich stosowania. Zobaczysz, w jaki sposb
uywa selektorw i jak utworzy ukad strony wykorzystujc
pozycjonowanie CSS. Dodatkowo nauczysz si, jak zmieni istniejcy
dokument HTML wykorzystujcy formatowanie przy pomocy tabel, aby by
zgodny ze standardem XHTML i przyjazny dla CSS.
Cel moduu
Celem moduu jest przedstawienie moliwoci wykorzystania kaskadowych
arkuszy stylw do okrelenia wygldu dokumentu XHTML, jak rwnie
przedstawienie zasad pracy z arkuszami stylw w Visual Studio.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
wiedzia czym s i gdzie warto stosowa kaskadowe arkusze stylw
potrafi tworzy nowe strony przyjazne dla kaskadowych arkuszy
stylw
rozumia potrzeb przystosowania istniejcych dokumentw HTML
do wymaga standardu XHTML
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna podstawy jzyka XHTML (patrz: modu Wprowadzenie do
XHTML)
rozumie zasady grupowania elementw przy pomocy znacznikw
<div> i <span>
zna zasady pracy w rodowisku Visual Studio, w szczeglnoci
tworzenia stron internetowych zgodnych z XHTML
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w module Podstawy HTML.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-3
Przygotowanie teoretyczne
Przykadowy problem
Majc ju pewne dowiadczenie z jzykiem HTML, na pewno prbowae okreli ukad elementw
na stronie przy pomocy tabel, a jej wygld przy pomocy znacznikw takich jak <i>, <b> czy
<font>. Stosujc takie podejcie prdzej czy pniej zauwaysz jego oczywiste wady. Przy bardziej
zoonych stronach kod HTML staje si nieczytelny, a prba zmiany stylu lub ukadu elementw
pociga za sob konieczno wprowadzenia poprawek w wielu miejscach w kodzie. Co wicej, jeli
strona, ktr tworzysz, jest tylko jedn z wielu stron w serwisie, to zmiany najprawdopodobniej
trzeba wprowadzi rwnie w pozostaych dokumentach. Rozwizaniem tych problemw moe by
oddzielenie treci dokumentu od jego prezentacji. Niestety jzyk HTML nie wspiera takiej
moliwoci. Do tego celu powszechnie wykorzystuje si inne narzdzie kaskadowe arkusze stylw
lub w skrcie CSS (ang. Cascading Style Sheets).
O ile tworzenie regu CSS nie jest trudne, o tyle nauka efektywnego posugiwania si nim moe
zaj duo wicej czasu, ni w przypadku jzyka HTML. Musisz nie tylko wiedzie, jakie waciwoci
maj poszczeglne elementy HTML, lecz rwnie jak waciwoci te s interpretowane przez
najpopularniejsze przegldarki. Ponadto musisz nauczy si odpowiednio przygotowywa
dokumenty HTML i poprawnie pozycjonowa elementy na stronie.
Podstawy teoretyczne
Kaskadowe arkusze stylw to mechanizm uywany do opisywania wygldu dokumentw HTML.
Wrd gwnych zalet wynikajcych z jego stosowania wymieni mona:
atwiejsze zarzdzanie wygldem dokumentw CSS pozwala grupowa informacje
o wygldzie poszczeglnych elementw strony, jak rwnie wykorzystywa je wielokrotnie,
nawet przez wiele dokumentw.
Mniejszy rozmiar stron stosowanie arkuszy stylw pozwala zmniejszy rozmiar
dokumentw HTML i oglnie ograniczy ilo danych, jakie musi pobra uytkownik, by
wywietli je w przegldarce w przypadku, gdy wiele stron wykorzystuje ten sam arkusz
CSS, jest on pobierany przez przegldark tylko raz.
Oddzielenie treci od wygldu dokumentw dziki CSS mona oddzieli zawarto stron
od ich wygldu, dziki czemu ich tre staje si atwiej dostpna np. dla wyszukiwarek
internetowych lub czytnikw ekranowych, wykorzystywanych przez osoby niewidome.
Reguy CSS
Arkusz CSS stanowi zbir regu, ktre informuj przegldark, jak wywietla okrelone elementy
na stronie. Kada regua skada si z dwch czci: tzw. selektora i definicji, ktr tworzy zbir par
waciwo-warto:
selektor { waciwo: warto[; waciwo: warto[;...n] ] }
Selektor okrela, jakich elementw strony dotyczy regua, definicja za mwi, jakie wartoci
powinny przyj wybrane waciwoci tych elementw, takie jak kolor czy styl tekstu. Przykadowo
nastpujca regua:
h1 { font-family: Arial; font-style: italic; }
okrela, e tekst wewntrz wszystkich elementw h1 na stronie powinien zosta wywietlony
krojem Arial, pismem pochyym.
Rodzaje selektorw
Selektory to jedne z najwaniejszych aspektw CSS. Dziel si one na kilka rodzajw, z ktrych te
najczciej uywane omwimy w kolejnych punktach.
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-4
Selektor typu
Selektor typu odnosi si do wszystkich elementw okrelonego rodzaju. Przykadowo regua:
h1 { font-weight: bold }
zostanie zastosowana dla wszystkich elementw h1 w dokumencie.
Selektor klasy
Selektor klasy odnosi si do wszystkich elementw o okrelonej wartoci atrybutu class.
Przykadowo regua:
.akapit { font-weight: bold; }
zostanie zastosowana dla elementw dowolnego rodzaju, ktrym przypisano klas akapit, np.:
<p class="akapit"></p>
Selektor ID
Selektor ID dziaa na podobnej zasadzie, co selektor klasy, z tyme wybiera elementy o okrelonej
wartoci atrybutu id. Poniewa warto tego atrybutu jest unikatowa, selektor tego typu zawsze
odnosi si do co najwyej jednego elementu na stronie. Przykadowo regua:
#stopka { font-weight: bold; }
zostanie zastosowana dla elementu dowolnego rodzaju posiadajcego atrybut id="stopka", np.:
<div id="stopka"></div>
czenie selektorw
By precyzyjniej okreli elementy, poszczeglne rodzaje selektorw mona czy ze sob.
Przykadowo regua:
p.akapit { font-weight: bold; }
zostanie zastosowana wycznie dla takich elementw p, ktrym przypisano klas akapit.
Definiowanie stylw dla dokumentu HTML
Reguy moemy definiowa:
bezporednio w dokumencie HTML, w nagwku strony:
<head>
<style type="text/css">
h1 { color: olive; }
p { color: gray; }
</style>
</head>
w dokumencie HTML jako warto atrybutu style wybranych elementw:
<h1 style="color:olive"></h1>
<p style="color:gray"></p>
w zewntrznym pliku CSS wymagane jest wskazanie go przy pomocy elementu link , np.:
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-5
Praca z CSS w rodowisku Visual Studio 2008
rodowisko Visual Studio udostpnia wizualny edytor regu CSS (Rys. 2), ktry mona przywoa
wybierajc z menu Format -> New Style.
Rys. 2 Okno New Style, kategoria Font
Najwaniejsze pola w edytorze to:
Selector selektor dla reguy.
Define In miejsce przechowywania reguy, moe by nim nagwek aktualnej strony lub
zewntrzny arkusz stylw.
URL lokalizacja zewntrznego arkusza stylw.
Preview podgld zdefiniowanego formatowania.
Description podgld definicji reguy.
Category lista kategorii, na ktre podzielone zostay waciwoci elementw HTML.
Kategoria Font
W kategorii Font (Rys. 2) znajduj si opcje pozwalajce okreli sposb wywietlania tekstu.
Przykadowe waciwoci:
font-family krj pisma
font-size stopie pisma
color kolor tekstu
Kategoria Block
W kategorii Block (Rys. 3) znajduj si opcje pozwalajce okreli sposb uoenia tekstu wewntrz
elementw blokowych.
Rys. 3 Okno New Style, kategoria Block
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-6
Przykadowe waciwoci:
line-height odlego midzy ssiednimi liniami tekst
vertical-align uoenie tekstu w pionie
text-align uoenie tekstu w poziomie
Kategoria Background
W kategorii Background (Rys. 4) znajduj si opcje pozwalajce okreli wygld ta elementu.
Rys. 4 Okno New Style, kategoria Background
Przykadowe waciwo:
background-color kolor ta
background-image obraz wywietlany w tle
background-repeat powtarzanie obrazu wywietlanego w tle w pionie i/lub w poziomie
Kategoria Border
W kategorii Border (Rys. 5) znajduj si opcje pozwalajce okreli wygld obramowania wok
elementu.
Rys. 5 Okno New Style, kategoria Border
Opcja Same for all umoliwia zastosowanie tych samych ustawie dla wszystkich krawdzi
obramowania. Przykadowe waciwoci:
border-style styl obramowania
border-width grubo obramowania
border-color kolor obramowania
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-7
Kategoria Box
W kategorii Box (Rys. 6) znajduj si opcje pozwalajce okreli marginesy zewntrzne
i wewntrzne elementw.
Rys. 6 Okno New Style, kategoria Box
Opcja Same for all umoliwia zastosowanie tych samych ustawie dla wszystkich marginesw.
Waciwoci:
padding rozmiar marginesu wewntrznego
margin rozmiar marginesu zewntrznego
Kategoria Position
W kategorii Position (Rys. 7) znajduj si opcje pozwalajce okreli rozmiar i pooenie
elementw.
Rys. 7 Okno New Style, kategoria Position
Przykadowe waciwoci:
position rodzaj pozycjonowania (statyczne, wzgldne lub bezwzgldne)
width szeroko elementu
height wysoko elementu
left pooenie lewej krawdzi elementu (zaley od rodzaju pozycjonowania)
top pooenie grnej krawdzi elementu (zaley od rodzaju pozycjonowania)
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-8
Kategoria Layout
W kategorii Layout (Rys. 8) znajduj si opcje pozwalajce okreli zaawansowane pozycjonowanie
elementw na stronie.
Rys. 8 Okno New Style, kategoria Layout
Przykadowe waciwoci:
visibility widoczno elementu
float przyciganie elementu do krawdzi bocznych innych elementw (tzw. pywanie)
clear zakaz moliwoci przycigania innych elementw do krawdzi bocznych elementu
Kategoria List
W kategorii List (Rys. 9) znajduj si opcje pozwalajce okreli wygld list.
Rys. 9 Okno New Style, kategoria List
Waciwoci:
list-style-type rodzaj listy (numerowana lub punktowana)
list-style-image obrazu uywany jako punktor w listach punktowanych
list-style-position pooenie punktora
Podsumowanie
W tym rozdziale przedstawione zostay najwaniejsze pojcia zwizane z kaskadowymi arkuszami
stylw. Dowiedziae si, czym s reguy i jak stosowa je do wybranych elementw strony
wykorzystujc selektory.
Cho do edycji kaskadowych arkuszy stylw wystarczy najprostszy edytor tekstu, Visual Studio
udostpnia duo wygodniejszy, wizualny edytor stylw, wyposaony m.in. w dynamicznie
aktualizowany podgld formatowania i moliwo zarzdzania umiejscowieniem regu.
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-9
Przykadowe rozwizanie
Przygotowanie dokumentu HTML przyjaznego dla CSS
Zanim bdziemy mogli zdefiniowa wygld elementw na stronie przy pomocy kaskadowych
arkuszy stylw, powinnimy najpierw odpowiednio przygotowa dokument HTML. Wyobramy
sobie, e chcemy przy pomocy HTML i CSS stworzy stron o uoeniu elementw jak na Rys. 10.
Rys. 10 Szkic wygldu strony
Pierwszym problemem, z jakim musimy sobie poradzi, jest podzielenie strony na gwne obszary.
Jeli przyjrzysz si rysunkowi, zauwaysz, e mona wyodrbni dwa gwne elementy, oznaczone
na rysunku pogrubion lini: nagwek strony oraz jej tre. Moemy zdefiniowa je za pomoc
znacznikw <div>. Dodatkowo kademu z nich warto nada atrybut id, aby mona byo
jednoznacznie je identyfikowa. By uatwi pozycjonowanie, moemy doda jeszcze jeden,
dodatkowy znacznik <div>, ktry obejmie ca stron:
<body>
<div id="Strona">
<div id="Naglowek"></div>
<div id="Tresc"></div>
</div>
</body>
Teraz naley przeanalizowa zawarto gwnych elementw. Rozpoczniemy od nagwka. Skada
si on z trzech gwnych elementw: logo, menu oraz obszaru logowania. Postpujc wedug tej
samej zasady, co poprzednio, powinnimy otrzyma:
<div id="Naglowek">
Logo
<div id="Menu">Menu</div>
<div id="ObszarLogowania">Zaloguj</div>
</div>
W analogiczny sposb moemy wyrni trzy obszary, w ktrych prezentowana bdzie tre strony:
<div id="Tresc">
<div id="PierwszyObszarBoczny">Pierwszy obszar boczny</div>
<div id="DrugiObszarBoczny">Drugi obszar boczny</div>
<div id="ObszarRoboczy">Obszar roboczy</div>
</div>
Moemy teraz podejrze tak przygotowany dokument w przegldarce. Jak atwo zauway, na razie
wygldem strona w ogle nie przypomina tej z rysunku. Mimo to prace nad kodem HTML moemy
praktycznie zakoczy.
Podejcie hierarchiczne uatwia nam zarzdzanie wygldem strony. Zmiana waciwoci elementu
nadrzdnego powoduje zmian wszystkich elementw podrzdnych. Podzia hierarchiczny moe
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-10
wynika z dwch czynnikw, po pierwsze z logicznego podziau strony, po drugie z podziau strony
na elementy podobne.
Definiowanie regu CSS dla dokumentu definiowanie uoenia elementw
W kolejnym kroku powinnimy utworzy arkusz stylw (np. plik Style.css) i doczy go do
dokumentu przy pomocy znacznika <link>. W pliku zdefiniujemy reguy, ktre pozwol wywietli
obok siebie obszary, w ktrych prezentowana jest tre. Aby odwoa si do tych elementw
posuymy si selektorem ID:
#PierwszyObszarBoczny { width:200px; height:300px; float:left; }
#DrugiObszarBoczny { width:200px; height:300px; float:right; }
Zdefiniowalimy rozmiar obu elementw oraz przyciganie elementu do krawdzi bocznych innych
elementw (w tym przypadku elementu nadrzdnego <div id="Tresc">). Moemy teraz
uruchomi stron w przegldarce i zweryfikowa poprawno regu. Obszary boczne zgodnie z
oczekiwaniami wywietlane s przy przeciwlegych krawdziach strony.
Teraz zajmiemy si obszarem roboczym (<div id="ObszarRoboczy">). W pierwszym kroku
sprbujemy okreli jego aktualny zasig. W tym celu zdefiniujemy dla niego kolor ta, dodajc
nastpujc regu CSS:
#ObszarRoboczy { background-color: #EEE; }
Moemy teraz zapisa plik CSS i odwiey stron w przegldarce. Jak zauwaymy, obszar roboczy
jest aktualnie wywietlany na ca szeroko strony. Powinnimy odsun go od lewej i prawej
krawdzi o 200px, aby zrobi miejsce dla obszarw bocznych. W tym celu zastosujemy marginesy.
Dodatkowo wprowadzimy marginesy wewntrzne, aby tre prezentowana w obszarze gwnym
nie zlewaa si z treci wywietlan w pozostaych obszarach. Po zmodyfikowaniu zdefiniowana
wczeniej regua CSS powinna mi nastpujc posta:
#ObszarRoboczy { background-color: #EEE;
padding: 50px 20px;
margin: 0 200px; }
Jeli teraz zapiszemy plik CSS i odwieymy stron w przegldarce, zauwaymy, e obszar gwny
jest wywietlany tak, jak oczekiwalimy.
Definiowanie regu CSS dla dokumentu definiowanie wygldu elementw
Otrzymalimy stron, ktrej elementy s odpowiednio uoone. W kolejnym kroku okrelimy
wygld poszczeglnych elementw. Rozpoczniemy od zdefiniowania wygldu elementu na
najwyszym poziomie hierarchii. Dla treci strony internetowej takim elementem jest znacznik
<body>. Do okrelenia jego waciwoci, w pliku CSS, wykorzystamy selektor typu:
body {
font-family: Verdana;
font-size: 8pt;
color: #000033; }
Okrelimy teraz nie tylko wygld tekstu wywietlanego bezporednio w znaczniku <body>, ale
rwnie wszystkich znacznikw zagniedonych, w tym przypadku wszystkich tekstw na stronie.
Zajmiemy si teraz elementami nagwka.
Okrelimy waciwoci elementu <div id="Menu">. Dla tego elementu okrelimy inny kolor ta
oraz zmniejszymy wywietlany tekst. W pliku CSS dodajemy nastpujc regu:
#Menu {
background-color: #55BBFF;
font-size: 7.5pt; }
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-11
Dla elementu <div id="ObszarLogowania"> okrelimy wyrwnanie do prawej, inny kolor ta oraz
marginesy wewntrzne. Regua w pliku CSS bdzie miaa posta:
#ObszarLogowania {
text-align: right;
background-color: #C3DBEA;
padding: 5px 10px; }
Jeli teraz zapiszemy plik CSS i odwieymy stron w przegldarce, zauwaymy, e wszystkie
elementy s wywietlane zgodnie ze szkicem strony przedstawionym na Rys. 10. Teraz jedyne co
pozostao, to doda tre do naszej nowej strony.
Porady praktyczne
Uwagi oglne
Pamitaj, e Twoje strony powinny wywietla si poprawnie we wszystkich
najpopularniejszych przegldarkach internetowych, co ze wzgldu na rnice w interpretacji
CSS moe by czasem trudne.
Sprawdzaj zgodno kodu HTML oraz CSS ze standardami przy pomocy walidatorw na
stronach W3C. Jeli Twoja strona spenia wymagania standardw, to umie na niej
informacj o zgodnoci. Moesz w tym celu wykorzysta kod zawarty na stronach
walidatorw W3C.
Staraj si umieszcza w kodzie CSS komentarze. W ten sposb nawet rok po jego napisaniu
bdziesz mg szybko przypomnie sobie, do czego su poszczeglne reguy.
Organizuj arkusze stylw, np. dzielc je na sekcje. Dobra organizacja pliku uatwia jego
modyfikacj i przegldanie w przyszoci.
Jeli w regule okrelasz warto 0, moesz pomin jednostk (np. zamiast 0px moesz
napisa 0).
Stosowanie stylw w dokumentach XHTML
Moliwe jest dobieranie stylw na podstawie atrybutw class i id, jak rwnie
definiowanie ich bezporednio jako warto atrybutu style. Najczciej powiniene
stosowa klasy, poniewa umoliwiaj one wielokrotne wykorzystanie tych samych definicji,
natomiast zdecydowanie powiniene unika stosowania atrybutu style. Jeli chcesz nada
unikatowy styl jakiemu elementowi, skorzystaj z atrybutu id.
Jako warto atrybutu class moesz poda wiele klas, np. <div class="pierwszy
drugi">. Powiniene jednak uwaa, aby wskazane style nie okrelay tych samych
wasnoci, bo rne przegldarki mog odmiennie to zinterpretowa.
W nazwach elementw i klas zawsze uywaj sw okrelajcych ich znaczenie (np.
id="Menu" lub class="ObszarBoczny"), a nie uoenie na stronie lub wygld
(np. id="LewyObszarBoczny" lub class="NiebieskieTo"). W kocu jedn
z najwikszych zalet CSS jest umoliwienie kompletnej zmiany wygldu stron bez potrzeby
modyfikowania dokumentw HTML.
Definiowanie ukadu elementw na stronie
Staraj si nie uywa tabel do ukadania elementw. Stosujc je utrudniasz dostp do treci
i moliwo zmiany wygldu strony w przyszoci.
Ukad elementw na stronie mona zdefiniowa wykorzystujc statyczne pozycjonowanie
lub pywanie. Oba podejcia maj wady. Pywanie jest trudne do opanowania, a
pozycjonowanie ogranicza elastyczno ukadu strony. O wyborze jednego z nich powinny
zdecydowa wymagania wzgldem strony.
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-12
Okrelanie wielkoci pisma
Wielko pisma moemy okreli m.in. w pikselach, punktach lub firetach (em). Wybr
waciwej jednostki jest trudny. Wybierajc piksele mamy najwiksz kontrol nad wygldem
strony, ale blokujemy moliwo zmiany wielkoci tekstu w przegldarce. Problemu tego nie
mamy, jeli zastosujemy firety, jednak wwczas musimy upewni si, e po zmianie rozmiaru
tekstu w przegldarce strona nadal wyglda tak, jak tego chcemy.
Rozmiar tekstu mona okreli wykorzystujc wartoci symboliczne: xx-small, x-small,
small, medium, large, x-large, xx-large oraz smaller i larger. Ich uycie jest
jednak niepraktyczne, bowiem nie wiemy dokadnie, jak wielko przyjmie tekst
wywietlany w przegldarce.
Skrcona notacja
Tam, gdzie to moliwe, powiniene uywa skrconej notacji CSS oraz grupowa style, np. zamiast:
.styl1 { margin-top: 11px; margin-right: 11px; margin-bottom: 11px;
margin-left: 11px; }
.styl2 { margin-top: 11px; margin-right: 11px; margin-bottom: 11px;
margin-left: 11px; }
powiniene napisa:
.styl1, .styl2 { margin: 11px; }
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
rozumiesz zasad i potrzeb budowania dokumentw XHTML przyjaznych dla CSS
umiesz posugiwa si selektorami
umiesz zmieni istniejcy dokument w jzyku HTML na zgodny z XHTML i przyjazny dla CSS
potrafisz poda przykady przestarzaych znacznikw HTML, ktre mona zastpi przy
pomocy CSS
umiesz zdefiniowa w pliku CSS podstawowe wasnoci zwizane z wygldem i pooeniem
elementu na stronie
umiesz poda przykad zastosowania CSS, jego wady i zalety
wiesz, w jaki sposb mona okreli reguy CSS w Visual Studio 2008
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. Eric A. Meyer, CSS wedug Erica Meyera. Kolejna odsona, Helion, 2005
W ksice autor prezentuje moliwoci CSS na przykadzie rnych projektw
prezentujc krok po kroku ich rozwizanie.
2. Dave Shea, Molly E. Holzschlag, Zen stosowania CSS, Helion, 2006
Jest to ksika autora witryny CSS Zen Garden. Na przykadzie rnych projektw
opisuje on rnorodne aspekty tworzenia stron, m.in. projektowanie, ukad,
typografia czy efekty specjalne.
3. Working with CSS Overview, http://msdn2.microsoft.com/en-us/library/bb398931.aspx
Na stronie opisano moliwoci pracy z CSS w Visual Studio 2008.
4. Cascading Style Sheets, http://www.w3.org/Style/CSS
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-13
Na stronie znajdziesz wszystkie informacje zwizane ze standardem CSS.
5. CSS Zen Garden, http://www.csszengarden.com
Na stronie znajdziesz przykady zastosowania wielu stylw do jednej strony.
6. CSS Vault, http://cssvault.com
Na stronie znajdziesz przykady zastosowania CSS w rnych projektach.
7. Open Source Web Design, http://www.oswd.org
Na stronie znajdziesz setki gotowych projektw szablonw stron.
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-14
Laboratorium podstawowe
Problem 1 (czas realizacji 20 min)
Jeste wacicielem niewielkiej firmy komputerowej wykonujcej rnego rodzaju zlecenia. Wanie
dzisiaj przyszed do Ciebie Twj dobry klient i poprosi o przygotowanie dla niego strony
internetowej jego firmy zajmujcej si handlem nieruchomociami. Przedstawi Ci swoj koncepcj
ukadu elementw na stronie (Rys. 11) i zaproponowa, aby w oparciu o ni przygotowa szablon
wygldu. Ucieszye si i przyje zlecenie, gdy dodatkowe pienidze s zawsze potrzebne, jednak
po chwili odkrye, e wszyscy Twoi pracownicy s ju oboeni prac na nastpnych kilka dni.
Postanowie zatem sam wykona zadanie.
Rys. 11 Szkic wygldu strony
Pamitaj, e strona musi by zgodna ze standardem XHTML oraz CSS. Powiniene zweryfikowa to
za pomoc walidatorw na stronie W3C.
Zadanie Tok postpowania
1. Utwrz now
stron w Visual
Studio 2008
Otwrz Visual Studio 2008.
Z menu wybierz File -> New -> Web Site.
Z listy Visual Studio installed templates wybierz Empty Web Site.
Z listy Location wybierz File System, a w polu obok okrel lokalizacj dla
pliku w dowolnym miejscu na dysku.
Z listy Language wybierz Visual C#.
Kliknij OK.
2. Dodanie
strony do
projektu.
Utworzenie
gwnych
elementw strony
Wybierz Website -> Add New Item.
Z listy Visual Studio installed templates wybierz HTML Page.
W polu Name wpisz Szablon.htm.
Kliknij OK.
Zmie typ dokumentu z XHTML 1.0 Transitional na XHTML 1.1,
modyfikujc pierwsz lini pliku do postaci:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Zmie tytu strony na Strona firmowa.
Wewntrz znacznika <body> dodaj:
<div id="Strona">
<div id="Naglowek"></div>
<div id="Tresc"></div>
</div>
3. Podzia
gwnych
Wewntrz znacznika zawierajcego nagwek (id="Naglowek") dodaj:
Logo
Piotr Bubacz
ITA-103 Aplikacje internetowe
elementw
<div id="Menu">Menu</div>
<div id="ObszarLogowania">Zaloguj</div>
Wewntrz
<div id="PierwszyObszarBoczny">
<div id="DrugiObszarBoczny">
<div id="ObszarRoboczy">Obszar
4. Sprawdzenie
wyniku prac
W oknie
5. Dodanie
nowego arkusza
stylw
Wybierz
Z listy
W polu
Kliknij
6. Okrelenie
pozycji
w obszarach
roboczych
Przecz widok strony na
Wybierz
W polu
W grnej czci
a
Z listy
left
Z listy
200
Kliknij
Postpuj podobnie z selektorem
waciwo
7. Okrelenie
podstawowego
wygldu
zawartoci strony
W pliku
<body
Okrel waciwoci
#
Z listy
backgroud
Z listy
Upewnij si, e opcja
Kliknij
Otwrz plik
Style.css
Zobacz ja
8. Okrelenie
wygldu
pozostaych
elementw strony
Przy
nastpujc
Kaskadowe Arkusze Stylw
Strona 2-15
<div id="Menu">Menu</div>
<div id="ObszarLogowania">Zaloguj</div>
Wewntrz znacznika zawierajcego tre (id="Tresc"
<div id="PierwszyObszarBoczny">Pierwszy obszar
<div id="DrugiObszarBoczny">Drugi obszar boczny
<div id="ObszarRoboczy">Obszar roboczy</div>
W oknie Solution Explorer kliknij prawym przyciskiem myszy plik
Szablon.htm, a nastpnie wybierz View In Browser
Czy w przegldarce internetowej strona wyglda tak
Dlaczego nie?
Wybierz Website -> Add New Item.
Z listy Visual Studio installed templates wybierz Style
W polu Name wpisz Style.css.
Kliknij OK.
Przecz widok strony na Design lub Split.
Wybierz Format -> New Style.
W polu Selector wpisz #PierwszyObszarBoczny.
W grnej czci okna z listy Define in wybierz
z listy rozwijanej URL wybierz Style.css.
Z listy Category wybierz Layout, a nastpnie okrel waciwo
left.
Z listy Category wybierz Position, a nastpnie okrel
200 px oraz height: 300 px.
Kliknij OK.
Postpuj podobnie z selektorem #DrugiObszarBoczny
waciwo float na right.
W pliku Style.css standardowo jest ju dodany selektor znacznika
<body>. Kliknij go prawym przyciskiem myszy i wybierz
Okrel waciwoci font-family: Verdana, font
#000033.
Z listy Category wybierz Background, a nastpnie
backgroud-color: white.
Z listy Category wybierz Box, a nastpnie okrel
Upewnij si, e opcja Same for all jest zaznaczona
Kliknij OK.
Otwrz plik Szablon.htm. W oknie Solution Explorer
Style.css i upu go w sekcji nagwka strony za znacznikiem
Zobacz jak zmieni si podgld pliku.
Przy pomocy narzdzi Visual Studio lub w kodzie pliku
nastpujce style:
#Menu: kolor ta: #55BBFF, wielko tekstu: 7.5pt
#ObszarLogowania: wyrwnanie tekstu (waciwo
prawej, kolor ta #C3DBEA, margines wewntrzny
z gry i dou 5px, z lewej i prawej 10px.
#ObszarRoboczy: kolor ta #EEE, margines wewntrzny (
padding) z gry i dou 50px, z lewej i prawej
i dou 0, z lewej i prawej 200px.
Modu 2
Kaskadowe Arkusze Stylw CSS
id="Tresc") dodaj:
bszar boczny</div>
boczny</div>
kliknij prawym przyciskiem myszy plik
Browser.
wyglda tak, jak na szkicu?
Style Sheet.
wybierz Existing Style Sheet,
okrel waciwo float:
a nastpnie okrel waciwoci width:
DrugiObszarBoczny, tylko zmie
standardowo jest ju dodany selektor znacznika
i wybierz Build Style.
font-size: 8 pt i color:
, a nastpnie okrel waciwo
okrel waciwo margin: 0.
jest zaznaczona.
Explorer chwy myszk plik
za znacznikiem </title>.
Studio lub w kodzie pliku Style.css okrel
7.5pt.
(waciwo text-align): do
wewntrzny (ang. padding)
, margines wewntrzny (ang.
, z lewej i prawej 20px, margines z gry
Piotr Bubacz
ITA-103 Aplikacje internetowe
9. Sprawdzenie
wygldu strony w
przegldarce
W oknie
Szablon.htm
Strona w przegldarce powinna wyglda podobnie
10. Sprawdzenie
poprawnoci na
stronie W3C
Wejd na stron
dokumentu XHTML
Wejd na stron
11. Dodanie
informacji o
zgodnoci ze
standardami
Wewntrz znacznika zawierajcego obszar roboczy
(id="ObszarRoboczy"
<p>
</p>
12. Zamiana
pooenia
obszarw
bocznych
W pliku
waciwo
W
left
13. Przygotowanie
propozycji wasnej
stylistyki
Przygotuj
strony. Zmie kolory,
Kaskadowe Arkusze Stylw
Strona 2-16
W oknie Solution Explorer kliknij prawym przyciskiem myszy plik
Szablon.htm i wybierz View In Browser.
Strona w przegldarce powinna wyglda podobnie
Rys. 12 Wygld strony po zastosowaniu stylw
Wejd na stron http://validator.w3.org i zweryfikuj poprawno
dokumentu XHTML.
Czy Twj dokument jest zgodny ze standardem
przeanalizuj bdy i sprbuj je poprawi.
Wejd na stron http://jigsaw.w3.org/css-validator
poprawno arkusza CSS.
Czy Twj arkusz stylw jest zgodny ze standardem CSS
przeanalizuj bdy i sprbuj je poprawi.
Wewntrz znacznika zawierajcego obszar roboczy
id="ObszarRoboczy") dodaj nastpujcy kod:
<p>
<a href="http://validator.w3.org/check?uri=referer">
<img style="border:0;width:88px;height:31px"
src="http://www.w3.org/Icons/valid-xhtml11
alt="Valid XHTML 1.1" /></a>
<a href="http://jigsaw.w3.org/css-validator/">
<img style="border:0;width:88px;height:31px"
src="http://jigsaw.w3.org/css-validator/images/vcss
alt="Poprawny CSS!" /></a>
</p>
W pliku Style.css w regule z selektorem #PierwszyObszarBoczny
waciwo float na right.
W regule z selektorem #DrugiObszarBoczny zmie waciwo
left.
Czy oba obszar zamieniy si miejscami?
wykona, gdyby dokument sformatowany by z uyciem tabel
Przygotuj arkusz CSS zawierajcy Twoj propozycj nowe
strony. Zmie kolory, krj tekstu i inne waciwoci
Modu 2
Kaskadowe Arkusze Stylw CSS
kliknij prawym przyciskiem myszy plik
Strona w przegldarce powinna wyglda podobnie jak na Rys. 12.
i zweryfikuj poprawno
zgodny ze standardem XHTML? Jeli nie, to
validator i zweryfikuj
zgodny ze standardem CSS? Jeli nie, to
Wewntrz znacznika zawierajcego obszar roboczy
href="http://validator.w3.org/check?uri=referer">
style="border:0;width:88px;height:31px"
xhtml11-blue"
validator/">
dth:88px;height:31px"
validator/images/vcss-blue"
PierwszyObszarBoczny zmie
zmie waciwo float na
Czy oba obszar zamieniy si miejscami? Jakie kroki musiaby
wykona, gdyby dokument sformatowany by z uyciem tabel?
CSS zawierajcy Twoj propozycj nowego wygldu
waciwoci.
Piotr Bubacz
ITA-103 Aplikacje internetowe
Problem 2 (czas realizacji 25 min)
Akurat wtedy, kiedy skoczye
ze sob stron przygotowan kilka lat wczeniej i poprosi, aby dostosowa j do obecnych
standardw. Bardzo zaleao mu na zachowaniu obecnego wygl
z moliwoci atwego wprowadzania zmian w przyszoci. Spojrzae w kod i zauwaye, e d
rozmieszczania elementw strony uywane s tabele, za wygld definiowany jest przy uyciu
przestarzaych znacznikw, takich jak
trzeba bdzie przepisa kod od pocztku, ale poniewa klientowi w pot
odmawia, zgodzie si podj zadania.
Zadanie Tok postpowania
1. Utwrz now
stron w Visual
Web Developer
2008 Express
Edition
Otwrz Visual
Z menu wybierz
Z listy
Z listy
pliku w
Z
Kliknij
2. Dodanie
oryginalnej strony
do projektu
Dodaj do projektu
->
Otwrz stron klikajc
Solution
3. Sprawdzenie
poprawnoci
dokumentu
rdo dokumentu przekopiuj na stron
w zakadce
4. Utworzenie
szablonu strony
Wybierz
Z listy
W polu
Kliknij
Zamie zawarto pliku na:
<!DOCTYPE html PUBLIC "
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Lorem ipsum dolor sit amet</title></head>
<body>
Kaskadowe Arkusze Stylw
Strona 2-17
(czas realizacji 25 min)
skoczye prac nad szablonem, przyszed do Ciebie
przygotowan kilka lat wczeniej i poprosi, aby dostosowa j do obecnych
standardw. Bardzo zaleao mu na zachowaniu obecnego wygldu i ukadu elementw, jednak
moliwoci atwego wprowadzania zmian w przyszoci. Spojrzae w kod i zauwaye, e d
rozmieszczania elementw strony uywane s tabele, za wygld definiowany jest przy uyciu
przestarzaych znacznikw, takich jak <b>, <i> czy <font>. Uwiadomie sobie, e praktycznie
trzeba bdzie przepisa kod od pocztku, ale poniewa klientowi w pot
odmawia, zgodzie si podj zadania.
Tok postpowania
Otwrz Visual Web Developer 2008 Express Edition
Z menu wybierz File -> New Web Site.
Z listy Visual Studio installed templates wybierz Empty
Z listy Location wybierz File System, a w polu obok okrel lokalizacj
pliku w dowolnym miejscu na dysku.
listy Language wybierz Visual C#.
Kliknij OK.
Dodaj do projektu istniejcy plik StronaGlowna.htm
> Add Existing Item, a nastpnie wska jego lokalizacj.
Otwrz stron klikajc dwukrotnie plik StronaGlowna.htm
Solution Explorer.
rdo dokumentu przekopiuj na stron http://validator.w3.org
w zakadce Validate by Direct Input.
Wcinij przycisk Check.
Ile bdw jest na stronie?
Z listy Doctype wybierz XHTML 1.1 i wcinij przycisk
Ile bdw jest wywietlanych teraz?
Wybierz Website -> Add New Item.
Z listy Visual Studio installed templates wybierz HTML
W polu Name wpisz Szablon.htm.
Kliknij OK.
Zamie zawarto pliku na:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Lorem ipsum dolor sit amet</title></head>
<body>
<div id="Strona">
<div id="Naglowek">
<h1></h1>
<h2></h2>
</div>
<div id="Tresc">
<div id="Obszar1">
<div class="Ramka"></div>
<div class="Ramka"></div>
<div class="Ramka Ostatnia"></div>
</div>
<div id="Obszar2"></div>
Modu 2
Kaskadowe Arkusze Stylw CSS
, przyszed do Ciebie kolejny klient. Przynis
przygotowan kilka lat wczeniej i poprosi, aby dostosowa j do obecnych
du i ukadu elementw, jednak
moliwoci atwego wprowadzania zmian w przyszoci. Spojrzae w kod i zauwaye, e do
rozmieszczania elementw strony uywane s tabele, za wygld definiowany jest przy uyciu
. Uwiadomie sobie, e praktycznie
trzeba bdzie przepisa kod od pocztku, ale poniewa klientowi w potrzebie nigdy si nie
Edition.
Empty Web Site.
w polu obok okrel lokalizacj
StronaGlowna.htm. Wybierz Website
lokalizacj.
StronaGlowna.htm w oknie
http://validator.w3.org do pola
i wcinij przycisk Revalidate.
HTML Page.
//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head><title>Lorem ipsum dolor sit amet</title></head>
Piotr Bubacz
ITA-103 Aplikacje internetowe
</body>
</html>
Przekopiuj tre
szablonu
Do wntrza znacznika
tabeli
Do wntrza znacznika
Do wntrza znacznika
wiersza tabeli.
Tekst zapisany stylem pogrubionym umie wewntrz znacznikw
<h3>
Reszt tekstu umie wewntrz znacznikw
Wewntrz znacznika o
<h3>
<img
5. Dodanie
nowego arkusza
stylw
Wybierz
Z listy
W polu
Kliknij
6. Okrelenie
podstawowego
uoenia strony
Do pliku
#Obszar1 { float: left;
#Obszar2 { float: right; width: 200px; }
#Strona { width: 620px; }
#Tresc { float: left;
.Ramka { float: left; width: 200px; }
7. Sprawdzenie
wygldu strony w
przegldarce
Otwrz plik
Style.css
W oknie
Szablon.htm
projektowana strona.
8. Okrelenie
wygldu strony
Przy pomocy narzdzi Visual Studio lub w kodzie pliku
style dla wymienionych
Dla
Dla
Kaskadowe Arkusze Stylw
Strona 2-18
<div id="ObszarGlowny"></div>
<div id="Obszar3">
<div class="Ramka"></div>
<div class="Ramka Ostatnia"></div>
</div>
</div>
<div id="Stopka"></div>
</div>
</body>
</html>
Zauwa, e zosta zmieniony standardowy typ dokumentu
z XHTML 1.0 Transitional na XHTML 1.1.
Przekopiuj tre z pliku StronaGlowna.htm do nowo utworzonego
szablonu na podstawie wskazwek poniej.
Do wntrza znacznika <h1> przekopiuj tekst z pierwszego wiersza
tabeli.
Do wntrza znacznika <h2> przekopiuj tekst z drugiego wiersza tabeli.
Do wntrza znacznika o id="Stopka" przekopiuj tekst
wiersza tabeli.
Tekst zapisany stylem pogrubionym umie wewntrz znacznikw
<h3>.
Reszt tekstu umie wewntrz znacznikw <p>.
Wewntrz znacznika o id="ObszarGlowny", pomidzy znacznikami
<h3> i <p>, dodaj nastpujcy kod:
<img src="Pictures/WebPage.png" alt="Web page" />
Wybierz Website -> Add New Item.
Z listy Visual Studio installed templates wybierz Style
W polu Name wpisz Style.css.
Kliknij OK.
Do pliku Style.css dodaj nastpujce reguy:
#Obszar1 { float: left; width: 620px; }
#Obszar2 { float: right; width: 200px; }
#Strona { width: 620px; }
#Tresc { float: left; width: 620px; }
.Ramka { float: left; width: 200px; }
Otwrz plik Szablon.htm. W oknie Solution Explorer
Style.css i upu go w sekcji nagwka strony za znacznikiem
W oknie Solution Explorer kliknij prawym przyciskiem myszy plik
Szablon.htm i wybierz View In Browser. Zobacz jak wyglda
projektowana strona.
Przy pomocy narzdzi Visual Studio lub w kodzie pliku
style dla wymienionych niej elementw.
Dla elementu body:
Kolor ta: #708090
Kolor czcionki: #F5F5F5
Dla elementw h1:
Rodzin fontw: Arial, Helvetica, sans-serif
Margines grny: 0
Wyrwnanie: wyrodkowane
Modu 2
Kaskadowe Arkusze Stylw CSS
, e zosta zmieniony standardowy typ dokumentu
do nowo utworzonego
ekst z pierwszego wiersza
przekopiuj tekst z drugiego wiersza tabeli.
przekopiuj tekst z ostatniego
Tekst zapisany stylem pogrubionym umie wewntrz znacznikw
, pomidzy znacznikami
src="Pictures/WebPage.png" alt="Web page" />
Style Sheet.
Explorer chwy myszk plik
za znacznikiem </title>.
kliknij prawym przyciskiem myszy plik
Zobacz jak wyglda
Przy pomocy narzdzi Visual Studio lub w kodzie pliku Style.css okrel
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-19
Dla elementw h2:
Wielko tekstu: 1em
Styl tekstu: kursywa
Margines: 0
Dla elementw h3:
Wielko fontw: 1em
Styl fontw: pogubienie
Margines: 0
Dla elementw img:
Pywanie: do lewej
Margines: 10px 10px 10px 0
Szeroko: 172px
Dla elementw p:
Margines: 0
Dla elementu o id="Obszar2" dodaj:
Margines grny: 10px
Dla elementu o id="Strona" dodaj:
Margines lewy: auto
Margines prawy: auto
Dla elementu o id="Tresc" dodaj:
Margines grny i dolny: 10px
Margines prawy i lewy: 0
Dla elementu o id=" Obszar3" oraz id="ObszarGlowny":
Pywanie: do lewej
Margines grny: 10px
Szeroko: 410px
Dla elementu o id="Stopka" dodaj:
Styl fontw: pogubienie
Wyrwnanie: wyrodkowane
Dla elementw klasy Ramka dodaj:
Margines prawy: 10px
Dla elementw klasy Ostatnia:
Margines prawy: 0
Dla elementw klasy Ikona:
Obramowanie: 0
Szeroko: 88px
Wysoko: 31px
9. Sprawdzenie
wygldu strony w
przegldarce
W oknie Solution Explorer kliknij prawym przyciskiem myszy plik
Szablon.htm i wybierz View In Browser. Zobacz jak teraz wyglda
projektowana strona.
Piotr Bubacz
ITA-103 Aplikacje internetowe
Strona powinna wyglda podobnie
10. Sprawdzenie
poprawnoci na
stronie W3C
Wejd na stron
dokumentu XHTML.
Wejd na stron
11. Dodanie
informacji o
zgodnoci ze
standardem
Wewntrz znacznika
<p>
</p>
12. Przygotowanie
propozycji wasnej
stylistyki
Przygotuj arkusz CSS zawierajcy Twoj propozycj nowego wygldu
strony. Zmie kolory, krj tekstu i inne waciwoci.
Kaskadowe Arkusze Stylw
Strona 2-20
Strona powinna wyglda podobnie do strony StronaGlowna.htm
Wejd na stron http://validator.w3.org i zweryfikuj poprawno
dokumentu XHTML.
Czy Twj dokument jest zgodny ze standardem
przeanalizuj bdy i sprbuj je poprawi.
Wejd na stron http://jigsaw.w3.org/css-validator
poprawno arkusza CSS.
Czy Twj arkusz stylw jest zgodny ze standardem
przeanalizuj bdy i sprbuj je poprawi.
Wewntrz znacznika o id="Stopka" dodaj nastpujcy kod:
<p>
<a href="http://validator.w3.org/check?uri=referer">
<img class="Ikona"
src="http://www.w3.org/Icons/valid-xhtml11
alt="Valid XHTML 1.1" /></a>
<a href="http://jigsaw.w3.org/css-validator/">
<img class="Ikona"
src="http://jigsaw.w3.org/css-validator/images/vcss
alt="Poprawny CSS!" /></a>
</p>
Przygotuj arkusz CSS zawierajcy Twoj propozycj nowego wygldu
strony. Zmie kolory, krj tekstu i inne waciwoci.
Modu 2
Kaskadowe Arkusze Stylw CSS
StronaGlowna.htm.
i zweryfikuj poprawno
zgodny ze standardem XHTML? Jeli nie, to
validator i zweryfikuj
zgodny ze standardem CSS? Jeli nie, to
nastpujcy kod:
href="http://validator.w3.org/check?uri=referer">
xhtml11-blue"
validator/">
validator/images/vcss-blue"
Przygotuj arkusz CSS zawierajcy Twoj propozycj nowego wygldu
strony. Zmie kolory, krj tekstu i inne waciwoci.
Piotr Bubacz Modu 2
ITA-103 Aplikacje internetowe Kaskadowe Arkusze Stylw CSS
Strona 2-21
Laboratorium rozszerzone
Zadanie 1 (czas realizacji 45 min)
Przygotowae dla klienta stron internetow z wykorzystaniem XHTML i CSS. Ten bardzo si
ucieszy, e jest ona zgodna ze standardami i mona atwo wprowadza w niej modyfikacje,
a poniewa zblia si rocznica powstania jego firmy, zaproponowa, aby z tej okazji przygotowa
propozycj nowego ukadu oraz wygldu strony. Poniewa nie masz duego dowiadczenia
w dziedzinie projektowania, postanowie poszuka inspiracji na jednej z witryn oferujcych
gotowe rozwizania. Z pomoc wyszukiwarki trafie na stron Open Source Web Design
(http://www.oswd.org), oferujc darmowe szablony. Sprbuj zaadoptowa style z ktrego
z projektw do strony przygotowanej w poprzednim zadaniu.
Zadanie 2 (czas realizacji 45 min)
Spka usugowo-handlowa Kowalski-Sale posiada witryn internetow wykonan 4 lata temu.
Firma si rozwija i w zwizku z tym chciaaby odwiey wizerunek oraz rozszerzy informacje na
swojej stronie. Niestety nie jest to atwe, gdy do zdefiniowania wygldu i uoenia elementw
zostay uyte tabele i przestarzae znaczniki. Przeanalizuj dokumenty zawarte w archiwum
Kowalski-Sale.zip i opracuj now wersj strony zgodn ze standardami XHTML i CSS. Przygotuj co
najmniej dwie rne wersje ukadu i wygldu strony.
Zadanie 3 (czas realizacji 90 min)
Starasz si o wietnie patn prac w duej firmie tworzcej aplikacje internetowe. Jeste jednym
z kilku kandydatw, ktrzy przeszli do drugiej tury rozmw. Twj przyszy pracodawca postanowi
sprawdzi Twoje umiejtnoci posugiwania si kaskadowymi arkuszami stylw, proszc Ci
o przygotowanie pliku CSS dla strony gwnej witryny CSS Zen Garden (http://csszengarden.com).
Podpowied: w serwisie znajduj si przykadowe pliki CSS przygotowane przez innych
uytkownikw. Zobacz, jak zosta w nich zdefiniowany wygld strony gwnej. Pamitaj, e w firmie
dziaa system antyplagiatowy!
Zadanie 4 (czas realizacji 90 min)
Jeste niezalenym projektantem stron internetowych. Twoim nowym zleceniem jest
przygotowanie profesjonalnie wygldajcej galerii zdj. Twj klient okreli nastpujce
wymagania:
Strona powinna by zgodna ze standardem XHTML 1.1 oraz CSS 2.1.
Wygld strony musi by zdefiniowany w zewntrznym pliku CSS.
Na gwnej stronie galerii ma by wywietlana lista miniatur zdj wraz z odnonikami do
zdjcia. Kada miniatura musi by umieszczona w wystylizowanej w CSS ramce. Ilo miniatur
w wierszu ma by zalena od szerokoci okna przegldarki.
Jako zawarto galerii wykorzystaj wybrane przez siebie zdjcia umieszczone w serwisie Live Spaces
(http://www.spaces.live.com).
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 3
Wersja 1
Podstawy JavaScript
Spis treci
Podstawy JavaScript ............................................................................................................................. 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Uwagi dla studenta .................................................................................................................... 10
Dodatkowe rda informacji..................................................................................................... 10
Laboratorium podstawowe ................................................................................................................ 11
Problem 1 (czas realizacji 20 min) .............................................................................................. 11
Problem 2 (czas realizacji 25 min) .............................................................................................. 14
Laboratorium rozszerzone ................................................................................................................. 17
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce podstaw jzyka JavaScript.
Nauczysz si tworzy kod dziaajcy po stronie klienta w przegldarce.
Poznasz sposoby sprawdzania poprawnoci wprowadzanych informacji
przez uytkownika.
Cel moduu
Celem moduu jest przedstawienie moliwoci wykorzystania jzyka
JavaScript do tworzenia interaktywnych aplikacji dziaajcych po stronie
klienta, jak rwnie przedstawienie moliwoci pracy z tym jzykiem
w Visual Studio 2008.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
wiedzia jak tworzy interaktywne aplikacje dziaajce po stronie
klienta w przegldarce
potrafi pisa aplikacj w jzyku JavaScript
potrafi pracowa z jzykiem JavaScript w Visual Studio 2008
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna podstawy jzyka XHTML (patrz: modu Wprowadzenie do
XHTML)
zna zasady pracy w rodowisku Visual Studio, w szczeglnoci
tworzenia stron internetowych zgodnych z XHTML
zna podstawy definiowania wygldu aplikacji w oparciu o style
kaskadowe CSS
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w module Wprowadzenie do XHTML oraz Kaskadowe Arkusze Stylw CSS.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-3
Przygotowanie teoretyczne
Przykadowy problem
Majc pewne dowiadczenie w tworzeniu stron internetowych zgodnych ze standardem XHTML,
ktrych wygld definiujemy za pomoc arkusza stylw CSS kolejnym krokiem jest ch
umieszczenia elementw interaktywnych na stronie. Moemy wykorzysta np. technologi Flash
czy Silverlight, jednak, nie jest to proste zadanie. Potrzebujemy prostego jzyka, ktry umoliwia
tworzenie pewnej interakcji z uytkownikiem po stronie klienta w przegldarce. Umoliwi
sprawdzenie poprawnoci wpisywanych danych do formularza czy uatrakcyjni Twoj stron
poprzez rozwijane elementy np. menu. Do tego celu powszechnie wykorzystuje si jzyk JavaScript.
Podstawy teoretyczne
JavaScript jest skryptowym, interpretowanym jzykiem o skadni podobnej do jzyka C. Aplikacje
napisane w tym jzyku s wykonywane po stronie klienta. Zalet tego rozwizania jest
natychmiastowe dziaanie, dziki czemu strony wydaj si funkcjonowa szybciej. Moliwe jest
rwnie osiganie pewnych dodatkowych funkcjonalnoci od wywietlania okien dialogowych po
zaawansowane aplikacje AJAX.
Umieszczanie kodu JavaScript
Kod aplikacji moemy umieszcza w stronie lub w zewntrznym pliku. Moemy rwnie odwoywa
si do wielu plikw rwnoczenie, co uatwia nam tworzenie i korzystanie z bibliotek funkcji.
Umieszczanie kodu JavaScript na stronie
Kod aplikacji na stronie HTML naley umieci w znacznikach scripts:
<script type="text/javascript">
// Tutaj umieszczamy kod aplikacji
</script>
Na stronie moemy umieci wicej ni jeden blok scripts praktycznie w dowolnym miejscu,
najczciej dla atwego odnajdowania kodu umieszczany on jest w nagwku pliku znaczniku
head. Jeli jednak skrypt tworzy dynamiczn zawarto naley umieci go w miejscu, w ktrym ta
zawarto ma si pojawi.
Umieszczanie kodu JavaScript w zewntrznych repozytoriach
Tworzc aplikacje w jzyku JavaScript moemy budowa bibliotek funkcji lub korzysta z innych
rozbudowanych bibliotek. Repozytorium jest umieszczane w zewntrznych plikach tekstowych,
najczciej z rozszerzeniem js. Doczmy je do aplikacji podobnie jak skrypt podajc w waciwoci
src ciek dostpu do pliku.
<script type="text/javascript" src="biblioteka.js"></script>
Przegldarka po napotkaniu takiego znacznika zatrzyma wykonywanie strony a do zaadowania
zewntrznego pliku, dlatego najlepiej jest pododawa tak informacj w nagwku strony.
Obsuga wejcia i wyjcia
W przypadku aplikacji internetowych jednym z najwaniejszych elementw jest wywietlanie
i pobieranie informacji. W tym wzgldzie jzyk JavaScript udostpnia kilka moliwoci poczwszy od
pisania na stronie, poprzez okna dialogowe, a po wywietlanie kodu HTML w dowolnym
elemencie.
Pisanie na stronie
Moliwe jest umieszczenie dowolnego napisu na stronie. W tym celu wykorzystujemy polecenie:
document.writeln(napis)
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-4
gdzie napis jest cigiem znakw wywietlonym na stronie. To polecenie powinno by wykorzystane
jedynie podczas tworzenie strony. Uycie tego polecenie podczas dziaania strony spowoduje
w wikszoci przegldarek usunicie strony i wypisanie jedynie podanego cigu znakw.
Przykadowy kod wykorzystujcy to polecenie:
<script type="text/javascript">
document.writeln("Witaj wiecie");
</script>
Podczas renderowania strony w przegldarce napis pojawi si dokadnie w miejscu jego uycia.
Okna dialogowe
Kolejn moliwoci wywietlania komunikatw s okna dialogowe. Jeli wywietlimy okno
dialogowe aplikacja zatrzyma wykonanie skryptu a do momentu kiedy uytkownik kliknie OK.
Przykad uycia:
<script type="text/javascript">
alert("Witaj wiecie");
</script>
Uycie tej metody powinnimy ograniczy do niezbdnego minimum. Wyskakujce okna dialogowe
s raczej negatywnie odbierane przez uytkownikw.
Wywietlanie kodu HTML w dowolnym elemencie
Kolejn moliwoci jest dynamiczne wywietlanie kodu HTML w dowolnym elemencie na stronie.
Kady element na stronie moe posiada waciwo ID jednoznacznie go identyfikujc.
Wykorzystujemy j nie tylko przy definiowaniu stylw css, ale rwnie przy odwoywaniu si do
elementu w jzyku JavaScript. Przy pomocy konstrukcji:
document.getElementById(idElementu)
moemy jednoznacznie odwoa si do elementu o id=idElementu. Nastpnie moemy odwoywa
si do waciwoci takiego elementu. Najpopularniejsze waciwoci to:
innerHTML umoliwia okrelenie kodu HTML ktry zostanie umieszczony w elemencie
innerText umoliwia okrelenie cigu znakw ktry zostanie umieszczony w elemencie
className umoliwia okrelenie klasy CSS uytej do prezentacji elementu.
Przykad uycia:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<style type="text/css">
.wyroznienieCzerwone { color: Red; font-weight: 600; }
</style>
</head>
<body>
<div id="nazwa"></div>
<script type="text/javascript">
document.getElementById("nazwa").innerHTML = "Witaj wiecie";
document.getElementById("nazwa").className = "wyroznienieCzerwone";
</script>
</body>
</html>
Zawarto elementu, w tym przypadku div o id="nazwa" moe zosta zmieniona w momencie
adowania strony.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-5
Pobieranie informacji od uytkownika
Najprostsz metod komunikacji jest wcinicie przycisku lub innego elementu na stronie. Kady
element na stronie umoliwia obsug zdarzenia kliknicia za pomoc waciwoci onclick.
Podajemy w niej jako parametr nazw funkcji ktra zostanie wywoana. Zmieniajc zawarto body
z powyszego przykadu otrzymujemy:
<div id="nazwa" onclick="zmien()"></div>
<script type="text/javascript">
document.getElementById("nazwa").innerHTML = "Witaj wiecie";
function zmien() {
document.getElementById("nazwa").innerHTML = "Witaj wany wiecie!";
document.getElementById("nazwa").className = "wyroznienieCzerwone"; }
</script>
Po klikniciu na napis Witaj wiecie pojawia si na czerwono napis Witaj wany wiecie. Kod
umieszczony w znacznikach jest wykonywany od razu, natomiast kod umieszczony w funkcji
dopiero po jej wywoaniu po klikniciu na aktywn zawarto.
Kolejn moliwoci pobierania informacji od uytkownika s pola tekstowe. Fragment strony
umoliwiajcy wywietlenie w miejscu div id="wynik" informacji wpisanej w kontrolce input o
id="dane".
<input id="dane" type="text" />
<input type="button" value="Wywietl" onclick="Wyswietl()" />
<div id="wynik" ></div>
<script type="text/javascript">
function Wyswietl() {
document.getElementById("wynik").innerHTML = "Wpisae " +
document.getElementById("dane").value; }
</script>
Jak wynika z powyszego przykadu konstrukcja document.getElementById suy nie tylko do
okrelania waciwoci ale rwnie do ich pobierania.
Inn moliwoci jest przekazanie do funkcji formularza i odwoywanie si do elementw przy
pomocy waciwoci value. W przypadku formularza przypisanie powysze bdzie miao posta:
document.getElementById("wynik").innerHTML= "Wpisae " + form.imie.value ;
Zdarzenia w JavaScript
W poprzednim rozdziale wprowadzilimy pojcie obsugi zdarze w JavaScript. Zdarzenie to inaczej
zajcie jakiej sytuacji np. kliknicie myszk, przesuwanie kursora myszki nad obiektem lub
wpisywanie treci do kontrolki. Metoda obsugi zdarzenia to w jzyku JavaScript funkcja, ktra jest
wywoywana w momencie wystpienia okrelonego zdarzenia. List najwaniejszych zdarze jakie
s moliwe do obsuenia w tym jzyku przedstawia Tab. 1.
Tab. 1 Lista najwaniejszych zdarze w jzyku JavaScript
Zdarzenie Opis
onChange Zawarto elementu ulega zmianie.
onClick Uytkownik klikn na tym elemencie.
onDblClick Uytkownik klikn dwukrotnie na tym elemencie.
onFocus Uytkownik wybra dany element.
onKeyDown Uytkownik nacisn klawisz.
onKeyPress Uytkownik nacisn lub zwolni klawisz.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-6
onKeyUp Uytkownik zwolni klawisz.
onMouseDown Uytkownik wcisn przycisk myszki.
onMouseOut Uytkownik przesun kursor myszki poza element.
onMouseOver Uytkownik przesun kursor myszki poza element.
onSubmit Uytkownik wcisn przycisk wysyajcy dane z formularza.
Przepisywanie treci z jednej kontrolki do drugiej mona rwnie obsuy za pomoc zdarzenia
onKeyUp:
<input id="dane" type="text" onKeyUp="Wyswietl()" />
<div id="wynik" ></div>
<script type="text/javascript">
function Wyswietl() {
document.getElementById("wynik").innerHTML = "Wpisae " +
document.getElementById("dane").value; }
</script>
Co ciekawe nie trzeba nic zmienia w funkcji Wyswietl.
Zmienne
Jzyk JavaScript nie jest jzykiem silnie typowanym, co znaczy, e nie musimy przejmowa si
typem zmiennych. Moemy przypisa do zmiennej dan dowolnego typu, a nastpnie poprzez
ponowne przypisanie zmieni nie tylko zawarto, ale rwnie typ przechowywanej informacji, co
nie jest polecane, bo w czasie wykonywania aplikacji nie wiadomo jakiego typu jest dana zmienna.
Nazwa zmiennej nie moe by sowem zarezerwowanym, zaczyna si od liczby lub symbolu innego
ni $ lub _. Naley rwnie unika nazw zmiennych, ktre s takie same jak nazwy elementw
HTML.
Zmiennymi mog by w jzyku JavaScript rwnie funkcje. Moliwe jest nastpujce przypisanie:
var mojaFunkcja = function() {
return "Jestem sobie funkcj!"; }
Po zdefiniowaniu takiej funkcji moe ona by przekazana jako argument do innej funkcji lub
przypisana do innej zmiennej tak, jak cig znakw, tablica czy inny obiekt JavaScript. Oglnie
funkcje uyte bez nawiasw s traktowane jak zmienne: mog by przekazywane do innych funkcji
i mona do nich przypisa dowolne wartoci. Uycie nawiasw wywouje dziaanie funkcji
i przekazuje warto zwrotn.
Zmienne mog by deklarowane ze sowem kluczowym var lub bez niego. W przypadku, kiedy
uyjemy tego sowa zmienne s widoczne tylko wewntrz funkcji w ktrej s zdefiniowane. Jeli
zadeklarujemy (przypisujc po raz pierwszy warto) jak zmienna bez tego sowa kluczowego, to
zmienna ma zasig globalny.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-7
Operatory
Operatory arytmetyczne
Operatory arytmetyczne zostay przedstawione w Tab. 2.
Tab. 2 Operatory arytmetyczne w JavaScript
Operator Opis
+ Dodawanie rwnie konkatenacja cigw znakw
- Odejmowanie
* Mnoenie
/ Dzielenie
% Reszta z dzielenia
++ Inkrementacja przed lub po
-- Dekrementacja przed lub po
Operatory inkrementacji i dekrementacji zachowuj si podobnie jak w jzyku C. Jeli wystpuj
przed zmienn to operacja nastpuje natychmiast, jeli po zmiennej, to operacja nastpuje po caej
linii kodu. Przykad:
var x = 1;
var y = x++; // y=1, x=2
var z = ++x; // z=3, x=3
Operatory logiczne
Operatory logiczne zostay przedstawione w Tab. 3.
Tab. 3 Operatory logiczne
Operator Opis
= Przypisania x=5; // przypisuje 5 do zmiennej x
== Rwnoci, czy x==5?
=== Identycznoci, x===5 czy x ma warto 5 i czy jest liczb?
!= Nie rwne
!== Nie identyczne
! Negacja
|| Lub (OR)
&& I (AND)
< Mniejsze ni
<= Mniejsze ni lub rwne
> Wiksze ni
>= Wiksze ni lub rwne
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-8
Jzyk JavaScript umoliwia porwnanie nie tylko rwnoci (==) ale rwnie identycznoci (===). Przy
porwnaniu rwnoci porwnanie jest dokonywane bez sprawdzania typu, zatem 5=="5". Przy
sprawdzaniu identycznoci sprawdzana jest nie tylko warto, ale i typ zmiennych.
Sterowanie
W kadym jzyku programowania instrukcje sterujce okrelaj kolejno wykonywania oblicze.
Instrukcja warunkowa if
Instrukcj if stosuje si przy podejmowaniu decyzji. Formalnie moemy j zapisa jako:
if (wyrazenie)
instrukcja_1
else
instrukcja_2
Jeli wyraenie wyrazenie jest spenione, to wykonywana jest instrukcja_1 w przeciwnym
przypadku wykonywana jest instrukcja_2.
Instrukcja warunkowa switch
Instrukcja switch suy do podejmowania decyzji wielowariantowych, w ktrych sprawdzana si,
czy warto pewnego wyraenia pasuje do jednej z kilku cakowitych staych wartoci, jeli tak, to
przy pomocy instrukcji break nastpuje wyjcie z porwnania. Formalnie moemy j zapisa jako:
switch (wyrazenie) {
case wyrazenie_stale_1: instrukcja_1; break;
case wyrazenie_stale_2: instrukcja_2 ; break;
default: instrukcja_3;
}
Instrukcja nastpujca po sowie default (w tym przypadku instrukcja_3) zostanie wykonana,
jeli wyraenie nie spenio adnego z wyrae staych.
Ptle
Ptle umoliwiaj powtrzenie pewnych instrukcji dopki nie zostanie speniony okrelony
warunek.
Jedn z ptli dostpnych w jzyku JavaScript jest ptla for. Formalnie moemy j zapisa jako:
for (stanPoczatkowy; warunekZakonczenia; zmiany)
lista_instrukcji
Na pocztku zostanie ustalony stan pocztkowy zdefiniowany w stanPoczatkowy. Nastpnie
ptla bdzie wykonywana a do spenienia warunku okrelonego w warunekZakonczenia. Przy
kadej iteracji ptli bd wykonywane operacje umieszczone w zmiany.
Bardzo pomocn ptl jest ptla for/in. Ptla ta umoliwia przegldanie kolekcji obiektw jest
podobna do ptli foreach w jzyku C#. Formalnie moemy j zapisa jako:
for (var element in kolekcja)
lista_instrukcji
gdzie kolekcja jest kolekcj obiektw, a element jest poszczeglnym (kolejnym) elementem w
kolekcji podczas jej przegldania.
Kolejn ptl jest ptla while. Umoliwia ona wykonywanie cigu instrukcji a do spenienia
okrelonego warunku sprawdzanego na pocztku dziaania ptli. Formalnie moemy j zapisa jako:
while (warunekKoncowy)
lista_instrukcji
Poniewa warunek sprawdzany jest na pocztku ptla ta moe si nie wykona ani razu.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-9
Ptl podobn jest ptla do-while. W tej ptli najpierw nastpuje przetwarzanie a pniej
sprawdzenie warunku. Formalnie moemy j zapisa jako:
do {
lista_instrukcji }
while (warunekKoncowy);
Praca z JavaScript w Visual Studio 2008
Nowoci wprowadzonymi do Visual Studio w wersji 2008 s IntelliSense i debugowanie dla jzyka
JavaScript.
InteliSens to automatyczne, kontekstowe uzupenianie podpowiadanie kodu i konstrukcji
jzykowych dostpne m.in. w VisualStudio. Dotychczas ta technologia nie wspieraa jzyka
JavaScript. Teraz mamy moliwo podejrzenia listy moliwych polece, jak rwnie argumentw
funkcji (Rys. 2).
Rys. 2 Przykad uycia technologii IntelliSense w VisualStudio dla jzyka JavaScript
Visual Studio umoliwia atwe debugowanie aplikacji JavaScript. Moemy w dowolnym miejscu w
kodzie ustawi punkt przerwania (breakpoint) i uruchamia aplikacj krok po kroku. Moliwe jest
rwnie, w oknie Watch, przegldanie i edycja waciwoci dowolnych zmiennych i obiektw ().
Rys. 3 Przykad przerwania wykonania aplikacji oraz podgld obiektu form
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-10
Szczegowe informacje o moliwociach pracy z IntelliSense i debugowaniem w Visual Studio
moemy znale na blogu Scott Guthrie umieszczonego w dodatkowych rdach informacji.
Podsumowanie
W tym rozdziale przedstawione zostay podstawy jzyka JavaScript oraz wprowadzenie do pracy
z tym jzykiem w VisualStudio 2008.
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
umiesz dodawa kod JavaScript do strony HTML
potrafisz napisa prost aplikacj w JavaScript
wiesz, co umoliwia IntelliSense i jak uruchomi debugowanie w Visual Studio 2008
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. Scott Guthrie, VS 2008 JavaScript Intellisense - ScottGu's Blog
http://weblogs.asp.net/scottgu/archive/2007/06/21/vs-2008-javascript-intellisense.aspx
Na blogu autor prezentuje moliwoci technologii Intellisense w jzyku JavaScript.
2. Scott Guthrie, VS 2008 JavaScript Debugging - ScottGu's Blog,
http://weblogs.asp.net/scottgu/archive/2007/07/19/vs-2008-javascript-debugging.aspx
Na blogu autor prezentuje moliwoci debugowania aplikacji napisanych w jzyku
JavaScript.
3. Danny Goodman, JavaScript. Biblia, Helion
W ksice znajdziesz wszystko, co jest wane przy tworzeniu aplikacji w jzyku
JavaScript. Na prawie 1500 stronach autor umieci prawie wszystko co chciaby
wiedzie o tym jzyku.
4. Shelley Powers, JavaScript. Wprowadzenie, Helion
W ksice autor przedstawi praktyczne wprowadzenie do jzyka JavaScript.
Z ksiki nauczysz si przechwytywa zdarzenia zachodzce w oknie przegldarki,
sprawdza dane wprowadzane przez uytkownikw do formularzy na stronach
WWW oraz korzysta z plikw cookie. Poznasz obiektowy model dokumentu
(DOM), technologi AJAX i dodatkowe biblioteki.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-11
Laboratorium podstawowe
Problem 1 (czas realizacji 20 min)
Jeste wacicielem niewielkiej firmy i Twj pracownik przygotowa prost ankiet w jzyku HTML
umoliwiajc pobranie od uytkownika podstawowych informacji dotyczcych imienia, adresu,
wzrostu i zakresu cen. Ankieta zostaa przedstawiona na Rys. 4.
Rys. 4 Ankieta
Niestety klient zayczy sobie aby doda sprawdzenie danych po stronie przegldarki:
Pola wymagane:
Imie
E-mail
Cena od i do
Sprawdzenie poprawnoci wpisanych wartoci dla pl:
E-mail (e-mail w formacie nazwa@serwer.domena)
Kod pocztowy (kod odpowiedni dla naszego kraju)
Wzrost (zakres od 40 do 250 cm)
Wartoci w polach od i do wpisane odpowiednio
Twoim zadaniem jest przygotowanie odpowiednich skryptw w jzyku JavaScript umoliwiajcych
spenienie oczekiwa klienta.
Zadanie Tok postpowania
1. Utwrz now
stron w Visual
Studio 2008
Express Edition
Otwrz Visual Studio 2008.
Z menu wybierz File -> New -> Web Site.
Z listy Visual Studio installed templates wybierz Empty Web Site.
Z listy Location wybierz File System, a w polu obok okrel lokalizacj dla
pliku w dowolnym miejscu na dysku.
Kliknij OK.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-12
2. Dodaj do
projektu
utworzone przez
pracownika pliki
Wybierz Website->Add Existing Item a nastpnie wska plik
Ankieta.htm.
Podobnie dodaj plik Style.css.
Wybierz prawym przyciskiem myszy plik Ankieta.htm i wybierz View in
Browser.
3. Dodaj nowy
plik, ktry bdzie
zawiera kod
sprawdzajcy
Wybierz Website->Add New Item a nastpnie w oknie Add New Item:
W obszarze Templates wybierz JScript File
W polu Name wpisz Walidacja.js
Otwrz plik Ankieta.htm i z okna Solution Explorer przecignij plik
Walidacja.js do rodka znacznika head na stronie.
Zapisz zmiany.
4. Dodanie
funkcji walidujcej
formularz i
sprawd, czy
wymagane w
zadaniu pola s
wypenione
Do pliku Walidacja.js wpisz nastpujcy kod:
function sprawdz ( form )
{
if (form.imie.value == "") {
alert( "Prosz wprowadzi imi." );
form.imie.focus();
return false ; }
if (form.email.value == "") {
alert( "Prosz wprowadzi adres email." );
form.email.focus();
return false ; }
if (form.cenaOd.value == "") {
alert( "Prosz wprowadzi warto od." );
form.cenaOd.focus();
return false ; }
if (form.cenaDo.value == "") {
alert( "Prosz wprowadzi warto do." );
form.cenaDo.focus();
return false ; }
return true ; }
W pliku Ankieta.htm do znacznika form dodaj waciwo
onsubmit="return sprawdz(this)" tak, aby znacznik wyglda jak
poniej
<form name="ankietaSklepu" onsubmit="return sprawdz(this)">
Zapisz oba pliki i otwrz plik Ankieta.htm w przegldarce. Sprawd, czy
moesz wysa formularz (wcisn przycisk Wylij) bez wypenienia pl
wymaganych.
5. Sprawd
poprawno
adresu e-mail
W pliku Walidacja.js poniej funkcji sprawdz dodaj funkcje adresEmail
sprawdzajc przy pomocy wyraenia regularnego poprawno
wpisanego adresu E-mail wpisz:
function adresEmail( adres ) {
var regex =
/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
return regex.test(adres); }
W funkcji sprawdz powyej linii return true wpisz:
if (!adresEmail(form.email.value)) {
alert( "Prosz wprowadzi poprawny adres email \n w formacie:
nazwa@serwer.domena." );
form.email.focus();
return false ; }
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-13
Zapisz plik Walidacja.js i otwrz plik Ankieta.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij
wypeniajc pole E-mail w zym formacie.
6. Sprawd
poprawno kodu
pocztowego
W pliku Walidacja.js poniej funkcji sprawdz dodaj funkcje
kodPocztowy
function kodPocztowy( kod ) {
var regex = /^[0-9]{2}\-[0-9]{3}$/;
return regex.test(kod); }
W funkcji sprawdz powyej linii return true wpisz:
if (!kodPocztowy(form.kodPocztowy.value)) {
alert( "Prosz wprowadzi poprawny kod pocztowy." );
form.kodPocztowy.focus();
return false ; }
Zapisz plik Walidacja.js i otwrz plik Ankieta.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij
wypeniajc pole Kod pocztowy w zym formacie.
7. Sprawd
poprawno
wpisanej wartoci
w polu Wzrost
W pliku Walidacja.js poniej funkcji sprawdz dodaj funkcje
sprawdzWzrost. Dodatkowo dodaj funkcje pomocnicz liczbaCalkowita.
function liczbaCalkowita( liczba ) {
var regex = /^[\-]{0,1}[0-9]{1,8}$/;
return regex.test(liczba); }
function sprawdzWzrost( liczba ) {
if (!liczbaCalkowita(liczba)) { return false ;}
var wzrost=parseInt(liczba);
if((wzrost<40) || (wzrost>250)) {return false;}
return true; }
W funkcji sprawdz powyej linii return true wpisz:
if (!sprawdzWzrost(form.wzrost.value)) {
alert( "Prosz wprowadzi poprawny wzrost w cm. (zakres 40-
250cm)" );
form.wzrost.focus();
return false ; }
Zapisz plik Walidacja.js i otwrz plik Ankieta.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij
wypeniajc pole Wzrost w zym formacie.
8. Sprawd
poprawno
wpisanych
wartoci w polach
Od i Do
W pliku Walidacja.js poniej funkcji sprawdz dodaj funkcje
sprawdzOdDo przyjmujc dwa parametry cenaOd i cenaDo
function sprawdzOdDo( cenaOd, cenaDo) {
if (!liczbaCalkowita(cenaOd)) { return false ;}
if (!liczbaCalkowita(cenaDo)) { return false ;}
var zakres=parseInt(cenaDo)-parseInt(cenaOd);
if(zakres<0){return false;}
return true; }
W funkcji sprawdz powyej linii return true wpisz:
if (!sprawdzOdDo(form.cenaOd.value,form.cenaDo.value)) {
alert( "Prosz wprowadzi poprawny zakres cenowy" );
form.wzrost.focus();
return false ; }
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-14
Zapisz plik Walidacja.js i otwrz plik Ankieta.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij
wypeniajc pole od i do wartociami innymi ni liczba oraz umieszczajc
w polu od wiksz warto ni w polu do.
Problem 2 (czas realizacji 25 min)
Zblia si termin oddania projektu dla wanego klienta, gdy nagle okazuje si, e brakuje istotnego
elementu jakim jest formularz rejestracji nowego uytkownika na stronie. Formularz ma zawiera
jedynie trzy pola nazwa i dwa razy haso, jednak klient zayczy sobie nastpujc funkcjonalno
realizowan w przegldarce:
nazwa uytkownika ma mie co najmniej 5 znakw, nie wicej jednak jak 10 i moe zawiera
tylko litery
haso ma mie co najmniej 7 znakw i ma by wywietlana informacja o sile hasa.
Dodatkowo haso powinno posiada moliwo okrelenia poziomu jego zabezpieczenia podczas
tworzenia uytkownik ma by powiadamiany o sile hasa. Wszystkie informacje maj pojawia si
obok pola do wpisywania.
Zadanie Tok postpowania
1. Utwrz now
stron w Visual
Studio 2008
Express Edition
Otwrz Visual Studio 2008.
Z menu wybierz File -> New -> Web Site.
Z listy Visual Studio installed templates wybierz Empty Web Site.
Z listy Location wybierz File System, a w polu obok okrel lokalizacj dla
pliku w dowolnym miejscu na dysku.
Kliknij OK.
2. Dodaj do
projektu
utworzone przez
pracownika pliki
Wybierz Website->Add Existing Item a nastpnie wska plik
Rejestracja.htm.
Podobnie dodaj plik StyleRej.css.
Wybierz prawym przyciskiem myszy plik Rejestracja.htm i wybierz View
in Browser.
3. Umie na
formularzu pola
do ktrych bd
wpisywane
informacje o
bdach
Otwrz stron Rejestracja.htm za polem input o waciwoci
name="nazwa" umie nastpujcy znacznik:
<span id="zlaNazwa"></span>
Za polem input o waciwoci name="haslo" umie nastpujcy
znacznik:
<span id="opisHasla"></span>
Za polem input o waciwoci name="haslo2" umie nastpujcy
znacznik:
<span id="zgodneHasla"></span>
Zapisz zmiany.
4. Dodaj styl do
wywietlania
informacji o
bdach na
stronie
Do pliku StyleRej.css dodaj nastpujcy styl:
.wyroznienieCzerwone{
padding-left:10px;
color:Red;
font-weight:600; }
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-15
5. Sprawd liczb
znakw w nazwie
uytkownika i
hale
Wybierz Website->Add New Item a nastpnie w oknie Add New Item:
W obszarze Templates wybierz JScript File
W polu Name wpisz Rejestracja.js
Otwrz plik Rejestracja.htm i z okna Solution Explorer przecignij
dodany plik do rodka znacznika head na stronie.
W pliku Rejestracja.htm do znacznika form dodaj waciwo
onsubmit="return sprawdz(this)".
Zapisz zmiany.
W pliku Rejestracja.js dodaj nastpujcy kod:
function sprawdz (form){
var user=form.nazwa.value;
if ((user.length<5) || (user.length>10)) {
document.getElementById("zlaNazwa").innerHTML = "Nazwa
uytkownika moe mie od 5 do 10 liter";
document.getElementById("zlaNazwa").className =
"wyroznienieCzerwone";
form.nazwa.focus;
return false; }
else { document.getElementById("zlaNazwa").innerHTML = "";}
if (form.haslo.value.length < 7) {
document.getElementById("opisHasla").innerHTML = "Prosz
wprowadzi haso co najmniej 7 literowe.";
document.getElementById("opisHasla").className =
"wyroznienieCzerwone";
form.haslo.focus();
return false ; }
return true; }
Zapisz plik Rejestracja.js i otwrz plik Rejestracja.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij. Wpisz
nazw uytkownika i haso zawierajce odpowiedni liczb znakw.
6. Sprawd znaki
w nazwie
uytkownika
W pliku Rejestracja.js w funkcji sprawdz powyej linii return true
dodaj nastpujcy kod:
if (!((user.match(/[a-z]/)) || (user.match(/[A-Z]/)))) {
document.getElementById("zlaNazwa").innerHTML = "Nazwa
uytkownika zawiera tylko litery";
document.getElementById("zlaNazwa").className =
"wyroznienieCzerwone";
form.nazwa.focus;
return false; }
else { document.getElementById("zlaNazwa").innerHTML = ""; }
Zapisz plik Rejestracja.js i otwrz plik Rejestracja.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij. Wpisz
nazw uytkownika zawierajce inne znaki ni mae czy due litery.
7. Sprawd
zgodno
wpisanych hase
W pliku Rejestracja.js w funkcji sprawdz powyej linii return true
dodaj nastpujcy kod:
if (form.haslo.value!=form.haslo2.value) {
document.getElementById("zgodneHasla").innerHTML = "Hasa nie s
zgodne!";
document.getElementById("zgodneHasla").className =
"wyroznienieCzerwone";
return false; }
Zapisz plik Rejestracja.js i otwrz plik Rejestracja.htm w przegldarce.
Sprawd, czy moesz wysa formularz (wcisn przycisk Wylij. Wpisz
rne hasa w polach.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-16
8. Dodaj
moliwo
wywietlania
informacji o sile
hasa
W pliku Rejestracja.htm do pola Input o waciwoci name="haslo"
dodaj waciwo onkeyup="silaHasla(this.value)"
Do pliku Rejestracja.js dodaj nastpujca funkcj:
function silaHasla( haslo ) {
var punkty=0;
if (haslo.length >=7) punkty++;
if ((haslo.match(/[a-z]/)) && (haslo.match(/[A-Z]/))) punkty++;
if (haslo.match(/\d+/)) punkty++;
if (haslo.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) punkty++;
if (punkty<1) {
document.getElementById("opisHasla").innerHTML = "Bardzo
sabe";
document.getElementById("opisHasla").className =
"opisHaslaBardzoSlabe"}
else if (punkty<2) {
document.getElementById("opisHasla").innerHTML = "Sabe";
document.getElementById("opisHasla").className =
"opisHaslaSlabe"}
else if (punkty<3){
document.getElementById("opisHasla").innerHTML = "rednie";
document.getElementById("opisHasla").className =
"opisHaslaSrednie"}
else {
document.getElementById("opisHasla").innerHTML = "Silne";
document.getElementById("opisHasla").className =
"opisHaslaSilne"} }
Do pliku StyleRej.css dodaj nastpujce stylu umoliwiajce
wywietlenie w rnych kolorach informacji o sile hasa:
.opisHaslaBardzoSlabe
{ padding-left:10px;
color:Red; }
.opisHaslaSlabe
{ padding-left:10px;
color:Maroon; }
.opisHaslaSrednie
{ padding-left:10px;
color:Yellow; }
.opisHaslaSilne
{ padding-left:10px;
color:Green; }
Zapisz plik Rejestracja.js i otwrz plik Rejestracja.htm w przegldarce.
Sprawd, jak zachowuje si strona przy wpisywaniu hasa. Wymyl
haso, ktre zostanie ocenione jako silne.
Piotr Bubacz Modu 3
ITA-103 Aplikacje Internetowe Podstawy JavaScript
Strona 3-17
Laboratorium rozszerzone
Twoim zadaniem jest przygotowanie i walidacja ankiety dla agencji modelek i modeli Modelinki.
Strona ankiety musi umoliwi pobranie od kadego chtnego do pracy w charakterze modela
nastpujcych informacji:
imi
nazwisko
adres zamieszkania
telefon
e-mail
wiek
wzrost
waga
kolor wosw
kolor oczu
rozmiar ubrania
numer butw
dowiadczenie (wybierane od 1 do 5)
pe
Po wybraniu pci uytkownikowi zostaje wywietlony albo formularz dla kobiet albo dla mczyzn,
ktry umoliwia pobranie nastpujcych informacji:
w przypadku kobiet:
obwd biustu
wielko miseczki
talia
biodra
dugo nogi
w przypadku mczyzn:
klatka
pas
dugo nogi
Poniewa wszystkie pola s wymagane opracuje schemat sprawdzania pola w odpowiedniej funkcji.
Sprawdzenie poprawnoci wpisanych wartoci ma odbywa si dla pl:
E-mail (e-mail w formacie nazwa@serwer.domena)
Kod pocztowy (kod odpowiedni dla naszego kraju)
Wzrost liczba w zakresie od 40 do 250 cm,
Waga liczba w zakresie od 20 do 80 kg
Wszystkie operacje sprawdzenia poprawnoci i wywietlania elementw dla kobiet i mczyzn maja
by realizowane po stronie klienta w przegldarce!
ITA- 103 Aplikacje internetowe
Piotr Bubacz
Modu 4
Wersja 1
Wprowadzenie do ASP.NET
Spis treci
Wprowadzenie do ASP.NET ................................................................................................................. 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Przykadowe rozwizanie ........................................................................................................... 10
Porady praktyczne ..................................................................................................................... 14
Uwagi dla studenta .................................................................................................................... 15
Dodatkowe rda informacji..................................................................................................... 15
Laboratorium podstawowe ................................................................................................................ 17
Problem 1 (czas realizacji 15 min) .............................................................................................. 17
Problem 2 (czas realizacji 30 min) .............................................................................................. 18
Laboratorium rozszerzone ................................................................................................................. 22
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce podstaw tworzenia aplikacji
internetowych w Visual Studio 2008. Nauczysz si dodawa strony
internetowe do aplikacji oraz umieszcza na nich kontrolki dostpne w
ASP.NET. Poznasz zasady programowego odwoywania si do kontrolek
oraz interakcji z uytkownikiem strony.
Cel moduu
Celem moduu jest poznanie zasad pracy z aplikacjami internetowymi w
ASP.NET, dodawania i programowego odwoywania si do kontrolek oraz
dodawania i przesyania informacji midzy stronami.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
potrafi tworzy aplikacje internetowe w ASP.NET w Visual Studio
2008
potrafi dodawa kontrolki do strony internetowej
potrafi odwoywa si programowo do kontrolek na stronie
rozumia zasad przesyania informacji midzy stronami
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna podstawy jzyka XHTML
zna podstawy CSS
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w moduach Podstawy HTML i Kaskadowe Arkusze Stylw CSS.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-3
Przygotowanie teoretyczne
Przykadowy problem
Podstawowym ograniczeniem jzyka HTML jest jego statyczno. Nie ma moliwoci w tym jzyku
dynamicznej zmiany wywietlanej zawartoci ani reagowania na dziaania uytkownika. Statyczne
strony s bardzo dobre jako wizytwki, ale dzisiaj ciko sobie wyobrazi stron internetow bez
elementw dynamicznych.
Firmowe strony internetowe musz przynajmniej umoliwia wyszukiwanie czy przegldanie
produktw. Dzisiaj firmy coraz czciej zwracaj si w kierunku Web 2.0, udostpniajc
uytkownikom swoich serwisw moliwo samodzielnego generowania treci. Takie narzdzia jak
blog staj si podstaw komunikacji z klientami ju nie tylko w duych korporacjach, ale i w maych
firmach. Firmy dostrzegaj moliwoci Wikipedii i udostpniaj moliwo rozszerzania swojej
podstawowej wiedzy o produktach. Te wszystkie nowe elementy pojawiajce si na stronach
wymagaj dynamicznych technologii tworzenia zawartoci stron.
Podstawy teoretyczne
ASP.NET jest zbiorem technologii programistycznych zbudowanych na platformie .NET, uywanych
do budowania dynamicznych aplikacji internetowych. W ASP.NET programista ma do dyspozycji
wiele gotowych komponentw i klas zwizanych z najczciej wykonywanymi zadaniami.
Aplikacja ASP.NET
Na aplikacj ASP.NET mog skada si nastpujce elementy:
formularze internetowe (ang. Web Forms) pliki z rozszerzeniem .aspx
usugi Web (ang. Web Services) pliki z rozszerzeniem .asmx
pliki logiki aplikacji pliki z rozszerzeniem .vb lub .cs
globalna klasa aplikacji plik Global.asax
pliki konfiguracyjne pliki Web.config
inne pliki np. strony HTML, arkusze CSS itp.
Formularz internetowy
Formularze internetowe reprezentuj dynamicznie budowane strony internetowe. Skadaj si ze
znacznikw ASP.NET oraz logiki i s przesyane do uytkownika najczciej w postaci
standardowych dokumentw XHTML. Aplikacja ASP.NET zawiera jeden lub wicej formularzy. Caa
logika jest wykonywana po stronie serwera, chocia moliwe jest wykonywanie czci kodu w
postaci skryptw po stronie uytkownika.
Pliki konfiguracyjne
Najwaniejsze pliki zawierajce ustawienia konfiguracyjne aplikacji ASP.NET to:
Machine.config przechowywane w nim ustawienia dotycz wszystkich aplikacji na
komputerze lokalnym
Web.config przechowywane w nim ustawienia dotycz tylko wybranej aplikacji
Pliki konfiguracyjne mog by modyfikowane w czasie dziaania aplikacji, lecz wie si to
z koniecznoci jej ponownego uruchomienia.
Zintegrowane rodowisko programistyczne Visual Studio 2008
Zintegrowane rodowisko programistyczne umoliwia wytwarzanie i weryfikacj aplikacji oraz
przygotowywanie ich do wdroenia. Charakteryzuje si tym, e udostpnia funkcjonalnoci
obejmujce edycj i kompilowanie kodu rdowego, tworzenie zasobw programu, zarzdzanie
bazami danych itp.
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-4
Visual Studio 2008 IDE skada si z wielu okien o rnym przeznaczeniu (Rys. 2). W menu View
mona okreli, ktre z nich maj by widoczne dla uytkownika.
Rys. 2 Okno Visual Studio 2008
1. Okno dokumentu centralne okno aplikacji. W trybie projektowania (Design) moliwe jest
graficzne projektowanie stron w trybie WYSIWYG (ang. What You See Is What You Get). W
trybie podgldu kodu rdowego (Source) w oknie wywietlany jest kod strony. Tryb
dzielony (Split) umoliwia jednoczesne wywietlanie strony w obu widokach.
2. Toolbox zbir elementw, ktre mona umieci na projektowanej stronie,
pogrupowanych w kategorie.
3. Solution Explorer lista plikw i folderw wchodzcych w skad projektu. Wywietla
hierarchi plikw. Z tego okna mona przenosi i modyfikowa pliki, w szczeglnoci moliwe
jest:
przenoszenia plikw poprzez przeciganie ich mysz
wywietlenie zawartoci pliku w oknie dokumentw po dwukrotnym klikniciu go
wywoanie menu kontekstowego skojarzonego z elementem poprzez kliknicie go
prawym przyciskiem myszy
4. Properties lista dostpnych waciwoci oraz biece ustawienia aktualnie zaznaczonego
obiektu.
5. Error List informacje o bdach, ktre wystpiy w projekcie.
6. Server Explorer interakcja z narzdziami dostpnymi na serwerze.
Aplikacje internetowe w Visual Studio
Tworzenie aplikacji
Aby utworzy now aplikacj w Visual Studio musimy wybra z menu File -> New -> Web Site. Na
ekranie pojawi si okno New Web Site (Rys. 3), w ktrym moemy okreli podstawowe parametry
tworzonej witryny.
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-5
Rys. 3 Okno New Web Site
Elementy wywietlane w oknie New Web Site:
1. Zainstalowane szablony aplikacji lista, w ktrej moemy okreli, jakiego typu aplikacj
chcemy utworzy. Najczciej wybieramy szablon ASP.NET Web Site.
2. Docelowa wersja .NET Framework docelowa wersja rodowiska, pod ktr ma by
uruchamiana aplikacja.
3. Lokalizacja witryny umiejscowienie plikw aplikacji.
4. cieka lub adres serwera dokadne pooenie plikw aplikacji na lokalnym dysku twardym
lub na serwerze, zalenie od wybranej lokalizacji.
5. Jzyk programowania jzyka programowania, w ktrym tworzona bdzie aplikacja.
6. Przycisk Browse przycisk umoliwiajcy okrelenie dokadnego pooenia plikw aplikacji.
Uruchamianie aplikacji
Aby uruchomi aplikacj, wybieramy z menu Debug -> Start Debugging lub naciskamy klawisz F5.
Po wybraniu tej opcji przy pierwszym uruchomieniu aplikacji pojawi si okno z informacj o
koniecznoci zezwolenia na debugowanie. W tym przypadku naley wcisn OK. W tym trybie nie
bdzie moliwe dynamiczne poprawianie strony, ale bdzie moliwe debugowanie aplikacji.
Moemy w dowolnym miejscu w kodzie aplikacji zatrzyma wykonywanie programu, podejrze
zmienne, sprawdzi krok po kroku wykonywanie poszczeglnych wierszy kodu itp.
Aplikacj mona rwnie uruchomi w trybie bez moliwoci debugowania, wybierajc z menu
gwnego Debug -> Start Without debugging lub wciskajc Ctrl+F5. Zalet tego trybu jest
moliwo wprowadzania zmian w kodzie, ktre widoczne s po odwieeniu strony w
przegldarce.
Strona internetowa
Struktura strony
Stron internetow (formularz internetowy) definiuje si w pliku z rozszerzeniem .aspx. Struktura
takiego pliku skada si z trzech sekcji: dyrektyw strony, kodu aplikacji i ukadu strony.
Dyrektywy
Dyrektywy umoliwiaj definiowanie podstawowych ustawie. Maj one nastpujc skadni:
<%@ dyrektywa atrybut="warto" [, atrybut="warto"[,...n] ] %>
Najwaniejsz i zarazem jedyn obowizkow dyrektyw jest umieszczona na pocztku kadej
strony internetowej ASP.NET dyrektywa @Page.
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-6
Dyrektywa @Page okrela atrybuty uywane przez parser i kompilator. Pozwala m.in. okreli
parametry protokou HTTP, przestrzenie nazw, wykorzystywany jzyk programowania.
Sekcja kodu aplikacji
Sekcja kodu aplikacji zawiera procedury obsugi zdarze wraz dodatkowymi procedurami
pomocniczymi. Kod aplikacji moe zosta osadzony wewntrz kodu znacznikowego (Code Inline) lub
umieszczaniu kodu w osobnym pliku (Code Behind) (Rys. 4).
<%@ Page
<script runat="server>
//logika aplikacji
</script>
<html>
</html>
plik.aspx
Inline
Logika aplikacji w pliku
plik.aspx.cs
<html>
</html>
plik.aspx
Codebehind
Rys. 4 Strona plik.aspx jako Code Inline i Code Behind
W przypadku Code Inline kod aplikacji jest umieszczany w sekcji nagwka strony (<head>)
wewntrz znacznika <script> z atrybutem runat="Server", ktry informuje kompilator, e
zawarto tego znacznika bdzie przetwarzana na serwerze przed wygenerowaniem kodu HTML dla
klienta. Strona moe posiada znacznik <script> bez atrybutu runat, zawierajcy skrypt
wykonywany po stronie klienta.
Jeli kod aplikacji ma zosta umieszczony w osobnym pliku (Code Behind), to w dyrektywie @Page
s zdefiniowane atrybuty CodeFile (nazwa pliku) oraz Inherits (nazwa klasy czciowej
zawierajcej kod aplikacji).
Kod aplikacji jest zawsze kompilowany przed wykonaniem. Moe on by take prekompilowany i
doczony do aplikacji w postaci binarnej.
Ukad strony
Ukad strony jest opisany za pomoc kodu znacznikowego, ktry zawiera kontrolki serwerowe, cigi
tekstu oraz znaczniki jzyka HTML. Wygld strony moe by zdefiniowany na stronie poprzez
ustawienie waciwoci indywidualnych elementw lub przy pomocy arkuszy styli.
Dodawanie stron internetowych do aplikacji
Do Projektu witryny mona doda now lub istniejc stron internetow. Dodanie nowej strony
moliwe jest:
po wybraniu z menu gwnego Website -> Add New item
po wciniciu kombinacji klawiszy Ctrl+Shift+A
po wybraniu Add New Item z menu kontekstowego wywoywanego po klikniciu prawym
przyciskiem myszy nazwy projektu w oknie Solution Explorer
Po wybraniu jednej z powyszych opcji zostanie wywietlone okno dialogowe (Rys. 5).
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-7
Rys. 5 Okno dialogowe Add New Item
Okno dialogowe dodawania nowego obiektu do aplikacji zawierajce nastpujce elementy:
1. Templates opcja to umoliwia wybranie szablonu dodawanego pliku.
2. Name pole tekstowe umoliwiajce okrelenie nazwy pliku.
3. Language lista rozwijana umoliwiajca wybr jednego z jzykw programowania stron
internetowych.
4. Place code in separate file pole wyboru okrelajce, czy kod aplikacji ma zosta
umieszczony w osobnym pliku (pole zaznaczone), czy te w pliku .aspx w znaczniku
<script> (pole niezaznaczone).
5. Select master page pole wyboru okrelajce, czy strona internetowa bazuje na stronie
wzorcowej (pole zaznaczone). Jeli opcja ta zostaa zaznaczona, to po wciniciu przycisku OK
uytkownik zostanie poproszony o wskazanie strony wzorcowej. Wicej informacji na temat
stron wzorcowych zostanie przedstawionych pniej.
Kontrolki na stronie
Dodawanie kontrolek do strony
Kontrolki moemy doda do strony w dowolnym widoku: Design, Split lub Source. W oknie Toolbox
naley wybra interesujcy nas komponent, a nastpnie, przecign go na formularz lub
dwukrotnie klikn. Kontrolka jest umieszczana zgodnie z przepywem elementw na stronie
internetowej. Aby umieci j w dowolnym miejscu, musimy wykorzysta pozycjonowanie CSS.
Okrelanie waciwoci kontrolki
Kada kontrolka posiada zbir waciwoci, ktre moemy okreli w oknie Properites (Rys. 6).
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-8
Rys. 6 Przykad okna Properties dla kontrolki Label
Najczciej wykorzystuje si waciwo ID, okrelajc nazw kontrolki oraz Text, pozwalajc
okreli wywietlany w niej tekst.
Obsuga zdarze
Zdarzenia to pewne akcje wykonywane w odpowiedzi na interakcj uytkownika z kontrolkami na
stronie. Mog nastpi, gdy naciska on przycisk, wybiera rekord w licie rekordw lub w inny
sposb wchodzi w interakcj z interfejsem uytkownika. Zdarzenia mog by rwnie generowane
przez aplikacj, gdy rozpoczyna lub koczy jakie zadanie (np. generowanie wynikowego
dokumentu HTML).
Moemy programowo kontrolowa dziaanie aplikacji za pomoc metody obsugi zdarzenia. Jest to
funkcja napisana w wybranym jzyku programowania, wywoywana w momencie, gdy nastpi
powizane z ni zdarzenie.
Najczciej wykorzystywanym zdarzeniem jest zdarzenie Load klasy Page. Jest ono wywoywane w
momencie, gdy po stronie serwera aplikacja zainicjalizuje wszystkie obiekty kontrolek. Innym
czsto wykorzystywanym zdarzeniem jest zdarzenie Click klasy Button, pozwalajce okreli, co
ma si sta po wciniciu przycisku przez uytkownika.
Wiele klas udostpnia wicej ni jedno zdarzenie, np. klasa Button oprcz wspomnianego ju
zdarzenia Click udostpnia rwnie zdarzenie Command. W takim wypadku jedno z nich jest
okrelane jako domylne. Dla przykadu zdarzenie Click jest domylnym zdarzeniem klasy
Button.
Z poziomu Visual Studio dostp do domylnego zdarzenia uzyskujemy po dwukrotnym klikniciu
wybranej kontrolki w trybie projektowania. Wygenerowana zostanie wwczas pusta metoda do
jego obsugi. Dostp do wszystkich zdarze jest moliwy po wybraniu kontrolki, a nastpnie
klikniciu w oknie Properties przycisku Events (oznaczone na Rys. 7 przez czerwone koo). By
wygenerowa metod obsugi dla ktrego z nich, wystarczy dwukrotnie klikn jego nazw.
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-9
Rys. 7 Okno Properties z list zdarze
Programowe odwoywanie do kontrolek
Moemy programowo zmienia waciwoci kontrolek, odwoujc si do nich w kodzie po ich
nazwie, okrelonej przy pomocy waciwoci ID (Rys. 8). Visual Studio podpowiada, jakie
waciwoci (np. Text) kontrolki moemy zmieni lub jakie metody moemy na niej wywoa (np.
ToString).
Rys. 8 Waciwoci i metody kontrolki Label
Przesyanie informacji midzy stronami
Metoda przesyanie danych w parametrach adresu URL
Przesyane dane s widoczne w adresie docelowym dokumentu. Adres dokumentu jest oddzielany
od parametrw znakiem zapytania, a parametry oddzielone s od siebie znakiem ampersand (&).
Gwn wad tej metody jest ograniczenie iloci wysyanych danych do maksymalnej dugoci
paska adresu przegldarki klienta. Dodatkowo problem moe sprawia przesyanie danych
binarnych.
Wysyanie informacji t metod polega na przygotowaniu odpowiednio sformatowanego cigu
znakw, ktry bdzie zawiera lokalizacj i nazw pliku, do ktrego naley wysa zapytanie oraz
odpowiednio dodane nazwy parametrw wraz z ich wartociami po znaku =.
Oglna posta adresu URL z doczonymi parametrami dania przesyanego metod GET:
strona.aspx?parametr=warto[¶metr=warto[&...n] ]
Na przykad jeli chcemy wysa zmienn imie i nazwisko do strony Info.aspx, to dane te mona
przesa w adresie w nastpujcy sposb:
Info.aspx?imie=wartosc&nazwisko=wartosc
Przygotowany cig znakw naley wysa przy pomocy metody Response.Redirect(url), gdzie url
jest cigiem znakw, np.:
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-10
Response.Redirect("Info.aspx?imie=" + imieTextBox.Text + "&nazwisko=" +
nazwiskoTextBox.Text);
Po wykonaniu powyszego kodu przegldarka zostanie przekierowana do strony Info.aspx, a w
pasku adresu moe pojawi si przykadowo nastpujcy cig znakw:
http://.../Info.asp?imie=Jan&Nazwisko=Kowalski
W celu wykorzystania tych informacji na stronie docelowej naley uy waciwoci QueryString
obiektu Request, np.
Request.QueryString["imie"]
Metoda przesyania zawartoci jednego formularza do drugiego
Metoda przesyania zawartoci jednego formularza do drugiego umoliwia przesyanie niemal
nieograniczonych iloci danych, dlatego jest stosowana w wikszoci formularzy internetowych.
Dodatkow jej zalet jest to, e przesyane informacje nie pokazuj si w pasku adresu
przegldarki. Ta waciwo czyni j najlepszym rozwizaniem przy przesyaniu poufnych danych z
uwzgldnieniem takich mechanizmw, jak szyfrowanie poczenia.
Przykad kodu po stronie wysyajcej:
<form id="form1" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Wylij"
PostBackUrl="~/Default2.aspx" />
</form>
Przykad kodu po stronie odbierajcej:
TextBox txt = (TextBox) PreviousPage.FindControl("TextBox1");
dane= txt.Text;
Poczenie obu metod
Po stronie wysyajcej:
protected void Button1_Click(object sender, EventArgs e)
{ Server.Transfer("Default2.aspx?imie=Piotr"); }
Po stronie odbierajacej:
protected void Page_Load(object sender, EventArgs e) {
daneGET= Request.QueryString["imie"];
danePOST1 = Request.Form["TextBox1"].ToString();
TextBox txt = (TextBox) PreviousPage.FindControl("TextBox2");
danePOST2 = txt.Text; }
Podsumowanie
W tym rozdziale przedstawione zostay podstawowe informacje dotyczce aplikacji ASP.NET i pracy
w rodowisku Visual Studio. Dowiedziae si, jak tworzy aplikacje ASP.NET oraz jak dodawa
kontrolki do formularzy i nowe strony do aplikacji. Zostay rwnie omwione mechanizmy
przesyania informacji midzy stronami.
Przykadowe rozwizanie
Utworzenie aplikacji internetowej
Aplikacje internetowe w Visual Studio 2008 nauczymy si tworzy na przykadzie prostej aplikacji,
ktrej zadaniem bdzie wywietlenie komunikatu Witaj wiecie.
Aby utworzy now aplikacj internetow w Visual Studio 2008, wybieramy z menu File -> New
Web Site. Otworzy si okno New Web Site. Z listy Visual Studio installed templates wybieramy
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-11
ASP.NET Web Site. Pliki aplikacji moemy przechowywa w systemie plikw, na lokalnym serwerze
WWW lub pod zdaln lokalizacj. Zdecydujemy si na pierwsze rozwizanie, w tym celu z listy
Location wybieramy File System, a w polu obok okrelamy pooenie plikw aplikacji w dowolnym
miejscu na dysku, nazywajc ostatni katalog MojaPierwszaStrona. Projekt chcemy przygotowa w
jzyku Visual C#, wic wybieramy go z listy Language. Po klikniciu OK we wskazanym katalogu
zostan utworzone pliki aplikacji.
W oknie Solution Explorer moemy zobaczy nowo utworzony projekt. Skadaj si na niego:
plik Default.aspx pusta strona ASP.NET
plik Web.config plik przechowujcy ustawienia konfiguracyjne
katalog App_Data specjalny katalog, w ktrym umieszczane s dane aplikacji
Rys. 9 Pocztkowa zawarto aplikacji
Plik Default.aspx standardowo otwiera si w gwnym oknie Visual Studio w widoku Source. By
mc edytowa stron w trybie WYSIWYG, moemy przeczy si na widok Design. Zrbmy tak,
nastpnie kliknijmy obszar strony i wpiszmy Witaj wiecie!.
Aby zobaczy wynik naszej pracy w przegldarce internetowej, musimy uruchomi aplikacj. W tym
celu wybieramy z menu Debug -> Start Debugging. Przy pierwszym uruchomieniu aplikacji pojawi
si okno z informacj, e moliwo debugowania nie jest wczona (Rys. 10). Jeli nie zmienimy
niczego i klikniemy OK, Visual Studio samodzielnie zmodyfikuje plik Web.config, umoliwiajc nam
posugiwanie si debuggerem. Na czas projektowania aplikacji warto wczy t opcj.
Rys. 10 Okno Debugging Not Enabled
Aplikacj mona rwnie uruchomi w trybie bez moliwoci debugowania, wybierajc z menu
gwnego Debug -> Start Without debugging.
Po uruchomieniu aplikacji powinna otworzy si przegldarka internetowa, a w niej strona
Default.aspx. Adres strony moe wyglda nastpujco:
http://localhost:5110/MojaPierwszaStrona/Default.aspx
Poszczeglne elementy oznaczaj:
http://localhost aplikacja jest uruchamiana na serwerze lokalnym
5110 numer portu, na ktrym zosta uruchomiony serwer
MojaPierwszaStrona nazwa aplikacji
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-12
Default.aspx strona internetowa
Posugiwanie si kontrolkami
Podstawow umiejtnoci, jak powinnimy posiada tworzc aplikacje ASP.NET, jest umiejtno
posugiwania si kontrolkami. Pracy z nimi nauczymy si na przykadzie prostej aplikacji,
pobierajcej od uytkownika imi oraz pe i wywietlajcej te informacje na stronie.
Utwrzmy now aplikacj, a nastpnie otwrzmy plik Default.aspx w trybie Design i w obszarze
strony wpiszmy Podaj imi:. Obok napisu powinnimy doda pole tekstowe, w ktre uytkownik
bdzie mg wpisa swoje imi. Funkcj t spenia kontrolka TextBox. Znajdziemy j w oknie
Toolbox, w kategorii Standard by doda j do strony, moemy przecign j na obszar
projektowania lub klikn j dwukrotnie. Warto zauway, e nie moemy umieci kontrolki w
dowolnym miejscu na stronie, a jedynie obok napisu. Jest to zwizane z ukadem elementw na
stronie internetowej. Jeli chcemy swobodnie rozmieszcza kontrolki na stronie, powinnimy uy
CSS. Warto pamita, aby zawsze nadawa kontrolkom znaczce nazwy. W tym celu w oknie
Properties zmienimy waciwo ID kontrolki TextBox z TextBox1 na imieTextBox.
Kursor w widoku projektowania powinien aktualnie znajdowa si za polem tekstowym. Naciskajc
Enter przeniesiemy go do nowej linii. Zobaczmy, jak wyglda kod strony, przeczajc si na widok
Source (moemy rwnie przej do widoku Split i obserwowa jednoczenie widoki Design
i Source). Warto zauway, e nacinicie klawisza ENTER spowodowao dodanie znacznika
<br />.
Przeczmy si z powrotem na widok Design i w drugiej linii wpiszmy Podaj pe:. Nastpnie
dodajmy kontrolk DropDownList reprezentujc list rozwijan i nadajmy jej nazw
plecDropDownList. Moemy wypeni j dopuszczalnymi wartociami na dwa sposoby:
wykorzystujc narzdzia Visual Studio lub rcznie dodajc kolejne pozycje w kodzie strony.
Zdecydujemy si na pierwsze rozwizanie. Jeli zaznaczymy kontrolk w widoku Design, po jej
prawej stronie powinnimy zauway ikon , tzw. Smart Tag. Smart Tag umoliwia szybki dostp
do najczciej uywanych funkcji zwizanych z kontrolk. Kliknijmy go i wybierzmy Edit Items.
Otworzy si okno ListItem Collection Editor (Rys. 11), w ktrym moemy doda elementy do listy.
By doda pierwszy element, kliknijmy przycisk Add.
Rys. 11 Okno ListItem Collection Editor
Na licie waciwoci po prawej stronie odnajdmy waciwo Text, ktra okrela tekst
wywietlany dla elementu i przypiszmy jej warto Kobieta. Nastpnie w polu Value,
okrelajcym jego unikatow warto, wpiszmy K. Dodajmy kolejny element do listy, lecz tym
razem w polach Text i Value wpiszmy odpowiednio: Mczyzna i M. Warto zwrci uwag, e
standardowo pole Value jest wypeniane tak sam wartoci, jak pole Text, lecz w naszym
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-13
przypadku ze wzgldu na problemy, ktre mog wystpowa z polskimi znakami diakrytycznymi,
lepiej bdzie zastosowa skrty.
Po wypenieniu listy dodajemy na stronie kontrolk Button o nazwie pokazButton i w nastpnej
linii kontrolk Label o nazwie wyswietlLabel. Chcemy, by po klikniciu przycisku w etykiecie
wywietlay si informacje o uytkowniku. Aby wygenerowa metod obsugi kliknicia przycisku,
wystarczy klikn go dwukrotnie. W efekcie w pliku Default.aspx.cs powinna pojawi si pusta
metoda pokazButton_Click.
Komunikat dla uytkownika przygotujemy na podstawie wartoci wybranych w poszczeglnych
kontrolkach, a nastpnie ustawimy go jako tre etykiety. Wykorzystamy do tego nastpujcy kod,
ktry umiecimy wewntrz metody pokazButton_Click:
string wyswietl = "Witaj " + imieTextBox + "!<br />";
if (plecDropDownList.SelectedValue == "K")
wyswietl += "Jeste kobiet";
else if (plecDropDownList.SelectedValue == "M")
wyswietl += "Jeste mczyzn";
wyswietlLabel.Text = wyswietl;
Przesyanie informacji midzy stronami
By zaprezentowa moliwo przesyania informacji midzy stronami, do przygotowanej
poprzednio aplikacji dodamy moliwo przekazywania wartoci wpisanej w polu tekstowym przy
pomocy metody GET, za wartoci wybranej z listy przy pomocy metody POST.
Zaczniemy od dodania do naszej strony jeszcze jednej kontrolki Button o nazwie wyslijButton
i etykiecie Wylij. W metodzie obsugi zdarzenia kliknicia dodajmy nastpujcy kod:
Server.Transfer("Ankieta.aspx?imie=" + imieTextBox.Text);
Spowoduje on przekierowanie po stronie serwera do strony Ankieta.aspx z parametrem imie,
przechowujcym zawarto kontrolki imieTextBox.
Dodajmy now stron do aplikacji. W tym celu moemy wybra z menu Website -> Add Add New
Item lub klikn prawym przyciskiem myszy w oknie Solution Explorer i z menu kontekstowego
wybra Add New Item. Pojawi si okno Add New Item. Na licie zainstalowanych szablonw
wybieramy Web Form, w polu Name wpisujemy Ankieta.aspx, za w polu Language wybieramy
Visual C#. Pozostawiamy zaznaczone tylko jedno pole wyboru, Place code in separate file, a
nastpnie klikamy Add.
Do nowej strony dodajemy kontrolk Label o nazwie wyswietlLabel, a nastpnie w widoku
podgldu strony klikamy dwukrotnie obszar formularza. Visual Studio otworzy edytor kodu strony i
umieci kursor w metodzie Page_Load. Dodamy w niej kod pobierajcy warto przekazanego w
adresie parametru imie:
string wyswietl = "Witaj " + Request.QueryString["imie"] + "<br />";
a take kod pobierajcy dane z poprzedniej strony:
DropDownList ddl =
(DropDownList)PreviousPage.FindControl("plecDropDownList");
Na podstawie wybranego element w licie rozwijanej do treci komunikatu dodamy dodatkowe
informacje:
if (ddl.SelectedValue == "K")
{ wyswietl += "Jeste kobiet."; }
if (ddl.SelectedValue == "M")
{ wyswietl += "Jeste mczyzn."; }
Na kocu przypisz zawarto zmiennej wyswietl do wasnoci Text kontrolki Label:
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-14
wyswietlLabel.Text = wyswietl;
Porady praktyczne
Praca z Visual Studio
Jeli omykowo zamkne ktre z okien, moesz otworzy je ponownie korzystajc z menu
View.
Moesz przeciga mysz elementy z okna Solution Explorer do okna gwnego, uzyskujc
rne efekty. Przykadowo po przecigniciu obrazka Visual Studio automatycznie wygeneruje
znacznik <img>, za przy przenoszeniu arkusza stylw CSS w kodzie strony pojawi si znacznik
<link>.
By sprawnie pracowa w rodowisku Visual Studio, powiniene nauczy si najwaniejszych
skrtw klawiszowych. Niektre z nich s podane w tym module, za pen list znajdziesz w
plikach pomocy. Pamitaj te, e kady skrt moesz dostosowa, wybierajc z menu gwnego
Tools -> Customize -> Keyboard.
Tworzenie aplikacji
Jeli nie wykorzystujesz zaawansowanych funkcji serwera IIS, moesz umieci pliki aplikacji w
dowolnym miejscu w systemie plikw i testowa j wykorzystujc zintegrowany serwer WWW
dostarczany razem z Visual Studio. Opcja ta jest szczeglnie przydatna, gdy nie posiadasz
uprawnie administracyjnych do serwera IIS.
Jeli testowae swoj aplikacj jedynie pod zintegrowanym serwerem WWW, przed
uruchomieniem jej w rodowisku produkcyjnym koniecznie przetestuj j na serwerze IIS.
Istniej pewne subtelne rnice w zachowaniu tych dwch serwerw, m.in. w zakresie obsugi
statycznych plikw aplikacji, takich jak dokumenty HTML, arkusze stylw CSS czy pliki graficzne.
Tworzc now aplikacj Web w Visual Studio 2008 masz moliwo wyboru wersji
.NET Framework. Pamitaj, e musi ona by zainstalowana nie tylko na komputerze, na ktrym
tworzysz i testujesz aplikacj, lecz rwnie na serwerze, na ktrym zamierzasz docelowo j
umieci. Jeli zdecydujesz si utworzy aplikacj dla .NET Framework 2.0, musisz liczy si
z tym, e udogodnienia wprowadzone w wersji 3.5, m.in. zintegrowana obsuga Ajax, nie bd
dostpne.
Gdy uruchamiasz aplikacj bez debugowania, moesz z poziomu Visual Studio wprowadza
zmiany w kodzie aplikacji, ktre bd widoczne po odwieeniu strony w przegldarce.
Przed umieszczeniem aplikacji w rodowisku produkcyjnym upewnij si, e moliwo
debugowania jest wyczona w pliku konfiguracyjnym. Zapewnisz w ten sposb lepsz
wydajno aplikacji, za w przypadku bdu na stronie fragmenty kodu nie bd prezentowane
uytkownikowi.
Tworzenie stron
Staraj si umieszcza kod strony w osobnym pliku. Moliwo osadzania kodu wykonywalnego
w kodzie znacznikw przydaje si gwnie przy rnego rodzaju prezentacjach.
W oknie Add New Item lista szablonw zaley od dodatkw zainstalowanych w systemie.
Dodawanie kontrolek do strony
Kontrolki s rozmieszczane na stronie tak samo, jak elementy HTML. By mc swobodnie
sterowa ich pooeniem, moesz wykorzysta CSS.
Staraj si nie korzysta z wizualnych wasnoci kontrolek wymienionych w oknie Properties,
takich jak kolor ta czy rozmiar tekstu. Do zarzdzania wygldem strony uywaj CSS.
Elementy posiadajce atrybut runat="server" najczciej musz posiada rwnie atrybut
ID, dziki czemu mona odwoywa si do nich w kodzie. Pamitaj, e atrybuty te moesz
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-15
nadawa nie tylko kontrolkom serwerowym, lecz rwnie zwykym elementom HTML, takim jak
<div> czy <img>.
Nigdy nie powiniene polega na tym, e waciwo ID elementu z atrybutem
runat="server" bdzie mie tak sam warto po stronie klienta i serwera. ASP.NET nie
gwarantuje tego w aden sposb i czsto dodaje dodatkowe elementy do nazwy. Z tego
wzgldu uycie selektorw ID w CSS, np. #imieTextBox { font-weight: bold } jest
zupenie niepraktyczne. W celu okrelenia wygldu kontrolek ASP.NET stosuj waciwo
CssClass i klasy CSS.
Przesyanie informacji midzy stronami
Przesyanie informacji midzy stronami w parametrach adresu URL ma ograniczone
zastosowanie, gdy nie chroni danych w aden sposb, jak rwnie nie pozwala przekazywa
wikszych porcji informacji.
By mc przekazywa dane binarne w parametrze adresu URL, powiniene zastosowa jakie
kodowanie transportowe powszechnie w tym celu wykorzystuje si kodowanie Base64.
Niestety musisz liczy si z tym, e rozmiar danych po zakodowaniu ulegnie zwikszeniu.
Moe si zdarzy, e w acuchu znakw przesyanym w parametrze adresu URL znajdzie si
jaki znak specjalny, np. ampersand (&). Jeli dokleimy taki acuch jako warto dla
parametru, moe ona pniej zosta nieprawidowo zinterpretowana przez serwer. By
zabezpieczy si przed tak sytuacj, powiniene kodowa wartoci parametrw przy pomocy
metody Server.UrlEncode.
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
umiesz tworzy aplikacje internetowe ASP.NET w Visual Studio 2008
umiesz dodawa nowe strony do aplikacji
umiesz dodawa kontrolki do strony
wiesz co to jest i jak utworzy metod obsugi zdarzenia
umiesz programowo odwoywa si do kontrolek
wiesz co to jest Smart Tag i jak z niego korzysta
wiesz jak przesya informacj pomidzy stronami metod GET i POST
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. Dino Esposito, Programming Microsoft ASP.NET 3.5, Microsoft Press, 2008
Praktyczne podejcie do tworzenia aplikacji w ASP.NET 3.5. szczegowy
przewodnik po najwaniejszych elementach projektowania stron internetowych w
ASP.NET 3.5. Zawiera przegld od podstaw do zaawansowanych elementw
technologii.
2. Tomasz Jahokowski, Jacek Matulewski, ASP.NET w Visual Web Developer 2008. wiczenia,
Helion, 2008
Ksika przeznaczona jest dla pocztkujcych programistw, pragncych tworzy
witryny ASP.NET, ktrzy zetknli si ju z jakimkolwiek jzykiem programowania.
Dziki temu podrcznikowi nauczysz si korzysta z opisanych narzdzi,
dziaajcych w nowoczesnym rodowisku Visual Web Developer 2008.
3. Jesse Liberty, Dan Hurwitz, ASP.NET. Programowanie, Helion, 2006
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-16
Podrcznik opisujcy zasady tworzenia aplikacji i witryn internetowych przy uyciu
jzyka C# 2.0, rodowiska programistycznego Visual Studio 2005 i bibliotek
.NET 2.0. Przedstawia rodowisko Visual Studio 2005 i szczegowo omawia
koncepcj budowania aplikacji za pomoc kontrolek.
4. Chris Hart, John Kauffman, David Sussman, Chris Ullman, Beginning ASP.NET 2.0 with C#, Wrox,
2006
W ksice autorzy prezentuj podstawy ASP.NET. Pokazuj nie tylko teori, ale
rwnie przykady kodu w jzyku C#.
5. The Official Microsoft ASP.NET Site, http://www.asp.net
Strona zawiera najnowsze informacje dotyczce technologii ASP.NET.
Pocztkujcym programistom ASP.NET warto poleci informacje zawarte w
zakadce Get Started. Z kolei cennym rdem wiedzy dla wszystkich bez wyjtku
jest zakadka Learn.
Piotr Bubacz
ITA-103 Aplikacje internetowe
Laboratorium podstawowe
Problem 1 (czas realizacji
Twoja firma rozpocza ekspansj na rynku dynamicznych aplikacji internetowych. W kocu ile
mona zarabia na tworzeniu prostych
postanowie pozna technologi
pad na technologi ASP.NET.
wywietlenia na stronie internetowej fragment
od uytkownika imienia.
Zadanie Tok postpowania
1. Utwrz now
stron w Visual
Studio 2008
Otwrz Visual Studio 2008.
Z menu wybierz
Z listy
Z listy
pliku w
Z listy
Kliknij
2. Dodaj tekst do
strony. Uruchom
aplikacj ASP.NET
Przecz
Na stronie internetowej
wiecie!
Zapisz stron wybierajc z menu
kombinacj klawiszy
Uruchom przygotowan aplikacj
Debug
opcji przy pierwszym uruchomieniu aplikacji pojawi si okno
z
W
3. Dodaj
kontrolki Label
Na stronie w nowej linii dopisz
przecignij
W
dzisiajLabel
4. Dodaj
procedur obsugi
zdarzenia
W widoku podgldu strony kliknij dwukrotnie formularz. Visual Studio
otworzy edytor kodu strony i umieci kursor
Do
Strona 4-17
Laboratorium podstawowe
(czas realizacji 15 min)
Twoja firma rozpocza ekspansj na rynku dynamicznych aplikacji internetowych. W kocu ile
tworzeniu prostych stron WWW? Poniewa chcesz by
pozna technologi, w ktrej bdziecie tworzyli dynamiczne aplikacj
pad na technologi ASP.NET. Swoj przygod z ni postanowie rozpocz
wywietlenia na stronie internetowej fragmentu tekstu, dzisiejszej daty
Tok postpowania
Otwrz Visual Studio 2008.
Z menu wybierz File -> New Web Site.
Z listy Visual Studio installed templates wybierz ASP.NET
Z listy Location wybierz File System, a w polu obok okrel lokalizacj dla
pliku w dowolnym miejscu na dysku.
Z listy Language wybierz Visual C#.
Kliknij OK.
Przecz si na widok Split.
Na stronie internetowej w obszarze podgldu
wiecie!.
Zapisz stron wybierajc z menu File -> Save Default.aspx
kombinacj klawiszy Ctrl+S.
Uruchom przygotowan aplikacj wybierajc
Debug -> Start Debugging lub wykorzystujc klawisz
opcji przy pierwszym uruchomieniu aplikacji pojawi si okno
informacj o koniecznoci zezwolenia na debugowanie
Wcinij OK.
Rys. 12 Okno z informacj o modyfikacji pliku Web.config
Na stronie w nowej linii dopisz Dzisiaj jest, a nastpnie z okna
przecignij kontrolk Label, umieszczon w zakadce
Kontrolk moesz umieci w obszarze podgldu strony lub w kodzie
rdowym.
Wybierz dodan kontrolk i w oknie Properties
dzisiajLabel, natomiast pole Text zostaw puste.
W widoku podgldu strony kliknij dwukrotnie formularz. Visual Studio
otworzy edytor kodu strony i umieci kursor w metodzie
Do metody dodaj nastpujcy kod wywietlajc aktualn dat w
Modu 4
Wprowadzenie do ASP.NET
Twoja firma rozpocza ekspansj na rynku dynamicznych aplikacji internetowych. W kocu ile
chcesz by dobrym szefem,
w ktrej bdziecie tworzyli dynamiczne aplikacje. Wasz wybr
postanowie rozpocz od prostego zadania
j daty oraz pobranego
ASP.NET Web Site.
, a w polu obok okrel lokalizacj dla
u strony wpisz Witaj
Save Default.aspx lub wciskajc
wybierajc z menu
lub wykorzystujc klawisz F5. Po wybraniu tej
opcji przy pierwszym uruchomieniu aplikacji pojawi si okno
informacj o koniecznoci zezwolenia na debugowanie (Rys. 12).
Okno z informacj o modyfikacji pliku Web.config
nastpnie z okna Toolbox
zakadce Standard.
obszarze podgldu strony lub w kodzie
Properties w polu (ID) wpisz
W widoku podgldu strony kliknij dwukrotnie formularz. Visual Studio
metodzie Page_Load.
dodaj nastpujcy kod wywietlajc aktualn dat w
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-18
Page_Load kontrolce dzisiajLabel:
dzisiajLabel.Text = DateTime.Today.ToShortDateString();
Zapisz zmiany i uruchom przygotowan stron.
5. Dodaj
kontrolki TextBox,
Button i obsu
zdarzenia Click
Na stronie w nowej linii dopisz: Podaj swoje imi:, a nastpnie z okna
Toolbox przecignij kontrolk TextBox i w oknie Properities w polu (ID)
wpisz imieTextBox.
Nastpnie obok poprzedniej kontrolki dodaj do strony kontrolk Button
w oknie Properities w polu Text wpisz Wywietl, a w polu (ID)
wyswietlButton
W nowej linii dodaj kontrolk Label i w oknie Properities w polu (ID)
wpisz imieLabel i usu zwarto pola Text.
Dwukrotnie kliknij kontrolk Button. Visual Studio otworzy edytor kodu
strony i umieci kursor w metodzie wyswietlButton_Click. Do metody
dodaj:
imieLabel.Text = "Witaj " + imieTextBox.Text;
6. Przetestuj
stron
Zapisz zmiany i uruchom przygotowan stron. W oknie tekstowym
podaj swoje imi, a nastpnie wcinij przycisk Wywietl.
Problem 2 (czas realizacji 30 min)
Poprzednie zadanie okazao si by atwiejsze ni sdzie. Zachcony pierwszymi sukcesami
rzucie sobie nowe wyzwanie postanowie dowiedzie si, jak przesya informacje midzy
stronami. Zdecydowae, e przygotujesz prost ankiet dla agencji modelek i modeli, ktr
prowadzi Twj dobry przyjaciel. Kto wie, moe nawet uda Ci si go namwi do zmiany strony
internetowej?
Wymylie, e na pierwszej stronie uytkownik bdzie mg wprowadzi imi oraz okreli swoj
pe, na podstawie ktrej bdzie nastpnie przekierowywany na odpowiedni stron z pytaniami.
Zadanie Tok postpowania
1. Dodaj now
stron do aplikacji
Otwrz Visual Studio 2008.
Z menu wybierz File -> New Web Site.
Z listy Visual Studio installed templates wybierz ASP.NET Web Site.
Z listy Location wybierz File System, a w polu obok okrel lokalizacj dla
pliku w dowolnym miejscu na dysku.
Z listy Language wybierz Visual C#.
Kliknij OK.
2. Dodaj
kontrolk do
wpisania imienia,
okrelenia pci
oraz
przekierowania na
stron ankiety
Na stronie napisz Podaj swoje imi:, a nastpnie z okna Toolbox
przecignij kontrolk TextBox. Ustaw jej waciwo ID na imieTextBox.
W nowej linii dodaj tekst Podaj pe:, a nastpnie kontrolk
DropDownList. Ustaw jej waciwo ID na plecDropDownList.
Zaznacz ostatnio dodan kontrolk w widoku projektowania strony,
a nastpnie kliknij ikon , ktra pojawi si po jej prawej stronie
(Smart Tag) i wybierz Edit Items (Rys. 13).
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-19
Rys. 13 Okno Listitem Collection Editor
W oknie ListItem Collection Editor wcinij przycisk Add.
W obszarze Properties po prawej stronie w polu Text wpisz Kobieta, a w
polu Value K.
Kliknij przycisk Add.
W obszarze Properties po prawej stronie w polu Text wpisz Mczyzna,
a w polu Vaule M.
Dodaj kontrolk Button i w oknie Properities w polu Text wpisz
Wywietl, a w polu (ID) wyswietlButton. Nastpnie dwukrotnie j
kliknij. Visual Studio otworzy edytor kodu strony i umieci kursor
w metodzie wyslijButton_Click. W metodzie dodaj nastpujcy kod:
if (plecDropDownList.SelectedValue=="K")
{Response.Redirect("Kobieta.aspx?imie=" + imieTextBox.Text); }
else if (plecDropDownList.SelectedValue == "M")
{Response.Redirect("Mezczyzna.aspx?imie=" + imieTextBox.Text); }
3. Dodaj now
stron do
projektu
zawierajc
pytania dla kobiet
Wybierz menu Website -> Add Add New Item lub wcinij Ctrl+Shift+A
lub w oknie Solution Explorer kliknij prawym przyciskiem myszy i
wybierz Add New Item (Rys. 14).
Rys. 14 Okno Add New Item
Piotr Bubacz Modu 4
ITA-103 Aplikacje internetowe Wprowadzenie do ASP.NET
Strona 4-20
Okrel nastpujce elementy dla nowej strony:
nazwa: Kobieta.aspx
jzyk: Visual C#
opcja Place code in separate file zaznaczona
opcja Select master page niezaznaczona
4. Pobierz dane
przesane do
strony przy
pomocy metody
GET
Do nowej strony dodaj kontrolk Label. i w oknie Properities w polu (ID)
wpisz wyswietlLabel i usu zwarto pola Text.
W widoku podgldu strony kliknij dwukrotnie formularz. Visual Studio
otworzy edytor kodu strony i umieci kursor metodzie Page_Load.
Do metody dodaj kod pobierajcy dane z poprzedniej strony przesane
w parametrze imie adresu URL:
wyswietlLabel.Text = "Witaj " + Request.QueryString["imie"];
5. Umie
pytania do ankiety
W pliku Kobieta.aspx poniej kontrolki Label dodaj elementy
umoliwiajce pobranie informacji od uytkownika serwisu: wpisz E-
mail: i dodaj kontrolk TextBox. Nadaj jej odpowiedni waciwo ID.
Kolejno dodaj w osobnych wierszach kontrolki TextBox wraz z
poprzedzajcymi je informacjami umoliwiajce pobranie nastpujcych
danych:
wzrost
numer ubrania
numer buta
obwd biustu
talia
biodra
Na dole strony dodaj kontrolk Button i w oknie Properities w polu Text
wpisz Wywietl, a w polu (ID) wyswietlButton. Nastpnie dwukrotnie
j kliknij. W metodzie wyslijButton_Click dodaj nastpujcy kod:
Server.Transfer("Dziekujemy.aspx?imie=" +
Request.QueryString["imie"]);
6. Dodaj now
stron do
projektu
zawierajc
podzikowania za
wypenienie
ankiety
Dodaj now stron do projektu. Okrel nastpujce elementy dla nowej
strony:
nazwa: Dziekujemy.aspx
jzyk: Visual C#
opcja Place code in separate file zaznaczona
opcja Select master page niezaznaczona
Do nowoutworzonej strony dodaj kontrolk Label. Okrel jej waciwo
ID na wyswietlLabel, natomiast waciwo Text zostaw pust.
W widoku podgldu strony kliknij dwukrotnie formularz. Visual Studio
otworzy edytor kodu strony i umieci kursor metodzie Page_Load.
Do metody dodaj kod pobierajcy dane z poprzedniej strony przesane
w parametrze imie adresu URL:
wyswietlLabel.Text = Request.QueryString["imie"] +
", dzikujemy za wypenienie ankiety";
7. Dodaj now
stron do
projektu
zawierajc
Dodaj now stron do projektu. Okrel nastpujce elementy dla nowej
strony:
nazwa: Mezczyzna.aspx
jzyk: Visual C#
Piotr Bubacz
ITA-103 Aplikacje internetowe
pytania dla
mczyzn i
pobierz dane
przesane przy
pomocy metody
GET
Do
wpisz
W widoku podgldu strony kliknij dwukrotnie formularz. Visual Studio
otworzy edytor kodu strony i umieci kursor metodzie
Do
w
wyswietlLabel.Text = "Witaj " + Request.QueryString["imie"];
8. Umie
pytania do ankiety
W pliku
umoliwiajce pobranie informacji od uytkownika serwisu: wpisz
mail
Kolejno dodaj w osobnych wierszach kontrolki
z
nastpujcych danych:
Wcinij przycisk
Wcinij przycisk
Wcinij
Do formularza dodaj kontrolki
uytkownika nastpujcych danych:
6. Dodaj
kontrolk
MultiView
W kontrolce
dodaj kontrolk
Dodaj do kontrolki
kolei:
Strona 5-16
Zauwa, e mona wyoni cz wspln obydwu ankiet
W kontrolce ankietaGlowna w widoku Design
nter, a nastpnie umie kontrolk TextBox i
nowej linii. W oknie Properties okrel waciwo
W dodanej linii na formularzu napisz Pe:
DropDownList. W oknie Properties okrel wa
plecDropDownList. Kliknij Smart Tag dodanej kontrolki i wybierz
Items.
Wcinij przycisk Add, a nastpnie w obszarze ListItem
w polu Text wpisz Kobieta
w polu Value wpisz K
Wcinij przycisk Add, a nastpnie w obszarze ListItem properities
w polu Text wpisz Mczyzna
w polu Value wpisz M
Wcinij przycisk Add, a nastpnie w obszarze ListItem properities
w polu Text wpisz Nie podaj
w polu Value wpisz N
w polu Selected wybierz True
Wcinij OK.
Do formularza dodaj kontrolki TextBox umoliwiajce pobranie od
uytkownika nastpujcych danych:
e-mail (ID: emailTextBox)
telefon (ID: telTextBox)
ulica (ID: ulicaTextBox)
numer domu (ID: domTextBox)
numer mieszkania (ID: mieszTextBox)
kod pocztowy (ID: kodTextBox)
miejscowo (ID: miejscTextBox)
W kontrolce View o ID=AnkietaGlowna poniej dodanych kontrolek
dodaj kontrolk MultiView i nazwij j ankietaMultiView
Dodaj do kontrolki MultiView dwie kontrolki View
kolei: nowyView i wycieczkiView.
Modu 5
Kontrolki serwerowe
obydwu ankiet.
napisz Imi: i nacinij
i ponownie przejd do
o (ID) na imieTextBox.
Pe: i umie kontrolk
okrel waciwo (ID) na
dodanej kontrolki i wybierz Edit
ListItem properities:
ListItem properities:
ListItem properities:
umoliwiajce pobranie od
poniej dodanych kontrolek
ankietaMultiView.
View, nazywajc je po
Piotr Bubacz Modu 5
ITA-103 Aplikacje Internetowe Kontrolki serwerowe
Strona 5-17
7. Dodaj
kontrolki do
kontrolki View -
Nowy
Ustaw kursor wewntrz kontrolki View o ID="nowyView".
Wpisz Wzrost: i w nowej linii dodaj kontrolk TextBox
o ID="wzrostTextBox".
Wpisz Rama roweru: i dodaj kontrolk DropDownList
o ID="ramaDropDownList". Kliknij Smart Tag i wybierz Edit Items.
Dodaj elementy o nastpujcych waciwociach, po czym zamknij okno:
tekst wywietlany: Damska, warto: D
tekst wywietlany: Mska, warto: M
tekst wywietlany: Nie ma znaczenia, warto: N, zaznaczenie
Wpisz Marka: i dodaj kontrolk ListBox o ID="markaListBox". Kliknij
Smart Tag i wybierz Edit Items.
Dodaj elementy o nastpujcych waciwociach, po czym zamknij okno:
tekst wywietlany: Cateye, warto: C
tekst wywietlany: Giant, warto: G
tekst wywietlany: Kenda, warto: Ke
tekst wywietlany: Kross, warto: Kr
tekst wywietlany: Nie ma znaczenia, warto: N, zaznaczenie
Wpisz Rodzaj roweru: i dodaj kontrolk ListBox o ID="rodzajListBox".
Kliknij Smart Tag i wybierz Edit Items.
Dodaj elementy o nastpujcych waciwociach, po czym zamknij okno:
tekst wywietlany: Grski, warto: G
tekst wywietlany: Miejski, warto: M
tekst wywietlany: Szosowy, warto: S
tekst wywietlany: BMX, warto: B
tekst wywietlany: Dziecicy, warto: D
tekst wywietlany: Nie wiem, warto: N, zaznaczenie
Wpisz Kwota planowanych wydatkw: i dodaj kontrolk
RadioButtonList o ID="cenaRadioButtonList". Dodaj do listy elementy
o nastpujcych waciwociach:
tekst wywietlany: Nie ma znaczenia, warto: 0, zaznaczenie
tekst wywietlany: do 500 z, warto: 5
tekst wywietlany: 500 1000 z, warto: 10
tekst wywietlany: 1000 - 1500, warto: 15
tekst wywietlany: pow. 1500, warto: 20
tekst wywietlany: Zakres:, warto: 1
Poniej kontrolki cenaRadioButtonList wpisz od: i dodaj kontrolk
TextBox o ID="odTextBox", a nastpnie w tej samej linii wpisz do:
i dodaj kontrolk TextBox o ID="doTextBox".
Piotr Bubacz
ITA-103 Aplikacje Internetowe
8. Dodaj
kontrolki do
kontrolki View
Stary
Ustaw kursor
Wpisz
o
wa
Wpisz
ID="
Wpisz
ID="
Wpisz
TextBox
Wpisz
ID="
wa
9. Dodaj wspln
cz kocow
Poniej kontrolki
Preferowany
o
wa
Zapi
wypenienia informacji w
2. Dodaj
kontrolk
wywietlajc
informacje o
bdach
Do formularza
mainMultiView
(kategoria
Zapisz zmiany i przetestuj moliwo wysania formularza bez
wypenienia informacji w
Wr do edycji strony
kontrolki
waciwo
Strona 5-20
(czas realizacji 20 min)
Poniewa chciaby si maksymalnie wykaza, postanowie rozszerzy stron o zabezpieczenia
formularzy przed bdnym wypenieniem pl, jak rwnie okrelajc niektre pola jako wymagane.
Bez tych informacji zbieranie danych w ankiecie raczej nie ma sensu. Okrelie nastpujce p
Sprawdzenie poprawnoci wpisanych danych powinno odbywa si w nastpujcych polach:
(poprawny adres e-mail w formacie uytkownik@serwer
(same cyfry w formacie 1234567890)
(liczba od 50 do 250 cm)
do (zarwno warto, jak i porwnanie wpisanych wartoci od<do)
Tok postpowania
Do wczeniej utworzonego formularza Ankieta.aspx
wstaw obok kontrolki imieTextBox kontrolk RequiredFieldValidator
okna Toolbox (kategoria Validation).
Wybierz dodan kontrolk i w oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz
w polu ErrorMessage wpisz Pole Imi jest wymagane
w polu Text wpisz *
Wstaw obok kontrolki emailTextBox kontrolk RequiredFieldValidator
Wybierz dodan kontrolk i w oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz
w polu ErrorMessage wpisz Pole E-mail jest wymagane
w polu Text wpisz *
Zapisz zmiany i przetestuj moliwo wysania formularza bez
wypenienia informacji w polach Imi i E-Mail.
Czy sprawdzenie wpisania danych to odbywa si po stronie serwera
czy klienta? Zobacz rdo strony. W jaki sposb jest realizowane to
sprawdzenie? Co jest wypisywane obok kontrolki? Czy pojawia si
komunikat wpisany w polu ErrorMessage?
Do formularza Ankieta.aspx na kocu (za kontrolk
mainMultiView) wstaw kontrolk ValidationSummary
(kategoria Validation).
Zapisz zmiany i przetestuj moliwo wysania formularza bez
wypenienia informacji w polach Imi i E-Mail.
Czy pojawia si komunikat wpisany w polu ErrorMessage
gdzie i dlaczego?
Wr do edycji strony i przetestuj inne moliwoci
kontrolki ValidationSummary zmieniajc w oknie
waciwo DisplayMode.
Modu 5
Kontrolki serwerowe
postanowie rozszerzy stron o zabezpieczenia
formularzy przed bdnym wypenieniem pl, jak rwnie okrelajc niektre pola jako wymagane.
Okrelie nastpujce pola
powinno odbywa si w nastpujcych polach:
serwer.domena)
do (zarwno warto, jak i porwnanie wpisanych wartoci od<do)
aspx w widoku Design
RequiredFieldValidator z
z listy rozwijanej wybierz imieTextBox
Pole Imi jest wymagane
RequiredFieldValidator
z listy rozwijanej wybierz emailTextBox
mail jest wymagane
sz zmiany i przetestuj moliwo wysania formularza bez
Czy sprawdzenie wpisania danych to odbywa si po stronie serwera
Zobacz rdo strony. W jaki sposb jest realizowane to
est wypisywane obok kontrolki? Czy pojawia si
(za kontrolk MultiView -
ValidationSummary z okna Toolbox
Zapisz zmiany i przetestuj moliwo wysania formularza bez
ErrorMessage? Jeli tak, to
etestuj inne moliwoci wywietlania
w oknie Properties jej
Piotr Bubacz Modu 5
ITA-103 Aplikacje Internetowe Kontrolki serwerowe
Strona 5-21
3. Dodaj
kontrolki
sprawdzajce
poprawno
wpisanych danych
za pomoc
wyrae
regularnych
Do formularza Ankieta.aspx obok kontrolki emailTextBox wstaw
kontrolk RegularExpressionValidator z okna Toolbox (kategoria
Validation) i w oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz emailTextBox
w polu ErrorMessage wpisz Nieprawidowy adres E-Mail
w polu Text wpisz *
w polu ValidationExpression wcinij przycisk , a nastpnie z listy
Standard expressions wybierz Internet e-mail address (Rys. 4).
Rys. 4 Okrelenie wyraenia regularnego
Obok kontrolki telTextBox wstaw kontrolk
RegularExpressionValidator. W oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz telTextBox
w polu ErrorMessage wpisz Nieprawidowy numer telefonu podaj
same cyfry
w polu Text wpisz *
w polu ValidationExpression wpisz: ([0-9]+)$
Obok kontrolki wzrostTextBox wstaw kontrolk
RegularExpressionValidator. W oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz wzrostTextBox
w polu ErrorMessage wpisz Nieprawidowy wzrost podaj wzrost w
centymetrach
w polu Text wpisz *
w polu ValidationExpression wpisz: ([0-9]+)$
Obok kontrolki odTextBox wstaw kontrolk
RegularExpressionValidator. W oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz odTextBox
w polu ErrorMessage wpisz Nieprawidowa kwota podaj
zaokrglajc do penych zotych
w polu Text wpisz *
w polu ValidationExpression wpisz: ([0-9]+)$
Obok kontrolki doTextBox wstaw kontrolk
RegularExpressionValidator. W oknie Properties:
Piotr Bubacz Modu 5
ITA-103 Aplikacje Internetowe Kontrolki serwerowe
Strona 5-22
w polu ControlToValidate z listy rozwijanej wybierz doTextBox
w polu ErrorMessage wpisz Nieprawidowa kwota podaj
zaokrglajc do penych zotych
w polu Text wpisz *
w polu ValidationExpression wpisz: ([0-9]+)$
Zapisz zmiany i przetestuj moliwo wysania formularza z bdami w
kontrolkach.
4. Dodaj
kontrolki
sprawdzajce
poprawno
wpisanych danych
za pomoc
porwnania
wartoci
Obok kontrolki wzrostTextBox wstaw kontrolk RangeValidator z okna
Toolbox (kategoria Validation) i w oknie Properties:
w polu ControlToValidate z listy rozwijanej wybierz wzrostTextBox
w polu ErrorMessage wpisz Podaj poprawny wzrost w zakresie od
50 do 250 cm
w polu MaximumValue wpisz 250
w polu MinimumValue wpisz 50
w polu Text wpisz *
w polu Type wybierz Integer
Obok kontrolki doTextBox wstaw kontrolk CompareValidator. W oknie
Properties:
w polu ControlToCompare z listy rozwijanej wybierz odTextBox
w polu ControlToValidate z listy rozwijanej wybierz doTextBox
w polu ErrorMessage wpisz Warto w polu Do musi by wiksza od
wartoci w polu Od
w polu Operator z listy rozwijanej wybierz GreaterThan
w polu Text wpisz *
w polu Type wybierz Integer
W metodzie wyslijButton_Click zamie istniejc lini nastpujcym
kodem:
if (IsValid)
{ mainMultiView.SetActiveView(podsumowanie); }
Zapisz zmiany i przetestuj moliwo wysania formularza z bdami w
kontrolkach.
Piotr Bubacz Modu 5
ITA-103 Aplikacje Internetowe Kontrolki serwerowe
Strona 5-23
Problem 3 (czas realizacji 10 min)
Twoja praca bardzo spodobaa si klientowi, jednak ma on jeszcze jedn prob. Chciaby, aby
umieci baner reklamowy na grze strony. Baner powinien wywietla losowo okrelone reklamy
umieszczone na serwerze.
Zadanie Tok postpowania
1. Dodaj katalog i
pliki graficzne
reklam
Do projektu dodaj katalog Adv.
Kliknij katalog prawym przyciskiem myszy i wybierz Add Existing Item,
a nastpnie wska pliki Adv1.png i Adv2.png. Wcinij Add.
2. Okrel
lokalizacje plikw
reklam oraz
adresy na ktre
wskazuja
Kliknij prawym przyciskiem myszy katalog Adv i wybierz Add New Item.
Z okna Templates wybierz XML File, a nastpnie w polu Name wpisz
adv.xml.
Do pliku dodaj nastpujcy fragment:
<Advertisements>
<Ad>
<ImageUrl>~/Adv/Adv1.png</ImageUrl>
<NavigateUrl>http://www.asp.net</NavigateUrl>
<AlternateText>Strona gwna ASP.NET </AlternateText>
</Ad>
<Ad>
<ImageUrl>~/Adv/Adv2.png</ImageUrl>
<NavigateUrl>http://www.codeplex.com</NavigateUrl>
<AlternateText>Projekty OpenSource - CodePlex </AlternateText>
</Ad>
</Advertisements>
Zapisz zmiany.
3. Dodaj
kontrolk
AdRotator i
Do wczeniej utworzonego formularza Ankieta.aspx na pocztku strony
wstaw kontrolk AdRotator i w oknie Properties w polu
AdvertisementFile wpisz ~/Adv/adv.xml.
Zapisz zmiany i przetestuj funkcjonalno wywietlania reklam na
stronie.
Piotr Bubacz Modu 5
ITA-103 Aplikacje Internetowe Kontrolki serwerowe
Strona 5-24
Laboratorium rozszerzone
Zadanie 1 (czas realizacji 90 min)
Jeste ju specjalist w zakresie ankiet, wic otrzymujesz coraz wicej zlece. Twj kolejny klient
poprosi Ci o przygotowanie ankiety dla internetowego sklepu z odzie. Ma ona by skierowana
zarwno do nowych klientw uytkownikw, badajc ich preferencje zakupowe, jak rwnie do
obecnych klientw, sprawdzajc ich poziom zadowolenia z towarw i obsugi. Twoim zadaniem jest
zaproponowanie i wykonanie ankiety z uwzgldnieniem czci wsplnej, ktra zawiera:
imi (wymagane)
adres e-mail (wymagane, poprawny adres)
kod pocztowy (wymagane, poprawny kod)
wiek (warto midzy 10 a 100)
pe
wyksztacenie
rozmiar (warto midzy 20 a 50)
Pytania wsplne dla nowych klientw:
Ile jeste w stanie przeznaczy miesicznie na zakup ubrania? (Lista wyboru, odpowiedzi: do
100 z, 100-500 z, 500-1000 z, powyej 1000 z.)
Gdzie najczciej dokonujesz zakupw ubrania? (Lista wielokrotnego wyboru, odpowiedzi:
Sklep firmowy, Hipermarket, Bazar, Sklep z odzie uywan.)
Jak czsto dokonujesz zakupu ubrania? (Lista wyboru, odpowiedzi: Codziennie, Raz w
tygodniu, Raz w miesicu, Kilka razy w roku.)
W jakich kolorach preferujesz ubrania? (Lista wielokrotnego wyboru, odpowiedzi:
Kolorowo-jaskrawych, Stonowanych w szarociach, W czerni i bieli, W samej czerni.)
W przypadku, gdy klient jest kobiet, pobierz odpowied na pytanie:
Jakiego rodzaju ubrania najchtniej kupujesz? (Lista wielokrotnego wyboru, odpowiedzi:
garsonki, bluzki, spdniczki, spodnie.)
W przeciwnym razie pobierz odpowied na nastpujce pytani:
Jakiego rodzaju ubrania najchtniej kupujesz? (Lista wielokrotnego wyboru, odpowiedzi:
spodnie, spodenki, garnitury, koszule, krawaty.)
W ankiecie badania satysfakcji klienta powiniene wywietli odpowiednio sformuowane pytania
w zalenoci od pci:
Kiedy ostatnio robia/robie u nas zakupy (Lista wyboru, odpowiedzi: Wczoraj, W
zeszym tygodniu, W zeszym miesicu, Kilka miesicy temu, Nie pamitam.)
Czy jeste zadowolona/zadowolony z zakupu (Lista wyboru, odpowiedzi: Tak, Raczej tak,
Raczej nie, Nie, Nie wiem.)
Czy jeste zadowolona/zadowolony z naszych pracownikw? (Lista wyboru, odpowiedzi:
Tak, Raczej tak, Raczej nie, Nie, Nie wiem.)
Wpisz swoje uwagi. (Pole tekstowe z moliwoci wpisania tekstu w wielu liniach.)
Koniecznie sprawd poprawno wpisywanych danych, a w podsumowaniu ankiety wywietl
informacje wypenione przez uytkownika. Klient zayczy sobie rwnie, by na stronie bya
moliwo losowego wywietlania reklam wraz z rejestracj iloci klikni banera.
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 6
Wersja 1
Projektowanie serwisw
internetowych
Spis treci
Projektowanie serwisw internetowych ............................................................................................. 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Przykadowe rozwizanie ............................................................................................................. 7
Porady praktyczne ..................................................................................................................... 10
Uwagi dla studenta .................................................................................................................... 11
Dodatkowe rda informacji..................................................................................................... 11
Laboratorium podstawowe ................................................................................................................ 12
Problem 1 (czas realizacji 25 min) .............................................................................................. 12
Problem 2 (czas realizacji 25 min) .............................................................................................. 15
Problem 3 (czas realizacji 25 min) .............................................................................................. 16
Problem 4 (czas realizacji 25 min) .............................................................................................. 18
Laboratorium rozszerzone ................................................................................................................. 19
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce zarzdzania wygldem
aplikacji i tworzenia elementw nawigacyjnych. Poznasz moliwoci
centralnego zarzdzania wygldem witryny przy pomocy stron wzorcowych
i kompozycji. Poznasz metody tworzenia mapy witryny internetowej oraz
nauczysz si, jak wykorzystywa kontrolki nawigacyjne.
Cel moduu
Celem moduu jest przedstawienie moliwoci utrzymania wsplnego
wygldem aplikacji przy uyciu stron wzorcowych i kompozycji oraz
moliwoci tworzenia centralnie zarzdzanych elementw nawigacyjnych.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
wiedzia jak zarzdza wygldem aplikacji przy uyciu stron
wzorcowych i kompozycji
potrafi tworzy centralnie zarzdzane mapy witryny
potrafi wywietla map witryny przy pomocy kontrolek
nawigacyjnych
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna zasady pracy w rodowisku Visual Studio, w szczeglnoci
tworzenia stron internetowych,
potrafi tworzy nowe aplikacje internetowe i dodawa strony.
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w moduach Podstawy HTML, Kaskadowe Arkusze Stylw CSS
i Wprowadzenie do ASP.NET
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-3
Przygotowanie teoretyczne
Przykadowy problem
Przegldajc serwisy internetowe moemy zauway, e kada strona wyglda podobnie.
Wsplnymi elementami s menu, baner czy inne wizualne komponenty strony. Aby utrzyma
wsplny wygld strony tworzonej w XHTML naleao zaprojektowa wsplne elementy, a pniej
przekopiowa je na kad now stron. Oczywicie nie byo to rozwizanie dobre. Nie mwic o
problemach przy kopiowaniu naley pamita, e zmiana jakiegokolwiek elementu w czci
wsplnej powodowaa konieczno zmian we wszystkich plikach serwisu.
Kolejnym problemem jest wygld strony. Ju wiesz, e mona go okreli w pliku CSS, ale co, jeli
chcemy okresowo zmienia wygld naszej witryny. Co jeli chcemy, aby strona wygldaa inaczej w
zimie, lecie czy na jesie i wiosn. Oczywicie moemy podmienia wskazania pliku CSS na stronie,
jednak nie jest dobre rozwizanie, szczeglnie jeli mamy kilka stron w serwisie. Chcielibymy mie
centralne zarzdzanie plikami CSS wykorzystywanymi przez stron.
Ostatni problem na jaki napotkasz si tworzc serwisy internetowe to menu. Tworzenie menu jako
zbioru odnonikw do stron jest moe rozwizaniem prostym, ale zdecydowanie nieoptymalnym.
Chcielibymy mie centralne miejsce do zarzdzania elementami nawigacyjnymi. Dodatkowo
musimy mie moliwo prostego wywietlania naszej strony. Do tego celu potrzebujemy zbioru
kontrolek nawigacyjnych.
Podstawy teoretyczne
Budowanie wygldu serwisu w oparciu o strony wzorcowe
Strony serwisu internetowego posiadaj wiele wsplnych elementw, ktre powinny by
wywietlane na kadej ze stron (np. logo, elementy nawigacyjne itp.). Tworzenie podobnych stron
mona wykona kopiujc wsplne elementy. Gdy tych stron jest duo lub jeli w pewnym
momencie zaistnieje potrzeba zmiany wygldu serwisu, wtedy takie rozwizanie jest niepraktyczne.
ASP.NET zosta wyposaony w mechanizm stron wzorcowych, umoliwiajcych grupowanie
pewnych wsplnych elementw z wielu stron w jednym pliku.
Strona wzorcowa (ang. Master Page) umoliwia tworzenie wsplnego wygldu dla caej witryny
internetowej. Stanowi ona szkielet dla treci dostarczanej przez poszczeglne strony i zawiera tylko
wsplne elementy. Miejsce, w ktrym ma zosta umieszczona tre waciwej strony, jest
okrelone przez specjaln kontrolk ContentPlaceHolder. Ze wzgldu na fakt, e moliwe jest
umieszczenie dowolnej iloci kontrolek ContentPlaceHolder, kada kontrolka musi by
jednoznacznie nazwana za pomoc identyfikatora kontrolki ID.
Strona z zawartoci (ang. Content Page) korzysta ze strony wzorcowej, wypeniajc miejsca
okrelone przez ContentPlaceHolder. Tre jest umieszczona w kontrolce Content. Kontrolka
ta musi odwoywa si do odpowiedniej kontrolki ContentPlaceHolder za pomoc parametru
ContentPlaceHolderID (Rys. 2).
Rys. 2 Tworzenie strony internetowej na podstawie stron: wzorcowej i zawartoci
Strona wzorcowa i strona zawartoci mog zawiera dowolne kontrolki serwerowe, jak rwnie
wasny kod programowy. Zawartoci obu stron s czone w jedn struktur i wysyane do klienta,
dziki temu s widoczne jako jedna cao.
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-4
Strona zawartoci moe umieszcza kontrolki tylko w wyznaczonych miejscach. Istnieje moliwo
umieszczenia kontrolki w dowolnym miejscu na stronie przy pomocy pozycjonowania CSS, ale jest
to w najwyszym stopniu niewskazane. Zmiana szablonu nie spowoduje zmiany pooenia kontrolki.
Jeli musimy co doda w okrelonym miejscu, najatwiej jest zdefiniowa w stronie wzorcowej
kolejn kontrolk ContentPlaceHolder.
Aby uatwi tworzenie rozbudowanych serwisw internetowych, moliwe jest zagniedanie stron
wzorcowych. Visual Studio 2008 wspiera ich wizualne projektowanie.
Konwersja istniejcej strony Web na stron zawartoci
Przy projektowaniu aplikacji istnieje czasami konieczno dopasowania istniejcej strony Web do
caego portalu. W tym celu naley z konwertowanej strony usun nastpujce znaczniki:
<!DOCTYPE>
<html>
<head>
<body>
<form>
Nastpnie naley do dyrektywy @Page doda atrybut MasterPageFile, podajc waciw nazw
pliku strony wzorcowej. W kolejnym kroku przed treci strony powinno si doda znacznik
<asp:Content>. Znacznik ten musi posiada atrybuty ID (dowolna nazwa),
ContentPlaceHolderID (nazwa kontrolki ContentPlaceHolder na stronie wzorcowej, w
ktrej ma znale si tre strony) oraz runat="Server". Na kocu pliku naley zamkn znacznik
</asp:Content>.
Jeli na stronie wzorcowej znajduje si klika kontrolek ContentPlaceHolder, to musimy
zapewni, e kada z nich bdzie posiadaa na tej stronie kontrolk Content z odpowiednim
ContentPlaceHolderID.
Sterowanie wygldem aplikacji przy uyciu kompozycji
Przy uyciu arkusza styli (CSS) moliwe jest definiowanie wygldu elementw w jzyku HTML, nie
jest to jednak moliwe w przypadku kontrolek serwerowych ASP.NET. CSS moe zmieni
interpretacje kodu HTML generowanego przez kontrolk serwerow, ale nie ma wpywu na sam
kontrolk. Aby umoliwi scentralizowany sposb sterowania wygldem kontrolek, wprowadzono
kompozycje (ang. themes).
Kompozycje s umieszczone na serwerze w specjalnym katalogu App_Themes, w podkatalogach,
ktrych nazwy s nazwami kompozycji. Podkatalogi zawiera mog pliki .skin (plik motywu) oraz
pliki arkuszy styli .css. Pliki styli zostan doczone do nagwka kadej ze stron.
Wizualne cechy kontrolek Web okrela si za porednictwem pliku motywu (.skin). Pojedynczy
folder kompozycji moe zawiera dowoln liczb takich plikw. Pliki motyww zawieraj znacznik
identyfikujcy dan kontrolk serwerow wraz z parametrami.
Definicja motyww ma wpyw tylko na wygld kontrolek serwerowych Web, nie ma natomiast
wpywu na nastpujce elementy:
elementy HTML
kontrolki serwerowe HTML
kontrolki serwerowe Web, ktre nie maj waciwoci wizualnych
niewizualne waciwoci kontrolek serwerowych Web (np. AutoPostBack)
Stosowanie kompozycji do wszystkich stron witryny jest moliwe w pliku Web.config w sekcji
<system.web> przy pomocy znacznika <pages>. Przykad:
<pages theme="NiebieskaSkorka" />
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-5
W celu utworzenia kompozycji naley w oknie Solution Explorer klikn prawym przyciskiem i
wybra Add ASP.NET Folder, a nastpnie Theme. W tym momencie moliwe jest okrelenie
dowolnej nazwy folderu, ktra jednoczenie bdzie nazw kompozycji.
W celu dodania pliku kompozycji naley klikn prawym przyciskiem katalog zawierajcy
kompozycj i wybra z menu opcje Add New Item, a nastpnie Skin File i wcisn przycisk Add.
Rys. 3 Dodanie pliku motywu
W utworzonym pliku naley nastpnie umieci znaczniki i parametry definiujce wygld strony.
Nawigacja w serwisie internetowym
Wikszo serwisw internetowych posiada menu zbir odnonikw do poszczeglnych stron.
Moliwe jest okrelenie tego zbioru rcznie na kadej stronie lub na stronie wzorcowej, jednak nie
jest to rozwizanie elastyczne. Dodatkowo problemem jest ukrywanie czci odnonikw przed
uytkownikami anonimowymi oraz ograniczanie dostpu do odnonikw dla rnych grup
uytkownikw.
W ASP.NET 2.0 zaproponowano spjny, atwy do zarzdzania, scentralizowany system dostarczania
informacji o mapie serwisu. Moliwoci systemu nawigacji:
Centralne zarzdzanie logiczn struktur witryny dodawanie lub usuwanie odnonikw do
stron domylnie odbywa si w pliku Web.sitemap. Moliwe jest okrelenie innego dostawcy.
Kontrolki nawigacyjne kontrolki umoliwiajce wywietlenie menu serwisu bazujce na
pliku Web.sitemap.
Reguy dostpu moliwo okrelania regu wywietlania lub ukrywania odnonikw w
menu nawigacji.
Moliwo programowego dostpu do kontrolek nawigacji i wywietlanych w nich informacji.
Tworzenie mapy witryny
Pierwszym krokiem wykorzystania systemu nawigacji w ASP.NET jest okrelenie struktury serwisu.
Standardowo system nawigacji serwisem wykorzystuje plik XML Web.sitemap zawierajcy
hierarchi stron.
Plik Web.sitemap musi by umieszczony w katalogu gwnym aplikacji. Zawiera on elementy
<siteMapNode> dla kadej strony serwisu. Hierarchi serwisu ustala si poprzez osadzanie
elementw <siteMapNode>. Kady z nich zawiera nastpujce atrybuty:
title okrela tekst wywietlany w kontrolkach nawigacyjnych
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-6
description - okrelenia tekst pomocy pojawiajcy si po ustawieniu kursora nad pozycj
menu (ang. tool tip)
url okrela lokalizacj strony
Przykad pliku Web.sitemap:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode>
<siteMapNode url="Default.aspx" title="Strona gwna"
description="Przenie do strony gwnej" />
<siteMapNode title="Produkty" description="Zapoznaj si z ofert">
<siteMapNode url="Produkty.aspx" title="Przegldaj"
description="Przejrzyj dostpne artykuy" />
<siteMapNode url="Szukaj.aspx" title="Szukaj"
description="Wyszukaj po nazwie" />
</siteMapNode>
</siteMapNode>
</siteMap>
Kontrolki nawigacyjne
Kolejnym krokiem po okreleniu struktury jest wywietlenie jej na stronie serwisu. ASP.NET
udostpnia nastpujce kontrolki nawigacyjne:
SiteMapPath
TreeView
Menu
Kontrolka SiteMapPath
Kontrolka SiteMapPath wywietla ciek nawigacji. Prezentuje ona uytkownikowi lokalizacj i
wywietla odnoniki umoliwiajce nawigacj do strony domowej.
Rys. 4 Kontrolka SiteMapPath
Kontrolka TreeView
Kontrolka TreeView wywietla map serwisu w postaci struktury. Wzy zawierajce elementy
potomne mog by rozwijane lub zwijane po klikniciu ich.
Rys. 5 Przykad kontrolki TreeView a) caa b) zwinity jeden wze
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-7
Kontrolka Menu
Kontrolka Menu wywietla menu rozwijane. Wzy zawierajce elementy potomne s rozwijane w
momencie, kiedy przesunie si nad nimi kursor.
Rys. 6 Przykad dziaania kontrolki Menu
Podsumowanie
W tym rozdziale przedstawilimy podstawowe informacje dotyczce budowania witryn
internetowych w oparciu o strony wzorcowe. Pokazalimy, jak tworzy i zarzdza wygldem
witryny przy pomocy kompozycji oraz jak tworzy map witryny i wykorzystywa kontrolki
nawigacyjne do jej prezentowania.
Przykadowe rozwizanie
Tworzenie strony wzorcowej i stron zawartoci
Naszym zadaniem jest utworzenie szablonu serwisu internetowego dla klienta. Szablon ma
zawiera elementy przedstawione na Rys. 7.
Rys. 7 Szablon strony
Po utworzeniu nowego projektu aplikacji internetowej dodamy stron wzorcow do projektu. Za
pomoc menu Website -> Add New Item, lub poprzez kombinacj klawiszy Ctrl+Shift+A. W oknie
dialogowym Add New Item naley wybra szablon Master Page oraz w oknie Name nada mu
nazw SzablonStrony.master. Dodatkowo zaznaczymy opcj Place Code In Separate File, aby
umieci kod strony w osobnym pliku. Po klikniciu przycisku Add tworzony jest plik strony
wzorcowej zawierajcy ju dwie kontrolki ContentPlaceHolder. Pierwsza kontrolka umoliwia
dodanie treci do nagwka strony. Dziki temu na stronie zawartoci moemy doda plik CSS lub
skrypt wykonywany po stronie klienta. Druga kontrolka zawiera tre, ktra zostanie wypeniona na
stronie zawartoci.
Teraz naley odpowiednio przygotowa nasz stron wzorcow. Aby to wykona, usuniemy
kontrolk ContentPlaceHolder. Uatwi nam to opisanie kolejnych czynnoci. Nastpnie dodamy
do znacznika <div> waciwo ID="Strona". W kolejnym kroku dodamy dwa znaczniki <div>,
pierwszy o ID="Naglowek", drugi o ID="ObszarRoboczy". Nastpnie do znacznika
zawierajcego nagwek dopiszemy: Logo. Do znacznika <div> o ID="ObszarRoboczy" dodamy
kolejne dwa znaczniki <div> o ID="Menu" i ID="Tresc". Do znacznika <div> o ID="Menu"
wpiszemy Menu, a do znacznika o ID="Tresc" dodamy kontrolk ContentPlaceHolder.
Tak przygotowana strona wzorcowa bdzie stanowia baz dla kolejnych podstron. Warto jeszcze
zdefiniowa wygld poszczeglnych sekcji w CSS, ze szczeglnym uwzgldnieniem odpowiedniego
rozmieszczenia obszaru treci i menu.
Zauwamy, e strona wzorcowa rni si od formularza internetowego tylko dwiema kontrolkami
ContentPlaceHolder. Kontrolki te bd wypeniane przez strony zawartoci bazujce na tej
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-8
stronie. Strona zawartoci korzystajca z tej strony wzorcowej musi zawiera dwie kontrolki
Content, ktrych atrybut ContentPlaceHolderID jest rwny ContentPlaceHolder1 oraz
head. Naszym zadaniem jest umieci odpowiedni tre w tych kontrolkach, ktra pniej
zostanie poczona z szablonem strony i wywietlona w przegldarce uytkownika jako jedna
strona XHTML.
Nie moemy zobaczy szablonu strony bez strony zawartoci. Musimy zatem doda now stron
zawartoci bazujc na naszym szablonie.
Dodawanie stron zawartoci
Kolejnym krokiem jest dodanie strony zawartoci, ktra bdzie bazowaa na stronie wzorcowej.
Strona zawartoci to formularz internetowy, ktrego tre umieszczona jest w kontrolkach
Content odpowiadajcych kontrolkom ContentPlaceHolder na stronie wzorcowej.
Stron zawartoci dodajemy do aplikacji podobnie jak formularz internetowy, z t tylko rnic, e
w oknie Add New Item (Rys. 8) dodatkowo zaznaczamy opcj Select master page.
Rys. 8 Okno Add New Item dla strony zawartoci
Po klikniciu przycisku Add zostaniemy proszeni o wybranie strony wzorcowej (Rys. 9). W aplikacji
moemy zdefiniowa klika szablonw stron. Co wicej, szablony te mog by zagniedane.
Rys. 9 Okno Select a Master Page
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-9
Po wybraniu przycisku OK tworzona jest nowa strona zawartoci oparta na wybranej stronie
wzorcowej. Zawiera ona dyrektyw @Page, w ktrej oprcz standardowych waciwoci znajduje
si waciwo okrelajca szablon strony. Na stronie znajduj si rwnie dwie kontrolki Content
odwoujce si do odpowiednich kontrolek ContentPlaceHolder.
Po przeczeniu w widok Design (Rys. 10) widoczna jest strona bdca poczeniem strony
wzorcowej i strony zawartoci. Dziki temu programista widzi j tak, jak zostanie ona wysana do
uytkownika. Cz zdefiniowana w stronie wzorcowej jest oznaczona kolorem szarym, a
dodawanie kontrolek jest moliwe wycznie w kontenerze Content oznaczonym kolorem biaym.
Umieszczenie kursora na szarym tle powoduje zmian kursora na znak zakazujcy.
Rys. 10 Widok WYSIWYG strony zawartoci
Moemy teraz wywietli nasz stron zawartoci w przegldarce. Po uruchomieniu widzimy stron
skadajc si z elementw umieszczonych zarwno na stronie wzorcowej, jak i stronie zawartoci.
Konwersja istniejcej strony Web na stron zawartoci
Projektujc aplikacj internetow czasami potrzebujemy doda do projektu star stron
przygotowan bez uycia szablonu. W tym celu naley ze strony usun nastpujce znaczniki ze
starej strony:
<!DOCTYPE>
<html>
<head>
<body>
<form>
Naley pamita, e musimy usun znaczniki pocztkowe i kocowe zostawiajc waciw tre
strony. Nastpnie naley do dyrektywy @Page doda atrybut MasterPageFile, okrelajcy
lokalizacj pliku strony wzorcowej. Nastpnie pod dyrektyw @Page, a przed treci strony naley
doda znacznik:
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
Jeli potrzebujemy doda co w nagwku strony, to moemy to umieci wanie w tym znaczniku.
W naszym prostym przypadku nie potrzebujemy nic dodawa, zatem zostawiamy pust zawarto.
Kolejno do strony nale doda znacznik <asp:Content>. Znacznik ten musi posiada atrybuty ID
(dowolna nazwa), ContentPlaceHolderID (nazwa kontrolki ze strony wzorcowej
ContentPlaceHolder, w ktrej ma znale si tre strony) oraz runat="Server". W naszym
przypadku:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
Na kocu pliku musimy zamkn znacznik </asp:Content>.
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-10
Jeli w stronie wzorcowej znajduje si wicej ni dwie kontrolki ContentPlaceHolder, to naley
do strony zawartoci doda odpowiednio tyle kontrolek Content tak, aby kada kontrolka ze
strony wzorcowej miaa odniesienie na stronie zawartoci.
Sterowanie wygldem aplikacji przy uyciu kompozycji
Naszym zadaniem bdzie stworzenie wygldu witryny w taki sposb, aby moliwa bya szybka
zmiana wygldu strony. Do tego celu uyjemy kompozycji.
W celu utworzenia kompozycji naley w oknie Solution Explorer klikn prawym przyciskiem i
wybra Add ASP.NET Folder, a nastpnie Theme. W tym momencie moliwe jest okrelenie nazwy
folderu, ktra jednoczenie bdzie nazw kompozycji. W naszym przypadku bdzie to
SkorkaZima.
Nastpnie dodajemy do folderu plik CSS, w ktrym znajduj si odpowiednie definicje wygldu
elementw na stronie. Oprcz pliku CSS moemy rwnie wykorzysta plik motyww. W celu
dodania pliku motyww naley klikn prawym przyciskiem katalog zawierajcy kompozycj i
wybra z menu opcje Add New Item, a nastpnie Skin File i wcisn przycisk Add. W utworzonym
pliku naley nastpnie umieci znaczniki i parametry definiujce wygld strony.
Aktualnie wykorzystywan kompozycje przez aplikacje definiujemy w pliku Web.config w sekcji
<system.web> przy pomocy znacznika <pages>. Przykad:
<pages theme="SkorkaZima" />
Moliwe jest rwnie umieszczenie bezporedniego odniesienia do odpowiedniego pliku w sekcji
head kadej strony w aplikacji, jednak ustawienia wykonane w pliku Web.config przykrywaj
ustawienia lokalne w sekcji <head>.
Porady praktyczne
Strony wzorcowe
Praca ze stron wzorcow jest analogiczna do pracy z formularzem internetowym. Moliwe
jest dodawanie dowolnych kontrolek i wykonywanie dowolnego kodu aplikacji. Naley
jednak pamita, e kontrolki i kod tej strony bd wykonywane na wszystkich potomnych
stronach.
Przy dodawaniu do projektu strony ju istniejcej naley:
w dyrektywie @Page wskaza lokalizacj bezwzgldn strony wzorcowej rozpoczynajc od
gwnej strony serwisu "~/"
doda tyle kontrolek Content, aby wszystkie kontrolki ContentPlaceHolder miay
swoje odwzorowanie
Kompozycje
Tworzenie kompozycji naley zacz od stworzenia kompozycji bazowej, a nastpnie
zmienia j odpowiednio do potrzeb.
Aby moliwe byo projektowanie strony w trybie podgldu, powiniene okreli styl bazowy
w nagwku strony wzorcowej.
W katalogu kompozycji moemy umieci nie tylko pliki CSS i kompozycje, ale rwnie
elementy graficzne niezbdne dla odpowiedniego wygldu strony.
Nawigacja w serwisie
W pliku Web.sitemap okrelaj zawsze element nadrzdny <siteMapNode>, a nastpnie w
kontrolce Menu okrel waciwo ShowStartingNode="False".
W pliku Web.sitemap staraj si zawsze umieszcza waciwo description. Uatwi to
odnajdowanie wanych elementw uytkownikom strony
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-11
W pliku Web.sitemap nie musisz zawsze okrela waciwoci url. Jest to szczeglnie
przydatne dla nadrzdnych opcji menu.
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
rozumiesz jak dziaaj strony wzorcowe
umiesz dodawa do projektu stron wzorcow i stron zawartoci
potrafisz dodawa i zarzdza kompozycjami
potrafisz tworzy mapy witryny w pliku Web.sitemap oraz wykorzystywa te informacje do
wywietlania w kontrolkach nawigacyjnych
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. Strony wzorcowe wprowadzenie,
http://aspnet.codeguru.pl/GuidedTourPL/webdev/webdev15.htm
Na stronie znajdziesz opis najwaniejszych kwestii zwizanych ze stronami
wzorcowymi.
2. Stephen Walther, ASP.NET 2.0. Ksiga eksperta, Helion, 2008
W ksice autor porusza wiele zagadnie zwizanych z ASP.NET 2.0. Z ksiki
nauczysz si tworzy efektowne witryny internetowe, a take dba o ich
bezpieczestwo oraz wysok skalowalno. Dowiesz si, jak mona dodawa nowe,
jednolite strony do aplikacji webowych.
3. Webcast Wykorzystanie stron wzorcowych,
http://www.microsoft.com/poland/developer/net/webcasty/09_wykorzystanie_stron_wzorcow
ych/default.aspx
Webcast w jzyku polskim umoliwiajcy zapoznanie si w nieco ponad 11 min z
najwaniejszymi kwestiami zwizanymi ze stronami wzorcowymi w ASP.NET.
Nauczysz si dodawa strony wzorcowe i strony zwartoci. Poznasz rwnie
mechanizm tworzenia mapy witryny i dodawania kontrolek nawigacyjnych.
4. Instrukcja: Dodawanie nawigacji do witryny sieci Web,
http://www.microsoft.com/poland/developer/net/podrecznik/customizing-01.mspx
Fragment podrcznika do ASP.NET, ktry w prosty sposb na przykadzie pokazuje,
jak tworzy map witryny oraz dodawa kontrolki nawigacyjne.
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-12
Laboratorium podstawowe
Problem 1 (czas realizacji 25 min)
Firma Adventure Works chciaaby w Polsce otworzy sklep internetowy sprzedajcy rowery.
Poniewa poprzednia ankieta, ktr przygotowae bardzo im si spodobaa, zaproponowali Tobie
wykonanie tej strony. Ich grafik zaproponowa ukad przedstawiony na Rys. 11. Twoim zadaniem
jest przygotowanie strony wzorcowej oraz zaprezentowanie jej klientowi.
Rys. 11 Szkic wygldu strony
Zadanie Tok postpowania
1. Utwrz now
stron w Visual
Web Developer
2008 Express
Edition
Otwrz Visual Web Developer 2008 Express Edition.
Z menu wybierz File -> New Web Site.
Z listy Visual Studio installed templates wybierz ASP.NET Web Site.
Z listy Location wybierz File System, a w polu obok okrel lokalizacj dla
pliku w dowolnym miejscu na dysku.
Z listy Language wybierz Visual C#.
Kliknij OK.
2. Utwrz
wzorzec strony
Usu z projektu stron Default.aspx.
Wybierz z menu opcj Websites -> Add New Item lub nacinij
kombinacj Ctrl+Shift+A.
Z wywietlonego okna dialogowego wybierz nastpujce opcje:
Templates: Master Page
Language: Visual C#
Name: SzablonStrony.master
Place Code In Separate File: zaznaczona
Nacinij przycisk Add.
Program utworzy stron wzorcow z dwiema kontrolkami
ContentPlaceHolder.
Usu kontrolk ContentPlaceHolder o id="ContentPlaceHolder1".
3. Utworzenie
gwnych
elementw strony
Zmie tytu strony na Adventure Works.
Wewntrz znacznika <body> dodaj:
<div id="Strona">
<div id="Naglowek"></div>
<div id="Tresc"></div>
</div>
Piotr Bubacz Modu 6
ITA-103 Aplikacje Internetowe Projektowanie serwisw internetowych
Strona 6-13
4. Podzia
gwnych
elementw
Wewntrz znacznika zawierajcego nagwek (id="Naglowek") dodaj:
Logo
<div id="Menu">Menu</div>
<div id="ObszarLogowania">Zaloguj</div>
Wewntrz znacznika zawierajcego tre (id="Tresc") dodaj:
<div id="PierwszyObszarBoczny">Pierwszy obszar boczny</div>
<div id="DrugiObszarBoczny">Drugi obszar boczny</div>
<div id="ObszarRoboczy">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
5. Dodanie
nowego arkusza
stylw
Wybierz Website -> Add New Item.
Z listy Visual Studio installed templates wybierz Style Sheet.
W polu Name wpisz Style.css.
Kliknij OK.
6. Okrelenie
pozycji
w obszarach
roboczych
Przecz widok strony na Design lub Split.
Wybierz Format -> New Style.
W polu Selector wpisz #PierwszyObszarBoczny.
W grnej czci okna z listy Define in wybierz Existing Style Sheet,
a z listy rozwijanej URL wybierz Style.css.
Z listy Category wybierz Layout, a nastpnie okrel waciwo float:
left.
Z listy Category wybierz Position, a nastpnie okrel waciwoci width:
200 px oraz height: 300 px.
Kliknij OK.
Postpuj podobnie z selektorem #DrugiObszarBoczny, tylko zmie
waciwo float na right.
7. Okrelenie
podstawowego
wygldu
zawartoci strony
W pliku Style.css standardowo jest ju dodany selektor znacznika
<body>. Kliknij go prawym przyciskiem myszy i wybierz Build Style.
Okrel waciwoci font-family: Verdana, font-size: 8 pt i color:
#000033.
Z listy Category wybierz Background, a nastpnie okrel waciwo
backgroud-color: white.
Z listy Category wybierz Box, a nastpnie okrel waciwo margin: 0.
Upewnij si, e opcja Same for all jest zaznaczona.
Kliknij OK.
Otwrz plik SzablonStrony.master. W oknie Solution Explorer chwy
myszk plik Style.css i upu go w sekcji nagwka strony za znacznikiem
</title>. Zobacz jak zmieni si podgld pliku.
8. Okrelenie
wygldu
pozostaych
elementw strony
Przy pomocy narzdzi Visual Studio lub w kodzie pliku Style.css okrel
nastpujce style:
#Menu: kolor ta: #55BBFF, wielko tekstu: 7.5pt
#ObszarLogowania: wyrwnanie tekstu (waciwo text-align): do
prawej, kolor ta #C3DBEA, margines wewntrzny (ang. padding)
z gry i dou 5px, z lewej i prawej 10px
#ObszarRoboczy: kolor ta #EEE, margines wewntrzny (ang.
padding) z gry i dou 50px, z lewej i prawej 20px, margines z gry
i dou 0, z lewej i prawej 200px
Piotr Bubacz
ITA-103 Aplikacje Internetowe
9. Dodaj logo do
strony
Do aplikacji dodaj kat
nastpnie nazwij go
Do katalogu dodaj
wska nowo dodany folder, w
nastpnie wska obrazek
Usu napis
kontrolk
~/Ima
10. Dodawaj
stron z
zawartoci
W oknie
Websites
Z wywietlonego okna dialogowego wybierz nastpujce opcje:
Nacinij przycisk
W oknie dialogowym
SzablonStrony.master
11. Sprawdzenie
wygldu strony w
przegldarce
W oknie
Default.aspx
Projektowanie serwisw internetowych
Strona 6-14
Do aplikacji dodaj katalog Images. Wybierz Website
nastpnie nazwij go Images.
Do katalogu dodaj obrazek AWlogo.jpg. W oknie
wska nowo dodany folder, wybierz Website ->
nastpnie wska obrazek AWlogo.jpg.
Usu napis Logo na grze strony, a nastpnie w to miejsce
kontrolk Image i w oknie Properties w polu
~/Images/AWlogo.jpg.
W oknie Solution Explorer wska nazw aplikacji.
Websites -> Add New Item lub nacinij kombinacj
Z wywietlonego okna dialogowego wybierz nastpujce opcje:
Templates: Web Form
Language: Visual C#
Place Code In Separate File: zaznaczona
Select Master Page: zaznaczona
Nazwa: Default.aspx
Nacinij przycisk Add.
W oknie dialogowym Select a Master Page
SzablonStrony.master, a nastpnie wcinij OK.
Zawarto strony Default.aspx i wszystkich pozostaych mona doda
w kontrolce Content. Aby zmieni zawarto pozostaych czci strony
naley dokona edycji strony wzorcowej.
W oknie Solution Explorer kliknij prawym przyciskiem
Default.aspx i wybierz View In Browser.
Strona w przegldarce powinna wyglda podobnie jak na
Rys. 12 Wygld strony po zastosowaniu stylw
Modu 6
Projektowanie serwisw internetowych
Website -> New folder, a
W oknie Solution Explorer
> Add Existing Item, a
a nastpnie w to miejsce dodaj
w polu ImageUrl wpisz
wska nazw aplikacji. Wybierz z menu opcj
lub nacinij kombinacj Ctrl+Shift+A.
Z wywietlonego okna dialogowego wybierz nastpujce opcje:
Select a Master Page wybierz
i wszystkich pozostaych mona doda
. Aby zmieni zawarto pozostaych czci strony
kliknij prawym przyciskiem myszy plik
Strona w przegldarce powinna wyglda podobnie jak na Rys. 12.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Problem 2 (czas realizacji 25 min)
Aby przetestowa szablon strony chciaby doda stron z ankietami wykonan w wiczeniu w
module 4.
Zadanie Tok postpowania
1. Dodaj stron
do projektu
Wybierz
Znajd na dysku stron
Kliknij
Do projektu d
2. Usu
niepotrzebne
znaczniki
Usu nastpujce znaczniki ze strony:
3. Okrel
parametry
dyrektywy @Page
Na stronie w dyrektywie
MasterPageFile="~/SzablonStrony.master"
4. Dodaj
kontrolk Content
Po dyrektywie
<asp:Content ID="Content1
Na kocu strony po caej treci zamknij dodany znacznik
</asp:Content>
5. Dodaj do
strony gwnej
odnoniki do
ankiety
Do strony gwnej dodaj odnoniki odpowiednio uruchamiajcy ankiet
dla nowego klienta oraz dla osoby posiadajcej ju rower.
Przetestuj d
Projektowanie serwisw internetowych
Strona 6-15
Problem 2 (czas realizacji 25 min)
Aby przetestowa szablon strony chciaby doda stron z ankietami wykonan w wiczeniu w
Tok postpowania
Wybierz Website -> Add Existing Item.
Znajd na dysku stron Ankieta.aspx.
Kliknij Add.
Do projektu dodaj rwnie katalog Adv z jego zawartoci.
Usu nastpujce znaczniki ze strony:
<!DOCTYPE>
<html>
<head>
<body>
<form>
Nie zapomnij o znacznikach kocowych.
Na stronie w dyrektywie @Page dodaj atrybuty:
MasterPageFile="~/SzablonStrony.master" Title="
Po dyrektywie @Page dodaj znacznik:
<asp:Content ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
Na kocu strony po caej treci zamknij dodany znacznik
</asp:Content>.
Do strony gwnej dodaj odnoniki odpowiednio uruchamiajcy ankiet
dla nowego klienta oraz dla osoby posiadajcej ju rower.
Przetestuj dziaanie ankiety klikajc na linki na stronie gwnej.
Modu 6
Projektowanie serwisw internetowych
Aby przetestowa szablon strony chciaby doda stron z ankietami wykonan w wiczeniu w
z jego zawartoci.
Title="Ankieta"
ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
Na kocu strony po caej treci zamknij dodany znacznik
Do strony gwnej dodaj odnoniki odpowiednio uruchamiajcy ankiet
dla nowego klienta oraz dla osoby posiadajcej ju rower.
na stronie gwnej.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Problem 3 (czas realizacji 25 min)
Klient jest bardzo zadowolony z wyniku Twoich prac. Chciaby
nawigacyjne do strony. Zaproponowa, aby na stronie w miejscu, gdzie jest napis
si prawdziwe menu z rozsuwanymi elementami.
Zadanie Tok postpowania
1. Dodaj nowe
strony do
projektu
Do aplikacji internetowej utw
cztery
Uwagi.aspx
waciwoci:
Zapisz plik.
5. Wywietl
gwne kategorie
produktw
Do strony
Properities:
Dodaj kontrolk
Kliknij
W oknie
Strona 8-10
Wybierz Website -> Add New Item.
Z okna Templates wybierz LINQ to SQL Classes, w oknie
AdventureWorks.dbml.
W oknie z pytaniem o dodanie specjalnego pliku do katalogu
Rys. 3) wcinij Yes.
Rys. 3 Pytanie o przeniesienie pliku do katalogu
Do nowo otwartego pliku po lewej jego stronie
Relational Designer z okna Server Explorer przenie
Address
Customer
CustomerAddress
Product
ProductCategory
ProduktDescription
ProduktModel
ProduktModelProduktDescription
SalesOrderDetail
SalesOrderHeader
Zauwa, e oprcz tabel pojawiy si rwnie relacje midzy nimi.
apisz plik.
Do strony Produkty.aspx dodaj kontrolk LinqDataSource
Properities:
w polu ID wpisz KategorieLinqDataSource
w polu ContextTypeName wpisz AdventureWorksDataContext
w polu TableName wpisz ProductCategories
w polu Where wpisz ParentProductCategoryID=null
w polu Select wpisz new (ProductCategoryID, Name)
Dodaj kontrolk ListBox i zmie jej waciwo ID
Kliknij Smart Tag i wybierz Choose Data Source.
W oknie Data Source Configuration Wizard (Rys.
z listy rozwijanej Select a data Source
KategorieLinqDataSource
wcinij link Refresh Schema
z listy rozwijanej Select a data field to display In the ListBox
Name
z listy rozwijanej Select a data field for the value of the ListBox
wybierz ProductCategoryID
Modu 8
Kontrolki danych w ASP.NET
, w oknie Name wpisz
o dodanie specjalnego pliku do katalogu App_Code
Pytanie o przeniesienie pliku do katalogu App_Code
do obszaru The Object
przenie nastpujce tabele:
Zauwa, e oprcz tabel pojawiy si rwnie relacje midzy nimi.
LinqDataSource i w oknie
AdventureWorksDataContext
ParentProductCategoryID=null
new (ProductCategoryID, Name)
ID na KategorieListBox.
Rys. 4):
Select a data Source wybierz
Select a data field to display In the ListBox wybierz
Select a data field for the value of the ListBox
Piotr Bubacz Modu 8
ITA-103 Aplikacje Internetowe Kontrolki danych w ASP.NET
Strona 8-11
Rys. 4 Okno Data Source Configuration Wizard
Po klikniciu OK ponownie kliknij Smart Tag, a nastpnie zaznacz opcj
Enable AutoPostBack.
6. Wywietl list
podkategorii
Do strony dodaj kontrolk LinqDataSource i zmie jej waciwo ID na
PodkategorieLinqDataSource.
Kliknij SmartTag i wybierz Configure Data Source.
W oknie Choose a Content Object wybierz
AdventureWorksDataContext i kliknij Next.
W oknie Configure Data Selection z listy Tables wybierz
ProductCategories, w obszarze Select zaznacz ProductCategoryID oraz
Name.
Kliknij przycisk Where.
W oknie Configure Where Expression (Rys. 5):
z listy rozwijanej Column wybierz ParentProductCategoryID
z listy rozwijanej Operator wybierz ==
z listy rozwijanej Source wybierz Control
z listy rozwijanej Control ID wybierz KategorieListBox
w polu Default value wpisz -1
kliknij przycisk Add
Rys. 5 Konfiguracja w oknie Configure Where Expression
Piotr Bubacz Modu 8
ITA-103 Aplikacje Internetowe Kontrolki danych w ASP.NET
Strona 8-12
Dodaj kontrolk ListBox i okrel jej waciwo ID na
PodkategorieListBox. Kliknij Smart Tag i wybierz Choose Data Source.
W oknie Data Source Configuration Wizard wybierz:
z listy rozwijanej Select a data Source wybierz
PodkategorieLinqDataSource
z listy rozwijanej Select a data field to display In the ListBox wybierz
Name
z listy rozwijanej Select a data field for the value of the ListBox
wybierz ProductCategoryID
Po klikniciu OK ponownie kliknij Smart Tag, a nastpnie zaznacz opcj
Enable AutoPostBack.
7. Dodaj
kontrolk danych
do wywietlania
produktw
w wybranej
kategorii
Do strony dodaj kontrolk LinqDataSource zmie waciwo ID na
ProduktyLinqDataSource.
Kliknij Smart Tag i wybierz Configure Data Source.
W oknie Choose a Content Object wybierz
AdventureWorksDataContext i kliknij Next.
W oknie Configure Data Selection z listy Tables wybierz Products. W
obszarze Select wybierz ProductID, Name, ProductNumber, Color,
ListPrice.
Kliknij przycisk Where.
W oknie Configure Where Expression:
z listy rozwijanej Column wybierz ProductCategoryID
z listy rozwijanej Operator wybierz ==
z listy rozwijanej Source wybierz Control
z listy rozwijanej ControlID wybierz PodkategorieListBox
w oknie Default value wpisz -1
kliknij przycisk Add
8. Sformatuj
wywietlanie
produktw
Z okna Toolbox, sekcja Data do strony dodaj kontrolk GridView.
Kliknij Smart Tag i z listy rozwijanej Choose Data Source wybierz
ProduktyLinqDataSource.Kliknij Smart Tag kontrolki GridView, a
nastpnie wybierz opcje Edit Columns.
Za pomoc przycisku usu wszystkie pola za wyjtkiem
ProductNumber, Color i ListPrice.
Z list Available fields wybierz HyperLinkField i wcinij Add.
W obszarze HyperLinkField properities:
w polu HeaderText wpisz Nazwa produktu
w polu DataNavigateUrlFields wpisz ProductID
w polu DataNavigateUrlFormatString wpisz ~/Szczegoly.aspx?id={0}
w polu DataTextField wpisz Name
Przy pomocy przycisku ustal pole na pierwszej pozycji.
Dla pola ProductNumber okrel waciwo HeaderText="Numer
katalogowy".
Dla pola Color okrel waciwo HeaderText="Kolor".
Dla pola ListPrice okrel waciwo HeaderText="Cena" oraz
DataFormatString="{0:c}".
9. Wcz
stronicowanie
Dla kontrolki GridView okrel waciwoci:
Piotr Bubacz
ITA-103 Aplikacje Internetowe
wywietlanych
wynikw
10. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i przetestuj
produktw na stronie
Zmie waciwo
najlepiej wywietlana na stronie.
11. Napraw bd
wywietlania
kontrolki
GridView
W przegldarce wybierz gwn kategori, nastpnie wybierz kategori
podrzdn. Tera wybierz pono
Wybierz kontrolk
EnableViewState
Zapisz zmiany i ponownie przetestuj kontrolk
Problem 2 (czas realizacji
Twoim kolejnym zdaniem jest umoliwienie wyszukiwania okrelonego produktu. Wyniki
wyszukiwania maj zosta wywietlone wraz z kontrolk
umoliwiajce wyszukiwanie.
Zadanie Tok postpowania
1. Dodaj
kontrolk
uytkownika do
wyszukiwania
Wybierz
Kliknij prawym przyciskiem myszy dodany katalog i wybierz
Item
Na otwartej stronie
kontrolk
Dodaj
Dodaj kontrolk
Text="
Do metody obsugi przycisku dodaj nastpujcy kod:
string url = String.Format("~/
NazwaProduktuTextBox.Text);
Response.Redirect(url);
2. Do strony
Szukaj.aspx dodaj
kontrolk Szukaj
W widoku
przecignij
3. Dodaj stron
wywietlajc
wyniki
wyszukiwania
Do aplikacji dodaj stron
strony
Na stronie wpisz
Strona 8-13
AllowPaging: true
PageSize: 5
Zapisz zmiany w projekcie i przetestuj moliwo wywietlania
produktw na stronie Produkty.aspx.
Zmie waciwo PageSize kontrolki GridView
najlepiej wywietlana na stronie.
W przegldarce wybierz gwn kategori, nastpnie wybierz kategori
podrzdn. Tera wybierz ponownie inn kategori gwn.
Co si stao z kontrolk GridView? Dlaczego nadal jest wywietlana?
Wybierz kontrolk GridView i w oknie
EnableViewState z listy rozwijanej wybierz False.
Zapisz zmiany i ponownie przetestuj kontrolk GridView
Dlaczego tym razem kontrolka dziaa poprawnie?
(czas realizacji 15 min)
Twoim kolejnym zdaniem jest umoliwienie wyszukiwania okrelonego produktu. Wyniki
wyszukiwania maj zosta wywietlone wraz z kontrolk do wyszukiwania.
umoliwiajce wyszukiwanie.
Tok postpowania
Wybierz Website->New Folder i nazwij go Kontrolki
Kliknij prawym przyciskiem myszy dodany katalog i wybierz
Item. W oknie Add New Item:
W obszarze Template wybierz Web User Control
w polu Name wpisz Szukaj.ascx
z listy Language wybierz Visual C#
Na otwartej stronie wpisz Podaj nazw produktu:
kontrolk TextBox i zmie jej waciwo ID na na
Dodaj kolejno kontrolk RequiredFieldValidator i w oknie
w polu ID wpisz NazwaRequiredFieldValidator
w polu ControlToValidate wpisz nazwaTextBox
w polu ErrorMessage wpisz Podaj fragment nazwy produktu
w polu Text wpisz *
Dodaj kontrolk Button o waciwociach ID="
Text="Szukaj". W widoku Design kliknij dwukrotnie kontrolk
Do metody obsugi przycisku dodaj nastpujcy kod:
string url = String.Format("~/WynikiWyszukiwania
NazwaProduktuTextBox.Text);
Response.Redirect(url);
W widoku Design do strony Szukaj.aspx z okna
przecignij kontrolk Szukaj.ascx.
Do aplikacji dodaj stron WynikiWyszukiwania.aspx
strony SzablonStrony.master.
Na stronie wpisz Wyniki wyszukiwania:.
Modu 8
Kontrolki danych w ASP.NET
moliwo wywietlania
GridView tak, aby bya jak
W przegldarce wybierz gwn kategori, nastpnie wybierz kategori
wnie inn kategori gwn.
? Dlaczego nadal jest wywietlana?
i w oknie Properties w polu
.
GridView.
Dlaczego tym razem kontrolka dziaa poprawnie?
Twoim kolejnym zdaniem jest umoliwienie wyszukiwania okrelonego produktu. Wyniki
do wyszukiwania. Przygotuj elementy
Kontrolki.
Kliknij prawym przyciskiem myszy dodany katalog i wybierz Add New
Web User Control
Podaj nazw produktu:, a nastpnie Dodaj
nazwaTextBox.
i w oknie Properties:
RequiredFieldValidator
nazwaTextBox
fragment nazwy produktu
ID="szukajButton" oraz
kliknij dwukrotnie kontrolk Button.
Do metody obsugi przycisku dodaj nastpujcy kod:
WynikiWyszukiwania.aspx?Nazwa={0}",
z okna Solution Explorer
WynikiWyszukiwania.aspx opart na szablonie
Piotr Bubacz Modu 8
ITA-103 Aplikacje Internetowe Kontrolki danych w ASP.NET
Strona 8-14
W nowej linii dodaj kontrolk GridView i w oknie Properties:
w polu ID wpisz WynikiWyszukiwaniaGridView
w polu AutoGenerateColumns z listy rozwijanej wybierz False
w polu DataKeyNames wpisz ProductID
W widoku Source dodaj w ciele kontrolki GridView (pomidzy znaczniki
<asp:GridView> a </asp:GridView>):
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ProductID"
DataNavigateUrlFormatString="~/Szczegoly.aspx?id={0}"
HeaderText="Nazwa produktu" DataTextField="Name"
Text="Nazwa produktu" />
<asp:BoundField DataField="ProductNumber"
HeaderText="Numer katalogowy" SortExpression="ProductNumber" />
<asp:BoundField DataField="Color" HeaderText="Kolor"
SortExpression="Color" />
<asp:BoundField DataField="ListPrice" DataFormatString="{0:c}"
HeaderText="Cena" SortExpression="ListPrice" />
</Columns>
Poniej kontrolki GridView w widoku Source wpisz <br />Szukaj:<br />.
W widoku Design do ostatniego wiersza na stronie dodaj kontrolk
uytkownika Szukaj.ascx.
4. Dodaj kod
umoliwiajcy
wyszukiwanie
W pliku WynikiSzukania.aspx.cs do metody Page_Load dodaj
nastpujcy kod:
string nazwa = Request.QueryString["Nazwa"];
if (nazwa!=null)
{
AdventureWorksDataContext db = new AdventureWorksDataContext();
var produkty = from p in db.Products
where p.Name.Contains(nazwa)
select p;
WynikiWyszukiwaniaGridView.DataSource = produkty;
WynikiWyszukiwaniaGridView.DataBind();
}
5. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i przetestuj moliwo wyszukiwania
produktw.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Problem 3 (czas realizacji
Twj klient wymyli, e na stronie gwnej ma by wywietlana lista kategorii nadrzdnych
klikniciu ktrych uytkownik strony
wybran nadrzdn kategori.
Zadanie Tok postpowania
1. Dodaj
kontrolk
uytkownika
wywietlajc
gwne kategorie
Do katalogu
Kategorie.ascx
Nastpnie dodaj kontrolk
waciwo
Dodaj kontrolk
W
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
</ItemTemplate>
Zapisz zmiany.
2. Dodaj
kontrolk do
szablonu strony
Otwrz szablon strony
W widoku
po lewej stronie o
Zapisz zmiany.
3. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i sprawd
wywietlanie s odpowiednie podkategorie na stronie przegldania
produktw.
4. Dodaj
moliwo
wywietlania
podkategorii na
podstawie
parametru
wywoania strony
Otwrz plik
string katID= Request.QueryString["katID"];
if (katID != null)
5. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i sprawd
wywietlanie s odpowiednie podkategorie na stronie przegldania
produktw.
Strona 8-15
(czas realizacji 10 min)
Twj klient wymyli, e na stronie gwnej ma by wywietlana lista kategorii nadrzdnych
uytkownik strony bdzie przekierowywany na stron wywietlania produktw z
wybran nadrzdn kategori.
Tok postpowania
Do katalogu Kontrolki dodaj now kontrolk uytkownika o nazwie
Kategorie.ascx.
Nastpnie dodaj kontrolk LinqDataSource.
waciwo ID na KategorieLinqDataSource i w oknie
w polu ContextTypeName wpisz AdventureWorksDataContext
w polu Select wpisz new (ProductCategoryID, Name)
w polu TableName wpisz ProductCategories
w polu Where wpisz ParentProductCategoryID=null
Dodaj kontrolk Repeater i w oknie Properties:
w polu ID wpisz KategorieRepeater
w polu DataSourceID z listy rozwijanej wybierz
KategorieLinqDataSource".
W widoku Source w kontrolce Repeater dodaj:
<HeaderTemplate>
<strong>Wybierz kategori produktu</strong>
</HeaderTemplate>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="Server"
NavigateUrl='<%# "~/Produkty.aspx?KatID=" +
Eval("ProductCategoryID") %>' Text='<%# Eval("Name") %>'>
</asp:HyperLink> <br />
</ItemTemplate>
Zapisz zmiany.
Otwrz szablon strony SzablonStrony.master
W widoku Design przenie kontrolk do obszaru roboczego pooonego
po lewej stronie o ID="PierwszyObszarBoczny".
Zapisz zmiany.
Zapisz zmiany w projekcie i sprawd, czy po klikniciu na kategorie
wywietlanie s odpowiednie podkategorie na stronie przegldania
produktw.
Dlaczego nie s?
Otwrz plik Produkty.aspx.cs. Do metody Page_Loa
string katID= Request.QueryString["katID"];
if (katID != null)
{
KategorieListBox.SelectedValue = katID;
}
Zapisz zmiany w projekcie i sprawd, czy po klikniciu na kategorie
wywietlanie s odpowiednie podkategorie na stronie przegldania
produktw.
Modu 8
Kontrolki danych w ASP.NET
Twj klient wymyli, e na stronie gwnej ma by wywietlana lista kategorii nadrzdnych, po
przekierowywany na stron wywietlania produktw z
dodaj now kontrolk uytkownika o nazwie
W kontrolce zmie
i w oknie Properties:
AdventureWorksDataContext
new (ProductCategoryID, Name)
ParentProductCategoryID=null
z listy rozwijanej wybierz
<br />
<asp:HyperLink ID="HyperLink1" runat="Server"
%# "~/Produkty.aspx?KatID=" +
Text='<%# Eval("Name") %>'>
rolk do obszaru roboczego pooonego
czy po klikniciu na kategorie
wywietlanie s odpowiednie podkategorie na stronie przegldania
Page_Load dodaj:
czy po klikniciu na kategorie
wywietlanie s odpowiednie podkategorie na stronie przegldania
Piotr Bubacz Modu 8
ITA-103 Aplikacje Internetowe Kontrolki danych w ASP.NET
Strona 8-16
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 9
Wersja 1
LINQ w ASP.NET
Spis treci
LINQ w ASP.NET ................................................................................................................................... 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Uwagi dla studenta ...................................................................................................................... 5
Dodatkowe rda informacji....................................................................................................... 6
Laboratorium podstawowe .................................................................................................................. 7
Problem 1 (czas realizacji 10 min) ................................................................................................ 7
Problem 2 (czas realizacji 15 min) ................................................................................................ 8
Problem 3 (czas realizacji 10 min) ................................................................................................ 9
Problem 4 (czas realizacji 10 min) .............................................................................................. 10
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce technologii LINQ. Nauczysz
si, jak formuowa proste zapytania z wykorzystaniem zintegrowanego
jzyka zapyta i w jaki sposb poczy go z ASP.NET.
Cel moduu
Celem moduu jest przedstawienie technologii LINQ i moliwoci jego
wykorzystania w aplikacjach ASP.NET.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
wiedzia czym jest i jak dziaa LINQ
potrafi tworzy proste zapytania w LINQ
potrafi wykorzystywa LINQ w ASP.NET
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna podstawy jzyka XHTML
zna zasady pracy w rodowisku Visual Studio, w szczeglnoci
tworzenia stron internetowych
zna podstawy pracy z danymi w ASP.NET
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w moduach Podstawy HTML, Kaskadowe Arkusze Stylw CSS,
Wprowadzenie do ASP.NET oraz Kontrolki danych w ASP.NET.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-3
Przygotowanie teoretyczne
Przykadowy problem
Wikszo projektowanych programw manipuluje danymi w taki czy inny sposb. Dane s
najczciej przechowywane w relacyjnych bazach danych. Mimo to jest dua rnica midzy
nowoczesnymi jzykami programowania a bazami w sposobie, w jaki reprezentuj dane.
Najwiksz rnica tkwi w sposobie odwoywania si do danych w bazie. Pogram odwouje si do
bazy za pomoc API, ktre wymaga, aby zapytania byy przesane jako cigi znakw. Niestety nie
mam moliwoci weryfikacji poprawnoci tworzonych zapyta w czasie kompilacji, a jedynie w
czasie wykonania. Co wicej rnica, ta jest jeszcze bardziej widoczna przy odbieraniu wynikw.
Nowoczesne jzyki programowania przechowuj dane w postaci obiektw, natomiast bazy danych
organizuj je w wiersze.
Dotychczas poczenie tych dwch wiatw naleao do programisty osobno w kadej tworzonej
aplikacji. Najlepszym rozwizaniem byo uycie poredniej abstrakcyjnej warstwy dostpu, ktra
umoliwiaa przejcie pomidzy wiatem wierszy a wiatem obiektw.
Podstawy teoretyczne
Rozwizaniem problemu niekompatybilnoci wiata baz danych i nowoczesnych jzykw
programowania jest LINQ (ang. Language Integrated Query), nowe podejcie dostpu do danych,
ktre integruje jzyk zapyta bazodanowych bezporednio w jzykach programowania .NET. W
wyniku otrzymujemy nie wiersze, ale obiekty.
Korzyci:
niezaleno od typu danych
operowanie na danych jak na obiektach
lepsza integracja z jzykami programowania
wsparcie dla IntelliSense
Na Rys. 2 zostaa przedstawiona architektura i komponenty LINQ.W warstwie najbliszej klientowi
mamy jzyki programowania dostpne na platformie .NET, takie jak C# 3.0. Nastpnie mamy
warstw poredni, wykorzystywan do translacji zapyta formuowanych w jzykach
programowania z jednej strony, z drugiej za translacji danych z rnych rde na obiekty.
<book>
<title/>
<author/>
<year/>
<price/>
</book>
.NET Language Integrated Query
Rys. 2 Architektura i komponenty LINQ
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-4
Operatory
W LINQ moemy uywa wielu operatorw. Najwaniejsze z nich zostay przedstawione w Tab. 1.
Tab. 1 Rodzaje operatorw w LINQ
Rodzaj operacji Nazwa operatora
filtrowanie Where
projekcja Select, SelectMany
kolejno OrderBy, ThenBy
grupowanie GroupBy
kwalifikatory Any, All
partycje Take, Skip, TakeWhile, SkipWhile
zbiory Distinct, Union, Intersect, Except
elementy First, FirstOrDefault, ElementAt
agregacja Count, Sum, Min, Max, Average
konwersja ToArray, ToList, ToDictionary
rzutowanie OfType<T>
LINQ to XML
W przypadku odwoywania si do dokumentw zapisanych w XML, wykorzystujemy warstw
poredni LINQ to XML. Porwnajmy kod aplikacji do tworzenia dokumentu XML z wynikw
poszukiwania innego dokumentu XML.
W wyniku chcemy otrzyma nastpujc list osb mieszkajcych w USA:
<contacts>
<contact>
<name>Great Lakes Food</name>
<phone>(503) 555-7123</phone>
</contact>
...
</contacts>
W przypadku programowania bez uycia LINQ napiszemy:
XmlDocument doc = new XmlDocument();
XmlElement contacts = doc.CreateElement("contacts");
foreach (Customer c in customers)
if (c.Country == "USA") {
XmlElement e = doc.CreateElement("contact");
XmlElement name = doc.CreateElement("name");
name.InnerText = c.CompanyName;
e.AppendChild(name);
XmlElement phone = doc.CreateElement("phone");
phone.InnerText = c.Phone;
e.AppendChild(phone);
contacts.AppendChild(e);
}
doc.AppendChild(contacts);
Uywajc LINQ:
XElement contacts = new XElement("contacts",
from c in customers
Piotr Bubacz
ITA-103 Aplikacje Internetowe
where c.Country == "USA"
select new XElement("contact",
new XElement("name",
new XElement("phone", c.Phone)
)
);
Porwnanie obu fragmentw
Tab. 2 Porwnanie programowania XML z i bez uycia LINQ
Programowanie XML bez LINQ
model imperatywny
bazowanie na dokumencie
brak wbudowanych zapyta
wymaga duej pamici
LINQ to SQL
Na Rys. 3 przedstawiono dziaanie zapytania do bazy zdefiniowanego w LINQ.
Programista tworzy zapytanie w
na zapytanie SQL. Zapytanie SQL jest przesyane do bazy, skd wracaj wiersze. Nastpnie wiersze
s przetwarzane na obiekty i udostpniane aplikacji. Podobnie jest w przypadku dodawania
informacji do bazy.
Podsumowanie
W tym rozdziale przedstawione
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
rozumiesz jak dziaa LINQ
umiesz napisa proste zapytanie
Pamitaj o zapoznaniu si z
rozumiesz omawiane w nich
w uwagach, przeczytaj ponownie informacje z tego
Strona 9-5
where c.Country == "USA"
select new XElement("contact",
new XElement("name", c.CompanyName),
new XElement("phone", c.Phone)
fragmentw zostao przedstawione w Tab. 2.
ania XML z i bez uycia LINQ
Programowanie XML z uyciem LINQ
azowanie na dokumencie
wbudowanych zapyta
ymaga duej pamici
model deklaratywny
bazowanie na elemencie
zintegrowane zapytania
mniejsze i szybsze
przedstawiono dziaanie zapytania do bazy zdefiniowanego w LINQ.
Programista tworzy zapytanie w zintegrowanym jzyku wyrae, ktre warstwa porednia zamienia
na zapytanie SQL. Zapytanie SQL jest przesyane do bazy, skd wracaj wiersze. Nastpnie wiersze
s przetwarzane na obiekty i udostpniane aplikacji. Podobnie jest w przypadku dodawania
Rys. 3 LINQ to SQL
przedstawione zostay podstawy jzyka LINQ.
Jeste przygotowany do realizacji laboratorium jeli:
jak dziaa LINQ
napisa proste zapytanie wykorzystujc zintegrowany jzyk zapyta
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z
Modu 9
LINQ w ASP.NET
Programowanie XML z uyciem LINQ
odel deklaratywny
azowanie na elemencie
integrowane zapytania
przedstawiono dziaanie zapytania do bazy zdefiniowanego w LINQ.
warstwa porednia zamienia
na zapytanie SQL. Zapytanie SQL jest przesyane do bazy, skd wracaj wiersze. Nastpnie wiersze
s przetwarzane na obiekty i udostpniane aplikacji. Podobnie jest w przypadku dodawania
zintegrowany jzyk zapyta
zawartymi w tym module. Upewnij si, e
. Jeli masz trudnoci ze zrozumieniem tematu zawartego
zajrzyj do notatek z wykadw.
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-6
Dodatkowe rda informacji
1. Fabrice Marguerie, Steve Eichert, Jim Wooley, LINQ in Action, Manning Publications, 2008
Autor w prosty sposb przyblia zagadnienia zwizane z LINQ. Warto te zajrze na
stron ksiki http://linqinaction.net, gdzie autor umieszcza rne informacje na
temat LINQ.
2. Jacek Matulewski, C# 3.0 i .NET 3.5. Technologia LINQ, Helion, 2008
Dziki temu podrcznikowi nauczysz si pobiera dane z rnego rodzaju rde,
tworzy pliki XML w nowy, bardziej intuicyjny sposb, stosowa skadowane
rozszerzenia oraz nowego typu metody (oraz odpowiadajce im operatory),
zdefiniowane w najnowszej wersji jzyka C#. Ponadto dowiesz si, jak tworzy
wasne rda danych LINQ.
3. Paolo Pialorsi, Marco Russo, Introducing Microsoft LINQ, Microsoft Press, 2008
Ksika stanowi wprowadzenie do LINQ dla osb, ktre nie miay wczeniejszego
dowiadczenia ani z t technologi, ani z nowociami wprowadzonymi w C# 3.0. W
zwizy sposb omawia podstawy LINQ, w tym skadni, operatory i posugiwanie
si t technologi w odniesieniu do kolekcji obiektw, relacyjnych baz danych i
dokumentw XML.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Laboratorium podstawowe
Problem 1 (czas realizacji 10 min)
Aplikacja, ktra tworzysz dla Adventure Works wymaga rozszerze. Przede wszystkim Twojemu
klientowi zaley na wywietlaniu obrazkw produktw. Twoim zadaniem jest zaimplementowanie
sposobu pobierania obrazkw z bazy danych.
Zadanie Tok postp
1. Dodaj now
stron
Otwrz stron przygotowan w poprzednim wiczeniu.
Do aplikacji dodaj now stron
SzablonStrony.master
2. Na podstawie
parametru ID
wylij obrazek
W metodzie
if (Request.QueryString["id"] != null)
{
}
3. Zapis i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie. Wywietl stron
co jest wywietlane.
Dodaj do adresu strony
4. Dodaj
wywietlanie
obrazka na
stronie
Produkty.aspx
Otwrz stron
W widoku
Tag
Z listy
Przesu pole na pierwsz pozycj korzystajc z
W
5. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie. Wywietl stron
czy wywietlane s miniatury produktw.
Strona 9-7
Laboratorium podstawowe
zacji 10 min)
Aplikacja, ktra tworzysz dla Adventure Works wymaga rozszerze. Przede wszystkim Twojemu
klientowi zaley na wywietlaniu obrazkw produktw. Twoim zadaniem jest zaimplementowanie
sposobu pobierania obrazkw z bazy danych.
Tok postpowania
Otwrz stron przygotowan w poprzednim wiczeniu.
Do aplikacji dodaj now stron Miniatura.aspx opart o szablon strony
SzablonStrony.master
W metodzie Page_Load dodaj nastpujcy kod:
if (Request.QueryString["id"] != null)
AdventureWorksDataContext db = new AdventureWorksDataContext();
var miniaturka = (from p in db.Products
where p.ProductID == int.Parse(Request.QueryString["id"])
select p.ThumbNailPhoto).FirstOrDefault();
if (miniaturka != null)
{
Response.ContentType = "image/bmp";
Response.BinaryWrite(miniaturka.ToArray());
}
Zapisz zmiany w projekcie. Wywietl stron Miniatura.aspx
co jest wywietlane.
Dlaczego pojawia si pusta strona?
Dodaj do adresu strony ?id=771.
Co si zmienio? Dlaczego?
Otwrz stron Produkty.aspx.
W widoku Design wybierz kontrolk GridView, a nastpnie kilknij
Tag. Wybierz Edit Columns.
Z listy Available Fields wybierz ImageField i kliknij
Przesu pole na pierwsz pozycj korzystajc z przycisku
W obszarze ImageField Properties:
w polu DataAlternateTextField wpisz Name
w polu DataAlternateTextFormatString wpisz
w polu DataImageUrlField wpisz ProductID
w polu DataImageUrlFormatString wpisz ~/Miniatura.aspx?id={0}
Zapisz zmiany w projekcie. Wywietl stron Produkty.aspx
czy wywietlane s miniatury produktw.
Modu 9
LINQ w ASP.NET
Aplikacja, ktra tworzysz dla Adventure Works wymaga rozszerze. Przede wszystkim Twojemu
klientowi zaley na wywietlaniu obrazkw produktw. Twoim zadaniem jest zaimplementowanie
Otwrz stron przygotowan w poprzednim wiczeniu.
opart o szablon strony
AdventureWorksDataContext db = new AdventureWorksDataContext();
where p.ProductID == int.Parse(Request.QueryString["id"])
select p.ThumbNailPhoto).FirstOrDefault();
Response.BinaryWrite(miniaturka.ToArray());
Miniatura.aspx i sprawd,
a nastpnie kilknij Smart
i kliknij Add.
przycisku .
Miniatura {0}
~/Miniatura.aspx?id={0}
Produkty.aspx i sprawd,
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-8
Problem 2 (czas realizacji 15 min)
Teraz musisz przygotowa stron wywietlajc szczegy produktu Szczegoly.aspx.
Zadanie Tok postpowania
1. Przygotuj
stron
Szczegoly.aspx do
wywietlenia
informacji o
produkcie
Do aplikacji dodaj stron Szczegoly.aspx opart na stronie wzorcowej, a
nastpnie dodaj do niej kontrolk MultiView, a nastpnie dwie
kontrolki View o ID: prawidlowyView i blednyView.
W pierwszej kontrolce umie kontrolk Label i w oknie Properties w
polu (ID) wpisz nazwaLabel, natomiast pole Text zostaw puste.
Dodaj znacznik <br /> i dodaj kontrolk Image i w oknie Properties w
polu (ID) wpisz produktImage.
Dodaj znacznik <br /> i napisz Kategoria:, a nastpnie umie kontrolk
Label i w oknie Properties w polu (ID) wpisz kategoriaLabel, natomiast
pole Text zostaw puste.
Dodaj znacznik <br /> i napisz Cena:, a nastpnie umie kontrolk
Label o waciwociach ID="cenaLabel" i Text="".
Dodaj znacznik <br /> i napisz Kolor:, a nastpnie umie kontrolk
Label i w oknie Properties w polu (ID) wpisz kolorLabel, natomiast pole
Text zostaw puste.
Dodaj znacznik <br /> i napisz Opis:, a nastpnie dodaj znacznik <br /> i
umie kontrolk Label i w oknie Properties w polu (ID) wpisz opisLabel.
W kontrolce blednyView w widoku Source dodaj:
Nieprawidowy produkt<br />
Na kocu w widoku Source dodaj:
<a href="Produkty.aspx">Powrt do przegldania produktw</a>
2. Wywietl
produkt zgodnie z
przesan
informacj przez
metod GET
Do metody Page_Load dodaj:
MultiView1.SetActiveView(blednyView);
if (Request.QueryString["id"] != null)
{
AdventureWorksDataContext db = new AdventureWorksDataContext();
var produkt = (from p in db.Products
where p.ProductID == int.Parse(Request.QueryString["id"])
select new
{
ProductID = p.ProductID,
Name = p.Name,
Category = p.ProductCategory.Name,
ListPrice = p.ListPrice,
Color = p.Color,
Description =
p.ProductModel.ProductModelProductDescriptions.
First().ProductDescription.Description
}).FirstOrDefault();
if (produkt != null)
{
MultiView1.SetActiveView(prawidlowyView);
Page.Title = "Przegldasz: " + produkt.Name;
nazwaLabel.Text = produkt.Name;
produktImage.ImageUrl = "Miniatura.aspx?id=" +
produkt.ProductID.ToString();
kategoriaLabel.Text = produkt.Category;
cenaLabel.Text = String.Format("{0:C}", produkt.ListPrice);
kolorLabel.Text = produkt.Color;
opisLabel.Text = produkt.Description;
} }
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-9
3. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i przetestuj moliwo wywietlania
produktw na stronie Szczegoly.aspx.
Sprawd co si stanie, jak w adresie przypiszesz do id inn warto,
np. 1.
Sprawd co si stanie, jak w adresie przypiszesz do id cig znakw, np. a.
Problem 3 (czas realizacji 10 min)
Teraz musisz przygotowa kontrolk wywietlajc nowe produkty na szablonie strony .
Zadanie Tok postpowania
1. Dodaj
kontrolk
uytkownika
wywietlajc
nowe produkty
Do katalogu Kontrolki dodaj now kontrolk uytkownika o nazwie
NoweProdukty.ascx.
Nastpnie dodaj kontrolk ListView i w oknie Properties:
w polu ID wpisz NoweProduktyListView
w polu ItemPlaceholderID wpisz ListaPlaceHolder
W widoku Source w kontrolce ListView umie:
<LayoutTemplate>
<strong>Nasze nowe produkty:</strong><br />
<asp:PlaceHolder ID="ListaPlaceHolder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<div class="OknoProduktow" >
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# "~/Szczegoly.aspx?id="+Eval("ProductID") %>'
Text='<%#Eval("Name") %>' /> <br />
<asp:Image ID="ProduktyImage" runat="server"
ImageUrl='<%# "~/Miniatura.aspx?id=" + Eval("ProductID") %>'
AlternateText='<%# Eval("Name") %>' /> <br />
Kategoria: <%#Eval("ProductCategory.Name") %> <br />
Kolor: <%#Eval("Color") %> <br />
Cena: <%#Eval("ListPrice", "{0:C}") %><br />
</div>
</ItemTemplate>
W metodzie Page_Load umie:
AdventureWorksDataContext db = new AdventureWorksDataContext();
var noweProdukty = (from p in db.Products
orderby p.SellStartDate descending
select p).Take(4);
NoweProduktyListView.DataSource = noweProdukty;
NoweProduktyListView.DataBind();
Zapisz zmiany.
2. Dodaj
kontrolk do
szablonu strony
Otwrz szablon strony SzablonStrony.master.
W widoku Design przenie kontrolk do obszaru roboczego pooonego
po prawej stronie o ID=DrugiObszarBoczny.
Zapisz zmiany.
3. Dodaj
kontrolk do
gwnej strony
aplikacji
Otwrz stron Default.aspx.
W widoku Design przenie kontrolk do obszaru roboczego pooonego
w rodku strony.
Zapisz zmiany.
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-10
4. Zapis i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i sprawd, czy wywietlane s nowe produkty
w drugim obszarze roboczym na kadej stronie.
5. Ustal wygld
wywietlanych
produktw
Do pliku Style.css dodaj nastpujce informacje o stylu:
.OknoProduktow
{
background-color: #C3DBEA;
border-style: solid;
border-color: #55BBFF;
margin: 5px auto 0px auto;
width: 120px;
}
6. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i sprawd, jak wywietlane s nowe produkty
w drugim obszarze roboczym na kadej stronie.
Problem 4 (czas realizacji 10 min)
Ostatnim zadaniem jest przygotowanie kontrolki wywietlajcej losowe produkty.
Zadanie Tok postpowania
7. Dodaj widok i
funkcj w TSQL
umoliwiajc
losowo
wybieranie
rekordw z bazy
W oknie Server Explorer rozwi ga zawierajc plik
AdventureWorksLT_Data.mdf i kliknij prawym przyciskiem myszy ga
Views i wybierz Add New View.
W oknie Add Table wcinij przycisk Close. W oknie zapytania zastp
SELECT FROM nastpujcym zapytaniem:
SELECT NEWID() AS ID
Wcinij CTRL+S i wprowad nazw vLosuj.
Kliknij prawym przyciskiem myszy ga Functions i wybierz Add New->
Scalar-valued Function.
Zamie zapytanie na:
CREATE FUNCTION Losuj ()
RETURNS uniqueidentifier AS
BEGIN RETURN (SELECT ID FROM vLosuj) END
Wcinij CTRL+S.
8. Dodanie
funkcji Losuj do
obiektu
AdventureWorksD
ataContext
W oknie Solution Explorer otwrz App_Code\AdventureWorks.dbml.
Do prawej strony opisanej Create methods by dragging items dodaj z
okna Server Explorer funkcj Losuj z gazi Functions.
9. Dodaj
kontrolk
uytkownika
wywietlajc
nowe produkty
Do katalogu Kontrolki dodaj now kontrolk uytkownika o nazwie
WybraneProdukty.ascx.
Nastpnie dodaj kontrolk ListView i w oknie Properties:
w polu ID wpisz WybraneProduktyListView
w polu ItemPlaceholderID wpisz ListaPlaceHolder
W widoku Source w kontrolce umie:
<LayoutTemplate>
<strong>Wybrane produkty:</strong>
<asp:PlaceHolder ID="ListaPlaceHolder" runat="server" />
</LayoutTemplate>
Piotr Bubacz Modu 9
ITA-103 Aplikacje Internetowe LINQ w ASP.NET
Strona 9-11
<ItemTemplate>
<div class="OknoProduktow">
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# "~/Szczegoly.aspx?id="+Eval("ProductID") %>'
Text='<%#Eval("Name") %>' /> <br />
<asp:Image ID="ProduktyImage" runat="server"
ImageUrl='<%# "~/Miniatura.aspx?id=" + Eval("ProductID") %>'
AlternateText='<%# Eval("Name") %>' /> <br />
Kategoria: <%#Eval("ProductCategory.Name") %><br />
Kolor: <%#Eval("Color") %><br />
Cena: <%#Eval("ListPrice", "{0:C}") %><br />
</div>
</ItemTemplate>
W metodzie Page_Load umie:
AdventureWorksDataContext db = new AdventureWorksDataContext();
var noweProdukty = (from p in db.Products
orderby db.Losuj()
select p).Take(3);
WybraneProduktyListView.DataSource = noweProdukty;
WybraneProduktyListView.DataBind();
Zapisz zmiany.
10. Dodaj
kontrolk do
szablonu strony
Otwrz szablon strony SzablonStrony.master.
W widoku Design przenie kontrolk do obszaru roboczego pooonego
po lewej stronie o ID="PierwszyObszarBoczny".
Zapisz zmiany.
11. Dodaj
kontrolk do
gwnej strony
aplikacji
Otwrz stron Default.aspx
W widoku Design usu zawarto strony i umie kontrolk
WybraneProdukty.ascx na stron.
Zapisz zmiany.
12. Zapis i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i sprawd czy wywietlane s losowe
produkty w pierwszym obszarze roboczym na kadej stronie.
13. Zapisz i
przetestuj dodan
funkcjonalno
Zapisz zmiany w projekcie i sprawd jak wywietlane s losowe produkty
w pierwszym obszarze roboczym na kadej stronie.
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 10
Wersja 1
Bezpieczestwo serwisw
internetowych
Spis treci
Bezpieczestwo serwisw internetowych ........................................................................................... 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Uwagi dla studenta ...................................................................................................................... 9
Dodatkowe rda informacji....................................................................................................... 9
Laboratorium podstawowe ................................................................................................................ 10
Problem 1 (czas realizacji 20 min) .............................................................................................. 10
Problem 2 (czas realizacji 20 min) .............................................................................................. 12
Problem 3 (czas realizacji 5 min) ................................................................................................ 14
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce sposobw zabezpieczania
dostpu do aplikacji internetowej przy pomocy mechanizmw autoryzacji.
Poznasz kontrolki logowania oraz nauczysz si, jak mona ukrywa opcje
menu przed rnymi grupami uytkownikw.
Cel moduu
Celem moduu jest przedstawienie wbudowanych w ASP.NET
mechanizmw zabezpieczajcych dostp do aplikacji internetowych.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
potrafi wykorzysta uwierzytelnianie oparte na formularzu
potrafi zabezpiecza dostp do aplikacji przed nieautoryzowanymi
uytkownikami
potrafi okrela prawa dostpw dla rnych grup uytkownikw
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna podstawy HTML i CSS
zna zasady pracy w Visual Studio 2008
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w moduach Podstawy HTML, Kaskadowe Arkusze Stylw CSS
i Wprowadzenie do ASP.NET.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-3
Przygotowanie teoretyczne
Przykadowy problem
Tworzc aplikacje internetowe czsto napotykamy problem zwizany z dodaniem moliwoci
uwierzytelniania uytkownikw naszego serwisu. Dodatkowo musimy zapewni mechanizm
ograniczenia dostpu do zasobw dla okrelonych uytkownikw lub grup uytkownikw.
Uwierzytelnianie uytkownikw to nie tylko formularz, w ktrym wpisuje si nazw i haso. Za tym
zagadnieniem kryje si szereg innych kwestii: jak i gdzie przechowywa informacje
o uytkownikach, jak umoliwi rejestracje, jak uatwi proces odzyskiwania hasa, jak w kocu
ograniczy dostp do opcji menu i katalogw aplikacji.
W tym celu wykorzystujemy mechanizmy uwierzytelnienia i autoryzacji. Tworzenie takich
mechanizmw nie jest proste i musi by poprzedzone dogbn analiz problemu. W aplikacjach
internetowych zaley nam na szybkim tworzeniu rozwiza. W celu zapewnienia odpowiedniego
poziomu zabezpiecze moemy skorzysta z mechanizmw dostarczanych przez ASP.NET.
Tworzenie, rejestracja, logowanie, zmiana hasa, przypomnienie hasa to najczstsze przypadki
uycia zarzdzania uytkownikami. Tworzc takie formularze od podstaw musimy nie tylko
zapewni odpowiedni interfejs uytkownika, ale rwnie zapewni odpowiednie zapisanie tych
danych do repozytorium. ASP.NET dostarcza nam gotowy zbir podstawowych kontrolek
uatwiajcych te zadania.
Podstawy teoretyczne
Uwierzytelnianie uytkownikw
Uwierzytelnianie (ang. authentication) jest to proces, w ktrym sprawdza si, czy dany uytkownik
jest tym, za kogo si podaje. Proces ten najczciej wie si z podaniem przez uytkownika nazwy i
hasa. W ASP.NET wspierane s rne mechanizmy uwierzytelniania:
uwierzytelnianie Windows
uwierzytelnianie za pomoc formularza
uwierzytelnianie przy uyciu Windows Live ID
Uwierzytelnianie Windows
Uwierzytelnianie Windows mona wykorzystywa, jeli baza uytkownikw znajduje si na
kontrolerze domeny Windows. Najwaniejsz zalet takiego uwierzytelnienia jest moliwo
korzystania z istniejcych kont systemowych oraz to, e nie potrzeba pisa dodatkowego kodu
zarzdzajcego uwierzytelnieniem. Serwer IIS identyfikuje uytkownika za pomoc etonw
przyznanych uytkownikowi przy zalogowaniu do serwera.
W celu konfiguracji uwierzytelniania Windows naley w pliku Web.config w sekcji <system.web>
dopisa:
<authentication mode="Windows"/>
Uwierzytelnianie Windows moe by wykorzystywane tylko w przypadku posiadania kont przez
uytkownikw na serwerze. Taka sytuacja ma miejsce najczciej w przypadku aplikacji
intranetowych. Uwierzytelnianie Windows jest domyln metod uwierzytelniania w aplikacjach
ASP.NET.
Uwierzytelnianie za pomoc formularza
W przypadku gdy projektowana aplikacja ma dziaa w sieci Internet, posiadanie konta na serwerze
przez wszystkich potencjalnych uytkownikw aplikacji jest niemoliwe. Dodatkowo istnieje
potrzeba przechowywania informacji o uytkownikach w innym miejscu ni system uytkownikw
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-4
Windows. Najczciej dane takie przechowywane s w bazie danych. Uwierzytelnianie formularzy
umoliwia atwe i bezpieczne potwierdzanie tosamoci.
Uytkownik w przypadku tej metody uwierzytelniania musi skorzysta ze specjalnej strony do
wprowadzenia nazwy i hasa, ktre nastpnie jest sprawdzane z danymi zapisanymi w bazie
danych, specjalnych plikach lub innych rdach. W przypadku maej iloci uytkownikw moliwe
jest przechowywanie tych danych w pliku Web.config, jednak dla wikszych rozwiza lepiej jest
wykorzysta baz danych.
Standardowo uwierzytelnianie to wykorzystuje plik cookie do przechowywania informacji
o uwierzytelnieniu midzy stronami. Plik taki jest wysyany do serwera wraz z kadym daniem.
Istnieje moliwo wykorzystania adresu URL do przechowywania tej informacji w przypadku, kiedy
przegldarka uytkownika ma wyczon obsug ciasteczek.
Poniej zostaa przedstawiona podstawowa konfiguracje tego typu uwierzytelniania z dodatkowym
znacznikiem <forms> okrelajcym stron logowania Zaloguj.aspx.
<authentication mode="Forms">
<forms loginUrl="Zaloguj.aspx" />
</authentication>
Uwierzytelnianie przy uyciu Windows Live ID
Windows Live ID to oglnodostpny, jednolity system, umoliwiajcy dowolnym uytkownikom
nie tylko klientom Microsoft korzystanie ze wszystkich stron Microsoft wymagajcych logowania.
Kady zarejestrowany uytkownik otrzymuje swj indywidualny identyfikator, ktry pomaga mu w
poruszaniu si po wszystkich zasobach Microsoft, na caym wiecie. Windows Live ID jest np.
konieczny do wzicia udziau w spotkaniu (konferencji lub seminarium) dziki niemu rejestracja
uczestnikw odbywa si atwiej i szybciej.
Windows Live ID zosta udostpniony programistom, aby atwo mogli doczy globalne
uwierzytelnianie do swoich aplikacji. Dziki temu uytkownik nie musi posiada na naszej stronie
dodatkowego hasa. Wystarczy, e zaloguje si na dowolnej stronie wspierajcej t technologie i
ma dostp do wszystkich zasobw.
Przechowywanie informacji o uytkownikach w bazie danych
W przypadku uwierzytelnienie za pomoc formularza ASP.NET wykorzystuje standardowych
dostawcw SqlMembershipProvider i SqlRoleProvider. Wykorzystuj one baz danych SQL
Server do przechowywania informacji o uytkownikach i rolach. Informacje te s przechowywane w
szeregu tabel i dostp do nich nastpuje przez procedury skadowane. Standardowo informacje te
s przechowywane w bazie ASPNETDB.MDF w katalogu App_Data.
Umieszczajc aplikacje internetow na serwerze dostawcy mamy do czsto ograniczenie iloci
baz. Z tego wzgldu, jeli w aplikacji wykorzystywane s rwnie inne dane, do czsto s one
dodawane do tej wanie bazy. Nie jest to rozwizanie bezpieczne, poniewa znajomo nazwy bazy
danych moe uatwi atak. Dodatkowo jeli posiadamy ju gotowe rozwizanie bazodanowe i
chcemy rozszerzy nasz aplikacj o moliwo uwierzytelniania, moemy te informacje umieci w
naszej bazie danych.
Aby umieci niezbdne tabele i procedury w naszej bazie, musimy wykorzysta ASP.NET SQL
Server Registration Tool (aspnet_regsql.exe). Narzdzie to moe by uywane z linii polece lub z
poziomu graficznego kreatora. W przypadku uycia linii polece mamy wiksze moliwoci
konfiguracji narzdzia.
W tym celu musimy uruchomi lini polece VS 2008. W systemie Windows XP/2003 musimy
wybra Start -> Programy -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual
Studio 2008 Command Prompt, a nastpnie wyda polecenie:
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-5
aspnet_regsql -A all -C "Data Source=.\SQLEXPRESS;Integrated
Security=True;User Instance=True" -d "X:\Projekt\APP_DATA\moja_baza.mdf"
Gdzie X:\Projekt to cieka do naszego projektu strony, a moja_baza.mdf, to plik zawierajcy
baz danych aplikacji.
Po utworzeniu niezbdnych tabel i procedur naley poinformowa dostawcw o koniecznoci
korzystania z naszej bazy danych. W tym celu do pliku Web.config musimy doda do sekcji
<system.web> nastpujce informacje:
<roleManager enabled="true" defaultProvider="CustomizedRoleProvider">
<providers>
<add name="CustomizedRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="ConnectionString" />
</providers>
</roleManager>
<membership defaultProvider="CustomizedMembershipProvider">
<providers>
<add name="CustomizedMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ConnectionString" />
</providers>
</membership>
Gdzie ConnectionString to nazwa naszego poczenia do bazy skonfigurowana w sekcji
connectionStrings.
Autoryzacja uytkownikw
Autoryzacja (ang. authorization) to proces, w ktrym sprawdzane jest, czy uytkownik o ustalonej
wczeniej tosamoci ma prawo dostpu do zasobw, o ktre prosi. Uprawnienia mog dotyczy
np. dostpu do katalogu lub pliku.
Dostp do plikw
Autoryzacja dostpu do pliku jest zwizana z prawami, jakie uytkownik ma w systemie, zatem aby
uywa tej metody naley stosowa uwierzytelnianie Windows. W celu konfiguracji uprawnie
naley wykorzysta narzdzia sytemu i skonfigurowa odpowiednie poziomy dostpu dla
uytkownikw.
Dostp do pliku w obrbie aplikacji
W przypadku plikw w obrbie aplikacji moliwe jest okrelenie dostpu do pojedynczej strony lub
wirtualnego katalogu w aplikacji sieciowej. Moliwe jest uycie tego sposobu autoryzacji ze
wszystkimi sposobami uwierzytelnienia.
Dostp do katalogu mona ograniczy w pliku Web.config umieszczonym w gwnym katalogu
aplikacji lub katalogu, ktrego dotycz dane prawa.
W celu ustalenia praw w wybranym katalogu naley utworzy w nim plik Web.config, a nastpnie w
sekcji <authorization> zezwoli (element <allow>) lub zabroni (element <deny>) dostpu do
niego okrelonym uytkownikom lub grupom uytkownikw.
Do okrelania roli dopuszcza si rwnie uywanie nastpujcych symboli zastpczych:
* okrela dowolnego uytkownika
? okrela uytkownika anonimowego
Przykad zezwolenie dostpu dla uytkownikw Adam, Karol oraz Michal i zabronienie dostpu
dla uytkownikw anonimowych.
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-6
<authorization>
<allow users="Adam, Karol, Michal" />
<deny users="?" />
</authorization>
W celu ustalenia praw dla caej aplikacji z okreleniem katalogw aplikacji naley w gwnym pliku
Web.config doda sekcj <location path="ciezka_do_katalogu">, a nastpnie sekcj
<system.web>, a w niej sekcj <authorization>. Przykad:
<location path="Admin">
<system.web>
<authorization>
<allow roles="Administrator" />
<deny users="*" />
</authorization>
</system.web>
</location>
Kontrolki logowania
Kontrolki logowania stanowi zbir kontrolek serwerowych implementujcych wszystkie
najwaniejsze elementy niezbdne do zarzdzania uytkownikami i ich uwierzytelniania.
Kontrolka Login
Kontrolka Login (Rys. 2) umoliwia uwierzytelnienie uytkownika. Uwierzytelnienie odbywa si z
pomoc formularza przy uyciu obiektu MembershipProvider zdefiniowanego w pliku
Web.config.
Rys. 2 Kontrolka Login
Mechanizmy uwierzytelniania umoliwiaj zapamitanie uytkownika w pliku cookie, dziki temu
nie musi on za kadym razem wpisywa danych logowania.
Kontrolka ChangePassword
Kontrolka ChangePassword (Rys. 3) umoliwia zalogowanemu uytkownikowi zmian hasa.
Udana zmiana hasa powoduje wysanie do uytkownika wiadomoci e-mail.
Rys. 3 Kontrolka ChangePassword
Wysanie poczty elektronicznej jest moliwe po wczeniejszym skonfigurowaniu parametrw
serwera SMTP w pliku Web.config. Mona to rwnie zrobi przy pomocy ASP.NET Web Site
Administration Tool.
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-7
Przykad konfiguracji serwera poczty w pliku Web.config:
<system.net>
<mailSettings>
<smtp from="od">
<network host="adresSerwera" password="haslo" userName="uzytkownik" />
</smtp>
</mailSettings>
</system.net>
Kontrolka CreateUserWizard
Kontrolka CreateUserWizard (Rys. 4) umoliwia rejestracj nowego uytkownika. Nowy
uytkownik musi poda nazw, haso, adres e-mail oraz sekretne pytanie i odpowied . Sekretne
pytanie i odpowied su do odzyskiwania hasa w przypadku, gdy uytkownik je zapomni.
Udane utworzenie uytkownika powoduje wysanie wiadomoci elektronicznej na podany adres.
Rys. 4 Kontrolka CreateUserWizard
Kontrolka PasswordRecovery
Kontrolka PasswordRecovery umoliwia uytkownikowi przypomnienie hasa. Kontrolka po
wpisaniu nazwy uytkownika wymaga podania odpowiedzi na sekretne pytanie. Jeli odpowied
jest prawidowa, to wysyana jest wiadomo zawierajca nowe haso.
Rys. 5 Kontrolka PasswordRecovery
Kontrolka LoginView
Kontrolka LoginView jest kontenerem umoliwiajcym wywietlenie zawartoci w zalenoci od
tego, czy i kto jest zalogowany.
Standardowo kontrolka rozpoznaje uytkownika anonimowego (<AnonymousTemplate>) i
zalogowanego (<LoggedInTemplate>). Dla kadego ze stanw moliwe jest zdefiniowanie
osobnej zawartoci. Przykad:
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-8
<asp:LoginView ID="LoginView1" runat="server">
<LoggedInTemplate>
Zawarto dla uytkownika zalogowanego
</LoggedInTemplate>
<AnonymousTemplate>
Zawarto dla uytkownika anonimowego
</AnonymousTemplate>
</asp:LoginView>
Kontrolka LoginStatus
Kontrolka LoginStatus umoliwia wywietlenie konfigurowalnych odnonikw w zalenoci od
tego, czy uytkownik jest zalogowany (Logout) czy anonimowy (Login). Jeli uytkownik nie jest
zalogowany, to po klikniciu na odnonik Login zostaje przekierowany na stron logowania
zdefiniowan w pliku Web.config w atrybucie loginUrl sekcji <authentication>. Jeli
uytkownik jest zalogowany, to kliknicie przycisku Logout zostaje wylogowany i przekierowany
na stron podan w atrybucie LogoutPageUrl kontrolki. Przykad:
<asp:LoginStatus ID="LoginStatus1" runat="server"
LogoutAction="Redirect" LogoutPageUrl="Default.aspx" />
Kontrolka LoginName
Kontrolka LoginName wywietla nazw uytkownika. Jest wykorzystywana najczciej do
wywietlenia komunikatu powitalnego dla uytkownika. Przykad:
Witaj <asp:LoginName ID="LN1" runat="server" />!
Ukrywanie opcji menu
W aplikacjach internetowych zachodzi czsto potrzeba ukrywania pewnych elementw
nawigacyjnych przed uytkownikami, ktrzy nie maj odpowiednich uprawnie, np. wybranych
opcji menu.
Aby tego dokona, naley doda atrybut roles do pliku Web.sitemap oraz w pliku Web.config
ustawi waciwo securityTrimmingEnabled obiektu XmlSiteMapProvider na warto
true.
Naley pamita o tym, e ukrycie przed uytkownikiem odnonika do strony nie zabrania mu do
niej dostpu. Aby ograniczy dostp do folderu lub pliku, naley skonfigurowa sekcj
<authorization> w pliku Web.config.
Koniecznym zatem jest jawne okrelenie roli jednoczenie na poziomie uprawnie do folderw
(Web.config), jak i wzw, z ktrymi nie jest skojarzony adres URL (Web.sitemap).
Konfiguracja atrybutu roles w pliku Web.sitemap
Konfiguracja atrybutu roles odbywa si poprzez dodanie go do sekcji <siteMapNode> i
przypisanie do niego odpowiednich rl. Przykad:
<siteMapNode
title="Administracja"
description="Zarzdzaj witryn"
roles="Administrator">
...
</siteMapNode>
Konfiguracja pliku Web.config
W pliku Web.config w sekcji <system.web> naley doda domylnego dostawc mapy serwisu
XmlSiteMapProvider. Przykad:
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true" >
<providers>
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-9
<add
name="XmlSiteMapProvider"
description="Domylny dostawca mapy serwisu."
type="System.Web.XmlSiteMapProvider"
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
Podsumowanie
W tym rozdziale przedstawione zostay zagadnienia zwizane z uwierzytelnianiem uytkownikw
przy uyciu formularzy. Pokazano jak zabezpiecza dostp do katalogw oraz opcji menu.
Zaprezentowano kontrolki uatwiajce najczstsze zadania przy zarzdzaniu uytkownikami.
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
umiesz skonfigurowa uwierzytelnianie za pomoc formularza
umiesz okreli dostp do wybranego katalogu w aplikacji
znasz kontrolki logowania i wiesz kiedy moesz je uy
potrafisz ukry opcje menu przed rnymi grupami uytkownikw
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. Scott Mitchell, Examining ASP.NET 2.0's Membership, Roles, and Profile,
http://aspnet.4guysfromrolla.com/articles/120705-1.aspx
12-czciowy artyku poruszajcy praktyczne zagadnienia zwizane z zarzdzaniem
uytkownikami, rolami i profilami. Nie tylko dobrze przedstawiona teoria, ale
przede wszystkim porady praktyczne i rozwizania najczciej spotykanych
problemw.
2. Jakub Zagrski, Portal Internetowy w ASP.NET 2.0 z czym to si je?,
http://www.codeguru.pl/article-560.aspx
Artyku dotyczcy wielu aspektw zwizanych z tworzeniem portalu
internetowego, z ciekawym opisem kwestii zwizanych z uwierzytelnieniem.
3. How To: Use Membership in ASP.NET 2.0, http://msdn.microsoft.com/en-
us/library/ms998347.aspx
Obszerny artyku zespou patterns & practices przedstawiajcy kwestie
wykorzystania uwierzytelniania w aplikacjach ASP.NET.
4. Stefan Schackow, Professional ASP.NET 2.0 Security, Membership, and Role Management, Wrox,
2006
Autor w ksice poruszy wiele zagadnie zwizanych z bezpieczestwem, wcznie
z zabezpieczaniem konfiguracji. Ksika zawiera szczegowe informacje dotyczce
wszystkich najwaniejszych obszarw bezpieczestwa aplikacji ASP.NET.
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-10
Laboratorium podstawowe
Problem 1 (czas realizacji 20 min)
Przygotowujesz aplikacj internetow dla firmy Adventure Works, ktra planuje ekspansje na rynku
internetowym w Polsce. Aktualnie aplikacja umoliwia ju przegldanie produktw oraz zawiera
klika ciekawych elementw uatwiajcych sprzeda produktw. Kolejnym krokiem w rozwoju
aplikacji jest implementacja uwierzytelniania jej uytkownikw. W bazie dostarczonej do
rozbudowy istniej ju informacje o uytkownikach, jednak ze wzgldu na krtki czas implementacji
aplikacji Twj zesp zaproponowa wykorzystanie wbudowanych mechanizmw uwierzytelniania.
Na szczcie klient si zgodzi. Twj zesp sprawdzi, e mechanizm ten potrzebuje bazy danych
ASPNETDB. Niestety na serwerze wykupionym przez klienta nie ma moliwoci dodania drugiej
bazy danych. Musisz zatem zintegrowa baz uwierzytelniania z istniejc baz danych oraz
utworzy dwch uytkownikw: admin i karol.
Zadanie Tok postpowania
1. Dodaj tabele i
procedury z
uwierzytelniajce
do istniejcej bazy
danych
Otwrz aplikacj internetow przygotowan w poprzednim module.
W oknie Solution Explorer wybierz baz danych
AdventureWorksLT_Data.mdf znajdujc si w katalogu App_Data.
Skopiuj ciek dostpu znajdujca si w oknie Properties w polu
FullPath.
W systemie Windows XP/2003 wybierz Start -> Programy -> Microsoft
Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008
Command Prompt.
W linii polece wpisz nie kopiuj:
aspnet_regsql -A all -C "Data Source=.\SQLEXPRESS;Integrated
Security=True;User Instance=True" -d
Dodaj na kocu wpisanego polecenia odstp, a nastpnie wklej
skopiowan ciek (kliknij prawym przyciskiem myszy, a nastpnie
wybierz Wklej).
2. Dodaj
informacj o
korzystaniu z
innej bazy do
pliku Web.config
Otwrz plik Web.config.
Do sekcji <system.web> dodaj nastpujce informacje:
<roleManager enabled="true"
defaultProvider="CustomizedRoleProvider">
<providers>
<add name="CustomizedRoleProvider"
type="System.Web.Security.SqlRoleProvider"
applicationName="AdventureWorks"
connectionStringName="ConnectionString" />
</providers>
</roleManager>
<membership defaultProvider="CustomizedMembershipProvider">
<providers>
<add name="CustomizedMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
applicationName="AdventureWorks"
connectionStringName="ConnectionString" />
</providers>
</membership>
Odnajd sekcj <connectionStrings>, a nastpnie znacznik <add>.
Skopiuj zawarto waciwoci name i wklej dwukrotnie w miejsce
ConnectionString (wyrnione miejsca w kodzie powyej) w dodanej
Piotr Bubacz Modu 10
ITA-103 Aplikacje Internetowe Bezpieczestwo serwisw internetowych
Strona 10-11
uprzednio fragmencie konfiguracji.
3. Uruchom
narzdzie
administracyjne
Uruchom ASP.NET Web Site Administration Tool, wybierajc z menu
gwngo Websites -> ASP.NET Configuration.
Zostanie uruchomiona przegldarka i wywietli si strona przedstawiona
na Rys. 6.
Rys. 6 ASP.NET Web Site Administration Tool
4. Dodaj
uytkownikw do
aaplikacji
Wybierz z menu zakadk Security, a nastpnie kliknij odnonik Use the
security Setup Wizard to configure security step by step. Nacinij
przycisk Next.
W kroku drugim (Select Access Method) okrel metod odstpu,
zaznaczajc opcj From the Internet. Nacinij przycisk Next.
W kroku trzecim (Data Store) nacinij przycisk Next.
W kroku czwartym (Define Roles) zaznacz opcj Enable roles for this
Web site. Nacinij przycisk Next. W polu tekstowym New Role Name
wpisz:
Administrator i wcinij Add Role
User i wcinij Add Role
Nacinij przycisk Next.
W kroku pitym (Add New Users) dodaj nowego uytkownika, podaj
nastpujce dane:
User Name: admin
Password: Pa$$word
Confirm Password: Pa$$word
E-mail: {adres e-mail}
Security Question: Ulubiony kolor
Security Answer: zielony
Nacinij przycisk Create User. Dodaj kolejnego uytkownika:
User Name: karol
Password: Pa$$word
Piotr Bubacz
ITA-103 Aplikacje Internetowe
Nacinij przycisk
W kroku szstym (
do katalogw dla poszczeglnych uytkownikw lub grup
przycisk
Krok sidmy informuje o zakoczeniu procesu konfigu
zabezpiecze.
Na
oraz ilo rl (
5. Przypisz konta
uytkownikw do
rl
W zakadce
P
uytkownika zaznaczajc pola wyboru
P
uytkownika zaznaczajc odpowiednie pole wyboru
6. Skonfiguruj
konto pocztowe
Wybierz zakadk
email settings
w
korzystasz
2. Dodaj
kontrolk
UpdatePanel
Do strony dodaj kontrolk
mysz
W kontrolce
Do kontrolki
Poza kontrolk
oknie
3. Dodaj
procedur obsugi
zdarzenia
Page_Load
Otwrz plik
kod
t1Label.Text = DateTime.Now.ToLongTimeString();
t2Label.Text = DateTime.Now.ToLongTimeString();
4. Zapisz i
sprawd dziaanie
strony
Zapisz zmiany i uruchom formularz.
Wcinij przycisk
5. Zapoznaj si z
zaletami
czciowej
aktualizacji
strony.
Do aplikacji dodaj kolejn stron
Do strony dodaj kontrolk
W kontrolce
kategoria
Poza kontrolk
Zapisz i uruchom formularz. Za pomoc przyciskw
miesice w jednej i drugiej kontrolce.
6. Zapoznanie z
moliwoci
odwieania
zawartoci
kontrolki
UpdatePanel przy
Do aplikacji dodaj kolejn stron
Do strony dodaj kontrolk
W kontrolce
Strona 13-9
Laboratorium podstawowe
(czas realizacji 25 min)
Przed wykorzystaniem technologii ASP.NET AJAX Twj zesp postanowi wysa Ci na
Twoim zadaniem jest zapoznanie si z moliwociami wykorzystania tej technologii w Waszych
Wynikiem Twoich prac maj by testy wszystkich kontrolek dostepnych
Tok postpowania
Otwrz Visual Studio wybierz File -> New -> Web Site
W oknie dialogowym New Web Site okrel nastpujce waciwoci
szablon: ASP.NET Web Site
lokalizacja: z listy rozwijanej wybierz File System
pooenie strony
jzyk: Visual C#
Do strony dodaj kontrolk ScriptManager i UpdatePanel
mysz z okna Toolbox (kategoria AJAX Extensions
W kontrolce UpdatePanel umie kontrolk Label
w polu ID wpisz t1Label
w polu Text usu zawarto
Do kontrolki UpdatePanel dodaj kontrolk Button
Poza kontrolk UpdatePanel umie dodatkow kontrolk
oknie Properties:
w polu ID wpisz t2Label
w polu Text usu zawarto
Otwrz plik Default.aspx.cs i do metody Page_Load
kod, wywietlajcy aktualn dat w kontrolkach Label
t1Label.Text = DateTime.Now.ToLongTimeString();
t2Label.Text = DateTime.Now.ToLongTimeString();
Zapisz zmiany i uruchom formularz.
Wcinij przycisk Button.
Ktra kontrolka jest aktualizowana? Dlaczego?
Do aplikacji dodaj kolejn stron ASPX.
Do strony dodaj kontrolk ScriptManager oraz UpdatePanel
W kontrolce UpdatePanel umie kontrolk Calendar
kategoria Standard.
Poza kontrolk UpdatePanel umie kolejn kontrolk
Zapisz i uruchom formularz. Za pomoc przyciskw
miesice w jednej i drugiej kontrolce.
Czy mona zaobserwowa rnic?
Do aplikacji dodaj kolejn stron ASPX.
Do strony dodaj kontrolk ScriptManager oraz UpdatePanel
W kontrolce UpdatePanel umie kontrolk Label
w polu ID wpisz t1Label
w polu Text usu zawarto
Modu 13
ASP.NET AJAX
Przed wykorzystaniem technologii ASP.NET AJAX Twj zesp postanowi wysa Ci na zwiady.
Twoim zadaniem jest zapoznanie si z moliwociami wykorzystania tej technologii w Waszych
Wynikiem Twoich prac maj by testy wszystkich kontrolek dostepnych
Web Site.
okrel nastpujce waciwoci:
File System, a nastpnie okrel
UpdatePanel, przecigajc je
s).
Label i w oknie Properties:
Button.
umie dodatkow kontrolk Label i w
Page_Load dodaj nastpujcy
Label:
t1Label.Text = DateTime.Now.ToLongTimeString();
t2Label.Text = DateTime.Now.ToLongTimeString();
UpdatePanel.
Calendar z okna Toolbox
umie kolejn kontrolk Calendar.
Zapisz i uruchom formularz. Za pomoc przyciskw > kontrolki zmie
UpdatePanel.
Label i w oknie Properties:
Piotr Bubacz
ITA-103 Aplikacje Internetowe
uyciu
zewntrznego
przycisku
Poza kontrolk
Dwukrotnie
Click
t1Label.Text = DateTime.Now.ToLongTimeString();
Zapisz zmiany i uruchom formularz. Kliknij przycisk.
Przejd do widoku
a nastpnie w oknie
W oknie
listy zostanie dodany wyzwalacz i w
AsyncPostB
Kliknij przycisk
Zapisz zmiany i uruchom formularz. Kliknij przycisk.
7. Zapoznanie z
moliwociami
wykorzystania
kontrolki
UpdateProgress.
Do aplikacji dodaj kolejn stron
Do strony dodaj kontrolk
W kontrolce
Do kontrolki
Kliknij dwukrotnie
Click
System.Threading.Thread.Sleep(3000);
//powysza linijka suy jednie celom TESTOWYM!!
t1Label.Text = DateTime.Now.ToLongTimeString();
Poza kontrolk
Strona 13-10
Poza kontrolk UpdatePanel dodaj do formularza kontrolk
Dwukrotnie kliknij dodan kontrolk. W metodzie obsugi zdarzenia
Click przycisku dodaj:
t1Label.Text = DateTime.Now.ToLongTimeString();
Zapisz zmiany i uruchom formularz. Kliknij przycisk.
Czy dokonaa si pena czy czciowa aktualizacja strony? Dlaczego?
Przejd do widoku Design formularza. Wybierz kontrolk
a nastpnie w oknie Properities w polu Triggers wybierz
W oknie UpdatePanelTrigger Collection Editor nacinij przycisk
listy zostanie dodany wyzwalacz i w
AsyncPostBack:Button1.Click properities:
w polu ControlID wpisz Button1
w polu EventName wybierz z listy rozwijanej Click
Rys. 5 Okno UpdatePanelTrigger Collection Editor
Kliknij przycisk OK.
Zapisz zmiany i uruchom formularz. Kliknij przycisk.
Czy dokonaa si pena czy czciowa aktualizacja strony? Dlaczego?
Do aplikacji dodaj kolejn stron ASPX.
Do strony dodaj kontrolk ScriptManager oraz UpdatePanel
W kontrolce UpdatePanel umie kontrolk Label
w polu ID wpisz t1Label
w polu Text usu zawarto
Do kontrolki UpdatePanel dodaj kontrolk Button
Kliknij dwukrotnie dodan kontrolk. W metodzie obsugi zdarzenia
Click przycisku dodaj:
System.Threading.Thread.Sleep(3000);
//powysza linijka suy jednie celom TESTOWYM!!
t1Label.Text = DateTime.Now.ToLongTimeString();
Poza kontrolk UpdatePanel dodaj kontrolk
Modu 13
ASP.NET AJAX
dodaj do formularza kontrolk Button.
metodzie obsugi zdarzenia
t1Label.Text = DateTime.Now.ToLongTimeString();
Zapisz zmiany i uruchom formularz. Kliknij przycisk.
Czy dokonaa si pena czy czciowa aktualizacja strony? Dlaczego?
formularza. Wybierz kontrolk UpdatePanel,
wybierz ().
nacinij przycisk Add. Do
listy zostanie dodany wyzwalacz i w obszarze
Click
UpdatePanelTrigger Collection Editor
Zapisz zmiany i uruchom formularz. Kliknij przycisk.
Czy dokonaa si pena czy czciowa aktualizacja strony? Dlaczego?
UpdatePanel.
Label i w oknie Properties:
Button.
metodzie obsugi zdarzenia
//powysza linijka suy jednie celom TESTOWYM!!
t1Label.Text = DateTime.Now.ToLongTimeString();
dodaj kontrolk UpdateProgress. W
Piotr Bubacz
ITA-103 Aplikacje Internetowe
kontrolce
Zapisz zmiany i uruchom formularz
8. Zapoznanie z
moliwociami
kontrolki Timer.
Do aplikacji dodaj kolejn stron
Do strony dodaj kontrolk
W kontrolce
Do kontrolki
Poza kontrolk
Properties
Do
uruchomienia formularza w kontrolce
t2Label.Text = DateTime.Now.ToLongTimeString();
Kliknij dwukrotnie kontrol
dodaj:
t1Label.Text = DateTime.Now.ToLongTimeString();
Zapisz zmiany i uruchom formu
Problem 2 (czas realizacji
Po zapoznaniu si z technologi
stworzonej dla firmy Adventure Works
Zadanie Tok postpowania
9. Wykorzystaj
czciow
aktualizacje
strony do
wywietlenia
produktw
Otwrz aplikacj przygotowan w poprzednim module
Otwrz stron
Przed wszystkimi kontrolkami na grze strony umie kontrolk
ScriptManager
Do strony dodaj kontrolk
niej wszystkie kontrolki
Zapisz zamiany w aplikacji i uruchom stron
10. Dodaj
wywietlania
informacji o
aktualizacji
W widoku
kontrolk
Wybierz kontrolk
a
obsugi zdarzenia
Strona 13-11
kontrolce UpdateProgress dodaj tekst Przetwarzanie
Zapisz zmiany i uruchom formularz, a nastpnie kliknij przycisk.
Czy dokonaa si pena czy czciowa aktualizacja strony? Co si dziao
w czasie aktualizacji?
Do aplikacji dodaj kolejn stron ASPX.
Do strony dodaj kontrolk ScriptManager oraz UpdatePanel
W kontrolce UpdatePanel umie kontrolk Label
w polu ID wpisz t1Label
w polu Text usu zawarto
Do kontrolki UpdatePanel dodaj kontrolk Timer.
w polu ID wpisz t1Timer
w polu Interval wpisz 5000
Poza kontrolk UpdatePanel umie kontrolk
Properties:
w polu ID wpisz t2Label
w polu Text usu zawarto
Do metody Page_Load dodaj nastpujcy kod wywietlajcy
uruchomienia formularza w kontrolce t2Label:
t2Label.Text = DateTime.Now.ToLongTimeString();
Kliknij dwukrotnie kontrolk Timer. W metodzie
dodaj:
t1Label.Text = DateTime.Now.ToLongTimeString();
Zapisz zmiany i uruchom formularz, a nastpnie p
Co si stao? Dlaczego?
(czas realizacji 10 min)
Po zapoznaniu si z technologi Twoim zadaniem jest dodanie funkcjonalnoci AJAX do aplikacji
stworzonej dla firmy Adventure Works.
Tok postpowania
Otwrz aplikacj przygotowan w poprzednim module
Otwrz stron Produkty.aspx.
Przed wszystkimi kontrolkami na grze strony umie kontrolk
ScriptManager z okna Toolbox (kategoria AJAX Extension
Do strony dodaj kontrolk UpdatePanel i w widoku
niej wszystkie kontrolki
Zapisz zamiany w aplikacji i uruchom stron Produkty.aspx
Czy nastpuje aktualizacja caej strony?
W widoku Design na stronie poniej kontrolki
kontrolk UpdateProgress. Umie w niej napis: Pobieranie danych
Wybierz kontrolk KategorieListBox i w oknie Properties
a nastpnie kliknij dwukrotnie pole SelectedIndexChang
obsugi zdarzenia dodaj nastpujcy kod:
Modu 13
ASP.NET AJAX
Przetwarzanie.
liknij przycisk.
Czy dokonaa si pena czy czciowa aktualizacja strony? Co si dziao
UpdatePanel.
Label i w oknie Properties:
.
umie kontrolk Label i w oknie
pujcy kod wywietlajcy czas
t2Label.Text = DateTime.Now.ToLongTimeString();
metodzie obsugi zdarzenia Tick
t1Label.Text = DateTime.Now.ToLongTimeString();
poczekaj 5 sekund.
odanie funkcjonalnoci AJAX do aplikacji
Otwrz aplikacj przygotowan w poprzednim module.
Przed wszystkimi kontrolkami na grze strony umie kontrolk
xtensions).
i w widoku Design przenie do
Produkty.aspx.
a stronie poniej kontrolki UpdatePanel umie
Pobieranie danych.
Properties kliknij Events,
SelectedIndexChanged. W metodzie
Piotr Bubacz
ITA-103 Aplikacje Internetowe
System.Threading.Thread.Sleep(3000);
Zapisz wszystkie pliki i u
11. Zmiana
wywietlania
tekstu na obrazek
Znajd animowanego gifa (np. na stronie
Za
obrazek.
Zapisz wszystkie pliki i uruchom ponownie aplikacj
12. Dodanie
moliwoci
anulowania
aktualizacji
Do kontrolki
<br /><input type="button"
value="Anuluj aktualizacj" />
Do kontrolki
jzyku J
<script type="text/javascript" >function abortPB() {
</script>
Zapisz wszystkie pliki i uruchom ponownie aplikacje. Podczas aktualizacji
nacinij przycisk
Problem 3 (czas realizacji
Twojemu klientowi zawsze marzya si reklama
przegldarce. Twoim ostatnim zadaniem
by odwieana cyklicznie co
Zadanie Tok postpowania
13. Przygotuj
aplikacj do
korzystania z
kontrolki
ScriptMagerProxy
Otwrz stron
Usu kontrolk
ScriptMagerProxy
Otwrz szablon strony
kontrolki
14. Dodaj
kontrolk
uytkownika
wywietlajcej
reklamy
Kliknij prawym przyciskiem myszy katalog
Item
wpisz
Dodaj kontrolk
UpdatePanel
W widoku
Okrel jej waciwo
Dodaj kontrolk
Zapisz zmiany w pliku.
15. Umie
kontrolk
Reklama.ascx na
szablonie strony
Otwrz szablon strony
do kontrolki
Zapisz zmiany w pliku.
16. Zapisz i
przetestuj
Zapisz zmiany i uruchom aplikacj.
Otwrz stron
Strona 13-12
System.Threading.Thread.Sleep(3000);
Zapisz wszystkie pliki i uruchom ponownie aplikacj
Znajd animowanego gifa (np. na stronie http://www.ajaxload.info
Zamie wywietlany tekst w kontrolce UpdateProgress
obrazek.
Zapisz wszystkie pliki i uruchom ponownie aplikacj
Do kontrolki UpdateProgress w trybie Source dodaj:
<br /><input type="button" id="abortButton" onclick="abortPB()"
value="Anuluj aktualizacj" />
Do kontrolki Content o ID="Content1" dodaj
jzyku JavaScript:
<script type="text/javascript" >function abortPB() {
var obj = Sys.WebForms.PageRequestManager.getInstan
if (obj.get_isInAsyncPostBack())
{ obj.abortPostBack(); }
}
</script>
Zapisz wszystkie pliki i uruchom ponownie aplikacje. Podczas aktualizacji
nacinij przycisk Anuluj aktualizacj.
Czy aktualizacja zostaa anulowana?
(czas realizacji 10 min)
Twojemu klientowi zawsze marzya si reklama, ktrej zawarto jest cyklicznie odwieana w
Twoim ostatnim zadaniem jest dodanie wywietlania reklamy na stronie. Reklama ma
by odwieana cyklicznie co 6 sekund.
Tok postpowania
Otwrz stron Produkty.aspx.
Usu kontrolk ScriptManager i w jej miejsce wstaw kontrolk
ScriptMagerProxy z okna Toolbox (kategoria AJAX Extension
Otwrz szablon strony SzablonStrony.master i na grze strony obok
kontrolki WebPartManager dodaj kontrolk ScriptManager
Kliknij prawym przyciskiem myszy katalog Kontrolki
Item. W obszarze Templates wybierz Web User Control
wpisz Reklama.ascx. W licie rozwijanej Language
Dodaj kontrolk ScriptManagerProxy, a nastpnie kontrolk
UpdatePanel.
W widoku Design dodaj do kontrolki UpdatePanel
Okrel jej waciwo AdvertisementFile="~/Adv/adv.xml".
Dodaj kontrolk Timer i okrel jej waciwo Interval
Zapisz zmiany w pliku.
Otwrz szablon strony SzablonStrony.master i w wido
do kontrolki div o ID="DrugiObszarBoczny" kontrolk
Zapisz zmiany w pliku.
Zapisz zmiany i uruchom aplikacj.
Otwrz stron Default.aspx i sprawd, czy nastpuje zmiana reklamy.
Modu 13
ASP.NET AJAX
ruchom ponownie aplikacj.
http://www.ajaxload.info).
UpdateProgress na odnaleziony
Zapisz wszystkie pliki i uruchom ponownie aplikacj.
dodaj:
id="abortButton" onclick="abortPB()"
dodaj nastpujcy skrypt w
<script type="text/javascript" >function abortPB() {
var obj = Sys.WebForms.PageRequestManager.getInstance();
Zapisz wszystkie pliki i uruchom ponownie aplikacje. Podczas aktualizacji
ktrej zawarto jest cyklicznie odwieana w
dodanie wywietlania reklamy na stronie. Reklama ma
i w jej miejsce wstaw kontrolk
AJAX Extension).
i na grze strony obok
ScriptManager.
Kontrolki i wybierz Add New
Web User Control, w polu Name
Language wybierz Visual C#.
, a nastpnie kontrolk
UpdatePanel kontrolk AdRotator.
AdvertisementFile="~/Adv/adv.xml".
Interval="6000".
i w widoku Design dodaj
kontrolk Reklama.ascx.
i sprawd, czy nastpuje zmiana reklamy.
ITA-103 Aplikacje Internetowe
Piotr Bubacz
Modu 14
Wersja 1
ASP.NET AJAX Control Toolkit
Spis treci
ASP.NET AJAX Control Toolkit .............................................................................................................. 1
Informacje o module ............................................................................................................................ 2
Przygotowanie teoretyczne ................................................................................................................. 3
Przykadowy problem .................................................................................................................. 3
Podstawy teoretyczne.................................................................................................................. 3
Przykadowe rozwizanie ............................................................................................................. 4
Uwagi dla studenta ...................................................................................................................... 6
Dodatkowe rda informacji....................................................................................................... 6
Laboratorium podstawowe .................................................................................................................. 7
Problem 1 (czas realizacji 10 min) ................................................................................................ 7
Problem 2 (czas realizacji 35 min) ................................................................................................ 8
Piotr Bubacz Modu 14
ITA-103 Aplikacje Internetowe ASP.NET AJAX Control Toolkit
Strona 14-2
Informacje o module
Opis moduu
W tym module znajdziesz informacje dotyczce biblioteki ASP.NET AJAX
Control Toolkit. Nauczysz si rozszerza moliwoci standardowych
kontrolek ASP.NET o funkcjonalnoci zawarte w bibliotece.
Cel moduu
Celem moduu jest przedstawienie moliwoci wykorzystania biblioteki
ASP.NET AJAX Control Toolkit w projektach stron internetowych do
szybkiego tworzenia zaawansowanych efektw.
Uzyskane kompetencje
Po zrealizowaniu moduu bdziesz:
wiedzia jakie kontrolki wchodz w skad ASP.NET AJAX Control
Toolkit
potrafi rozszerza moliwoci standardowych kontrolek ASP.NET
o funkcjonalnoci zawarte w bibliotece
Wymagania wstpne
Przed przystpieniem do pracy z tym moduem powiniene:
zna podstawy jzyka XHTML
zna zasady pracy w rodowisku Visual Studio 2008, w szczeglnoci
tworzenia stron internetowych
zna podstawy ASP.NET AJAX
Mapa zalenoci moduu
Zgodnie z map zalenoci przedstawion na Rys. 1, przed przystpieniem
do realizacji tego moduu naley zapozna si z materiaem zawartym
w moduach Podstawy HTML, Kaskadowe Arkusze Stylw CSS,
Wprowadzenie do ASP.NET oraz ASP.NET AJAX.
Rys. 1 Mapa zalenoci moduu
Piotr Bubacz Modu 14
ITA-103 Aplikacje Internetowe ASP.NET AJAX Control Toolkit
Strona 14-3
Przygotowanie teoretyczne
Przykadowy problem
Tworzenie rozbudowanych stron z efektownie wygldajcym interfejsem uytkownika wymaga
duo pracy. Niestety w codziennej pracy programistw jest mao czasu na implementacje tego, co
dla uytkownika jest najwaniejsze interfejsu. Aby na stronie pojawiay si zwijane, wysuwany,
wyskakujce czy animowane elementy niezbdna jest znajomo jzyka JavaScript oraz szczegw
jego implementacji we wszystkich popularnych przegldarkach. Niestety na to nie ma czasu i
musimy sign po gotowe komponenty, ktre najczciej nie s tanie. Zatem mamy wybr: albo
sami implementujemy rozwizania, albo kupujemy drogie kontrolki od innych dostawcw.
Podstawy teoretyczne
ASP.NET AJAX Control Toolkit udostpnia zbir komponentw umoliwiajcych szybkie tworzenie
stron o rozbudowanej funkcjonalnoci. Zawiera kod rdowy, szablony, dokumentacje i przykady.
Po dodaniu do Visual Studio 2008 kada kontrolka posiada Smart Tag z opcj Add Extender,
umoliwiajc rozszerzenie funkcjonalnoci kontrolki o moliwoci oferowane przez ASP.NET AJAX
Control Toolkit. Po dodaniu do kontrolki rozszerzenia dodana funkcjonalno jest wywietlana w
oknie Properties. W widoku rda moemy skonfigurowa funkcjonalno w kontrolce
rozszerzenia. Moliwe jest dodanie kilku rozszerze do jednej kontrolki.
ASP.NET AJAX Control Toolkit zawiera nastpujce kontrolki i rozszerzenia:
Accordion umoliwia przesanie kilku paneli i wywietlenie jednego z nich
AlwaysVisibleControl jest prostym rozszerzeniem umoliwiajcym przypicie
kontrolki do strony tak, e pojawia si jako ruchome okno ponad treci strony
Animation umoliwia tworzenie animacji dla elementw i kontrolek
AutoComplete rozszerza moliwoci kontrolki TextBox o mechanizm podpowiedzi
Calendar rozszerza moliwoci kontrolki TextBox wywietlajc kalendarz i przekazujc
wybran dat do kontrolki
CascadingDropDown umoliwia czenie kontrolek DropDown i wypenianie ich
zawartoci asynchronicznie
CollapsiblePanel rozszerza kontrolk Panel o moliwo zwijania i rozwijania jej
zawartoci
ConfirmButton rozszerza moliwoci kontrolki Button o potwierdzenie po stronie
klienta
DragPanel rozszerza kontrolk Panel o moliwo przesuwania i umieszczania jej w
dowolnym miejscu na stronie
DropDown rozszerza moliwoci niemal kadej kontrolki, udostpniajc funkcjonalno
menu, ktre moe by innym panelem lub kontrolk
DropShadow rozszerza dowolne kontrolki wizualne o moliwo rzucania cienia
DynamicPopulate wypenia zawarto elementu strony wynikiem pobranym z zapytania
do usugi Web
FilteredTextBox rozszerza moliwoci kontrolki TextBox o zezwolenie na
wprowadzania informacji jednego typu
HoverMenu rozszerza dowoln kontrolk o moliwo wywietlenia podrcznego menu w
momencie, kiedy kursor myszy znajdzie si nad kontrolk
MaskedEdit rozszerza kontrolk TextBox o moliwo wywietlenia formatu
wprowadzanych danych oraz ich walidacj po stronie klienta
ModalPopup umoliwia wywietlenie okna dialogowego na stronie i zablokowanie strony
przed jej edycj
Piotr Bubacz Modu 14
ITA-103 Aplikacje Internetowe ASP.NET AJAX Control Toolkit
Strona 14-4
MutuallyExclusiveCheckBox rozszerza kontrolki CheckBox o moliwo wzajemnego
wykluczania si
NoBot stosuje proste metody zapobiegajce wysyaniu strony przez automatycznych
klientw
NumericUpDown rozszerza kontrolk TextBox o moliwo zwikszenia lub zmniejszenia
wartoci w kontrolce przy pomocy powizanych przyciskw
PagingBulletedList rozszerza moliwoci kontrolki BulletedList o sortowanie i
stronicowanie po stronie klienta
PasswordStrength rozszerza kontrolk TextBox o moliwo sprawdzenia i
wywietlenia siy wprowadzanego hasa
PopupControl umoliwia dodanie do dowolniej kontrolki okna wyskakujcego (pop-up)
Rating umoliwia atw ocen dowolnej zawartoci za pomoc gwiazdek
ReorderList umoliwia przestawianie elementw listy poprzez przeciganie ich mysz
ResizableControl umoliwia zmian wielkoci dowolnego element w przegldarce
RoundedCorners rozszerza wizualne kontrolki o zaokrglone rogi
Slider peni funkcj paska przewijania
TabContainer umoliwia wywietlenie czci interfejsu uytkownika w zakadkach
TextBoxWatermark rozszerza kontrolk TextBox o moliwo wywietlania znaku
wodnego, gdy uytkownik nie wprowadzi adnej wartoci
ToggleButton rozszerza kontrolk CheckBox o moliwo wywietlania obrazkw w
miejscu elementw zaznaczonych i niezaznaczonych
UpdatePanelAnimation animuje elementy na stronie umoliwiajc graficzne
reprezentowanie stanu pobierania danych
ValidatorCallout rozszerza moliwoci standardowych kontrolek do sprawdzania
poprawnoci danych wprowadzanych przez uytkownika
Podsumowanie
W tym rozdziale przedstawiony zosta ASP.NET AJAX Control Toolkit.
Przykadowe rozwizanie
Wyobramy sobie, e mamy rozszerzy funkcjonalno naszej aplikacji o moliwoci oferowane
przez bibliotek ASP.NET AJAX Control Toolkit.
Dodanie ASP.NET AJAX Control Toolkit do Visual Studio
Zanim bdziemy mogli wykorzysta funkcjonalno ASP.NET AJAX Control Toolkit w naszych
aplikacjach, musimy pobra ze strony http://www.codeplex.com/AjaxControlToolkit archiwum
zawierajce kontrolki przeznaczone dla .NET Framework 3.5. Archiwum moemy rozpakowa w
dowolnym miejscu, jednak ze wzgldu na lepsze zarzdzanie proponujemy zapisa zawarto do
katalogu C:\Program Files\Microsoft ASP.NET. Dziki temu bdziemy mieli jedno miejsce na
poszukiwanie elementw zwizanych z ASP.NET. Najwaniejsz bibliotek AjaxControlToolkit.dll,
znajdziemy w katalogu C:\Program Files\Microsoft ASP.NET\SampleWebSite\Bin. Najbezpieczniej
jest j skopiowa od razu do katalogu C:\Program Files\Microsoft ASP.NET\Binaries. W przyszoci
bdziemy ingerowa w kod kontrolek i sami kompilowa t bibliotek, wic bezpiecznie mie kopi
zapasow.
Kolejnym krokiem jest dodanie kontrolki do Visual Studio 2008. W tym celu dodamy now zakadk
w oknie Toolbox, klikaja w jego obszarze prawym przyciskiem myszy, a nastpnie wybierajc Add
Tab. Moemy nazwa j dowolnie, np. AJAX Control Toolkit. Nastpnie musimy wskaza lokalizacj
biblioteki. W tym celu klikamy dodan przed chwil zakadk prawym przyciskiem myszy i
wybieramy Choose Items.
Piotr Bubacz Modu 14
ITA-103 Aplikacje Internetowe ASP.NET AJAX Control Toolkit
Strona 14-5
Po wskazaniu pliku za pomoc przycisku Browse moemy doda bibliotek AjaxControlToolkit.dll.
W tym momencie w zakadce pojawi si lista kontrolek i rozszerze zawartych w bibliotece.
Jeli znajdziesz chwil czasu warto przetestowa wszystkie kontrolki dostpne w bibliotece. W tym
celu w Visual Studio otwieramy projekt C:\Program Files\Microsoft ASP.NET\
AjaxControlToolkit.sln.
Rozszerzanie funkcjonalnoci kontrolek przy pomocy ASP.NET AJAX Control Toolkit
Teraz nauczymy si rozszerza funkcjonalno kontrolek przy uyciu ASP.NET AJAX Control Toolkit.
Aby doda ktr z funkcjonalnoci oferowanych przez ASP.NET AJAX Control Toolkit do kontrolki,
wybieramy kontrolk, do ktrej chcemy doda rozszerzenie, a nastpnie w menu Smart Tag klikamy
Add Extender.
Rys. 2 Rozszerzanie funkcjonalnoci kontrolki TextBox przy pomocy ASP.NET AJAX Control Toolkit
W kolejnym oknie Extender Wizard (Rys. 3) musimy wybra rozszerzenie, ktre chcemy doda do
kontrolki. W naszym przypadku dodamy kontrolk TextBoxWatermarkExtender rozszerzajc
kontrolk TextBox o moliwo wywietlania znaku wodnego, gdy uytkownik nie wprowadzi
adnej wartoci.
Rys. 3 Okno Extender Wizard
Po dodaniu rozszerzenie w oknie Properties kontrolki znajdziemy now grup Extenders.
Rys. 4 Okno Properties kontrolki TextBox po dodaniu rozszerzenia TextBoxWatermarkExtender
Piotr Bubacz Modu 14
ITA-103 Aplikacje Internetowe ASP.NET AJAX Control Toolkit
Strona 14-6
Moemy rozwin i sprawdzi dodatkowe waciwoci kontrolki. Ustalimy, e kontrolka bdzie
posiadaa znak wodny o treci Podaj nazw produktu (waciwo WatermarkText) oraz
wykorzystamy zdefiniowan w szablonie strony klas CSS o nazwie watermarked (waciwo
WatermarkCssClass).
Po uruchomieniu strony w przegldarce moemy sprawdzi dziaanie rozszerzenia. W naszym
przypadku na stronie zostanie wywietlona kontrolka TextBox ze znakiem wodnym Podaj nazw
produktu. Po klikniciu znak wodny znika (Rys. 5).
a) b)
Rys. 5 Kontrolka TextBox po dodaniu TextBoxWatermarkExtender wywietlona w przegldarce
a) przed b) po klikniciu kontrolki
Uwagi dla studenta
Jeste przygotowany do realizacji laboratorium jeli:
potrafisz doda ASP.NET AJAX Control Toolkit do projektu
umiesz dodawa rozszerzenia do kontrolek
Pamitaj o zapoznaniu si z uwagami i poradami zawartymi w tym module. Upewnij si, e
rozumiesz omawiane w nich zagadnienia. Jeli masz trudnoci ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziau i zajrzyj do notatek z wykadw.
Dodatkowe rda informacji
1. ASP.NET AJAX Extender Controls, http://msdn.microsoft.com/en-us/library/bb532368.aspx
Na stronie znajdziesz szczegowe informacje odnonie moliwoci rozszerzania
funkcjonalnoci kontrolek przy uyciu kontrolek bazujcych na ExtenderControl.
2. Adam Calderon, Joel Rumerman, Advanced ASP.NET AJAX Server Controls For .NET
Framework 3.5, Addison-Wesley, 2008
W ksice autor przedstawia wszystkie najwaniejsze zagadnienia zwizane z
kontrolkami serwerowymi w ASP.NET AJAX z uwzgldnieniem AJAX Control
Toolkit.
3. ASP.NET AJAX Control Toolkit: The Official Microsoft ASP.NET Site,
http://www.asp.net/ajax/ajaxcontroltoolkit
Oficjalna strona AJAX Control Toolkit, znajdziesz tu zawsze najnowsze wersje
kontrolek, dokumentacj oraz wideotutoriale uatwiajcy szybkie rozpoczcie
pracy z t bibliotek.
Piotr Bubacz Modu 14
ITA-103 Aplikacje Internetowe ASP.NET AJAX Control Toolkit
Strona 14-7
Laboratorium podstawowe
Problem 1 (czas realizacji 10 min)
Twj zesp chciaby doda kilka nowych rozwiza, ktre mona zobaczy na innych stronach.
Niestety okazao si, e wymagaj one znajomoci jzyka JavaScript. Ju prawie zrezygnowalicie i
chcielicie odda projekt w takim stanie w jakim jest, ale na szczcie jeden z Twoich kolegw
znalaz informacje o bibliotece ASP.NET AJAX Control Toolkit. Na stronie gwnej by link do wersji
live, po przejrzeniu moliwoci biblioteki stwierdzilicie jednogonie, e to jest to, czego chcecie.
Jeden z czonkw zespou mia wtpliwoci, czy dacie rad szybko nauczy si tej biblioteki i za jej
pomoc uatrakcyjni wasz aplikacj. Na szczcie pobralicie kod biblioteki i okazao si, e Visual
Studio 2008 na tyle uatwia wspprac z ni, e moglicie od razu zacz prac.
Waszym pierwszym zadaniem jest dodanie funkcjonalnoci bibliotece ASP.NET AJAX Control Toolkit
do Visual Studio.
Zadanie Tok postpowania
1. Dodanie
ASP.NET AJAX
Control Toolkit do
Visual Studio
Pobierz ze strony http://www.codeplex.com/AjaxControlToolkit
archiwum zawierajce kontrolki przeznaczone dla .NET Framework 3.5.
Rozpakuj archiwum na dysku w katalogu C:\Program Files\Microsoft
ASP.NET.
Z katalogu C:\Program Files\Microsoft ASP.NET\SampleWebSite\Bin
skopiuj pliki AjaxControlToolkit.dll i AjaxControlToolkit.pdb do
katalogu C:\Program Files\Microsoft ASP.NET\Binaries.
Otwrz stron przygotowan w poprzednim wiczeniu. Otwrz dowolny
plik z rozszerzeniem aspx.
W oknie Toolbox kliknij prawy przyciskiem myszy i wybierz Add Tab.
Nazwij j AJAX Control Toolkit.
Kliknij prawym przyciskiem myszy nowo dodan zakadk i wybierz
Choose Items.
Rys. 6 Okno Choose Toolbox Items
Kliknij Browse.
Wska plik C:\Program Files\Microsoft
ASP.NET\Binaries\AjaxControlToolkit.dll i kliknij Open. Nastpnie
kliknij OK.
Piotr Bubacz
ITA-103 Aplikacje Internetowe
W zakadce
kontrolek i rozszerze.
2. Przetestuj
moliwoci
rozszerze
dostpnych w
ASP.NET AJAX
Control Toolkit
W Visual Studio otwrz projekt
AjaxControlToolkit.sln
Nacinij
Zapoznaj si z moliwociami kontrolek i rozszerze kontrolek
dostpnymi w zbiorze
Szczeglnie zapoznaj si z rozszerzeniami:
AlwaysVisibleControlExtender
FilteredTextBoxExtender
Problem 2 (czas realizacji
Teraz Twj zesp wyznaczy sobie nastpujce zadnia: doda efekt znaku wodnego do wszystkich
kontrolek TextBox w aplikacji,
strony, doda filtrowanie wprowadzania
kalendarza na wywietlanie kalendarza po klikniciu na kontrolk
Zadanie Tok postpowania
3. Rozszerz
moliwoci
kontrolki Szukaj
Otwrz kontrolk uytkownika
Wybierz kontrolk
nastpnie kliknij
W oknie
OK
W oknie
NazwaProduktuTextBox_TextBoxWatermarkExt
WatermarkText
WatermarkCssClass
Do pliku
.watermarked {
}
Zapisz zmiany i przetestuj dziaanie aplikacji. Otwrz stron
i s
4. Rozszerz
moliwoci
kontrolki Reklama
Otwrz kontrolk uytkownika
Wybierz
W oknie Extender
OK
W oknie
AdRotator1_AlwaysVisibleControlExtender
listy rozwijanej wybierz
Zapisz zmiany i otwrz dowoln stron. Zmniejsz okno przegldarki tak,
aby konieczne byo przewijanie treci.
Strona 14-8
W zakadce AJAX Control Toolkit powinna pojawi si lista nowych
kontrolek i rozszerze.
W Visual Studio otwrz projekt C:\Program Files
AjaxControlToolkit.sln.
Nacinij Ctrl+F5 lub wybierz Debug -> Start without debugging.
Zapoznaj si z moliwociami kontrolek i rozszerze kontrolek
dostpnymi w zbiorze ASP.NET AJAX Control Toolkit
Szczeglnie zapoznaj si z rozszerzeniami:
AlwaysVisibleControlExtender, CalendarExtender
FilteredTextBoxExtender i TextBoxWatermarkExtender
(czas realizacji 35 min)
Teraz Twj zesp wyznaczy sobie nastpujce zadnia: doda efekt znaku wodnego do wszystkich
w aplikacji, ustawi pozycj kontrolki AdRotator w prawym grnym rogu
strony, doda filtrowanie wprowadzania numerw i kodu pocztowego
kalendarza na wywietlanie kalendarza po klikniciu na kontrolk TextBox.
Tok postpowania
Otwrz kontrolk uytkownika Kontrolki\Szukaj.aspx
Wybierz kontrolk TextBox o ID="NazwaProduktuTextBox
nastpnie kliknij Smart Tag. Wybierz Add Extender
W oknie Extender Wizard wybierz TextBoxWatermarkExtender
OK.
W oknie Properties kontrolki TextBox znajd grup
NazwaProduktuTextBox_TextBoxWatermarkExtender
WatermarkText wpisz Podaj nazw produktu
WatermarkCssClass wpisz watermarked.
Do pliku Style.css dodaj styl:
.watermarked {
height:20px;
width:150px;
padding:2px 0 0 2px;
border:1px solid #BEBEBE;
background-color:#F0F8FF;
color:gray;
Zapisz zmiany i przetestuj dziaanie aplikacji. Otwrz stron
sprawd, jak wyglda kontrolka TextBox.
Otwrz kontrolk uytkownika Kontrolki\Reklama.asp
Wybierz kontrolk AdRotator i kliknij Smart Tag. Wybierz
W oknie Extender Wizard wybierz AlwaysVisibleControlExtenderi
OK.
W oknie Properties znajd grup Extenders
AdRotator1_AlwaysVisibleControlExtender. W polu
listy rozwijanej wybierz Right.
Zapisz zmiany i otwrz dowoln stron. Zmniejsz okno przegldarki tak,
aby konieczne byo przewijanie treci.
Gdzie znajduje si kontrolka AdRotator
zawartoci strony?
Modu 14
ASP.NET AJAX Control Toolkit
powinna pojawi si lista nowych
Program Files\Microsoft ASP.NET\
Start without debugging.
Zapoznaj si z moliwociami kontrolek i rozszerze kontrolek
ol Toolkit.
Szczeglnie zapoznaj si z rozszerzeniami:
CalendarExtender i
TextBoxWatermarkExtender.
Teraz Twj zesp wyznaczy sobie nastpujce zadnia: doda efekt znaku wodnego do wszystkich
w prawym grnym rogu
oraz zmieni kontrolki
.
Szukaj.aspx.
NazwaProduktuTextBox", a
Extender.
TextBoxWatermarkExtender i kliknij
znajd grup Extenders i rozwi
ender. W polu
Podaj nazw produktu, a w polu
Zapisz zmiany i przetestuj dziaanie aplikacji. Otwrz stron Szukaj.aspx
Reklama.aspx.
. Wybierz Add Extender.
AlwaysVisibleControlExtenderi kliknij
Extenders i rozwi
W polu HorizontalSide z
Zapisz zmiany i otwrz dowoln stron. Zmniejsz okno przegldarki tak,
podczas przewijania
Piotr Bubacz
ITA-103 Aplikacje Internetowe
5. Dodaj
rozszerzenia do
strony
Ankieta.aspx
Otwrz stron
Wybierz kontrolk
Smart
W oknie
OK
W oknie
NazwaProduktuTextBox_
WatermarkText
watermarked
Podobnie postpuj ze wszystkimi kontrolkami
Wybierz kontrolk
SmartTag
W oknie
W oknie
telTextBox_FilteredTextBoxExtender
rozwijanej wybierz
Podobnie postpuj ze
mieszTextBox
liczbaKmTextBox
Wybierz kontrolk
Smart
W oknie
W oknie
kodTextBox_FilteredTextBoxExtender