Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00615 008415 10491716 na godz. na dobę w sumie
ASP.NET. Vademecum profesjonalisty - książka
ASP.NET. Vademecum profesjonalisty - książka
Autor: Liczba stron: 608
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-691-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> .net - programowanie
Porównaj ceny (książka, ebook, audiobook).
ASP.NET to najnowsza technologia Microsoftu, będąca łącząca Active Server Pages (ASP) z platformą .NET. Umożliwia ona pisanie wydajnych aplikacji WWW, korzystających z zawansowanych możliwości środowiska .NET.

Jeśli specjalizujesz się w tworzeniu takich aplikacji i chcesz nadążać za nowymi trendami w tej dziedzinie, 'ASP.NET. Vademecum profesjonalisty' jest książką dla Ciebie. Znajdziesz tu w zwięzłej i przystępnej formie kompletny opis ASP.NET, a także innych powiązanych z nią technologii.

Książka opisuje między innymi:

Książkę uzupełniają dodatki omawiające architekturę platformy .NET, najczęściej używane obiekty ASP.NET i ADO -- kontrolki serwera i Microsoft Mobile Internet Toolkit. Zawarta jest w niej także przykładowa kompletna aplikacja, w praktyczny sposób ilustrująca działanie ASP.NET.

Jeśli programowałeś wcześniej w ASP, 'ASP.NET. Vademecum profesjonalisty' to jedyna książka, która jest Ci potrzebna, by w pełni wykorzystać możliwości tej technologii. To książka napisana przez profesjonalistów dla profesjonalistów. To książka dla Ciebie.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl ASP .NET. Vademecum profesjonalisty Autor: Scott Worley T³umaczenie: Pawe³ Janociñski ISBN: 83-7197-691-7 Tytu³ orygina³u: Inside ASP.NET Format: B5, stron: 482 Przyk³ady na ftp: 385 kB ASP .NET to najnowsza technologia Microsoftu, bêd¹ca ³¹cz¹ca Active Server Pages (ASP) z platform¹ .NET. Umo¿liwia ona pisanie wydajnych aplikacji WWW, korzystaj¹cych z zawansowanych mo¿liwoġci ġrodowiska .NET. Jeġli specjalizujesz siê w tworzeniu takich aplikacji i chcesz nad¹¿aæ za nowymi trendami w tej dziedzinie, „ASP .NET Vademecum profesjonalisty” jest ksi¹¿k¹ dla Ciebie. Znajdziesz tu w zwiêz³ej i przystêpnej formie kompletny opis ASP .NET, a tak¿e innych powi¹zanych z ni¹ technologii. Ksi¹¿ka opisuje miêdzy innymi: • Klasy bazowe i podstawowe obiekty ASP .NET • Szczegó³owe wskazówki dotycz¹ce projektowania i konfigurowania aplikacji ASP .NET • Now¹ technologiê tworzenia interfejsu u¿ytkownika: WebForms i zaawansowane aspekty jej u¿ycia • Dostêp do danych za pomoc¹ ADO .NET • U¿ycie jêzyka XML w po³¹czeniu z ASP .NET • Tworzenie us³ug sieciowych (web services), u¿ycie protoko³ów SOAP i UDDI • Model bezpieczeñstwa aplikacji ASP .NET • Obs³ugiwanie wiadomoġci • U¿ycie us³ug katalogowych Active Directory • Programowanie urz¹dzeñ przenoġnych w ASP .NET Ksi¹¿kê uzupe³niaj¹ dodatki omawiaj¹ce architekturê platformy .NET, najczêġciej u¿ywane obiekty ASP .NET i ADO — kontrolki serwera i Microsoft Mobile Internet Toolkit. Zawarta jest w niej tak¿e przyk³adowa kompletna aplikacja, w praktyczny sposób ilustruj¹ca dzia³anie ASP .NET. Jeġli programowa³eġ wczeġniej w ASP, „ASP .NET. Vademecum profesjonalisty” to jedyna ksi¹¿ka, która jest Ci potrzebna, by w pe³ni wykorzystaæ mo¿liwoġci tej technologii. To ksi¹¿ka napisana przez profesjonalistów dla profesjonalistów. To ksi¹¿ka dla Ciebie. 5RKUVTGħEK 1#WVQTG   9RTQYCFGPKG   úħè+9RTQYCFGPKGFQ#520 6T 4QFKCđ 4QFKCđ 4QFKCđ 2TGINæF#520 6  ASP.NET ...................................................B...................................................B.................. .......17 Biblioteki klas bazowych .NET ...................................................B..........................................19 Konfiguracja aplikacji sieciowych ASP.NET ...................................................B....................22 Zarządzanie sesjami i stanem ...................................................B.............................................22 Zarządzanie buforowaniem...................................................B.................................................22 Warstwy aplikacji WWW w ASP.NET...................................................B..............................23 Web Forms...................................................B...................................................B................ .......24 Usługi sieciowe XML...................................................B...................................................B......25 Współpraca z COM/COM+ i usługi składników...................................................B................26 ADO.NET ...................................................B...................................................B.................. Przejście z klasycznego ASP do ASP.NET ...................................................B........................26 Globalizacja i lokalizacja...................................................B....................................................27 Poprawione bezpieczeństwo ...................................................B...............................................28 ......26 2TQLGMVQYCPKGCRNKMCELK#520 6   Pliki ustawień aplikacji...................................................B...................................................B. ...29 Składnia strony ...................................................B...................................................B.......... ......32 Najczęściej stosowane obiekty i klasy ASP.NET...................................................B...............44 Śledzenie aplikacji ASP.NET ...................................................B.............................................48 Przechodzenie do ASP.NET ...................................................B...............................................54 -QPHKIWTQYCPKGCRNKMCELK#520 6  Położenie pliku konfiguracyjnego web.config ...................................................B...................59 Stosowanie sekcji konfiguracyjnej appSettings ...................................................B.............62 Analiza sekcji konfiguracyjnych system.web...................................................B.....................63 úħè++4FGē#520 6T 4QFKCđ 2TQITCOQYCPKGQRCTVGPC9GD(QTOU  Wprowadzenie do Web Forms ...................................................B...........................................77 Architektura Web Forms ...................................................B...................................................B.82 Oddzielanie kodu od interfejsu użytkownika ...................................................B.....................86 Kontrolki serwera ...................................................B...................................................B........ Kontrolki sprawdzania poprawności ...................................................B................................125 ....87 4QFKCđ CTæFCPKGUVCPGOY#520 6   Czym jest zarządzanie stanem? ...................................................B........................................135 Stosowanie zarządzania stanem aplikacji w ASP.NET ...................................................B....138  #520 68CFGOGEWORTQHGULQPCNKUV[ úħè+++ QUVúRFQFCP[EJY#520 6  4QFKCđ 4QFKCđ 5VQUQYCPKG# 10 6YCRNKMCELCEJ#520 6   Dostęp do danych z perspektywy strony internetowej ...................................................B.....151 ADO i ADO.NET ...................................................B...................................................B..........153 Praca z podstawowymi obiektami ADO.NET...................................................B..................160 Tworzenie Web Forms orientowanych na dane ...................................................B...............179 Aplikacje ASP.NET z obsługą transakcji ...................................................B.........................191 5VQUQYCPKGLú[MC:/.YCRNKMCELCEJ#520 6  Struktura dokumentu XML...................................................B...............................................196 Stosowanie języka XML w ASP.NET...................................................B..............................199 Inne technologie oparte na XML ...................................................B......................................201 Stosowanie języka XML w aplikacjach...................................................B............................206 Przykłady z życia wzięte...................................................B...................................................B207 úħè+8 CCYCPUQYCPGVGEJPQNQIKG  4QFKCđ 4QFKCđ 2TQLGMVQYCPKGWUđWIUKGEKQY[EJ:/.Y#520 6   Wprowadzenie do usług sieciowych XML...................................................B.......................229 Stosowanie SOAP Toolkit w usługach sieciowych XML ...................................................B242 XML Web Service Discovery — reklamowanie serwisu...................................................B.252 Stosowanie usług sieciowych XML na stronach ASP.NET ................................................255 CDGRKGECPKGCRNKMCELK#520 6   Przegląd funkcji bezpieczeństwa ASP.NET...................................................B.....................259 Stosowanie zabezpieczeń w aplikacjach ASP.NET ...................................................B.........265 Wewnątrz zabezpieczeń ASP.NET...................................................B...................................282 Inne aspekty bezpieczeństwa ...................................................B............................................287 4QFKCđ 5VQUQYCPKGWUđWIUMđCFPKMÎYY#520 6  Czym są usługi składników?...................................................B.............................................289 Stosowanie usług składników w aplikacjach ASP.NET...................................................B...291 Obiekt roboczy...................................................B...................................................B........... Stosowanie obiektu roboczego ...................................................B.........................................300 Komponenty usługowe ...................................................B...................................................B..306 ....296 4QFKCđ 5VQUQYCPKGWUđWIQDUđWIKYKCFQOQħEKY#520 6  Wprowadzenie do systemów obsługi wiadomości ...................................................B...........311 Zarządzanie kolejkami wiadomości MSMQ w Windows 2000 ..........................................314 Architektura usług obsługi wiadomości w .NET...................................................B..............315 Wykonywanie zadań za pomocą MSMQ ...................................................B.........................318 4QFKCđ 5VQUQYCPKGWUđWIMCVCNQIQY[EJY#520 6   Wprowadzenie do usług katalogowych ...................................................B............................325 Jak działa Active Directory?...................................................B.............................................327 Korzyści ze stosowania Active Directory...................................................B.........................328 Podsumowanie technologii Active Directory ...................................................B...................330 4QFKCđ .QMCNKCELCKINQDCNKCELCCRNKMCELK#520 6  Czym jest lokalizacja? ...................................................B...................................................B...337 Lokalizowanie aplikacji ASP.NET...................................................B...................................340 5RKUVTGħEK  úħè8 CCYCPUQYCPG9GD(QTOU  4QFKCđ -QPVTQNCDWHQTQYCPKCY#520 6  Zarządzanie buforowaniem w ASP.NET...................................................B..........................359 Buforowanie stron wychodzących...................................................B....................................360 Buforowanie fragmentów (częściowe buforowanie strony)................................................366 Buforowanie żądań ...................................................B...................................................B........369 4QFKCđ 6YQTGPKGMQPVTQNGMWľ[VMQYPKMC KMQPVTQNGMFQUVQUQYCP[EJFNC#520 6  Kontrolki użytkownika ...................................................B...................................................B..375 Wprowadzenie do kontrolek dostosowanych ...................................................B...................391 4QFKCđ 2TQITCOQYCPKGWTæFGēRTGPQħP[EJY#520 6   WAP (Wireless Application Protocol) ...................................................B.............................414 WML (Wireless Markup Language)...................................................B.................................415 Wprowadzenie ASP.NET ...................................................B.................................................416 úħè8+2QFUWOQYCPKGT 4QFKCđ 2QFUWOQYCPKG  Czym jest ProjectPal? ...................................................B...................................................B....437 Instalacja aplikacji ProjectPal...................................................B...........................................439 Krótki przegląd aplikacji ...................................................B..................................................445 Architektura aplikacji ...................................................B...................................................B... .447 Warstwy usług w ProjectPal ...................................................B.............................................450 Interfejsy użytkownika ProjectPal ...................................................B....................................451 Baza danych ProjectPal ...................................................B...................................................B.451 Komponenty ProjectPal ...................................................B...................................................B.454 Wewnątrz kodu ProjectPal...................................................B................................................456 QFCVMKT QFCVGM# 2TGINæF0 6   Programowanie wielu platform ...................................................B........................................489 Wiele języków programowania ...................................................B........................................489 Biblioteki klas bazowych .NET ...................................................B........................................490 Wspólne środowisko uruchomieniowe...................................................B.............................494 Wspólny system typów...................................................B...................................................B..495 Produkty dla serwerów .NET...................................................B............................................495 QFCVGM$ 0CLEúħEKGLWľ[YCPGQDKGMV[#520 6   Obiekt HttpContext (statyczna kontrolka Context) ...................................................B..........497 Klasa HttpApplication ...................................................B...................................................B...498 Klasa HttpApplicationState (statyczny obiekt Application)................................................499 Klasa HttpSessionState (statyczny obiekt Session) ...................................................B..........500 Klasa HttpRequest (statyczny obiekt Request)...................................................B.................501 Klasa HttpResponse (statyczny obiekt Response)...................................................B............502 Klasa Server (HttpServerUtility) ...................................................B......................................504 SMTPMail API ...................................................B...................................................B............. .504 QFCVGM 0CLEúħEKGLWľ[YCPGQDKGMV[# 1   ....507 ..508 Obiekt DataSet...................................................B...................................................B........... Obiekt DataTable...................................................B...................................................B.........  #520 68CFGOGEWORTQHGULQPCNKUV[ Obiekt DataColumn ...................................................B...................................................B.......510 Klasa DataRow ...................................................B...................................................B............ ..511 Obiekt DataRelation ...................................................B...................................................B......512 Obiekt DataView ...................................................B...................................................B.......... .512 Klasa DataRowView...................................................B...................................................B......513 Obiekty OLEDB ...................................................B...................................................B............514 Obiekty SQLData... ...................................................B...................................................B.......517 QFCVGM -QPVTQNMK*6/.UGTYGTC   Obiekt HtmlForm — element form ...................................................B..............................523 Obiekt HtmlInputText — element input ...................................................B......................525 Obiekt HtmlInputHidden — element input type= hidden ............................................526 Obiekt HtmlInputCheckbox — element input type= checkbox ....................................526 Obiekt HtmlInputRadioButton — element input type= radiobutton ............................527 Obiekt HtmlInputFile — element input type= file ...................................................B.....528 Obiekt HtmlTextArea — element textarea ...................................................B..................529 Obiekt HtmlButton — element button ...................................................B.........................531 Obiekt HtmlInputButton — element input type= button ..............................................532 Obiekt HtmlAnchor — element a ...................................................B................................532 Obiekt HtmlImage — element img ...................................................B..............................533 Obiekt HtmlInputImage — element input type= image ...............................................534 Obiekt HtmlSelect — elementy select i option ...................................................B.......535 Obiekt HtmlTable — element table ...................................................B.............................537 Obiekt HtmlTableRow — element tr ...................................................B...........................538 Obiekt HtmlTableCell — element td ...................................................B...........................539 QFCVGM -QPVTQNMK#52UGTYGTC   Najczęściej stosowane właściwości klasy Webcontrol ...................................................B....542 ...544 Kontrolka Label ...................................................B...................................................B.......... Kontrolka Image ...................................................B...................................................B.......... ..544 Kontrolka TextBox ...................................................B...................................................B........544 Kontrolka DropDownList ...................................................B.................................................545 Kontrolka ListBox ...................................................B...................................................B........ .545 Kontrolka CheckBox ...................................................B...................................................B.....546 Kontrolka CheckBoxList ...................................................B..................................................546 Kontrolka RadioButton...................................................B...................................................B..547 Kontrolka RadioButtonList...................................................B...............................................548 Kontrolka Button ...................................................B...................................................B......... ..548 Kontrolka LinkButton...................................................B...................................................B....549 Kontrolka ImageButton ...................................................B...................................................B.549 Kontrolka HyperLink...................................................B...................................................B.....550 Kontrolka Table ...................................................B...................................................B.......... ...550 Kontrolka TableCell ...................................................B...................................................B......551 Kontrolka TableRow...................................................B...................................................B......551 Kontrolka Panel ...................................................B...................................................B.......... ...551 Kontrolka Repeater ...................................................B...................................................B....... .552 Kontrolka DataList ...................................................B...................................................B....... .552 Kontrolka DataGrid ...................................................B...................................................B.......554 Kontrolka AdRotator ...................................................B...................................................B.....556 Kontrolka Calendar...................................................B...................................................B....... .557 QFCVGM( /KETQUQHV/QDKNG+PVGTPGV6QQNMKV  ...559 Grupy kontrolek...................................................B...................................................B.......... Kontrolki formularza i układu strony ...................................................B...............................560 Kontrolki prezentacyjne...................................................B...................................................B.564 5RKUVTGħEK  Kontrolki nawigacyjne...................................................B...................................................B...565 Kontrolki wprowadzania danych ...................................................B......................................567 Kontrolki sprawdzania poprawności ...................................................B................................570 QFCVGM) .KUVCCUQDÎY0 6   Witryny działające na bazie ASP.NET...................................................B.............................579 Witryny dotyczące ASP.NET ...................................................B...........................................579 Witryny dotyczące C# ...................................................B...................................................B...580 Witryny dotyczące Visual Basic .NET ...................................................B.............................580 Witryny dotyczące .NET ...................................................B..................................................580 Usługi sieciowe XML...................................................B...................................................B....581 Witryny firmy Microsoft dotyczące .NET...................................................B........................581 Grupy dyskusyjne dotyczące .NET ...................................................B..................................581 Listy wysyłkowe dotyczące .NET ...................................................B....................................582 Magazyny...................................................B...................................................B................. ......582 5MQTQYKF   4QFKCđ 2TQLGMVQYCPKG CRNKMCELK#520 6 Ten rozdział wprowadza kilka tematów związanych z tworzeniem aplikacji ASP.NET. Są to:  Pliki ustawień aplikacji  Składnia stron WWW  Najczęściej stosowane obiekty i klasy w ASP.NET  Funkcje śledzenia  Sprawy dotyczące migracji do ASP.NET 2NKMKWUVCYKGēCRNKMCELK Aplikacje ASP.NET mogą być konfigurowane za pomocą dwóach mechanizmów, opartych na plikach:  global.asax — plik globalnych ustawień aplikacji.  web.config — plik w formacie XML zawierający konfigurację aplikacjai. 2NKMINQDCNCUCZ Plik global.asax służy dwóm głównym celom:  Umożliwia definiowanie zmiennych, obiektów i danych o azasięgu aplikacji i sesji.  Umożliwia definiowanie procedur obsługi zdarzeń, które maają miejsce w zakresie aplikacji, na poziomie sesji i aplikacji. [TGMV[Y[UVQUQYCPGYRNKMWINQDCNCUCZ Plik global.asax może zawierać następujące elementy:  úħè+9RTQYCFGPKGFQ#520 6  dyrektywę #UUGODN[ — stosowana do rejestrowania skompilowanych zbiorów zawierających aplikacje WWW; innym sposobem rejestrowaniaa zbiorów jest użycie pliku web.config, który jest omówiony później w podrozdziale „Plik konafiguracyjny web.config”  #UUGODN[0COG/[#UUGODN[FNN  dyrektywę +ORQTV — importuje jawnie do aplikacji przestrzeń nazw. Wszyastkie klasy i interfejsy zdefiniowane w tej przestrzeni stająa się dostępne dla aplikacji  +ORQTV0COGURCEG5[UVGO+1  +ORQTV0COGURCEG5[UVGO QNNGEVKQPU  dyrektywę #RRNKECVKQP — definiuje specyficzną dla aplikacji informację używaną przez aplikację ASP.NET; jedyną funkcją tej dyrektywya jest dziedziczenie właściwości innego obiektu. Ma dwa atrybuty — pierwszy toa +PJGTKVU, gdzie podaje się nazwę klasy, którą rozszerzamy, zaś drugi — GUETKRVKQP, zawiera tekstowy opis aplikacji (opis ten jest ignorowany zarówano przez parser, jak i kompilator, programista może go jednak użyć do własnycah celów).  #RRNKECVKQP+PJGTKVUO[ NCUU GUETKRVKQP GUETKRVKQP OKGPPGQCMTGUKGCRNKMCELKNWDUGULK Zmienne o zakresie aplikacji mogą być tworzone za pomocą obiektów #RRNKECVKQP, zaś te o zakresie sesji za pomocą obiektu 5GUUKQP. Dokładniejszy opis tych obiektów i ich pozostałych zastosowań znajduje się w dalszej części tego arozdziału. Aby zadeklarować zmienną: #RRNKECVKQP O[#RRNKECVKQP5EQRG8CT /[8CNWG 5GUUKQP /[5GUUKQP5EQRG8CT /[8CNWG Aby pobrać wartość zmiennej: /[8CNWG#RRNKECVKQP O[#RRNKECVKQP5EQRG8CT /[8CNWG5GUUKQP /[5GUUKQP5EQRG8CT Obiekty statyczne i komponenty COM/COM+ mogą być deklarowane w pliku global. asax za pomocą znacznika 1DLGEV. Takie obiekty i komponenty mogą mieć zakres sesji lub aplikacji. Zakres RKRGNKPG określa, że obiekt lub komponent należą do bieżącej instancji *VVR#RRNK ECVKQP i nie są współdzielone. 1DLGEVKFKFTWPCVUGTXGTENCUUO[ NCUU0COGUEQRGRKRGNKPG 1DLGEVKFKFTWPCVUGTXGTRTQIKFO[ 1/2TQI+ UEQRGUGUUKQP 1DLGEVKFKFTWPCVUGTXGTENCUUKFO[ 1/ NCUU+ UEQRGCRRNKECVKQP FCTGPKCUGULK W pliku global.asax można zdefiniować obsługę następujących zdarzeń sesji:   5GUUKQPA1P5VCTV — zdarzenie generowane, gdy klient rozpoczyna sesję, 5GUUKQPA1P PF — zdarzenie generowane, gdy klient zamyka sesję. 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6  $NQMKUMT[RVW W pliku global.asax można używać także bloków skryptu. Generalnie jednak bloki skryptu w global.asax służą do deklarowania zmiennych aplikacji i sesji oraz do obsługi zdarzeń dla platformy .NET. Przeanalizujcie przykład pliku global.asax umieszczony na wydruku 2.1. Wprowadzanie zmian do pliku global.asax Gdy zmienia się aktywny plik global.asax, ASP.NET wykrywa zmianę pliku, kończy obsługę wszystkich bieżących żądań, generuje zdarzenie #RRNKECVKQPA1P PF do wszystkich odbiorców i re- startuje aplikację. W efekcie następuje zresetowanie aplikacji WWW lub witryny, zamknięcie wszystkich sesji i wy- czyszczenie wszystkich informacji o stanie. Gdy nadchodzi nowe żądanie, ASP.NET kompiluje ponownie plik global.asax i generuje zdarzenie #RRNKECVKQPA1P5VCTV. Z oczywistych powodów zmian w pliku global.asax należy dokonywać, gdy aplikacja WWW jest w okresie braku lub niewielkiego poziomu ruchu. Poniżej, na wydruku 2.1 przedstawiono przykład pliku global.asax. 9[FTWMPrzykładowy plik global.asax 5ETKRVNCPIWCIG8$TWPCVUGTXGT    -QFY[MQP[YCP[PCUVCTEKGCRNKMCELK 5WD#RRNKECVKQPA1P5VCTV #RRNKECVKQP /[#RRNKECVKQP5EQRG8CT /[8CNWG 5GUUKQP /[5GUUKQP5EQRG8CT /[8CNWG  PF5WD   -QFURTæVCLæE[RQCRNKMCELK 5WD#RRNKECVKQPA1P PF  PF5WD   -QFY[MQP[YCP[PCRQEæVMWUGULK 5WD5GUUKQPA1P5VCTV  PF5WD   -QFURTæVCLæE[RQUGULK 5WD5GUUKQPA1P PF  PF5WD   UETKRV Wprowadzanie zmian w pliku global.asax Zmiany w plikach konfiguracyjnych ASP.NET są automatycznie wykrywane przez system i natychmiast stosowane.  úħè+9RTQYCFGPKGFQ#520 6 Kluczowe informacje o pliku global.asax Plik global.asax musi znajdować się w katalogu bazowym witryny lub apalikacji WWW. Aplikacja WWW czy witryna mogą mieć tylko jeden plik global.asax. Plik global.asax jest kompilowany przez ASP.NET do klasy (dziedziczącej po *VVR#RRNKECVKQP) w momencie pierwszej aktywacji zasobów czy żądania URL naależącego do aplikacji. Plik global.asax jest skonfigurowany tak, że bezpośrednie żądanie URL dotyczące tego pliku jest automatycznie odrzucane; blokuje to nieautoryzowany adostęp do pliku global.asax. 2NKMMQPHKIWTCE[LP[YGDEQPHKI Informacje konfiguracyjne ASP.NET są przechowywane w pliku konfiguracyjnym w for- macie XML. Oznacza to, że użytkownik może go przeglądać i edytować. Dzięki temu administratorzy i programiści mogą w łatwy sposób zmieniać ustawienia konfiguracji apli- kacji WWW czy witryny. Programiści nie muszą czekać, aż administrator zmieni ustawienia IIS (Internet Information Server) i uruchomi ponownie serwer WWW, aby zmiany odniosły skutek. Jest więc oczywiste, że zwiększa to wydajność pracya programisty. System konfiguracji jest w pełni rozszerzalny, ponieważ daje możliwość umieszczania własnych danych konfiguracyjnych dla własnych aplikacji WWW i witryn w zaprojekto- wanym dla nich pliku web.config. Hierarchiczna infrastruktura konfiguracji pozwala na definiowanie i używanie w ASP.NET dodatkowych danych konfiguracyjnych. ASP.NET zawiera również bogaty zestaw wstępnych ustawień konfiguraacyjnych. Szczegółowy opis pliku web.config znajduje się w rozdziale 3., „Konfigurowanie aplikacji ASP.NET”. 5MđCFPKCUVTQP[ Przy programowaniu form WWW ważna jest znajomość składni strony w pliku ASP.NET. W ASP.NET istnieje dziesięć różnych elementów składni. Zostały one omówione poniżej. [TGMV[Y[UVTQP[ Dyrektywy strony pozwalają na podanie opcjonalnych ustawień używanych przez kompi- lator stron podczas przetwarzania plików ASP.NET. Mogą one być umieszczone w dowol- nym miejscu pliku .aspx. Każda dyrektywa może zawierać jeden lub więcej atrybutów lub par wartości specyficznych dla tej dyrektywy. Ogólna składnia dyrektywy strony ma postać:  FKTGEVKXGCVVTKDWVGXCNWG=CVVTKDWVGXCNWG? Formy WWW obsługują następujące dyrektywy:  2CIG   QPVTQN 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6   +ORQTV  4GIKUVGT  #UUGODN[  1WVRWV CEJG [TGMV[YC 2CIG Dyrektywa 2CIG definiuje atrybuty strony stosowane przez parser i kompilator stron ASP.NET. Ma ona następującą składnię:  2CIGCVVTKDWVGXCNWG=CVVTKDWVGXCNWG? W pliku .aspx może znajdować się tylko jedna dyrektywa 2CIG. Aby zdefiniować wiele atrybutów, należy wymienić je, oddzielając spacjami, bez spacji przy znaku równości, jak w 64# 6TWG. Dyrektywa 2CIG ma następujące atrybuty:           #UR QORCV — określa, czy strona jest kompatybilna wstecz z ASP. Jeaśli nie jest ustawiony na VTWG, biblioteki DLL ActiveX napisane dla ASP nie będą działać.a Atrybut ten należy ustawić na VTWG, jeśli strona musi być wykonywana w wątku STA lub wywołuje komponent COM+ 1.0 wymagający dostępu do wbudoawanych cech ASP przez kontekst obiektu lub przez 1P5VCTV2CIG. Wartością domyślną jest HCNUG. $WHHGT — definiuje semantykę buforowania odpowiedzi HTTP. Jeślia buforowanie ma być dostępne, ma wartość VTWG, w przeciwnym wypadku HCNUG. Wartością domyślną jest VTWG. QFG2CIG — określa wartość strony kodowej dla strony ASP.NET. Obasługuje wszystkie prawidłowe wartości strony kodowej. QPVGPV6[RG — definiuje typ zawartości HTTP w odpowiedzi, zgodny za typami MIME (Multipurpose Internet Mail Extension). Obsługuje wszystkie wartości definiujące prawidłowe typy zawartości HTTP. WNVWTG — wskazuje ustawienia kulturowe dla strony. Obsługuje wsazystkie wartości definiujące prawidłowe ustawienia kulturowe.a GUETKRVKQP — dostarcza tekstowego opisu strony. Może zawierać dowolny tekst. PCDNG8KGY5VCVG — wskazuje, czy informacja o właściwościach strony ma bayć przechowywana pomiędzy żądaniami strony. Jeśli ma wartaość VTWG — informacja będzie przechowywana; jeśli HCNUG — nie będzie. Wartością domyślną jest VTWG. PCDNG5GUUKQP5VCVG — definiuje wymagania stanu sesji dla strony. Jeśli VTWG, stan sesji jest dostępny, 4GCF1PN[ określa, że stan sesji może być czytany, ale nie zmieniany, w innych przypadkach HCNUG. Wartością domyślną jest VTWG. TTQT2CIG — definiuje docelowy URL dla przekierowania, jeśli wystaąpi błąd braku strony. +PJGTKVU — zewnętrzna klasa, po której strona dziedziczy. Może tao być dowolna klasa dziedzicząca po klasie 2CIG.  úħè+9RTQYCFGPKGFQ#520 6        .CPIWCIG — język stosowany do kompilacji wszystkich bloków  i  wewnątrz strony. Może to być Visual Basic, C# lub JScript. .QECNKFGPVKHKGT . + — definiuje identyfikator lokalizacji dla kodu stronay. 4GURQPUG PEQFKPI — kodowanie zawartości zwracanej strony. Obsługuje wartości z PEQFKPI)GV PEQFKPI. 54 — zewnętrzna klasa do skompilowania (nazwa pliku źródłaowego). 6TCEG — wskazuje, czy śledzenie jest włączone. VTWG, jeśli śledzenie jest dostępne, w przeciwnym wypadku HCNUG. Wartością domyślną jest HCNUG. 6TCPUCEVKQP — wskazuje, czy strona obsługuje transakcje. Możliwymi wartościami są 0QV5WRRQTVGF, 5WRRQTVGF, 4GSWKTGF i 4GSWKTGU0GY. 9CTPKPI.GXGN — definiuje poziom ostrzegawczy kompilatora, którego oasiągnięcie powoduje przerwanie kompilacji strony. Możliwe są wartaości od  do . [TGMV[YC  QPVTQN Jako dodatek do istniejących kontrolek HTML i serwera WWW, można zdefiniować kon- trolki użytkownika (user controls). Tworzy się je przy użyciu tych samych technik, które służą do projektowania stron za pomocą form WWW. Kontrolki użytkownika oferują łatwy sposób na podzielenie i wielokrotne wykorzystywanie najpowszechniejszych funkcji interfejsu użytkownika w różnych aplikacjach ASP.NET. Podobnie jak w przypadku form WWW można je tworzyć za pomocą edytora tekstowego lub projektować z zastosowaniem gotowych klas. Analogicznie jak w przypadku form, kontrolki użytkownika są kompilowane w momencie wystąpienia pierwszego żądania, które ich dotyczy, i przechowywane w pamięci serwera, co pozwala skrócić czas reakcji przy następnych żądaniach. W przeciwieństwie do form WWW kontrolki użytkownika nie mogą być wywoływane samodzielnie; aby działać, muszą być umieszczone w stronie formy WWW. Szersze omówienie kontrolek użytkownika można znaleźć w rozdziale 15., „Tworzenie kontrolek użytkownika i kontrolek dostosowanych dla AaSP.NET”. Dyrektywa  QPVTQN pozwala na zdefiniowanie atrybutów kontrolki stosowanych przez parser stron ASP.NET i kompilator. Dyrektywę tę można stosować tylko z kontrolkami użytkownika. Ma ona następującą składnię:   QPVTQNCVVTKDWVGXCNWG=CVVTKDWVGXCNWG? Dyrektywa  QPVTQN obsługuje te same atrybuty co 2CIG, oprócz #UR QORCV i 6TCEG. Aby umożliwić śledzenie, należy zdefiniować atrybut 6TCEG dla dyrektywy 2CIG w pliku definiującym formę WWW zawierającą kontrolkę użytkownika. W jednym pliku .ascx może się znajdować tylko jedna dyrektywa  QPVTQN. Dyrektywa  QPVTQN ma następujące atrybuty:  #WVQ XGPV9KTGWR — wskazuje, czy zdarzenia strony są powiązane z tą straoną. VTWG oznacza możliwość powiązania, HCNUG przeciwny przypadek. Wartością domyślną jest VTWG. 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6             NCUU0COG — pozwala na podanie nazwy klasy automatycznie kompailowanej dynamicznie podczas wystąpienia żądania strony. Wartoścaią może być dowolna prawidłowa nazwa klasy. QORKNGT1RVKQPU — łańcuch znaków zawierający opcje kompilacji dla starony. GDWI — określa, czy strona ma być kompilowana z symbolami deabuggera. VTWG oznacza włączenie tych symboli, HCNUG — wyłączenie. GUETKRVKQP — dostarcza tekstowego opisu strony. Może zawierać dowolny tekst. PCDNG5GUUKQP5VCVG — definiuje dla strony wymagania dotyczące stanu sesji.a Wartość VTWG oznacza, że stan sesji jest dostępny, wartość 4GCF1PN[ — że stan sesji może być odczytywany, ale nie modyfikowany, zaś waratość HCNUG odpowiada pozostałym przypadkom. Wartością domyślną jest VTWG. ZRNKEKV — określa, że strona powinna być kompilowana w trybie Viasual Basic Option Explicit. VTWG oznacza włączenie tej opcji, HCNUG — wyłączenie. Wartością domyślną jest HCNUG. +PJGTKVU — zewnętrzna klasa, po której strona dziedziczy. Może tao być dowolna klasa dziedzicząca po klasie 2CIG. .CPIWCIG — język stosowany do kompilacji wszystkich bloków  i  wewnątrz strony. Może to być Visual Basic, C# lub JScript.NETa. 5VTKEV — określa, że strona powinna być kompilowana w trybie Viasual Basic Option Strict. VTWG oznacza włączenie tej opcji, HCNUG — wyłączenie. Wartością domyślną jest HCNUG. 54 — zewnętrzna klasa do skompilowania (nazwa pliku źródłaowego). 9CTPKPI.GXGN — definiuje poziom ostrzegawczy kompilatora, którego oasiągnięcie powoduje przerwanie kompilacji kontrolki użytkownikaa. Możliwe są wartości od  do . [TGMV[YC +ORQTV Dyrektywa +ORQTV dołącza jawnie do strony przestrzeń nazw, co umożliwia elementom strony dostęp do wszystkich klas i interfejsów zdefiniowanych w tej przestrzeni. Impor- towana przestrzeń może być częścią biblioteki klas platformy .NET lub przestrzenią zdefi- niowaną przez użytkownika. Dyrektywa +ORQTV ma następującą składnię:  +ORQTVPCOGURCEGVJGPCOGURCEGVQDGKORQTVGF N Dyrektywa +ORQTV ma tylko jeden atrybut, PCOGURCEG, który zawiera nazwę przestrzeni nazw importowanej do strony. Zwróćcie uwagę na fakt, że dyrektywa +ORQTV ma tylko jeden atrybut PCOGURCEG. Aby zaimportować większą liczbę przestrzeni nazw, należy użyć awielu dyrektyw +ORQTV.  úħè+9RTQYCFGPKGFQ#520 6 Poniższe przestrzenie nazw są automatycznie importowanae do wszystkich stron:  5[UVGO  5[UVGO QNNGEVKQPU  5[UVGO QNNGEVKQPU5RGEKCNKGF  5[UVGO QPHKIWTCVKQP  5[UVGO+1  5[UVGO6GZV  5[UVGO6GZV4GIWNCT ZRTGUUKQPU  5[UVGO9GD  5[UVGO9GD CEJKPI  5[UVGO9GD5GEWTKV[  5[UVGO9GD5GUUKQP5VCVG  5[UVGO9GD7+  5[UVGO9GD7+*VON QPVTQNU  5[UVGO9GD7+9GD QPVTQNU Poniższy przykładowy kod przedstawia zaimportowanie przestrzeni nazw klas bazowych platformy .NET, 5[UVGO0GV i zdefiniowanej przez użytkownika przestrzeni 9GD6QQNU:  +ORQTV0COGURCEG5[UVGO0GV  +ORQTV0COGURCEG9GD6QQNU [TGMV[YC 4GIKUVGT Dyrektywa 4GIKUVGT pozwala na określenie aliasów przestrzeni nazw i nazw klas dla skrócenia notacji składni własnych kontrolek serwera. aDyrektywa ta ma następującą składnię:  4GIKUVGT6CIRTGHKZVCIRTGHKZ0COGURCEGPCOGURCEG   4GIKUVGT6CIRTGHKZVCIRTGHKZ6CIPCOGVCIPCOG5TERCVJPCOG Dyrektywa 4GIKUVGT ma następujące atrybuty:     6CIRTGHKZ — alias powiązany z przestrzenią nazw; 6CIPCOG — alias powiązany z klasą; 0COGURCEG — przestrzeń nazw powiązana z VCIRTGHKZ; 54 — ścieżka (względna lub bezwzględna) kontrolki użytkownika apowiązanej z VCIRTGHKZVCIPCOG. Poniższy przykładowy fragment kodu ilustruje zastosowanie dyrektyw 4GIKUVGT do zadeklarowania aliasów VCIRTGHKZ i VCIPCOG dla kontrolek serwera i użytkownika. Pierwsza dyrektywa deklaruje alias /[6CI jako prefiksu dla wszystkich kontrolek znaj- dujących się w przestrzeni nazw /[ QORCP[/[0COG5RCEG. Druga dyrektywa deklaruje 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6  #EOG#F4QVCVQT jako parę VCIRTGHKZVCIPCOG dla kontrolek użytkownika znajdujących się w pliku adrotator.ascx. Aliasy te są później użyte w składni kontrolek serwera wewnątrz formy do wstawiania instancji każdej z kontrolek serweara.  4GIKUVGT6CIRTGHKZ/[6CI0COGURCEG/[ QORCP[/[0COG5RCEG  4GIKUVGT6CIRTGHKZ#EOG 6CIPCOG#F4QVCVQT5TE#F4QVCVQTCUEZ *6/.  HQTOTWPCVUGTXGT /[6CI/[ QPVTQNKF QPVTQNTWPCVUGTXGT $4 #EOG#F4QVCVQTHKNGO[CFUZONTWPCVUGTXGT HQTO   *6/. [TGMV[YC #UUGODN[ Dyrektywa #UUGODN[ deklaruje stworzenie połączenia pomiędzy zbiorem a bieżącą stroną, co pozwala na wykorzystywanie na stronie klas i interfejsów zdefiniowanych w tym zbiorze. Dyrektywy tej można również użyć do rejestrowania zbiorów w pliku konfiguracyjnym, co umożliwi dostęp do nich w całej aplikacji. Dyrektywa ta ma następującą składnię:  #UUGODN[0COGCUUGODN[PCOG lub  #UUGODN[5TERCVJPCOG Dyrektywa ta ma atrybuty 0COG i 5TE. 0COG oznacza łańcuch określający nazwę zbioru łą- czonego ze stroną. 5TE zawiera ścieżkę dostępu do pliku źródłowego, który ma być dyna- micznie skompilowany i dołączony. Zbiory znajdujące się w katalogu in aplikacji są automatycznie łączone ze stronami tej aplikacji. Takie zbiory nie wymagają dyrektywy #UUGODN[. Automatyczne łączenie może zostać wyłączone przez usunięcie z sekcji CUUGODN[ pliku web.config następującego wiersza: CFFCUUGODN[  Jako alternatywę użycia dyrektywy  #UUGODN[ , zbiory można zarejestrować w pliku web.config, co spowoduje ich połączenie z całą aplikacją. Poniższy fragment kodu ilustruje użycie dyrektywy  #UUGODN[ do stworzenia połą- czenia z MyAssembly.dll:  #UUGODN[0COGO[CUUGODN[FNN [TGMV[YC 1WVRWV CEJG Dyrektywa 1WVRWV CEJG deklaruje sposób obsługi buforowania wyjścia dla strony. Skład- nia wygląda następująco:  úħè+9RTQYCFGPKGFQ#520 6  1WVRWV CEJG WTCVKQPQHUGEQPFU .QECVKQP#P[^ NKGPV^ QYPUVTGCO^5GTXGT^0QPG8CT[$[ QPVTQNEQPVTQNPCOG 8CT[$[ WUVQODTQYUGT^EWUVQOUVTKPI8CT[$[*GCFGTJGCFGTU 8CT[$[2CTCORCTCOGVGTPCOG Dyrektywa ta ma następujące atrybuty:  WTCVKQP — czas buforowania strony lub kontrolki użytkownika w saekundach. Ustawienie tego atrybutu dla strony lub kontrolki użytkoawnika ustala ustawienia wygasania odpowiedzi HTTP generowanej przez obiekt i aautomatycznie buforuje wyjście strony lub kontrolki użytkownika. Atrybut ten jest wymagany. Jego brak spowoduje zgłoszeniea błędu parsera.  .QECVKQP — jedna z listy wartości OutputCacheLocation. Wartością adomyślną jest #P[.    Uwaga: atrybut ten jest wymagany dla buforowania wyjściaa strony ASP.NET lub kontrolki użytkownika. Jego brak spowoduje zgłoszeniea błędu parsera. 8CT[$[ WUVQO — dowolny tekst reprezentujący własne wymagania dotycazące buforowania wyjścia. Jeśli atrybut ma wartość DTQYUGT, buforowanie jest uzależnione od informacji o nazwie i wersji przeglądarki. Jeśli poadano własny łańcuch, w pliku global.asax aplikacji należy nadpisać metodę *VVR#RRNKECVKQP)GV8CT[$[ WUVQO5VTKPI. 8CT[$[*GCFGT — lista oddzielonych przecinkami nagłówków HTTP stosowaanych dla zróżnicowania buforowania wyjścia. Jeśli w tym atryabucie podano kilka nagłówków, bufor wyjścia zawiera różne wersje żądanego doakumentu dla każdego z podanych nagłówków. Warto zauważyć, że ustawienie atrybutu 8CT[$[*GCFGT umożliwia buforowanie we wszystkich buforach HTTP/1.1 a nie tylko w buforach ASPa.NET. Atrybut ten nie jest obsługiwany przez dyrektywy 1WVRWV CEJG w kontrolkach użytkownika. 8CT[$[2CTCO — lista oddzielonych przecinkami łańcuchów różnicującaych buforowanie wyjścia. Domyślnie łańcuchy te odpowiadają awartościom zapytania przesłanego przez atrybuty metody ) 6 lub parametrom wysłanym przez metodę 2156. Jeśli atrybut ten zawiera wiele parametrów, bufor wyjścia zawiera różne wersje żądanego dokumentu dla każdego podanego parametru. Możliawymi wartościami są PQPG, oraz wszystkie poprawne zapytania i nazwy parametrua 2156. Uwaga: atrybut ten jest konieczny do buforowania wyjściaa stron ASP.NET i kontrolek użytkownika. Jego brak spowoduje zgłoszenie abłędu parsera. Jeśli nie chcecie podać parametrów różnicujących buforowaną zawaartość, należy ustawić wartość na PQPG. Jeśli buforowanie wyjścia ma być uzależnione od wszystkiach wartości parametrów, wartość należy ustawić na .  8CT[$[ QPVTQN — lista oddzielonych przecinkami łańcuchów różnicującaych buforowanie wyjścia. Łańcuchy te reprezentują pełne ściasłe nazwy właściwości kontrolek użytkownika. Jeśli atrybut ten zostanie zastoasowany do kontrolki użytkownika, jej wyjście jest buforowane w zależności oda wartości podanych właściwości.  1WVRWV CEJG WTCVKQP 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6  $NQMFGMNCTCELK Fragmentem składni strony stosowanym niemal zawsze jest blok deklaracji. Blok deklaracji definiuje wewnętrzne zmienne i metody które są kompilowane podczas tworzenia dynamicz- nej klasy 2CIG reprezentującej stronę ASP.NET. UETKRVTWPCVUGTXGTNCPIWCIGEQFGNCPIWCIG5TERCVJPCOG 6WVCLWOKGUECO[MQF UETKRV Blok deklaracji ma następujące atrybuty:  NCPIWCIG — podaje język używany w tym bloku deklaracji. Wartość amoże reprezentować dowolny kompatybilny z .NET język prograamowania, taki jak Visual Basic, C# czy JScript.NET. Jeśli nie podano języka, waartością domyślną jest język podany w dyrektywie 2CIG. Jeśli także ta dyrektywa nie zawiera informacji o języku, domyślnie jest używany Visual Basic.  UTE — podaje ścieżkę dostępu i nazwę pliku zawierającego skrypt do wczytania. Jeśli zastosowano ten atrybut, pozostały kod zawarty w bloku adeklaracji jest ignorowany. $NQMQFT[UQYCPKC Blok odrysowania definiuje kod lub wyrażenie wstawiane (inline), które będą wykonywane w momencie odrysowywania strony. Istnieją dwa style — kod i wyrażenie. Używając zwy- kłego stylu, można zdefiniować zwykły blok kodu lub blok kontroli przepływu. Drugi może być stosowany jako skrót dla wywołania 4GURQPUG9TKVG. Kod wstawiany ma następującą składnię: +PNKPGEQFGQTGZRTGUUKQP Warto zauważyć, że w bloku odrysowania nie może wystąpić jawnie sekwencja znaków  . Może być ona zastosowana tylko do zakończenia tego bloku. Przykładowo, poniższy frag- ment kodu spowoduje błąd:  4GURQPUG9TKVG    Aby osiągnąć ten efekt można zbudować łańcuch znaków zawiaerający niedozwolony łańcuch:   KOU#U5VTKPI   4GURQPUG9TKVG U  -QOGPVCTGRQUVTQPKGUGTYGTC Komentarze po stronie serwera pozwalają na umieszczanie komentarzy wewnątrz plików .aspx. Jakikolwiek tekst zawarty pomiędzy znacznikami otwierającym i zamykającym komentarza, czy będzie to kod ASP.NET czy zwykły tekst, nie będzie przetwarzany przez serwer ani wypisany na wynikowej stronie. #PWNQYCP[MQFNWDKPPCCYCTVQħè  úħè+9RTQYCFGPKGFQ#520 6 Bloki komentarza po stronie serwera w ASP.NET mają te same zastosowania co bloki komentarza w językach programowania, łącznie z dokumeantacją i testowaniem. Wewnątrz bloków UETKRVTWPCVUGTXGT UETKRV i  można stosować składnię komentarza języka programowania, w którym napisano tena kod. Jeśli wewnątrz  zostanie zastosowany komentarz serwera, kompilator zgłaosi błąd. Otwierający i zamykający znacznik komentarza mogą pojawiać się w tym samym wierszu kodu lub mogą być oddzielone wierszami anulowanego kodua. Komentarze po stronie serwera nie mogą być zagnieżdżane. Poniższy przykład ilustruje usunięcie kodu kontrolki daefiniującego przycisk HTML:  DWVVQPTWPCVUGTXGTKF/[$WVVQP1P5GTXGT NKEM/[$WVVQPA NKEM  NKEMJGTGHQTGPNKIJVGOGPV DWVVQP  5MđCFPKCPKGUVCPFCTFQY[EJMQPVTQNGMUGTYGTC Niestandardowe kontrolki serwera są najczęściej stosowane do enkapsulowania podobnych funkcji programistycznych. Można tworzyć własne niestandardowe kontrolki serwera lub używać kontrolek dostarczonych z platformą .NET. Poniżej przedstawiono szczegółowo składnię stosowaną przy niestandardowych kontrol- kach serwera. 5MđCFPKCFGMNCTCELKPKGUVCPFCTFQY[EJMQPVTQNGM9GD(QTQOU Kontrolki Web Form mogą być deklarowane przez wymienienie tych elementów w pliku .aspx. Znacznik otwierający takiego elementu musi zawierać atrybut lub parę wartości TWPCV UGTXGT. Aby umożliwić programistyczne odwoływanie się do kontrolki, należy nadać jej unikalną wartość atrybutu KF. Aby umieścić w Web Form kontrolkę serwera (włączając kontrolki stworzone przez użytkownika i wszystkie kontrolki sieci WWW), należy zastosować następującą składnię: VCIRTGHKZVCIPCOGKF1RVKQPCN+ CVVTKDWVGPCOGXCNWGCVVTKDWVGPCOG RTQRGTV[PCOGXCNWGGXGPVPCOGGXGPVJCPFNGTOGVJQFTWPCVUGTXGT lub VCIRTGHKZVCIPCOGKF1RVKQPCN+ TWPCVUGTXGT VCIRTGHKZVCIPCOG Możliwe są następujące atrybuty:  VCIRTGHKZ — alias pełnej nazwy przestrzeni nazw kontrolki. Aliaasy kontrolek stworzonych przez użytkownika są deklarowane w dyrektaywie 4GIKUVGT.  VCIPCOG — nazwa klasy zawierającą kontrolkę. 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6         KF — unikalny identyfikator umożliwiający programistycznae odnoszenie się do kontrolki. CVVTKDWVGPCOG — nazwa atrybutu. RTQRGTV[XCNWG — wartość przypisana do CVVTKDWVGPCOG. RTQRGTV[PCOG — nazwa definiowanej właściwości. UWRTQRGTV[XCNWG — wartość przypisana do RTQRGTV[PCOG. GXGPVPCOG — nazwa zdarzenia kontrolki. GXGPVJCPFNGTOGVJQF — nazwa metody obsługi zdarzenia zdefiniowanej w kodzaie Web Form. Przykładowo, poniższy kod wstawia kontrolkę sieciową 6GZV$QZ: #526GZV$QZKF/[6GZV$QZTWPCVUGTXGT 9[TCľGPKCYKæľæEGFCPG Wyrażenia wiążące dane tworzą połączenia pomiędzy kontrolkami serwera i źródłami da- nych. Wyrażenia wiążące dane mogą być umieszczane po stronie wartości atrybutu lub pary wartości w znaczniku otwierającym kontrolki Web Form lub w dowolnym miejscu strony. Wyrażenie wiążące dane ma następującą składnię: VCIRTGHKZVCIPCOGRTQRGTV[FCVCDKPFKPIGZRTGUUKQP TWPCVUGTXGT lub NKVGTCNVGZVFCVCDKPFKPIGZRTGUUKQP Możliwe są następujące parametry:     VCIRTGHKZ — alias pełnej nazwy przestrzeni nazw kontrolki. Aliasem dla kontrolki sieciowej jest #52. Aliasy dla kontrolek stworzonych przez użytkownika asą deklarowane za pomocą dyrektywy 4GIKUVGT. VCIPCOG — nazwa klasy platformy .NET zawierającej kontrolkę.a RTQRGTV[ — właściwość kontrolki, dla której deklarowane jest powiązanie danych. GZRTGUUKQP — dowolne wyrażenie spełniające wymienione poniżej wyamagania. Wszystkie wyrażenia wiążące dane, bez względu na miejsce ich umieszczenia, muszą być zawarte pomiędzy  a  . ASP.NET obsługuje hierarchiczny model wiązania danych, który umożliwia asocjacyjne łączenie właściwości kontrolek serwera i nadrzędnych źródeł danych. Każda właściwość kontrolki serwera może być powiązana z danymi. Właściwości kontrolek mogą być po- wiązane z dowolnymi publicznymi polami lub właściwościami zarówno na zawierającej je stronie, jak i w bezpośrednio wymienionym pojemnikua.  úħè+9RTQYCFGPKGFQ#520 6 5VQUQYCPKG CVC$KPFGT XCN Platforma Web Form obsługuje również statyczną metodę wykonującą wyrażenie wiążące dane i opcjonalnie formatującą wynik jako łańcuch tekstowy. Metoda CVC$KPFGT XCN jest wygodna, ponieważ eliminuje konieczność jawnego rzutowania koniecznego dla skon- wertowania wartości do konkretnego typu danych. Jest to szczególnie użyteczne dla list kontrolek należących do szablonu list, ponieważ często zarówno wiersz danych, jak i pole danych muszą być rzutowane. W poniższym przykładzie liczba całkowita jest wyświetlana w notacji walutowej. Przy standardowej składni wiązania danych w ASP.NET należy najpierw zrzutować typ danych, aby otrzymać wartość pola +PVGIGT8CNWG. Wartość ta jest następnie argumentem metody 5VTKPI(QTOCV: 5VTKPI(QTOCV ]E_ CVC4QY8KGY QPVCKPGT CVC+VGO =+PVGIGT8CNWG?  Powyższy kod może być złożony i trudny do zapamiętania. Dla kontrastu, CVC$KPFGT XCN jest po prostu metodą z trzema argumentami: nazwą pojemnika zawierającego dane, nazwą pola danych i łańcuchem formatującym. W szablonach list, takich jak klasy CVC.KUV, CVC)TKF czy 4GRGCVGT, nazwą pojemnika jest zawsze QPVCKPGT CVC+VGO. Innym po- jemnikiem, który można stosować w CVC$KPFGT XCN, jest 2CIG.  CVC$KPFGT XCN QPVCKPGT CVC+VGO+PVGIGT8CNWG]E_  Argument zawierający łańcuch formatujący jest opcjonalny. Jeśli nie zostanie podany, CVC$KPFGT XCN zwróci wartość obiektu V[RG. Przykładowo:  DQQN CVC$KPFGT XCN QPVCKPGT CVC+VGO$QQN8CNWG  5MđCFPKCPCEPKMÎYQDKGMVÎYUGTYGTC Znaczniki obiektów serwera deklarują i tworzą instancje obiektów COM i .NET. Składnia wygląda następująco: QDLGEVKFKFTWPCVUGTXGTENCUU0 6(TCOGYQTM NCUU0COG QDLGEVKFKFTWPCVUGTXGTENCUU 1/2TQI+  QDLGEVKFKFTWPCVUGTXGTENCUU 1/ NCUU+  Dostępne są następujące parametry:     +F7PKSWGPCOG — referencja do obiektu w późniejszym kodzie. 0 6(TCOGYQTMENCUUPCOG — identyfikuje nazwę klasy platformy .NET, której instancję tworzymy. 1/2TQI+ — identyfikuje komponent COM, którego instancję tworzymya. 1/ NCUU+ — identyfikuje komponent COM, którego instancję tworzymya. Gdy parser lub kompilator strony napotka znacznik obiektu serwera w pliku ASP.NET, generuje na stronie właściwość odczytu (read) lub zapisu (write), używając atrybutu KF znacznika jako jej nazwy. Właściwość odczytu jest skonfigurowana tak, aby stworzyć instancję obiektu w momencie pierwszego użycia. Otrzymana instancja nie jest dodawana jako obiekt do hierarchicznego drzewa kontrolek serwera tej strony; jest traktowana jako deklaracja zmiennej nie należącej do interfejsu użytkaownika. 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6  Atrybuty ENCUUKF, RTQIKF i ENCUU wykluczają się wzajemnie. Błędem jest użycie więcej niż jednego z tych atrybutów w jednym znaczniku obiektu searwera. Poniższy kod prezentuje przykład zastosowania znacznikaa obiektu serwera: JVON QDLGEVKF/[ CVCDCUGENCUU/KETQUQHV1. $#FCRVQTNTWPCVUGTXGT UETKRVNCPIWCIG8$TWPCVUGTXGT 5WD2CIGA.QCF 5GPFGTCU1DLGEVGCU XGPV#TIU  KO5VQEM GVCKNUCU4GEQTF5GV 5GV5VQEM GVCKNU/[ CVCDCUG ZGEWVG  50OQPG[UGNNGEV HTQOUVQEMU  PF5WD UETKRV JVON 5MđCFPKCF[TGMV[Y[FQđæECPKCRQUVTQPKGUGTYGTC Dyrektywy dołączania po stronie serwera wstawiają zawartość podanego pliku do strony ASP.NET. KPENWFGRCVJV[RGHKNGPCOG Parametr RCVJV[RG podaje typ ścieżki do pliku HKNGPCOG. Może mieć wartość (KNG lub 8KTVWCN. Jeśli RCVJV[RG ma wartość (KNG, nazwa pliku zawiera ścieżkę względem katalogu zawie- rającego dokument z dyrektywą KPENWFG. Włączany plik może być w tym samym katalogu lub w podkatalogu; nie może jednak znajdować się w katalogu powyżej zawierającego stronę z dyrektywą KPENWFG. Jeśli RCVJV[RG ma wartość 8KTVWCN, nazwa pliku jest pełną wirtualną ścieżką do wirtualnego katalogu wewnątrz serwisu WWW. Parametr HKNGPCOG podaje nazwę dołączanego pliku. HKNGPCOG musi zawierać rozszerzenie pliku i musi być ujęty w cudzysłów (). Zwróćcie uwagę na fakt, że znacznik dołączania pliku jest wykonywany przed urucho- mieniem dynamicznego kodu (działa podobnie do preprocaesora C). Znacznik KPENWFG musi być ujęty w znaki komentarza HTML lub XML; w przeciwnym wypadku zostanie zinterpretowany jako tekst. Poniższy kod przedstawia przykład zastosowania dyrektyawy dołączania po stronie serwera: JVON DQF[ +PENWFGHKNGJGCFGTKPE 1VQIđÎYPCCYCTVQħèRNKMW (QT+VQ +PENWFGXKTVWCN+PENWFGU(QQDCTKPE 0GZV +PENWFGXKTVWCNHQQVGTKPE DQF[ JVON  úħè+9RTQYCFGPKGFQ#520 6 0CLEúħEKGLUVQUQYCPGQDKGMV[KMNCU[#520 6 Do tej pory poznaliście pliki używane w aplikacjach ASP.NET i zaznajomiliście się z pod- stawami Visual Basica. Nadszedł więc czas, aby poznać niektóre podstawowe obiekty stosowane w aplikacjach ASP.NET. 5VCV[EP[QDKGMV#RRNKECVKQP -NCUC*VVR#RRNKECVKQP Klasa *VVR#RRNKECVKQP definiuje metody, właściwości i zdarzenia wspólne dla wszystkich obiektów *VVR#RRNKECVKQP w platformie ASP.NET. Klasa *VVR#RRNKECVKQP zawiera wiele innych klas jako właściwości, które rozpoznają użyt- kownicy klasycznego ASP, oraz inne, które nie są im znane. Ponieważ obiekt #RRNKECVKQP stanowi integralną część projektu aplikacji czy witryny WWW, jego opisowi poświęcono wiele miejsca. 9đCħEKYQħEKQDKGMVW#RRNKECVKQP Obiekt #RRNKECVKQP ma kilka właściwości wykorzystywanych przez system:  #RRNKECVKQP — zwraca referencję do instancji *VVR#RRNKECVKQP5VCVG, obiektu używanego w pliku global.asax oraz w każdym Web Form w ASP.NET. Jest to zbiór zawierający zmienne, obiekty i komponenty o zasiaęgu aplikacji. Klasa *VVR#RRNKECVKQP5VCVG umożliwia programistom współdzielenie globalnych informacji pomiędzy wieloma żądaniami, sesjami i potokaami wewnątrz aplikacji ASP.NET. (Aplikacja ASP.NET to suma wszystkich plików, stron, procedur obsługi zdarzeń, modułów i kodu w wirtualnym katalogu i jego paodkatalogach na jednym serwerze WWW). QPVGZV — umożliwia dostęp do obiektu *662 QPVGZV bieżącej instancji aplikacji. 4GSWGUV — umożliwia dostęp do obiektu *VVR4GSWGUV+PVTKUKE, który udostępnia dane nadchodzących żądań HTTP. 4GURQPUG — umożliwia dostęp do obiektu *VVR4GURQPUG+PVTKUKE, który umożliwia transmisję danych odpowiedzi HTTP do klienta. 5GTXGT — umożliwia dostęp do obiektu 5GTXGT+PVTKPUKE. 5GUUKQP — umożliwia dostęp do obiektu 5GUUKQP+PVTKUKE.      FCTGPKCCRNKMCELK Przez system używane są następujące zdarzenia aplikacjia:   #RRNKECVKQP1P5VCTV — zdarzenie generowane, gdy aplikacja jest uruchamianaa na serwerze WWW. #RRNKECVKQP1P PF — zdarzenie generowane, gdy aplikacja kończy działaniae lub przetwarzanie na serwerze WWW. 4QFKCđ2TQLGMVQYCPKGCRNKMCELK#520 6      #RRNKECVKQP1P TTQT — zdarzenie generowane, gdy aplikacja napotyka błąd; może być zastosowane do stworzenia lub przypisania noweja procedury obsługi błędów dla aplikacji WWW. #RRNKECVKQP$GIKP4GSWGUV — zdarzenie generowane, gdy aplikacja odbiera nowe żądanie. #RRNKECVKQP PF4GSWGUV — zdarzenie generowane, gdy aplikacja kończy obsługę nowego żądania. #WVJGPVKECVG4GSWGUV — zdarzenie generowane, gdy aplikacja otrzymuje nowe żądanie i jest gotowa do uwierzytelnienia. 5VCV[EP[QDKGMV4GSWGUV -NCUC*VVR4GSWGUV Fakt dotarcia klienta do strony sieci WWW na serwerze WWW nazywa się żądaniem, ponieważ — technicznie rzecz ujmując — użytkownik żąda od serwera przesłania strony do jego przeglądarki. Obiekt 4GSWGUV jest stosowany do pobierania informacji z serwera WWW i przeglądarki klienta. 9đCħEKYQħEKQDKGMVW4GSWGUV Obiekt 4GSWGUV posiada następujące właściwości:              #EEGRV6[RGU — zwraca tablicę łańcuchów znaków obsługiwanych przez kalienta typów MIME. Jest to właściwość tylko do odczytu. #RRNKECVKQP2CVJ — zwraca ścieżkę do katalogu głównego wirtualnej aplikaacji. $TQYUGT — dostarcza informacji na temat możliwości przeglądarki przychodzącego klienta. NKGPV GTVKHKECVG — zwraca informacje o certyfikacie bezpieczeństwa klieanta, który zgłosił bieżące żądanie. QPVGPV PEQFKPI — opisuje zestaw znaków dostarczanych przez klienta. Jest to właściwość tylko do odczytu. QPVGPV6[RG — opisuje typ zawartości MIME odebranego żądania. Jest to właściwość tylko do odczytu. QQMKGU — zwraca zbiór zmiennych cookie klienta. (KNG2CVJ — wskazuje wirtualną ścieżkę bieżącego żądania. Jest to właaściwość tylko do odczytu. (KNGU — zwraca zbiór plików przekazanych przez klienta (w aformacie MIME multipart). (QTO — zwraca zbiór zmiennych formularza. *VVR/GVJQF — opisuje metodę transferu danych użytą przez klienta a() 6, 2156). +PRWV5VTGCO — umożliwia dostęp do surowych składników nadchodzącej encji HTTP. +U#WVJGPVKECVGF — wskazuje, czy nastąpiło uwierzytelnienie połączeniaa HTTP.  úħè+9RTQYCFGPKGFQ#520 6             +U5GEWTG QPPGEVKQP — wskazuje, czy połączenie HTTP jest bezpieczne (HTTPS). 2CVJ — wskazuje wirtualną ścieżkę bieżącego żądania. Jest to właaściwość tylko do odczytu. 3WGT[5VTKPI — zwraca zbiór zmiennych 3WGT[5VTKPI. 4GSWGUV6[RG — opisuje metodę transferu danych użytą przez klienta a() 6, 2156). 5GTXGT8CTKCDNGU — zwraca zbiór zmiennych serwera WWW. (Stosowany ze względu na kompatybilność; generalnie lepiej jest używać zadefiniowanych właściwości obiektu 4GSWGUV). 6QVCN$[VGU — zwraca liczbę bajtów w bieżącym strumieniu wejściowym.a 7TN — zwraca informację dotyczącą URL bieżącego żądania. 7TN4GHGTTGT — zwraca informację dotyczącą URL poprzedniego żądania aklienta, które doprowadziło do bieżącego URL. 7UGT#IGPV — zwraca surowy User Agent String przeglądarki klienta.a 7UGT*QUV#FFTGUU — zwraca adres IP zdalnego klienta. 7UGT*QUV0COG — zwraca nazwę DNS zdalne
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

ASP.NET. Vademecum profesjonalisty
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ą: