Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00596 010261 11042521 na godz. na dobę w sumie
ASP.NET 2.0. Gotowe rozwiązania - książka
ASP.NET 2.0. Gotowe rozwiązania - książka
Autor: , , Liczba stron: 488
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-0566-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> .net - programowanie
Porównaj ceny (książka, ebook, audiobook).
Zestaw projektów do natychmiastowego wykorzystania!

Rosnąca popularność platformy .NET 2.0 widoczna jest także w internecie. Coraz więcej aplikacji internetowych powstaje z wykorzystaniem technologii ASP.NET 2.0. Kontrolki i biblioteki udostępniane programistom zdecydowanie ułatwiają budowanie nawet najbardziej złożonych systemów. Biblioteki .NET 2.0 to także zmieniona architektura witryn, nowe mechanizmy dostępu do danych i znacznie większa szybkość działania aplikacji. Jednak tak ogromna liczba zmian wiąże się z koniecznością opanowania przez programistów nowych możliwości i zasad stosowania ich w praktyce. Jednym z najlepszych sposobów nauki jest analiza gotowych projektów i implementowanie ich we własnych systemach.

Książka 'ASP.NET 2.0. Gotowe rozwiązania' to przegląd 12 projektów zrealizowanych z wykorzystaniem tej technologii. Znajdziesz tu omówienie najpopularniejszych elementów witryn i aplikacji internetowych - założenia projektowe, kod źródłowy, wykorzystane w projekcie biblioteki i kontrolki, wskazówki dotyczące instalacji i uruchamiania oraz porady związane z samodzielnym modyfikowaniem omawianego modułu. Każdy z projektów przedstawia różne aspekty stosowania technologii ASP.NET 2.0 i stanowi doskonałe źródło wiedzy.

Poznaj ASP.NET 2.0 na praktycznych przykładach.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

ASP.NET 2.0. Gotowe rozwi„zania Autor: Imar Spaanjaars, Paul Wilton, Shawn Livermore T‡umaczenie: Micha‡ Dadan ISBN: 978-83-246-0566-8 Tytu‡ orygina‡u: ASP.NET 2.0 Instant Results Format: 168x237, stron: 488 Zestaw projekt(cid:243)w do natychmiastowego wykorzystania! (cid:149) Opisy za‡o¿eæ projektowych (cid:149) Instrukcje w kwestii instalacji (cid:149) Wskaz(cid:243)wki dla programist(cid:243)w Rosn„ca popularno(cid:156)(cid:230) platformy .NET 2.0 widoczna jest tak¿e w internecie. Coraz wiŒcej aplikacji internetowych powstaje z wykorzystaniem technologii ASP.NET 2.0. Kontrolki i biblioteki udostŒpniane programistom zdecydowanie u‡atwiaj„ budowanie nawet najbardziej z‡o¿onych system(cid:243)w. Biblioteki .NET 2.0 to tak¿e zmieniona architektura witryn, nowe mechanizmy dostŒpu do danych i znacznie wiŒksza szybko(cid:156)(cid:230) dzia‡ania aplikacji. Jednak tak ogromna liczba zmian wi„¿e siŒ z konieczno(cid:156)ci„ opanowania przez programist(cid:243)w nowych mo¿liwo(cid:156)ci i zasad stosowania ich w praktyce. Jednym z najlepszych sposob(cid:243)w nauki jest analiza gotowych projekt(cid:243)w i implementowanie ich we w‡asnych systemach. Ksi„¿ka (cid:132)ASP.NET 2.0. Gotowe rozwi„zania(cid:148) to przegl„d 12 projekt(cid:243)w zrealizowanych z wykorzystaniem tej technologii. Znajdziesz tu om(cid:243)wienie najpopularniejszych element(cid:243)w witryn i aplikacji internetowych (cid:150) za‡o¿enia projektowe, kod (cid:159)r(cid:243)d‡owy, wykorzystane w projekcie biblioteki i kontrolki, wskaz(cid:243)wki dotycz„ce instalacji i uruchamiania oraz porady zwi„zane z samodzielnym modyfikowaniem omawianego modu‡u. Ka¿dy z projekt(cid:243)w przedstawia r(cid:243)¿ne aspekty stosowania technologii ASP.NET 2.0 i stanowi doskona‡e (cid:159)r(cid:243)d‡o wiedzy. (cid:149) Internetowy dziennik i kalendarz (cid:149) System wymiany plik(cid:243)w (cid:149) Serwer chat(cid:243)w (cid:149) Mechanizm obs‡ugi ankiet (cid:149) CMS (cid:149) Blog (cid:149) Album fotograficzny (cid:149) Witryna pomocy dla klienta (cid:149) Sklep internetowy (cid:149) System rezerwacji online (cid:149) Kartki internetowe (cid:149) Baza b‡Œd(cid:243)w Poznaj ASP.NET 2.0 na praktycznych przyk‡adach Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treści O autorach .................................................................................................................................................11 Wstęp ........................................................................................................................................................15 Rozdział 1. Internetowy dziennik i kalendarz ........................................................................................19 Posługiwanie się internetowym dziennikiem .................................................................... 20 Projekt internetowego dziennika .................................................................................... 23 Warstwa dostępu do danych .................................................................................... 24 Warstwa biznesowa ................................................................................................. 26 Kod i jego objaśnienie .................................................................................................. 35 Struktura plików ...................................................................................................... 35 Rejestracja, logowanie i zabezpieczenia .................................................................... 36 Przeglądanie internetowego kalendarza ..................................................................... 42 Tworzenie, edytowanie i przeglądanie wpisów dziennika ............................................. 45 Tworzenie, edytowanie i przeglądanie informacji o ważnych wydarzeniach .................... 47 Zarządzanie kontaktami ........................................................................................... 50 Konfiguracja Internetowego dziennika ............................................................................ 53 Podsumowanie ............................................................................................................ 53 Rozdział 2. System wymiany plików ......................................................................................................55 Posługiwanie się systemem wymiany plików ................................................................... 56 Projekt systemu wymiany plików .................................................................................... 60 Umieszczanie plików na serwerze ............................................................................. 60 Wysyłanie wiadomości ............................................................................................. 60 Struktura witryny ..................................................................................................... 62 Model danych i obiekty bazy danych ......................................................................... 62 Motywy i skórki ....................................................................................................... 68 Model bezpieczeństwa ............................................................................................ 69 Wykorzystywane klasy ............................................................................................. 71 Kod i jego objaśnienie .................................................................................................. 74 Pliki z folderu głównego ........................................................................................... 74 Formularze WebForm ............................................................................................... 80 Kontrolki użytkownika .............................................................................................. 84 Konfiguracja projektu .................................................................................................... 86 Instalacja w środowisku programistycznym ................................................................ 86 Podsumowanie ............................................................................................................ 87 6 ASP.NET 2.0. Gotowe rozwiązania Rozdział 3. Serwer chatów ....................................................................................................................89 Posługiwanie się serwerem chatów ................................................................................ 91 Projekt serwera chatów ................................................................................................. 93 Wysyłanie wiadomości za pomocą wywołań zwrotnych ................................................ 93 Struktura witryny ..................................................................................................... 97 Model danych ......................................................................................................... 97 Motywy i skórki ..................................................................................................... 100 Wykorzystywane klasy ........................................................................................... 101 Kod i jego objaśnienie ................................................................................................ 103 Pliki z folderu głównego ......................................................................................... 103 Strony WebForm ................................................................................................... 107 Kontrolki użytkownika ............................................................................................ 114 Konfiguracja projektu .................................................................................................. 116 Instalacja w środowisku programistycznym .............................................................. 116 Podsumowanie .......................................................................................................... 117 Rozdział 4. Mechanizm obsługi ankiet ...................................................................................................119 Korzystanie z mechanizmu obsługi ankiet ..................................................................... 120 Dodawanie nowej ankiety ...................................................................................... 123 Edytowanie istniejącej ankiety ................................................................................ 125 Projekt mechanizmu obsługi ankiet .............................................................................. 127 Wiązanie obiektów i danych SQL Servera ................................................................ 129 Struktura witryny ................................................................................................... 131 Model danych i obiekty bazy danych ....................................................................... 132 Motywy i skórki ..................................................................................................... 135 Model bezpieczeństwa .......................................................................................... 135 Wykorzystywane klasy ........................................................................................... 137 Kod i jego objaśnienie ................................................................................................ 141 Pliki z folderu głównego ......................................................................................... 141 Formularze WebForm ............................................................................................. 145 Kontrolki użytkownika ............................................................................................ 147 Konfiguracja projektu .................................................................................................. 150 Instalacja w środowisku programistycznym .............................................................. 151 Podsumowanie .......................................................................................................... 152 Rozdział 5. Wrox CMS ............................................................................................................................153 Używanie systemu CMS Wrox ...................................................................................... 154 Przegląd witryny .................................................................................................... 154 Zarządzanie treścią za pomocą CMS ...................................................................... 155 Projekt Wrox CMS ...................................................................................................... 157 Warstwa biznesowa ............................................................................................... 158 Warstwa dostępu do danych .................................................................................. 159 Model danych ....................................................................................................... 160 Klasy pomocnicze ................................................................................................. 161 Kod źródłowy — objaśnienia ....................................................................................... 162 Pliki główne .......................................................................................................... 162 Folder Management .............................................................................................. 167 Wyświetlanie treści na stronie ................................................................................ 181 Instalacja Wrox CMS .................................................................................................. 184 Instalacja manualna .............................................................................................. 184 Zmiana konfiguracji IIS .......................................................................................... 184 Spis treści 7 Zmiana ustawień zabezpieczeń .............................................................................. 185 Testowanie strony ................................................................................................. 186 Podsumowanie .......................................................................................................... 187 Rozdział 6. Blog Wrox ............................................................................................................................189 Używanie Blogu Wrox .................................................................................................. 190 Projekt Blogu Wrox ..................................................................................................... 192 Warstwa biznesowa ............................................................................................... 193 Warstwa dostępu do danych .................................................................................. 196 Kod źródłowy — objaśnienia ....................................................................................... 203 Pliki główne aplikacji ............................................................................................. 203 Pisanie niezależnego kodu ..................................................................................... 207 Folder Controls ..................................................................................................... 211 Obsługa i logowanie błędów strukturalnych ................................................................... 221 Konfiguracja ......................................................................................................... 222 Obsługa i logowanie błędów ................................................................................... 223 Instalacja aplikacji Blog Wrox ...................................................................................... 225 Instalacja ręczna ................................................................................................... 225 Podsumowanie .......................................................................................................... 227 Rozdział 7. Foto Album ...........................................................................................................................229 Używanie Foto Albumu Wrox ........................................................................................ 230 Projekt Foto Albumu Wrox ........................................................................................... 235 Jak to wszystko działa? ......................................................................................... 235 Używane klasy ...................................................................................................... 242 Kod źródłowy — objaśnienia ....................................................................................... 245 Pliki główne aplikacji ............................................................................................. 245 Strony WebForms .................................................................................................. 247 Pliki strzeżone ...................................................................................................... 252 Kontrolki użytkownika ............................................................................................ 253 Instalacja projektu ...................................................................................................... 254 Instalacja lokalna .................................................................................................. 254 Podsumowanie .......................................................................................................... 256 Rozdział 8. Witryna Pomocy dla Klienta ...............................................................................................257 Korzystanie z Witryny Pomocy dla Klienta ..................................................................... 258 Projekt Witryny Pomocy dla Klienta .............................................................................. 260 Warstwa biznesowa .................................................................................................... 260 Klasa ContentBase ............................................................................................... 260 Klasa Product ....................................................................................................... 262 Klasa Download .................................................................................................... 263 Klasa Faq ............................................................................................................. 264 Klasa Category ..................................................................................................... 265 Warstwa dostępu do danych ....................................................................................... 266 Klasa ProductDB ................................................................................................... 266 Klasa DownloadDB ............................................................................................... 267 Klasa FaqDB ........................................................................................................ 267 Klasa CategoryDB ................................................................................................. 268 Model danych ....................................................................................................... 269 Klasy pomocnicze ................................................................................................. 272 8 ASP.NET 2.0. Gotowe rozwiązania Kod źródłowy — objaśnienia ....................................................................................... 273 Pliki główne aplikacji ............................................................................................. 273 Szablony stron (ang. Master Pages) ....................................................................... 274 Lokalizator Produktu .............................................................................................. 277 Lista plików do pobrania (The Download List) .......................................................... 281 Przeglądarka FAQ — najczęściej zadawane pytania ....................................................... 287 Witryna Pomocy dla Klienta — system zarządzania treścią — CMS ........................... 293 Instalacja Witryny Pomocy dla Klienta .......................................................................... 295 Instalacja manualna .............................................................................................. 295 Używanie Witryny Pomocy dla Klienta ...................................................................... 295 Podsumowanie .......................................................................................................... 296 Rozdział 9. Sklep Internetowy ..............................................................................................................299 Korzystanie ze sklepu internetowego ........................................................................... 300 Poruszanie się po sklepie internetowym .................................................................. 300 Administracja katalogiem produktów sklepu internetowego ....................................... 303 Projekt aplikacji sklepu internetowego .......................................................................... 304 Warstwa biznesowa ............................................................................................... 304 Warstwa dostępu do danych .................................................................................. 310 Klasy pomocnicze ................................................................................................. 314 Kod źródłowy — objaśnienia .................................................................................. 315 Folder Sklep ......................................................................................................... 319 Instalacja aplikacji sklep internetowy ........................................................................... 334 Instalacja manualna .............................................................................................. 334 Modyfikacja ustawień bezpieczeństwa .................................................................... 334 Zmiana ustawień e-mail ......................................................................................... 336 Podsumowanie .......................................................................................................... 336 Rozdział 10. System Rezerwacji On-line ..............................................................................................339 Korzystanie z Systemu Rezerwacji On-line .................................................................... 339 Administracja Systemem Rezerwacji On-line ............................................................ 340 Dokonywanie rezerwacji w Systemie Rezerwacji On-line ............................................ 342 Projekt Systemu Rezerwacji On-line .............................................................................. 344 Warstwa biznesowa .................................................................................................... 345 Warstwa dostępu do danych .................................................................................. 350 Klasy pomocnicze ...................................................................................................... 353 Kod źródłowy — objaśnienia ....................................................................................... 354 Sprawdzanie dostępności zasobów ......................................................................... 355 Kreator rezerwacji ................................................................................................. 363 Rejestracja użytkownika ......................................................................................... 369 Moduł administracyjny ........................................................................................... 371 Instalacja Systemu Rezerwacji On-line .......................................................................... 379 Instalacja manualna .............................................................................................. 379 Konfiguracja aplikacji .................................................................................................. 379 Podsumowanie .......................................................................................................... 380 Rozdział 11. Kartki internetowe .............................................................................................................381 Tworzenie własnej kartki internetowej .......................................................................... 382 Projekt aplikacji .......................................................................................................... 383 Toolkit .................................................................................................................. 386 Klasy pomocników ................................................................................................ 390 Spis treści 9 Kod źródłowy — objaśnienia ....................................................................................... 391 Strona macierzysta ............................................................................................... 392 Wgrywanie na serwer i skalowanie obrazków ........................................................... 395 Obracanie i odbijanie obrazków .............................................................................. 401 Kadrowanie obrazków ............................................................................................ 403 Dodawanie napisu do obrazka ................................................................................ 408 Wysyłanie wiadomości e-mail z osadzonymi obrazkami ............................................. 413 Instalacja aplikacji Kartki internetowe .......................................................................... 416 Instalacja ręczna ................................................................................................... 416 Konfiguracja aplikacji ............................................................................................ 416 Podsumowanie .......................................................................................................... 419 Rozdział 12. Baza błędów .......................................................................................................................421 Korzystanie z Bazy Błędów .......................................................................................... 422 Projekt Bazy Błędów ................................................................................................... 427 Warstwa biznesowa ............................................................................................... 427 Warstwa dostępu do danych .................................................................................. 434 Kod źródłowy — objaśnienia ....................................................................................... 441 Podstawowe pliki .................................................................................................. 441 Zgłaszanie błędu ................................................................................................... 444 Szukanie i przeglądanie błędów .............................................................................. 455 Inne pliki i foldery .................................................................................................. 465 Instalacja Bazy Błędów ............................................................................................... 466 Instalacja ręczna ................................................................................................... 467 Przeglądanie Bazy Błędów ...................................................................................... 467 Podsumowanie .......................................................................................................... 468 Skorowidz ..............................................................................................................................................471 4 Mechanizm obsługi ankiet Jeżeli kiedykolwiek brałeś udział w internetowej ankiecie, zapewne wiesz, jak ciekawe potrafi być oglądanie wyników, zwłaszcza jeśli przyglądając się im, możemy kiwnąć potakująco głową. Ankiety intrygują gości witryny, ponieważ są one nastawione na zbieranie i kompi- lowanie informacji od opinii publicznej. Na scenie politycznej toczą się ciągłe spekulacje w oparciu o wyniki ankiet przeprowadzanych na wybranych grupach ludzi. Zmiany w firmach i przepływ inwestycji również uzależnione są od informacji zebranych w ankietach. Na pewno zauważyłeś też, że pytania w ankietach są formułowane tak, aby trafiały do przeciętnego użyt- kownika. Stanowią one najlepszy sposób pozyskiwania informacji od użytkowników internetu i dlatego można je spotkać w całej sieci. Za ich pośrednictwem dane zbierają zarówno małe, jak i duże firmy. Użytkownikowi przedstawia się proste i zrozumiałe pytania oraz listę kilku możliwych odpowiedzi. Wyniki ankiety są generowane na bieżąco i udostępniane kierownic- twu firmy, która ją zorganizowała, co pozwala mu podejmować właściwe decyzje. Tak więc stworzenie internetowej ankiety w celu zebrania informacji o prawdziwym stanie danej grupy lub sektora rynku ma jak najbardziej sens. Mechanizm obsługi ankiet, który stworzymy, to ciekawa aplikacja. Można ją z powodzeniem stosować wszędzie tam, gdzie mamy do czynienia z szeregiem pytań, na które można udzielić odpowiedzi z określonego zbioru. Po przeprowadzeniu ankiety powinniśmy mieć możliwość obejrzenia zebranych informacji i ułożenia ich w czytelnym formacie. Na podstawie wyników ankiety powinniśmy mieć też możliwość generowania raportów, co ułatwi nam demonstro- wanie zdania większości. Mechanizm obsługi ankiet to wspaniały projekt przykładowy, w oparciu o który można do- wiedzieć się naprawdę wiele o ASP.NET 2.0. Strona do zarządzania ankietami, którą stwo- rzymy, daje administratorowi możliwość tworzenia ankiet i monitorowania ich wyników za pośrednictwem przyjaznego interfejsu użytkownika. Mechanizm obsługi ankiet oferuje wiele przydatnych funkcji, takich jak: (cid:81) Tworzenie ankiet na bieżąco (cid:81) Przeglądanie listy wyników w zestawieniu procentowym (cid:81) Osadzanie ankiet w istniejących witrynach internetowych 120 ASP.NET 2.0. Gotowe rozwiązania Są to główne funkcje, na implementacji których się skupimy. Zostawiają one wiele miejsca na modyfikacje i rozszerzenia. W tym rozdziale pokażemy, jak łatwo implementuje się niektóre nowe kontrolki i techniki dostępne w ASP.NET 2.0. Powiemy na przykład o kontrolce ObjectDataSource, rozszerzonej kontrolce DataSource SQL Servera, interfejsie bezpieczeństwa ASP.NET Web Security Inter- face, stosowaniu motywów z poziomu pliku .config, nowych kontrolkach nawigacyjnych, kontrolkach logowania i odzyskiwania hasła oraz stosowaniu szablonów stron. W podrozdziale „Projekt mechanizmu obsługi ankiet” dokładniej przyjrzymy się projektowi aplikacji. Omówimy sobie strukturę plików w bazie danych, projekty klas, podstawowy model dziedziczenia i luźną architekturę tej aplikacji. W podrozdziale „Kod i jego objaśnienie” dokonamy metodycznej analizy kodu, zagłębiając się w poszczególne moduły i funkcje i wyjaśniając ich rolę, od interfejsu użytkownika, przez bazę danych i z powrotem. Ponadto przeanalizujemy logikę klas i zasugerujemy możliwe roz- szerzenia systemu. W ostatnim podrozdziale, „Konfiguracja projektu”, napiszemy, jak zainstalować mechanizm obsługi ankiet w środowisku programistycznym i przystosować go do swoich potrzeb. Zacznijmy jednak od początku, to znaczy od ogólnego spojrzenia na działanie mechanizmu obsługi ankiet. Korzystanie z mechanizmu obsługi ankiet Posługiwanie się mechanizmem obsługi ankiet jest bardzo proste. Jest to w zasadzie strona internetowa, która ma za zadanie ułatwić firmom lub osobom prywatnym proste i szybkie tworzenie internetowych ankiet. Każdy badany będzie musiał obejrzeć tylko kilka podstron, ponieważ cała ankieta będzie składała się zaledwie z kilku pytań oraz listy odpowiedzi, z których żadna nie jest zła. Sprawia to, że ankiety są idealnym kandydatem do stworzenia komponentu lub modułu wielokrotnego użytku, który będzie je generował. Założymy, że na każde pytanie ankiety będą do wyboru dokładnie 4 odpowiedzi. Jeżeli strona mechanizmu obsługi ankiet została już poprawnie zainstalowana (patrz podroz- dział „Konfiguracja projektu” w dalszej części tego rozdziału), możesz obejrzeć ją w prze- glądarce internetowej po uruchomieniu w programie Visual Web Developer. Twoim oczom ukaże się strona pokazana na rysunku 4.1. W górnej części strony domowej dostępne są następujące łącza: (cid:81) Strona główna (cid:81) O programie (cid:81) Kontakt (cid:81) Administracja Rozdział 4. (cid:81) Mechanizm obsługi ankiet 121 Rysunek 4.1 W dolnej części strony głównej znajdziesz też prostokąt o zaokrąglonych narożnikach, który pełni rolę hiperłącza prowadzącego do gotowej ankiety. Po jego kliknięciu zostaniesz przenie- siony na stronę, na której wyświetlone są wszystkie pytania jednocześnie (patrz rysunek 4.2). Użytkownikowi pokazywana jest lista czterech odpowiedzi (A, B, C, D) na każde pytanie, z któ- rej może wybrać tę, która najbardziej odpowiada jego przekonaniom. Po zaznaczeniu odpo- wiedzi na wszystkie pytania można kliknąć przycisk Zobacz wyniki, co spowoduje wyświe- tlenie strony pokazanej na rysunku 4.3. Na tym etapie, po wysłaniu wypełnionej ankiety, będzie można zapoznać się z dotychczas zebranymi wynikami. Oczywiście w miarę jak w badaniu będzie brało udział więcej osób, wyniki będą się zmieniać. Na tym w zasadzie kończy się opis głównej części naszej aplikacji, z którą będzie się stykać większość użytkowników. Równie ważne jest jednak to, co kryje się „od kuchni” — sekcja administracyjna, która umożliwia szybkie i łatwe tworzenie ankiet i przeglądanie odpowiedzi. 122 ASP.NET 2.0. Gotowe rozwiązania Rysunek 4.2 Po kliknięciu hiperłącza Administracja, znajdującego się w głównym menu, użytkownik zostaje przeniesiony na ekran logowania, chyba że zdążył się już zalogować i utworzyć se- sję. Interfejs logowania pokazaliśmy na rysunku 4.4. Strona ta udostępnia mechanizm logowania i mechanizm przypominania hasła. Wprowadź nazwę użytkownika Admin, hasło password# i kliknij przycisk Zaloguj. Po zalogowaniu się w witrynie zostaniesz przeniesiony na stronę administracyjną, pokazaną na rysunku 4.5. Zawiera ona tabelę ze wszystkimi ankietami, jakie istnieją w systemie, i umożliwia prze- prowadzanie czynności administracyjnych, takich jak: (cid:81) Tworzenie nowej ankiety (cid:81) Edycja pytań lub nazwy istniejącej ankiety (cid:81) Dodawanie pytań do istniejącej ankiety Rozdział 4. (cid:81) Mechanizm obsługi ankiet 123 Rysunek 4.3 (cid:81) Przeglądanie udzielonych odpowiedzi (cid:81) Oznaczanie wybranej ankiety jako gotowej do wyświetlenia na stronie Klikając wybrane hiperłącza w tabeli, przechodzisz na strony, które umożliwiają wykona- nie wybranych czynności. Każdą z nich opisaliśmy w kolejnych podrozdziałach. Dodawanie nowej ankiety Jedną z pierwszych funkcji, jakie pewnie będziesz chciał wywołać, jest Kreator dodawania ankiety, do którego można się dostać za pośrednictwem hiperłącza widocznego w lewym dolnym rogu strony lub dowolnego łącza Nowa widocznego w tabeli. Po kliknięciu któregoś z tych elementów pojawi się Kreator dodawania ankiety i poprosi o wprowadzenie danych tworzonej ankiety (patrz rysunek 4.6). Na rysunku pokazaliśmy pierwszy etap kreatora. W prawym dolnym rogu ekranu widać przy- cisk Dalej, który jest nową kontrolką w ASP.NET 2.0. W następnym podrozdziale, „Projekt mechanizmu obsługi ankiet”, omówimy szczegóły i przypadki użycia. 124 ASP.NET 2.0. Gotowe rozwiązania Rysunek 4.4 Klikając Dalej, możemy wprowadzić nazwę nowej ankiety (patrz rysunek 4.7). Nazwę nowej ankiety można wprowadzić w polu tekstowym widocznym w górnej części ekranu. Nasza przykładowa ankieta będzie nosiła tytuł „Czy jesteś uzależniony od poczty elektronicznej?”. Aby kontynuować po wprowadzeniu nazwy, należy kliknąć Dalej. Pojawi się wówczas następny krok kreatora, pokazany na rysunku 4.8. Na rysunku 4.8 widać wielowierszowe pole tekstowe, wykorzystywane do przechowywania długich opisów ankiet, które użytkownicy będą mogli zobaczyć tuż pod tytułem (nazwą) ankiety. Po wprowadzeniu opisu kliknij Dalej, aby przejść na stronę Dodaj pytania, poka- zaną na rysunku 4.9. Możesz wprowadzać za każdym razem po jednym pytaniu (wraz z towarzyszącym mu zesta- wem odpowiedzi), klikając następnie przycisk Zapisz pytanie w celu zachowania go w bazie danych. Po wprowadzeniu wszystkich pytań kliknij Dalej. W tym momencie wszystkie pytania ankiety będą już zapisane w bazie danych. Ostatnia strona Kreatora dodawania ankiety została pokazana na rysunku 4.10. Poza tworzeniem nowych ankiet masz też możliwość modyfikowania już istniejących. Rozdział 4. (cid:81) Mechanizm obsługi ankiet 125 Rysunek 4.5 Edytowanie istniejącej ankiety Jeżeli chcesz zmodyfikować istniejącą ankietę, możesz to zrobić, wracając na stronę admini- stracyjną. W tym celu kliknij hiperłącze Administracja w głównym menu. Następnie kliknij jedno z hiperłączy Pytania wyświetlanych w wierszach tabeli ankiet. Spowoduje to wczy- tanie strony służącej do zarządzania istniejącymi ankietami, pokazanej na rysunku 4.11. Na rysunku 4.11 widać wszystkie pytania danej ankiety, wraz z hiperłączami, które umoż- liwiają dodawanie, edycję i usuwanie pytań. Możemy więc podsumować podstawowe zadania mechanizmu obsługi ankiet w następujący sposób: umożliwienie tworzenia i wyświetlania ankiet na stronach internetowych oraz udostęp- nianie narzędzi do monitorowania i kontrolowania ankiet w miarę napływania odpowiedzi. W następnym podrozdziale przyjrzymy się tym fragmentom aplikacji, które są szczególnie wy- magające pod względem technicznym, i pokażemy, jak łączą się one w jedną całość. Zobaczysz, jak wygląda modelowanie klas i gdzie znajdują się ważne elementy konstrukcyjne projektu. 126 ASP.NET 2.0. Gotowe rozwiązania Rysunek 4.6 Rysunek 4.7 Rozdział 4. (cid:81) Mechanizm obsługi ankiet 127 Rysunek 4.8 Projekt mechanizmu obsługi ankiet W tym podrozdziale przyjrzymy się dokładnie wewnętrznym mechanizmom naszej inter- netowej aplikacji, skupiając się na zastosowanych klasach i połączeniach między kontrolkami do obsługi danych a obiektami i danymi SQL Servera. Projekt mechanizmu obsługi ankiet jest zorientowany obiektowo i podzielony na logiczne warstwy. Zastosowano tu do pewnego stopnia logiczną abstrakcję, wydzielając warstwę klienta, biznesową i danych. Dzięki temu programista może łatwiej wyobrazić sobie, jak mógłby prze- biegać podział aplikacji na kilka projektów, serwerów i (lub) lokalizacji. W tym podrozdziale opiszemy też dokładnie dwa sposoby wiązania danych z elementami formularzy — kontrolki DataSource SQL Servera i ObjectDataSource. Zagadnieniem tym, a także pozostałymi aspektami architektury aplikacji, zajmiemy się w dal- szej części tego podrozdziału. 128 ASP.NET 2.0. Gotowe rozwiązania Rysunek 4.9 Rysunek 4.10 Rozdział 4. (cid:81) Mechanizm obsługi ankiet 129 Rysunek 4.11 Wiązanie obiektów i danych SQL Servera Jeżeli aplikacja ma być pisana szybko i wydajnie, zawsze trzeba iść na jakiś kompromis. Na etapie planowania i projektowania projektu może pojawić się pokusa skorzystania z szybkich i „lekkich” kontrolek interfejsu użytkownika, które wykonują większość czynności za pro- gramistę i pozwalają zaoszczędzić mnóstwo godzin pracy. Chodzi na przykład o kontrolki GridView i DataList. Dzięki nim możemy po prostu przeciągnąć kontrolki na formularz WebForm, ustawić żądane właściwości w widoku Design View i uruchomić aplikację. Bez napisania choćby jednego wiersza kodu VB.NET i C# możemy skonfigurować kontrolkę źródła danych, tak aby w pełni wyświetlała się na stronie internetowej. Nowa kontrolka ASP.NET 2.0 sama tworzy za programistę obiekty ADO.NET Connection, Command, DataSet bądź DataReader, zapewniając wszystko, co potrzeba, aby połączyć się z danymi w czasie wykonywania pro- gramu. Potrafi ona też prawidłowo obsłużyć zdarzenia związane z korzystaniem z danych na stronie — coś, czego nie oferowało ASP.NET 1.1. Są to wspaniałe funkcje, z których warto korzystać. Jednak zdajemy sobie sprawę z tego, że wielu programistów czytających tę książkę będzie chciało poznać bardziej rozbudowane funkcje ASP.NET 2.0 i wkroczyć tym samym w nowy, ulepszony świat .NET. Z myślą o Czytelnikach zainteresowanych tworzeniem w ASP.NET 2.0 dużych projektów warto wspomnieć o zaletach i wadach, jakie niesie ze sobą stosowanie bardziej skalowalnych architektur, i o tym, co zyskujemy, a co tracimy, stosując 130 ASP.NET 2.0. Gotowe rozwiązania w ASP.NET 2.0 każdą z dostępnych metodologii. Skalowalność architektury ma silny związek z obciążeniem, jakie jest ona w stanie udźwignąć w sytuacji, gdy w grę wchodzą duże ilości danych lub gdy wymagana jest spora ilość przetwarzania. Skalowalność odnosi się też do stopnia kontroli, jaki mamy nad przebiegiem przetwarzania, kierowania ruchem i obsługą danych. ASP.NET 2.0 obsługuje wszystkie te elementy, oferując przy tym wiele korzyści, które czynią tę platformę idealnym rozwiązaniem do rozwijania aplikacji. Prawdziwie wielowarstwowe architektury spotyka się w przemyśle informatycznym raczej w dużych aplikacjach korporacyjnych. Są one zazwyczaj bardziej ogólne i oparte na wzorcach. Warstwa użytkownika, biznesowa i danych stanowią wówczas niezależne sekcje aplikacji, mogące funkcjonować niezależnie od pozostałych. Taka jest natura programowania rozproszo- nego, które ostatnio ewoluowało w kierunku tak zwanych aplikacji kompozytowych. W pro- jektowaniu rozproszonym logika dostępu do bazy danych byłaby umieszczona jedynie w tej warstwie kodu (w tych klasach), która ma jawne zadanie odwoływania się do danych. Tylko te konkretne klasy pozwalałyby wyciągać informacje z bazy danych, pełniąc rolę pośredników dla pozostałych modułów i klas. W związku z tym korzystanie z obiektów biznesowych (takich jak obiekty klasy Survey) umożliwiałoby przekazanie żądania danych do innych klas w warstwie danych (na przykład od klasy SurveyDB), a następnie zwrócenie danych z powrotem do klienta i związanie ich z siatką danych, polem listy itd. W przypadku większości aplikacji takie podejście jest akceptowalne. Jeśli chodzi o wiązanie obiektów i danych, zauważysz, że w naszym mechanizmie obsługi ankiet wykorzystujemy wbudowane kontrolki ASP.NET o nazwie ObjectDataSource w celu związania danych z obiektów biznesowych z kontrolkami graficznego interfejsu użytkownika. W ten sposób naśladujemy wielowarstwowe, obiektowe podejście, które w ostatnich latach uważane jest za najlepszą praktykę programistyczną, choć nie zapewniamy wszystkich niety- powych i wydajnych mechanizmów, które mogą być wymagane w rozwiązaniach korpora- cyjnych. Musimy mieć możliwość serializacji obiektów niektórych klas i przekazywania ich za pośrednictwem połączenia internetowego między warstwami, dzięki czemu będziemy mogli stosować niezależne środowiska serwerowe. Obiekty innych klas i moduły będą zarządzane za pośrednictwem mechanizmu WMI lub monitorów wydajności ASP.NET (PerfMon). Te dodatkowe wymagania na poziomie obiektów można spełnić stosując kontrolki ObjectData- Source, ale w dalszym ciągu będzie to wymagało ręcznego programowania, o czym warto wspomnieć w tej książce. Poza kontrolkami ObjectDataSource mechanizm obsługi ankiet wykorzystuje też kontrolki DataSource SQL Servera w celu wydobywania danych z plików bazy danych SQL Server Express 2005 i wiązania ich z kontrolkami interfejsu użytkownika. Wbrew tym założeniom, kontrolki SqlDataSource zazwyczaj są projektowane jako szybki i prosty sposób wybierania rekordów z bazy danych i wiązania ich z formularzem. W procesie tym stosuje się wyrażenia języka SQL, umieszczane wśród znaczników plików ASPX. Stoi to w jawnej sprzeczności z bezpieczniejszym i bardziej rozproszonym podejściem wykorzystującym luźno powiązane warstwy i stanowi zagrożenie dla aplikacji i łatwości zarządzania nią. W miarę jak z takich stron zaczyna korzystać coraz więcej użytkowników, tworzonych jest coraz więcej połączeń z bazą danych (w zależności od zastosowanych łańcuchów inicjujących połączenie). Może to ostatecznie doprowadzić do utraty skalowalności i szybkości i stanowić zagrożenie dla witryn o dużym natężeniu ruchu. Korzystanie z kontrolek SqlDataSource wymaga też uaktualniania plików źródłowych ASPX witryny za każdym razem, gdy w bazie danych wprowadzane są zmiany, które mają wpływ na zapytania i procedury przechowywane na serwerze. Wcale nie Rozdział 4. (cid:81) Mechanizm obsługi ankiet 131 oznacza to, że aplikacja musi być całkowicie przewidywalne i łatwa do zarządzania, ale — jak piszemy również w innych rozdziałach — tego rodzaju zagrożenia często nie są brane pod uwagę, a programiści skupiają się na stosowaniu kontrolek ObjectDataSource i SqlDataSource. Struktura witryny Struktura witryny jest bardzo poukładana. Wszystkie pliki zostały rozmieszczone w folderach tak, aby utrzymywanie kodu było jak najwydajniejsze. Folder Controls przechowuje wszystkie kontrolki użytkownika, a w folderze ContentFiles znajdują się główne pliki ASPX formularzy WebForm witryny. W poniższej tabeli wymieniamy poszczególne foldery składające się na poszczególne sekcje aplikacji internetowej: Folder App_Code App_Data App_Themes ContentFiles Opis Przechowuje klasę warstwy biznesowej (SurveyDB.vb). Standardowy folder .NET na pliki bazy danych. Folder motywów, przechowujący dwa motywy, które można stosować w witrynie. Standardowe pliki ASPX formularzy WebForm służących do wyświetlania zawartości. Przechowuje wszystkie kontrolki użytkownika. Przechowuje obrazki wykorzystywane w nagłówku lub na podstronach. Controls Images Management Przechowuje zabezpieczone strony administracyjne WebForm. Pliki różne Do „plików różnych” zaliczamy stronę logowania, plik Web.config, plik z mapą witryny, a także plik z szablonem stron umieszczony w głównym katalogu witryny. Na rysunku 4.12 pokazaliśmy, jak wyglądają foldery i pliki aplikacji z punktu widzenia pro- gramisty, oglądane w panelu Solution Explorer. Rysunek 4.12 132 ASP.NET 2.0. Gotowe rozwiązania Następny podrozdział opisuje najważniejsze wykorzystywane elementy bazodanowe i sposób zaimplementowania poszczególnych cech ankiet w bazie danych. Model danych i obiekty bazy danych Model danych ma bardzo prostą naturę i składa się zasadniczo z trzech elementów: (cid:81) Ankiety (cid:81) Pytania (cid:81) Udzielone odpowiedzi Każda ankieta zawiera pytania i odpowiedzi, które są zaznaczane przez osoby odwiedzające stronę. Po ich zaznaczeniu następuje wygenerowanie „udzielonych odpowiedzi”. Rysunek 4.13 ukazuje diagram przedstawiający wykorzystywane tabele bazy danych. Rysunek 4.13 Przejdziemy teraz do szczegółowego omówienia każdej z trzech tabel. W poniższej tabeli omawiamy zawartość tabeli Question: Nazwa pola Typ danych Int Int varchar(1000) Opis Unikatowy identyfikator rekordu. Ankieta, do której przynależy dane pytanie. Treść pytania. Pierwsza z czterech dostępnych odpowiedzi. varchar(1000) varchar(1000) Druga z czterech dostępnych odpowiedzi. Trzecia z czterech dostępnych odpowiedzi. varchar(1000) varchar(1000) Czwarta z czterech dostępnych odpowiedzi. ID SurveyID Text OptionA OptionB OptionC OptionD W kolejnej tabeli omawiamy tabelę Survey: Nazwa pola Typ danych ID Name Int varchar(200) Opis Unikatowy identyfikator rekordu. Nazwa nadana ankiecie. Rozdział 4. (cid:81) Mechanizm obsługi ankiet 133 Nazwa pola Description Typ danych varchar(1000) Opis ankiety. Opis Date Datetime IsCurrentSurvey Char(1) Znacznik daty i czasu z chwili utworzenia ankiety. Wartość 0 lub 1 określająca, czy ankieta jest aktualnie prezentowana w witrynie. 1 oznacza, że dany rekord definiuje bieżącą ankietę, a 0, że nie. Poniższa tabela omawia zawartość tabeli Response: Nazwa pola Typ danych ID QuestionID Selection Int Int Char(1) Opis Unikatowy identyfikator rekordu. Identyfikator pytania, do którego odnosi się ta odpowiedź. Wartość A, B, C, lub D oznaczająca odpowiedź udzieloną przez użytkownika na dane pytanie. Poza tymi trzema tabelami aplikacja wykorzystuje szereg procedur przechowywanych na serwe- rze. Ich nazwy powstały w oparciu o te same konwencje nazewnicze, które stosujemy w pozo- stałych rozdziałach: (cid:81) sprocNazwaTabeliSelectList (cid:81) sprocNazwaTabeliSelectSingleItem (cid:81) sprocNazwaTabeliInsertUpdateItem Zgodnie z tymi założeniami procedurom przechowywanym na serwerze nadaliśmy nastę- pujące nazwy: (cid:81) sprocQuestionDeleteSingleItem (cid:81) sprocQuestionInsertUpdateItem (cid:81) sprocQuestionSelectList (cid:81) sprocResponseInsertItem (cid:81) sprocSurveyInsertUpdateItem (cid:81) sprocSurveySaveSingleItemAsCurrent (cid:81) sprocSurveySelectList (cid:81) sprocSurveySelectSingleItem (cid:81) sprocSurveySelectSingleItemWhereCurrent Jak widać, przyjęta konwencja nazewnicza pozwala nam szybko i łatwo odnaleźć procedury przechowywane na serwerze, odnoszące się do konkretnej tabeli i ustalić, czy realizują one operację wybierania, wstawiania, uaktualniania, czy usuwania rekordów. Warto przyjrzeć się wielu spośród tych procedur przechowywanych na serwerze. Pierwsza z nich pobiera z bazy danych pojedynczy rekord opisujący ankietę i wyświetla go na stronie głównej Default.aspx za pośrednictwem kontrolki CurrentSurvey: 134 ASP.NET 2.0. Gotowe rozwiązania ALTER PROCEDURE dbo.sprocSurveySelectSingleItemWhereCurrent /* ============================================================ NAZWA: sprocSurveySelectSingleItemWhereCurrent DATA UTWORZENIA: 5 października 2005 UTWORZONA PRZEZ: Shawn Livermore (shawnlivermore.blogspot.com) UTWORZONA DLA: ASP.NET 2.0 - Gotowe rozwiązania FUNKCJA: Zwraca z bazy danych bieżącą ankietę. ============================================================= */ as select top 1 * from Survey where iscurrentsurvey = 1 Jak widać, w przypadku tego projektu stopień złożoności procedur przechowywanych na ser- werze został ograniczony do minimum. Prosta struktura tabel aplikacji odpowiada częściowo za łatwość posługiwania się nią i niski poziom złożoności projektowej. Następna procedura służy do pobrania wszystkich pytań przypisanych do ankiety o danym identyfikatorze: ALTER PROCEDURE dbo.sprocQuestionSelectList /* ============================================================ NAZWA: sprocQuestionSelectList DATA UTWORZENIA: 5 października 2005 UTWORZONA PRZEZ: Shawn Livermore (shawnlivermore.blogspot.com) UTWORZONA DLA: ASP.NET 2.0 - Gotowe rozwiązania FUNKCJA: Zwraca z bazy danych wszystkie pytania i dostępne odpowiedzi dla danej ankiety ============================================================= */ (@id int) as SELECT Question.SurveyID, Question.Text, Question.OptionB, Question.OptionA, Question.OptionD, Question.OptionC, Question.ID FROM Survey INNER JOIN Question ON Survey.ID = Question.SurveyID WHERE (Survey.ID = @id) Są to proste, przykładowe procedury przechowywane na serwerze, ale są one reprezentatywne dla tego rodzaju aplikacji. Poza tabelą i procedurami przechowywanymi na serwerze mechanizm obsługi ankiet wykorzy- stuje też widoki, uwidaczniające dość złożone zapytania wykorzystywane do ujmowania wy- ników ankiet w zestawienia procentowe. Widoki te to: (cid:81) viewAnswerPercentByQuestion (cid:81) viewAnswerSumByQuestion (cid:81) viewNumberResponsesBySurvey (cid:81) viewQuestionCountBySurvey (cid:81) viewResponseCountBySurvey Rozdział 4. (cid:81) Mechanizm obsługi ankiet 135 Są one wykorzystywane łącznie, gdyż zależą od siebie wzajemnie. Jeden widok wykorzys- tuje lub wskazuje pola innego widoku. Ostateczny wynik widoków prezentowany jest przez viewAnswerPercentByQuestion, który jest wykorzystywany przez kontrolkę SurveyResults. Motywy i skórki Projekt udostępnia prosty sposób przypisywania każdej stronie witryny wybranego motywu lub skórki, bez konieczności modyfikowania kodu HTML stron (dotyczy to nawet samego szablonu stron). Aby nadać całej witrynie wybrany motyw graficzny, wystarczy zmodyfiko- wać plik Web.config, wskazując w nim nazwę żądanego motywu (przy założeniu, że istnieje on w ramach projektu i został umieszczony w folderze App_Themes). Motyw wczytywany jest na każdym formularzu ASP.NET za pośrednictwem poniższego kodu obsługi zdarzeń pre- inicjalizacyjnych: Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) (cid:180)Handles Me.PreInit procedura obsługi tego zdarzenia preinicjalizacyjnego jest wywoływana w celu zainicjalizowania strony. Pozwala ona ustawić tytuł i motyw strony. Informacje o nich pochodzą z ustawień w pliku web.config, które są wyciągane ze współ- użytkowanych, publicznych właściwości klasy Config. Page.Theme = Config.CurrentTheme Page.Title = Config.PageTitle End Sub Kod ten uzyskuje dostęp do właściwości klasy config (wyciąganych z pliku Web.config), a następnie nadaje składowej strony definiującej bieżący motyw wartość odpowiadającą aktu- alnie wybranemu motywowi. Pozwala to zapewnić spójny wygląd całej witryny, a zmiany wyglądu i zachowania witryny można dokonać wprowadzając zaledwie jedną zmianę w pliku Web.config! Poniżej pokazujemy, w którym konkretnie miejscu w pliku Web.config należy wprowadzić zmianę. Chodzi o sekcję appSettings: !-- add key= CurrentTheme value= CleanBlue / -- add key= CurrentTheme value= CleanRed / W pokazanym fragmencie kodu jeden wpis definiujący motyw jest oznaczony jako komen- tarz, a drugi nie. Wystarczy zamienić je miejscami, aby zmienić bieżący motyw. Model bezpieczeństwa Projekt wykorzystuje mechanizm Forms Authentication i obiekt typu SQL Server Security Provider. Po pierwszym zadeklarowaniu w narzędziu administracyjnym ASP.NET Security Administration tool, że ma być wykorzystywany właśnie ten obiekt, generowana jest nowa baza danych z informacjami systemu bezpieczeństwa. Zostaje ona włączona do projektu i tra- fiają do niej informacje o wszystkich kontach użytkowników i ustawieniach związanych z bez- pieczeństwem. W takim modelu bezpieczeństwa mechanizm Forms Authentication nie jest wykorzystywany bezpośrednio, lecz za pośrednictwem wielu różnych, nowych kontrolek ASP.NET 2.0 zapewniających bezpieczeństwo. Mamy tu na myśli na przykład kontrolki 136 ASP.NET 2.0. Gotowe rozwiązania wykorzystywane do obsługi logowania użytkowników, wyświetlania informacji o stanie zalo- gowania, przypominania zapomnianych haseł, zmiany haseł czy też tworzenia nowych użyt- kowników. Ten model bezpieczeństwa jest wykorzystywany w wielu obszarach aplikacji. Na przykład w referencjach do folderu Management witryny. Model bezpieczeństwa pozwala użytkow- nikowi zalogować się w witrynie i stać się uwierzytelnionym użytkownikiem. Formularz Login.aspx jest wczytywany automatycznie za każdym razem, gdy użytkownik próbuje uzyskać dostęp do któregokolwiek pliku ASPX z folderu Management bez uprzedniego uwierzytel- nienia się. Tak w skrócie wyglądają możliwości oferowane przez nowy model bezpieczeń- stwa ASP.NET 2.0, zaimplementowany z wykorzystaniem obiektów Role Provider i Members- hip Provider. Zostało to skonfigurowane tak, aby jedynym sposobem zaimplementowania bezpieczeństwa było skorzystanie z obiektu kontrolki Login ASP.NET, tak jak w poniższym przykładzie: asp:Login ID= Login1 runat= server / Stanowi to doskonały przykład zabezpieczenia folderu witryny i uzyskiwania dostępu do za- wartych w nim stron w oparciu o role poszczególnych użytkowników, przypisane za pośred- nictwem narzędzia ASP.NET 2.0 Configuration Tool. Narzędzie to służy do zarządzania uprawnieniami w systemie zabezpieczeń. Można się do niego dostać z poziomu Visual Studio, wybierając w menu polecenie Website|ASP.Net Configuration. Gdy program narzędziowy zostanie w pełni wczytany, na ekranie pojawi się zakładka Security. Kliknięcie jej pozwala modyfikować ustawienia wszystkich folderów wchodzących w skład witryny i zezwalać na dostęp lub ograniczać go użytkownikom, którzy pełnią określone role. Role te definiujemy samodzielnie i przypisujemy je poszczególnym użytkownikom. Na skutek tych działań gene- rowany jest plik Web.config, który trafia do folderu, do którego chcemy ograniczyć dostęp. Poniżej pokazujemy przykładową zawartość pliku Web.config: ?xml version= 1.0 encoding= utf-8 ? configuration xmlns= http://schemas.microsoft.com/.NetConfiguration/v2.0 system.web authorization deny users= ? / allow roles= Administrator / allow roles= SuperAdmin / /authorization /system.web /configuration Za ustawienia bezpieczeństwa odpowiadają w tym pliku konfiguracyjnym trzy główne wpisy. Stanowią one serię wyrażeń w formacie XML, definiujących uprawnienia do danego folderu w sposób hierarchiczny w ramach całej witryny. Przesłaniają one ustalenia poczynione w głów- nym pliku Web.config witryny, a także w pliku machine.config umieszczonym na serwerze. W pliku tym wyrażenie deny users= ? / oznacza, że do folderu nie powinien zostać wpusz- czony żaden nieuwierzytelniony użytkownik (symbolizowany przez znak zapytania). Wyrażenia allow roles= Admin / i allow roles= SuperAdmin / oznaczają, że wszyscy użytkownicy, którym przypisano rolę Admin lub Superadmin, będą mieli dostęp do folderu. Do użytku w ramach mechanizmu obsługi ankiet tworzone są dwa konta i przypisywane są im dwie różne role: Rozdział 4. (cid:81) Mechanizm obsługi ankiet 137 Nazwa użytkownika Hasło Admin password# SuperAdmin password# Opis konta Temu użytkownikowi przypisywana jest rola o nazwie Administrator. Temu użytkownikowi przypisywana jest rola Superadministrator. Wykorzystane tu dwie role są już zdefiniowane w bazie danych systemu bezpieczeństwa i odwołujemy się do nich w różnych obszarach aplikacji, gdy chcemy, aby pewne jej obsza- ry były bardzo dobrze zabezpieczone: Rola Opis roli Ta rola pozwala dodawać, edytować i usuwać ankiety oraz ich pytania. Administrator Superadministrator Ta rola daje takie same przywileje co rola Administrator, a ponadto pozwala na usuwanie ankiet i (lub) ich poszczególnych pytań z systemu. Tak więc możemy kontrolować zarówno dostęp do elementów formularzy, jak i do folderów, wykorzystując narzędzie ASP.NET Configuration Tool lub własne skrypty w języku VB.NET. Wykorzystywane klasy Mechanizm obsługi ankiet wykorzystuje tylko kilka podstawowych klas, przy czym są to klasy inteligentne. Zaprojektowane tak, aby pracowały w sposób „przyjazny obiektom”. To znaczy w typowym środowisku obiektowym struktury tych klas funkcjonowałyby lepiej niż inne struktury obiektowe. Klasa SurveyBase Klasa SurveyBase (patrz rysunek 4.14) pełni rolę klasy bazowej, z której można dziedziczyć i do której odwołuje się każda ankieta. Pozwala ona obiektom klasy potomnej Survey udo- stępniać metody Save i New, które ułatwiają spójne i wygodne zarządzanie klasą. Rysunek 4.14 W poniższej tabeli wymieniono metody dostępne w klasie SurveyBase: 138 ASP.NET 2.0. Gotowe rozwiązania Metoda New() Typ zwracanych danych Opis nie dotyczy Save() Int Konstruktor klasy SurveyBase. Metoda Save wykorzystywana do zapisywania obiektów klasy pochodnej Survey. Klasę Survey opisujemy po klasie SurveyBase, ponieważ jest to klasa, która dziedziczy z SurveyBase. Dzięki temu ma ona dostęp do współużytkowanych metod i funkcjonalności oferowanej przez klasę SurveyBase. Klasa Survey Klasa Survey (patrz rysunek 4.15) odpowiada za większą część operacji dostarczania obiektów do warstwy biznesowej aplikacji. Jej metody są dostępne jako publiczne i współużytkowane, co ułatwia ich stosowanie w różnorodnych formularzach i kontrolkach aplikacji. Oznacza to też, że aby wywoływać te metody, nie trzeba tworzyć obiektów klasy Survey. Zamiast tego do wywołania żądanej funkcji w dowolnym formularzu WebFrom zapisanym w języku VB.NET lub w dowolnej kontrolce wystarczy użyć składni Survey.NazwaMetody(). Rysunek 4.15 W poniższej tabeli wymieniliśmy wszystkie dostępne składowe klasy Survey: Metoda Delete Typ zwracanych danych Opis nie dotyczy DeleteQuestion nie dotyczy Usuwa ankietę z bazy danych, wywołując metodę Delete() klasy SurveyDB. Usuwa pytanie z bazy danych, wywołując metodę DeleteQuestion() klasy SurveyDB. Metoda DeleteQuestion Typ zwracanych danych Opis nie dotyczy Get Obiekt klasy Survey GetCurrentSurvey DataSet GetQuestionIDs Collection GetQuestions DataSet GetSurveyList New Save DataSet nie dotyczy Integer SaveQuestion Boolean SaveResponses SaveSurvey SaveSurveyAsCurrent Boolean nie dotyczy nie dotyczy Rozdział 4. (cid:81) Mechanizm obsługi ankiet 139 Usuwa pytanie z bazy danych, wywołując metodę DeleteQuestion() klasy SurveyDB. Pobiera ankietę z bazy danych, wywołując metodę Get() klasy SurveyDB. Zwraca z bazy danych bieżącą ankietę. Pobiera zbiór identyfikatorów pytań z danej ankiety. Pobiera zbiór pytań i możliwych odpowiedzi z danej ankiety. Zwraca z bazy danych listę ankiet z podanej kategorii. Zapewnia potencjalną możliwość przetwarzania akcji i informacji w chwili tworzenia obiektów. Zapisuje ankietę w bazie danych, wywołując metodę Save() klasy SurveyDB. Ponieważ klasa ta dziedziczy z klasy SurveyBase, metodę Save można przeciążać i wykorzystywane jest słowo kluczowe Me. Zapisuje zbiór pytań ankiety. Zapisuje zbiór odpowiedzi na pytania z danej ankiety. Zapisuje ankietę w bazie danych. Zapisuje ankietę jako bieżącą. Następna klasa reprezentuje te metody aplikacji, które mają bezpośredni związek z danymi. Klasa SurveyDB Klasa SurveyDB (patrz rysunek 4.16) pełni rolę warstwy danych aplikacji. Zasadniczo jest to główny pośrednik dla wszystkich metod z warstwy biznesowej, które żądają dostępu do bazy danych. Poza klasą SurveyDB żadna inna klasa aplikacji ani żaden inny fragment kodu nie przeprowadza bezpośrednich operacji na bazie danych. Rysunek 4.16 140 ASP.NET 2.0. Gotowe rozwiązania W poniższej tabeli wymieniamy wszystkie dostępne składowe klasy SurveyDB: Metoda Delete DeleteQuestion Get GetCurrentSurvey DataSet GetQuestionIDsForSurvey Collection GetQuestionsForSurvey GetSurveyList Save SaveQuestion SaveResponses DataSet DataSet Integer Boolean Boolean SaveSurveyAsCurrent nie dotyczy Typ zwracanych danych Opis nie dotyczy nie dotyczy Survey Usuwa ankietę z bazy danych. Usuwa pytanie z bazy danych. Zwraca obiekt klasy, przesyłając identyfikator ankiety. Pobiera z bazy danych bieżącą ankietę. Pobiera z bazy danych kolekcję identyfikatorów pytań. Pobiera z bazy danych zbiór (DataSet) pytań. Pobiera z bazy danych zbiór (DataSet) ankiet. Zapisuje ankietę w bazie danych. Zapisuje w bazie danych pytanie przypisane do ankiety. Zapisuje odpowiedź na pytanie występujące w ankiecie. Czyni wskazaną ankietę ankietą bieżącą. Następna klasa to klasa konfiguracyjna, z której często korzystamy w tej książce. Klasa Config Klasa Config, pokazana na rysunku 4.17, pełni rolę menedżera konfiguracji aplikacji. Sta- nowi ona główny punkt wejścia dla wszystkich ustawień konfiguracyjnych, do których dostępu mogą wymagać poszczególne warstwy aplikacji. Poza klasą Config żadna inna klasa ani fragment kodu nie mogą odwoływać się bezpośrednio do danych konfiguracyjnych. Rysunek 4.17 W poniższej tabeli wymieniliśmy dostępne składowe klasy Config: Właściwość Typ zwracanych danych Opis ConnectionString String CurrentTheme String Łańcuch połączenia, pochodzący z pliku Web.config. Bieżący motyw witryny, zdefiniowany w pliku Web.config. Rozdział 4. (cid:81) Mechanizm obsługi ankiet 141 Właściwość PageTitle Typ zwracanych danych Opis String Tytuł witryny, zdefiniowany w kodzie HTML i wyświetlany na każdej podstronie, a pochodzący z pliku Web.config. Teraz powinieneś już mieć dobre rozeznanie w klasach, które zostały wykorzystane w apli- kacji, i wiedzieć, jak się ich używa. W następnym podrozdziale omówimy szczegółowo logikę biznesową aplikacji i realizowany przez nią przepływ danych. Kod i jego objaśnienie Ten podrozdział objaśnia każdy z podstawowych plików z kodem źródłowym mechanizmu obsługi ankiet. Przyjrzymy się po kolei plikom z poszczególnych folderów i powiemy, jak współpracują one ze sobą w ramach całego projektu. Pliki z folderu głównego Główny folder aplikacji do obsług
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

ASP.NET 2.0. Gotowe rozwiązania
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: