ASP_NET_3_5_Tworzenie_portali_internetowych_w_nurcie_Web_2_0_aspn35.pdf

(428 KB) Pobierz
ASP.NET 3.5. Tworzenie
portali internetowych
w nurcie Web 2.0
Autor: Omar Al Zabir
T³umaczenie: Marek Pa³czyñski
ISBN: 978-83-246-1841-5
Tytu³ orygina³u:
Building a Web 2.0
Portal with ASP.NET 3.5
Stron: 320
Poznaj sekrety zaawansowanych technologii budowy
portali internetowych Web 2.0
• Jak zaprojektowaæ witrynê dla platformy ASP.NET i ASP.NET AJAX?
• Jak rozbudowaæ serwis zgodnie z zasadami ergonomii?
• Jak zwiêkszyæ wydajnoœæ serwera?
Portale sieciowe Web 2.0, opieraj¹ce siê na technologii AJAX, umo¿liwiaj¹ u¿ytkownikom
personalizowanie stron, a tak¿e agregowanie danych z ró¿nych Ÿróde³. Wszystko
to sprawia, ¿e s¹ doskona³ymi serwisami korporacyjnymi i nale¿¹ do najefektywniejszych
aplikacji sieciowych. Zastosowanie mechanizmów AJAX pozwala na udostêpnienie
interaktywnego i rozbudowanego interfejsu, dzia³aj¹cego znacznie szybciej i bardziej
wydajnie ni¿ w tradycyjnych serwisach. Natomiast wykorzystanie wid¿etów (komponentów
typu plag-and-play) zapewnia przejrzystoœæ architektury portalu i ³atwoœæ jego rozbudowy,
poniewa¿ s¹ one opracowywane niezale¿nie od warstwy rdzeniowej systemu.
Ksi¹¿ka „ASP.NET 3.5. Tworzenie portali internetowych w nurcie Web 2.0” zawiera opis
najnowszych metod i technologii projektowania oraz budowy portali z wykorzystaniem
platformy ASP.NET i œrodowiska ASP.NET AJAX. W podrêczniku przedstawiono tak¿e
praktyczne rozwi¹zania problemów zwi¹zanych z projektowaniem, wdra¿aniem,
utrzymaniem, a tak¿e skalowaniem i usprawnianiem serwisu. Dziêki tej pozycji poznasz
poszczególne fazy budowy prototypowego portalu, zaawansowane techniki technologii
AJAX oraz sposoby optymalizacji kodu. Nauczysz siê m. in. przygotowywaæ wid¿ety
klienckie za pomoc¹ kodu JavaScript, tworzyæ w³asne mechanizmy obs³ugi wywo³añ,
zwiêkszaæ wydajnoœæ serwera i skalowalnoœæ us³ug sieciowych. Zdobêdziesz zatem ca³¹
potrzebn¹ Ci wiedzê i umiejêtnoœci, które pozwol¹ zbudowaæ stabilny, nowoczesny
i bezpieczny portal internetowy.
• Wprowadzenie do budowy portali internetowych
• Architektura portali i wid¿etów
• Projekt warstwy sieciowej w œrodowisku ASP. NET AJAX
• Projekt warstwy danych i warstwy biznesowej na platformie NET 3.5
• Wid¿ety klienckie
• Optymalizacja pracy œrodowiska ASP.NET AJAX
• Tworzenie asynchronicznych i transakcyjnych us³ug sieciowych
z uwzglêdnieniem buforowania danych
• Skalowalnoœæ us³ug sieciowych
• Zwiêkszenie wydajnoœci serwera i klienckiej czêœci aplikacji
• Zarz¹dzanie witryn¹
Zaprojektuj bardzo wydajn¹ i supernowoczesn¹ witrynê internetow¹
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści
Przedmowa ...............................................................................................................................9
1. Wprowadzenie do portali internetowych i serwisu Dropthings.com ....................... 15
Definicja portalu sieciowego
Definicja portalu Web 2.0
Korzystanie z portalu
Nawigacja w portalu Dropthings
Wykorzystanie platformy ASP.NET AJAX
Wykorzystanie języka C# 3.0 i platformy .NET 3.5
Podsumowanie
Dodatkowe
źródła
informacji
16
18
18
19
23
23
25
25
2. Architektura portalu i widżetów ................................................................................ 27
Wykorzystanie platformy widżetów
Dodawanie widżetów
Wywieranie korzystnego wrażenia podczas pierwszej wizyty użytkownika
Przygotowanie strony podczas drugiej wizyty użytkownika
Zwiększenie wydajności kodu ASP.NET AJAX
Uwierzytelnianie i autoryzacja
Ochrona przed atakami DoS
Podsumowanie
35
41
43
46
47
52
54
56
3. Projekt warstwy sieciowej w
środowisku
ASP.NET AJAX ......................................... 57
Strona startowa portalu sieciowego
Budowa własnego rozszerzenia „przeciągnij i upuść”
dla wielokolumnowej strefy zrzutu
Klasa WidgetContainer
Budowanie widżetów
Przełączanie stron — symulowanie operacji pobrania strony
57
75
88
95
105
5
Wykorzystanie obiektu Profile w usłudze sieciowej
Implementacja uwierzytelniania i autoryzacji
Implementacja mechanizmu wylogowania
Podsumowanie
Dodatkowe
źródła
informacji
107
108
110
112
112
4. Projekt warstwy dostępu do danych i warstwy biznesowej na platformie .NET 3.5 ....113
Podstawy mechanizmu LINQ to SQL
Budowanie warstwy dostępu do danych
z wykorzystaniem mechanizmu LINQ to SQL
Podstawy technologii Windows Workflow Foundation
Budowa warstwy biznesowej z wykorzystaniem mechanizmu WF
Implementacja klasy DashboardFacade
Podsumowanie
113
116
124
125
139
144
5. Widżety klienckie ...................................................................................................... 145
Opóźnienie
ładowania
widżetów serwerowych
Pośrednik w dostępie do danych
Budowa klienckiego widżetu RSS
Budowa klienckiego widżetu Flickr
Podsumowanie
146
149
153
157
161
6. Optymalizacja pracy
środowiska
ASP.NET AJAX ..................................................... 163
Połączenie wielu wywołań Ajax w jedno wywołanie
Synchronizacja i kolejkowanie odwołań Ajax
Zastosowanie wywołań HTTP GET zamiast HTTP POST
Korzystanie z funkcji this
Podsumowanie
163
165
177
178
179
7. Tworzenie asynchronicznych i transakcyjnych usług sieciowych
z uwzględnieniem buforowania danych ...................................................................181
Skalowalność usług sieciowych
Asynchroniczne metody sieciowe
Zmiany w
środowisku
ASP.NET AJAX
umożliwiające wywoływanie usług sieciowych
Opracowanie własnego mechanizmu obsługi usług sieciowych
Przygotowanie asynchronicznego pośrednika,
który będzie uwzględniał buforowanie danych
Skalowanie i zabezpieczanie usług pośredniczących
Podsumowanie
181
183
187
189
200
202
207
6
|
Spis treści
8. Zwiększanie wydajności i skalowalności serwera ...................................................209
Uzupełnienie kodu o funkcje umożliwiające identyfikację
problemów wydajnościowych
Optymalizacja potokowego przetwarzania
żądań
HTTP
Optymalizacja platformy ASP.NET 2.0 (lub 3.5) przed udostępnieniem serwisu
Optymalizacja zapytań kierowanych do tabel usługi ASP.NET Membership
Optymalizacja usługi Profile platformy ASP.NET 2.0 (lub 3.5)
przed udostępnieniem serwisu
Zagadnienia związane z wykorzystaniem platformy ASP.NET
na serwerach użytkowych
Przekierowanie ruchu do nowej witryny
Podsumowanie
210
211
212
213
216
231
233
235
9. Zwiększenie wydajności klienckiej części aplikacji .................................................. 237
Buforowanie danych sieciowych
Sieci dostarczania treści
Optymalizacja pracy interpretera JavaScript w przeglądarce Internet Explorer
Zmniejszenie rozmiaru pola danych w wywołaniach usług sieciowych
Ładowanie
interfejsu użytkownika na
żądanie
Odczyt z wyprzedzeniem w wywołaniach Ajax
Ukrywanie kodu HTML w obszarze <textarea>
Podsumowanie
237
248
252
260
261
264
264
267
10. Rozwiązywanie typowych problemów z wdrożeniem i utrzymaniem witryny
oraz zarządzaniem nią ..............................................................................................269
Uruchamianie witryny w farmie serwerów
Trzynaście katastrof, które mogą wystąpić w każdej chwili
Wybór odpowiedniej firmy hostingowej
Wybór narzędzia do monitorowania pracy witryny
Konfiguracja wskaźników wydajności
Podsumowanie
269
276
288
290
292
299
Skorowidz ............................................................................................................................. 301
Spis treści
|
7
ROZDZIAŁ 5.
Widżety klienckie
W rozdziale 3. zostały opisane zagadnienia związane z budowaniem widżetów serwerowych
— widżetu czytnika RSS (lub Atom) oraz widżetu fotograficznego Flickr. Zaletą stosowania
widżetów serwerowych jest to,
że
można wykorzystywać komfortowe
środowisko
pracy
(oprogramowania Visual Studio) do ich tworzenia i debugowania, używając przy tym swoje-
go ulubionego języka programowania (C# lub VB.NET). Jednak widżety serwerowe opóź-
niają
ładowanie
strony i wymagają częstego odsyłania danych. Wszystkie widżety widoczne
na stronie muszą zostać załadowane po stronie serwera podczas pierwszego pobierania stro-
ny oraz w czasie jej asynchronicznych uaktualnień. Jeśli widżety pobierają dane z zewnętrz-
nych
źródeł,
czas pobierania strony zależy od
łącznego
czasu przygotowania każdej z nich.
Ponadto widżety serwerowe wymagają odsyłania danych nawet podczas nieskomplikowa-
nych operacji takich jak stronicowanie lub edytowanie pozycji na liście. Przekazywanie da-
nych jest konieczne, ponieważ po stronie serwera jest przechowywany model obiektu, który
z kolei jest powiązany z informacjami zapisanymi w bazie danych. Po stronie klienta nie są
przechowywane
żadne
informacje, które mogłyby usprawnić niektóre operacje realizowane
w przeglądarce. Zatem mimo
że
widżety serwerowe znacznie ułatwiają opracowywanie ko-
du i zarządzanie nim, charakteryzują się niższą wydajnością pracy w porównaniu z widże-
tami klienckimi.
Widżety klienckie bazują przede wszystkim na technologii JavaScript, dzięki czemu zapew-
niają znacznie wyższy poziom interaktywności i funkcjonalności w operacjach niewymagają-
cych odsyłania danych. Widżety klienckie pobierają dane z zewnętrznych
źródeł
bezpośred-
nio z poziomu skryptu JavaScript i przechowują model obiektu oraz informacje o stanie
obiektu po stronie klienta. Dzięki temu realizują zadania stronicowania, edycji czy sortowania
bezpośrednio w przeglądarce bez odsyłania danych do serwera. Co więcej, widżety klienckie
mogą buforować zewnętrzne informacje w pamięci przeglądarki, więc przygotowywanie
strony podczas kolejnych wizyt użytkownika może przebiegać znacznie szybciej niż w przy-
padku widżetów serwerowych. Dane niezbędne do wyświetlenia elementu są bowiem prze-
chowywane w przeglądarce. W tym rozdziale zostanie omówione zagadnienie opóźnienia
ładowania
widżetów serwerowych w celu przyspieszenia
ładowania
strony. Rozwiązanie to
zostanie przedstawione na przykładzie dwóch klienckich widżetów — czytnika danych RSS
oraz komponentu wyświetlającego fotografie serwisu Flickr. Opisana zostanie także procedu-
ra budowy pośredniczącej usługi sieciowej, która pozwoli widżetom klienckim na pobieranie
danych z zewnętrznych
źródeł
i buforowanie ich w pamięci przeglądarki.
145
Zgłoś jeśli naruszono regulamin