ASP_NET_3_5_dla_programistow_PHP_aspnph.pdf

(414 KB) Pobierz
ASP.NET 3.5
dla programistów PHP
Autor: Krzysztof Rychlicki-Kicior
ISBN: 978-83-246-1916-0
Format: 158x235, stron: 160
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Stwórz aplikacje internetowe w technologii ASP.NET 3.5
• Poznaj i skonfiguruj œrodowisko programistyczne
• Zaprojektuj strukturê aplikacji
• Po³¹cz aplikacjê z baz¹ danych
• Wyœwietl dane na stronach
Technologie PHP i ASP.NET maj¹ kilka cech wspólnych — obie s³u¿¹ do tworzenia
aplikacji internetowych, uruchamianych za poœrednictwem przegl¹darki internetowej,
i generuj¹ wynik swojego dzia³ania w postaci dokumentów XHTML. Jednak istnieje
miêdzy nimi jedna istotna ró¿nica — PHP wykorzystuje rozwi¹zania open source,
a ASP.NET rozwi¹zania komercyjne, rozwijane przez firmê Microsoft. ASP.NET opiera siê
na platformie .NET — uniwersalnym frameworku, pozwalaj¹cym na korzystanie
z ró¿nych jêzyków programowania w celu tworzenia skalowalnych, szybkich i ³atwych
do rozwijania aplikacji sieciowych. Nie bez znaczenia jest tak¿e œrodowisko
programistyczne — Visual Studio to doskona³e narzêdzie, znacznie przyspieszaj¹ce
i usprawniaj¹ce proces tworzenia oprogramowania.
„ASP.NET 3.5 dla programistów PHP” to wprowadzenie do technologii ASP
dla wszystkich twórców aplikacji internetowych, którzy dotychczas korzystali z PHP.
Czytaj¹c tê ksi¹¿kê, zrozumiesz g³ówne zasady korzystania z platformy .NET i techniki
budowania aplikacji sieciowych. Dowiesz siê, jak skonfigurowaæ œrodowisko pracy
i zaprojektowaæ strukturê aplikacji. Nauczysz siê korzystaæ z najwa¿niejszych
elementów platformy .NET — kontrolek bêd¹cych gotowymi „cegie³kami” do budowy
stron internetowych ASP. Poznasz podstawowe kontrolki, tworz¹ce interfejs
u¿ytkownika i zarz¹dzaj¹ce sesj¹, po³¹czysz aplikacjê z baz¹ danych i zastosujesz
kontrolki do wyœwietlenia danych na stronie. Przeczytasz o sprawdzaniu poprawnoœci
danych wprowadzanych do formularzy i przypisywaniu ról u¿ytkownikom aplikacji.
Znajdziesz tu tak¿e informacje o tym, w jaki sposób wykorzystaæ technologiê AJAX
do budowy interfejsów u¿ytkownika aplikacji ASP.NET.
• Porównanie technologii s³u¿¹cych do tworzenia aplikacji sieciowych
• Konfiguracja bazy MS SQL i instalacja narzêdzi programistycznych
• Kontrolki interfejsu u¿ytkownika
• Zarz¹dzanie sesj¹ i plikami cookie
• Komunikacja z bazami danych za pomoc¹ ADO.NET
• Wyœwietlanie danych na stronach
• Weryfikacja poprawnoœci danych z formularzy
• Obs³uga kont u¿ytkowników
• AJAX w aplikacjach ASP.NET
Spróbuj czegoœ nowego. Mo¿e w ASP.NET 3.5 odnajdziesz to,
czego brakowa³o Ci w PHP?
Spis treści
Podziękowania ................................................................................. 5
Wstęp .............................................................................................. 7
Rozdział 1. Aplikacje webowe — przegląd technologii ......................................... 9
Perl ................................................................................................................................. 11
Python ............................................................................................................................. 12
Ruby ............................................................................................................................... 13
J2EE/JSP ........................................................................................................................ 13
Rozdział 2. ASP.NET v. PHP ............................................................................. 15
Zalety .............................................................................................................................. 15
Wady .............................................................................................................................. 17
Rozdział 3.
Środowisko
programistyczne .......................................................... 19
Konfiguracja
środowiska
SQL ....................................................................................... 20
Pierwsza aplikacja webowa ............................................................................................ 22
Mikstura znaczników ............................................................................................... 24
Debugowanie aplikacji ............................................................................................. 26
Rozdział 4. Podstawowe kontrolki .................................................................... 29
HTML v. ASP.NET ........................................................................................................ 29
Control ............................................................................................................................ 30
WebControl .................................................................................................................... 33
TextBox (input type="text", textarea, input type="password") ...................................... 34
Button (input type="submit", type="button") ................................................................. 35
DropDownList (select) ................................................................................................... 36
Mechanizm PostBack ............................................................................................... 37
ListBox (select multiple="multiple") .............................................................................. 38
CheckBox (input type="checkbox") ............................................................................... 40
CheckBoxList ................................................................................................................. 41
RadioButton (input type="radio") .................................................................................. 42
RadioButtonList ............................................................................................................. 42
Image (<img>) ................................................................................................................ 42
ImageButton ............................................................................................................. 43
ImageMap ................................................................................................................ 43
FileUpload (input type="file") ........................................................................................ 45
Pozostałe kontrolki ......................................................................................................... 47
4
ASP.NET 3.5 dla programistów PHP
Rozdział 5. Obsługa strony ............................................................................... 49
Wszystkie drogi prowadzą do strony — Page ................................................................ 49
Request — tak wszystko się zaczyna… .......................................................................... 52
Ciasteczka ................................................................................................................ 53
Niewinne szpiegowanie ............................................................................................ 54
Response — …a tak się kończy ..................................................................................... 54
Nie tylko dla studentów — potyczki z sesjami ............................................................... 56
Rozdział 6.
Źródła
danych ................................................................................ 59
Słowo o wzorcach… ....................................................................................................... 59
Źródła
danych ................................................................................................................. 62
SqlDataSource ................................................................................................................ 63
Rozdział 7. Klasy struktur danych — ADO.NET .................................................. 67
DataColumn i DataRow — kolumny + wiersze = tabela ................................................ 68
Relacje ............................................................................................................................ 70
Widok danych ................................................................................................................. 73
Dostawca danych na przykładzie MS SQL ........................................................................... 73
Rozdział 8. Kontrolki danych ............................................................................ 77
Obsługa danych bez ogródek .......................................................................................... 79
Repeater ................................................................................................................... 80
DetailsView .............................................................................................................. 82
3 w 1 — kontrolki i
źródła
....................................................................................... 84
GridView — cała władza w ręce siatki .................................................................... 87
Rozdział 9. Walidacja danych ........................................................................... 93
RequiredFieldValidator .................................................................................................. 93
RangeValidator ............................................................................................................... 95
CompareValidator .......................................................................................................... 97
RegularExpressionValidator ........................................................................................... 98
Rozdział 10. System użytkowników .................................................................... 99
Konfigurowanie aplikacji ASP.NET ............................................................................ 100
Role, czyli uprawnienia ................................................................................................ 104
Rozdział 11. Mistrz i uczeń, czyli zastępcy include’a ......................................... 107
ASP.NET i PHP — to samo czy tak samo? .................................................................. 108
Rozdział 12. Historia o starych znajomych, czyli AJAX w .NET ........................... 111
A(SP.NET) + A(JAX) — brzydkie kaczątko i piękny
łabędź
...................................... 112
Rozdział 13. Praktyczne przykłady .................................................................... 117
Księga gości ................................................................................................................. 117
Licznik (pliki) ............................................................................................................... 120
Sonda (ankieta) ............................................................................................................. 127
Tokeny, czyli test na człowieczeństwo ......................................................................... 132
CMS ............................................................................................................................. 136
Bibliografia .................................................................................. 151
Skorowidz .................................................................................... 153
Rozdział 5.
Obsługa strony
Strony internetowe to nie tylko kontrolki graficzne. Zanim ASP.NET zajmie się ob-
sługą kontrolek, musi zostać wysłane przez klienta
żądanie,
a po wszystkim powinna
zostać odesłana do niego odpowiedź. Ponadto często (nawet w poprzednim rozdziale)
konieczne jest uzyskanie pewnych informacji o serwerze lub samej aplikacji niemoż-
liwych do odczytania z poziomu kontrolek. Większość tych informacji można pobrać
za pośrednictwem klasy
Page
i jej właściwości.
Wszystkie drogi prowadzą
do strony — Page
Z klasą
Page
mieliśmy do tej pory kontakt wielokrotny, gdyż wszystkie tworzone przez
nas proste aplikacje złożone z jednej strony (formularza) były w istocie klasami wy-
wiedzionymi bezpośrednio z klasy
Page
. Co za tym idzie, wiele elementów wykorzy-
stywanych uprzednio bezpośrednio (jak właściwości
Response
czy
Server
) stanowiło
właściwości klasy
Page
.
Można powiedzieć,
że
klasa
Page
sama w sobie nie oferuje rozbudowanej funkcjonalności;
głównym jej zadaniem jest zebranie w jedną całość. Właściwości tej klasy można po-
dzielić na dwie nieformalne grupy — zwykłe, pomocne w określeniu działania strony,
i rozbudowane, których działanie nie jest blisko związane z samą klasą
Page
. W pew-
nym sensie klasa
Page
stanowi jedynie zbiór odwołań do kluczowych obiektów, dzięki
czemu nie trzeba ich szukać w innych miejscach. Oczywiście wszystkie te obiekty nie
biorą się znikąd — instancje znajdujące się we właściwościach danej strony są po-
wiązane właśnie z nią. Do „dużych” właściwości, które będą tematem osobnych pod-
rozdziałów i rozdziałów, zaliczają się:
HttpApplicationState Application
— określa obiekt klasy, której zadaniem
jest wymiana informacji między różnymi
żądaniami
i stronami, czyli zarządzanie
stanem aplikacji.
HttpRequest Request
— zwraca obiekt aktualnie obsługiwanego
żądania.
50
ASP.NET 3.5 dla programistów PHP
HttpResponse Response
— określa obiekt aktualnie generowanej odpowiedzi
na
żądanie.
HttpServerUtility Server
— określa obiekt pomocny przy obsługiwaniu
żądań,
udostępniając pewne mechanizmy serwera — w przeciwieństwie do właściwości
Request
, której zadaniem nie jest interakcja ze
środowiskiem
serwera.
HttpSessionState Session
— określa obiekt sesji, w którym można
przechowywać wartości między kolejnymi
żądaniami
HTTP.
IPrincipal User
— określa dane użytkownika, który wysłał
żądanie
(przydatne zwłaszcza po wprowadzeniu do aplikacji mechanizmu autentyfikacji
— uwierzytelnienia).
Jak widać, klasa
Page
gromadzi niemal wszystkie istotne elementy przydatne w trak-
cie projektowania aplikacji WWW. Oczywiście można wykorzystywać również inne
właściwości; z niektórymi już mieliśmy kontakt (np.
IsPostBack
), niektóre poznamy
przy okazji konkretnych rozwiązań zamieszczonych w dalszej części książki.
Z pewnością w tym miejscu warto zapoznać się z modelem zdarzeń klasy
Page
. Opiera
się on rzecz jasna na modelu zdarzeń klasy
Control
. Wytłuszczonym drukiem zostały
zaznaczone zdarzenia wprowadzone dopiero w klasie
Page
:
PreInit
— na najwcześniejszym możliwym etapie
ładowania
strony można
określić, czy strona jest
ładowana
w wyniku
żądania
zwrotnego (postback).
Należy jednak pamiętać,
że
kontrolki nie są jeszcze w pełni załadowane.
Z tego względu ustawianie ich wartości na tym etapie nie gwarantuje ich
zachowania później.
Init
— w tym momencie kontrolki są zainicjalizowane (strona może wywołać
zdarzenie dopiero wtedy, gdy wszystkie kontrolki zgłosiły to zdarzenie).
Można więc dowolnie korzystać z ich właściwości.
InitComplete
— zgłaszane, gdy cały proces inicjalizacji (włącznie ze stroną)
został zakończony. Jeśli jakaś czynność wymaga do działania zakończenia
inicjalizacji, powinna znaleźć się w tej metodzie zdarzenia.
PreLoad
— podczas tego zdarzenia jest
ładowany
stan widoku strony
i kontrolek oraz dane przesłane w
żądaniu
zwrotnym.
Load
ładuje
stronę, a następnie rekursywnie wszystkie kontrolki na stronie.
W tym momencie można utworzyć połączenia z bazą danych. Po zdarzeniu
Load
następują inne zdarzenia kontrolek, takie jak kliknięcie przycisku.
LoadComplete
— podobnie jak
InitComplete
, to zdarzenie zachodzi
po zakończeniu
ładowania
wszystkich kontrolek.
PreRender
— zachodzi tuż przed renderowaniem, czyli generowaniem kodu
HTML na podstawie kontrolek ASP.NET. Przed zajściem tego zdarzenia
kontrolki są wiązane ze
źródłami
danych, więc to jest najlepszy moment na
wykonanie ewentualnych zmian związanych z danymi w takich kontrolkach.
Bezpośrednio po tym zdarzeniu zachodzi renderowanie, po którym nie można
zmodyfikować już w
żaden
sposób kontrolek.
Zgłoś jeśli naruszono regulamin