asp.net 3.5. tworzenie portali internetowych w nurcie web 2.0 scan.pdf

(11073 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
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 łrdeĀ. Wszystko
to sprawia, Ńe sĴ doskonaĀymi serwisami korporacyjnymi i naleŃĴ do najefektywniejszych
aplikacji sieciowych. Zastosowanie mechanizmw AJAX pozwala na udostķpnienie
interaktywnego i rozbudowanego interfejsu, dziaĀajĴcego znacznie szybciej i bardziej
wydajnie niŃ w tradycyjnych serwisach. Natomiast wykorzystanie widŃetw (komponentw
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 problemw zwiĴzanych z projektowaniem, wdraŃaniem,
utrzymaniem, a takŃe skalowaniem i usprawnianiem serwisu. Dziķki tej pozycji poznasz
poszczeglne 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, ktre pozwolĴ zbudowaě stabilny, nowoczesny
i bezpieczny portal internetowy.
¤ Wprowadzenie do budowy portali internetowych
¤ Architektura portali i widŃetw
¤ 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
746228829.050.png 746228829.053.png 746228829.054.png 746228829.055.png 746228829.001.png 746228829.002.png 746228829.003.png 746228829.004.png 746228829.005.png 746228829.006.png 746228829.007.png 746228829.008.png 746228829.009.png 746228829.010.png 746228829.011.png 746228829.012.png 746228829.013.png 746228829.014.png 746228829.015.png 746228829.016.png 746228829.017.png 746228829.018.png 746228829.019.png 746228829.020.png 746228829.021.png 746228829.022.png 746228829.023.png 746228829.024.png 746228829.025.png 746228829.026.png 746228829.027.png 746228829.028.png 746228829.029.png 746228829.030.png 746228829.031.png 746228829.032.png 746228829.033.png 746228829.034.png 746228829.035.png 746228829.036.png 746228829.037.png 746228829.038.png 746228829.039.png 746228829.040.png 746228829.041.png 746228829.042.png 746228829.043.png 746228829.044.png 746228829.045.png 746228829.046.png 746228829.047.png 746228829.048.png 746228829.049.png
 
Spis treści
Przedmowa ............................................................................................................................... 9
1.
Wprowadzenie do portali internetowych i serwisu Dropthings.com ....................... 15
Definicja portalu sieciowego
16
Definicja portalu Web 2.0
18
Korzystanie z portalu
18
Nawigacja w portalu Dropthings
19
Wykorzystanie platformy ASP.NET AJAX
23
Wykorzystanie języka C# 3.0 i platformy .NET 3.5
23
Podsumowanie
25
Dodatkowe źródła informacji
25
2.
Architektura portalu i widżetów ................................................................................ 27
Wykorzystanie platformy widżetów
35
Dodawanie widżetów
41
Wywieranie korzystnego wrażenia podczas pierwszej wizyty użytkownika
43
Przygotowanie strony podczas drugiej wizyty użytkownika
46
Zwiększenie wydajności kodu ASP.NET AJAX
47
Uwierzytelnianie i autoryzacja
52
Ochrona przed atakami DoS
54
Podsumowanie
56
3.
Projekt warstwy sieciowej w środowisku ASP.NET AJAX ......................................... 57
Strona startowa portalu sieciowego
57
Budowa własnego rozszerzenia „przeciągnij i upuść”
dla wielokolumnowej strefy zrzutu
75
Klasa WidgetContainer
88
Budowanie widżetów
95
Przełączanie stron — symulowanie operacji pobrania strony
105
5
746228829.051.png
 
Wykorzystanie obiektu Profile w usłudze sieciowej
107
Implementacja uwierzytelniania i autoryzacji
108
Implementacja mechanizmu wylogowania
110
Podsumowanie
112
Dodatkowe źródła informacji
112
4.
Projekt warstwy dostępu do danych i warstwy biznesowej na platformie .NET 3.5 ....113
Podstawy mechanizmu LINQ to SQL
113
Budowanie warstwy dostępu do danych
z wykorzystaniem mechanizmu LINQ to SQL
116
Podstawy technologii Windows Workflow Foundation
124
Budowa warstwy biznesowej z wykorzystaniem mechanizmu WF
125
Implementacja klasy DashboardFacade
139
Podsumowanie
144
5.
Widżety klienckie ...................................................................................................... 145
Opóźnienie ładowania widżetów serwerowych
146
Pośrednik w dostępie do danych
149
Budowa klienckiego widżetu RSS
153
Budowa klienckiego widżetu Flickr
157
Podsumowanie
161
6.
Optymalizacja pracy środowiska ASP.NET AJAX ..................................................... 163
Połączenie wielu wywołań Ajax w jedno wywołanie
163
Synchronizacja i kolejkowanie odwołań Ajax
165
Zastosowanie wywołań HTTP GET zamiast HTTP POST
177
Korzystanie z funkcji this
178
Podsumowanie
179
7.
Tworzenie asynchronicznych i transakcyjnych usług sieciowych
z uwzględnieniem buforowania danych ...................................................................181
Skalowalność usług sieciowych
181
Asynchroniczne metody sieciowe
183
Zmiany w środowisku ASP.NET AJAX
umożliwiające wywoływanie usług sieciowych
187
Opracowanie własnego mechanizmu obsługi usług sieciowych
189
Przygotowanie asynchronicznego pośrednika,
który będzie uwzględniał buforowanie danych
200
Skalowanie i zabezpieczanie usług pośredniczących
202
Podsumowanie
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
210
Optymalizacja potokowego przetwarzania żądań HTTP
211
Optymalizacja platformy ASP.NET 2.0 (lub 3.5) przed udostępnieniem serwisu
212
Optymalizacja zapytań kierowanych do tabel usługi ASP.NET Membership
213
Optymalizacja usługi Profile platformy ASP.NET 2.0 (lub 3.5)
przed udostępnieniem serwisu
216
Zagadnienia związane z wykorzystaniem platformy ASP.NET
na serwerach użytkowych
231
Przekierowanie ruchu do nowej witryny
233
Podsumowanie
235
9.
Zwiększenie wydajności klienckiej części aplikacji .................................................. 237
Buforowanie danych sieciowych
237
Sieci dostarczania treści
248
Optymalizacja pracy interpretera JavaScript w przeglądarce Internet Explorer
252
Zmniejszenie rozmiaru pola danych w wywołaniach usług sieciowych
260
Ładowanie interfejsu użytkownika na żądanie
261
Odczyt z wyprzedzeniem w wywołaniach Ajax
264
Ukrywanie kodu HTML w obszarze <textarea>
264
Podsumowanie
267
10. Rozwiązywanie typowych problemów z wdrożeniem i utrzymaniem witryny
oraz zarządzaniem nią ..............................................................................................269
Uruchamianie witryny w farmie serwerów
269
Trzynaście katastrof, które mogą wystąpić w każdej chwili
276
Wybór odpowiedniej firmy hostingowej
288
Wybór narzędzia do monitorowania pracy witryny
290
Konfiguracja wskaźników wydajności
292
Podsumowanie
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
746228829.052.png
 
Zgłoś jeśli naruszono regulamin