SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
IDZ DO
         PRZYK£ADOWY ROZDZIA£
                                         ASP .NET.
                           SPIS TRE CI
                                         Vademecum
           KATALOG KSI¥¯EK               profesjonalisty
                                         Autor: Scott Worley
                      KATALOG ONLINE     T³umaczenie: Pawe³ Janociñski
                                         ISBN: 83-7197-691-7
       ZAMÓW DRUKOWANY KATALOG           Tytu³ orygina³u: Inside ASP.NET
                                         Format: B5, stron: 482
              TWÓJ KOSZYK                Przyk³ady na ftp: 385 kB

                                         ASP .NET to najnowsza technologia Microsoftu, bêd¹ca ³¹cz¹ca Active Server Pages
                    DODAJ DO KOSZYKA     (ASP) z platform¹ .NET. Umo¿liwia ona pisanie wydajnych aplikacji WWW,
                                         korzystaj¹cych z zawansowanych mo¿liwo ci rodowiska .NET.

         CENNIK I INFORMACJE             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,
                   ZAMÓW INFORMACJE      a tak¿e innych powi¹zanych z ni¹ technologii.
                     O NOWO CIACH
                                         Ksi¹¿ka opisuje miêdzy innymi:
                       ZAMÓW CENNIK         • Klasy bazowe i podstawowe obiekty ASP .NET
                                            • Szczegó³owe wskazówki dotycz¹ce projektowania i konfigurowania aplikacji
                                              ASP .NET
                 CZYTELNIA                  • Now¹ technologiê tworzenia interfejsu u¿ytkownika: WebForms i zaawansowane
                                              aspekty jej u¿ycia
          FRAGMENTY KSI¥¯EK ONLINE          • 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.
Wydawnictwo Helion                       Je li programowa³e wcze niej w ASP, „ASP .NET. Vademecum profesjonalisty”
ul. Chopina 6                            to jedyna ksi¹¿ka, która jest Ci potrzebna, by w pe³ni wykorzystaæ mo¿liwo ci tej
44-100 Gliwice                           technologii. To ksi¹¿ka napisana przez profesjonalistów dla profesjonalistów.
tel. (32)230-98-63
                                         To ksi¹¿ka dla Ciebie.
e-mail: helion@helion.pl
5RKU VTG EK
               1 #WVQTG  
               9RTQYCFGPKG  

%ú è + 9RTQYCFGPKG FQ #520'6
4QFKC      2TGINæF #520'6 
               ASP.NET ...............................................................................................................................17
               Biblioteki klas bazowych .NET .............................................................................................19
               Konfiguracja aplikacji sieciowych ASP.NET .......................................................................22
               Zarządzanie sesjami i stanem ................................................................................................22
               Zarządzanie buforowaniem....................................................................................................22
               Warstwy aplikacji WWW w ASP.NET .................................................................................23
               Web Forms.............................................................................................................................24
               Usługi sieciowe XML ............................................................................................................25
               Współpraca z COM/COM+ i usługi składników...................................................................26
               ADO.NET ..............................................................................................................................26
               Przejście z klasycznego ASP do ASP.NET ...........................................................................26
               Globalizacja i lokalizacja.......................................................................................................27
               Poprawione bezpieczeństwo ..................................................................................................28
4QFKC      2TQLGMVQYCPKG CRNKMCELK #520'6  
               Pliki ustawień aplikacji ..........................................................................................................29
               Składnia strony ......................................................................................................................32
               Najczęściej stosowane obiekty i klasy ASP.NET..................................................................44
               Śledzenie aplikacji ASP.NET ................................................................................................48
               Przechodzenie do ASP.NET ..................................................................................................54
4QFKC      -QPHKIWTQYCPKG CRNKMCELK #520'6 
               Poło enie pliku konfiguracyjnego web.config ......................................................................59
               Stosowanie sekcji konfiguracyjnej appSettings ................................................................62
               Analiza sekcji konfiguracyjnych system.web........................................................................63

%ú è ++ 4FG #520'6
4QFKC      2TQITCOQYCPKG QRCTVG PC 9GD (QTOU 
               Wprowadzenie do Web Forms ..............................................................................................77
               Architektura Web Forms .......................................................................................................82
               Oddzielanie kodu od interfejsu u ytkownika ........................................................................86
               Kontrolki serwera ..................................................................................................................87
               Kontrolki sprawdzania poprawności ...................................................................................125
4QFKC      CTæFCPKG UVCPGO Y #520'6  
               Czym jest zarządzanie stanem? ...........................................................................................135
               Stosowanie zarządzania stanem aplikacji w ASP.NET .......................................................138
#520'6 8CFGOGEWO RTQHGULQPCNKUV[



%ú è +++ QUVúR FQ FCP[EJ Y #520'6 
4QFKC      5VQUQYCPKG #10'6 Y CRNKMCELCEJ #520'6  
               Dostęp do danych z perspektywy strony internetowej ........................................................151
               ADO i ADO.NET ................................................................................................................153
               Praca z podstawowymi obiektami ADO.NET .....................................................................160
               Tworzenie Web Forms orientowanych na dane ..................................................................179
               Aplikacje ASP.NET z obsługą transakcji ............................................................................191
4QFKC      5VQUQYCPKG Lú[MC :/. Y CRNKMCELCEJ #520'6 
               Struktura dokumentu XML..................................................................................................196
               Stosowanie języka XML w ASP.NET.................................................................................199
               Inne technologie oparte na XML .........................................................................................201
               Stosowanie języka XML w aplikacjach...............................................................................206
               Przykłady z ycia wzięte......................................................................................................207

%ú è +8 CCYCPUQYCPG VGEJPQNQIKG 
4QFKC      2TQLGMVQYCPKG WU WI UKGEKQY[EJ :/. Y #520'6  
               Wprowadzenie do usług sieciowych XML..........................................................................229
               Stosowanie SOAP Toolkit w usługach sieciowych XML ...................................................242
               XML Web Service Discovery — reklamowanie serwisu....................................................252
               Stosowanie usług sieciowych XML na stronach ASP.NET ................................................255
4QFKC      CDGRKGECPKG CRNKMCELK #520'6  
               Przegląd funkcji bezpieczeństwa ASP.NET ........................................................................259
               Stosowanie zabezpieczeń w aplikacjach ASP.NET ............................................................265
               Wewnątrz zabezpieczeń ASP.NET......................................................................................282
               Inne aspekty bezpieczeństwa ...............................................................................................287
4QFKC  5VQUQYCPKG WU WI UM CFPKMÎY Y #520'6 
               Czym są usługi składników?................................................................................................289
               Stosowanie usług składników w aplikacjach ASP.NET......................................................291
               Obiekt roboczy.....................................................................................................................296
               Stosowanie obiektu roboczego ............................................................................................300
               Komponenty usługowe ........................................................................................................306
4QFKC  5VQUQYCPKG WU WI QDU WIK YKCFQOQ EK Y #520'6 
               Wprowadzenie do systemów obsługi wiadomości ..............................................................311
               Zarządzanie kolejkami wiadomości MSMQ w Windows 2000 ..........................................314
               Architektura usług obsługi wiadomości w .NET.................................................................315
               Wykonywanie zadań za pomocą MSMQ ............................................................................318
4QFKC  5VQUQYCPKG WU WI MCVCNQIQY[EJ Y #520'6  
               Wprowadzenie do usług katalogowych ...............................................................................325
               Jak działa Active Directory?................................................................................................327
               Korzyści ze stosowania Active Directory............................................................................328
               Podsumowanie technologii Active Directory ......................................................................330
4QFKC  .QMCNKCELC K INQDCNKCELC CRNKMCELK #520'6 
               Czym jest lokalizacja? .........................................................................................................337
               Lokalizowanie aplikacji ASP.NET......................................................................................340
5RKU VTG EK                    



%ú è 8 CCYCPUQYCPG 9GD (QTOU 
4QFKC  -QPVTQNC DWHQTQYCPKC Y #520'6 
                  Zarządzanie buforowaniem w ASP.NET.............................................................................359
                  Buforowanie stron wychodzących.......................................................................................360
                  Buforowanie fragmentów (częściowe buforowanie strony) ................................................366
                  Buforowanie ądań ..............................................................................................................369
4QFKC  6YQTGPKG MQPVTQNGM W [VMQYPKMC
            K MQPVTQNGM FQUVQUQYCP[EJ FNC #520'6 
                  Kontrolki u ytkownika ........................................................................................................375
                  Wprowadzenie do kontrolek dostosowanych ......................................................................391
4QFKC  2TQITCOQYCPKG WTæFG RTGPQ P[EJ Y #520'6  
                  WAP (Wireless Application Protocol) ................................................................................414
                  WML (Wireless Markup Language)....................................................................................415
                  Wprowadzenie ASP.NET ....................................................................................................416

%ú è 8+ 2QFUWOQYCPKG
4QFKC  2QFUWOQYCPKG 
                  Czym jest ProjectPal? ..........................................................................................................437
                  Instalacja aplikacji ProjectPal ..............................................................................................439
                  Krótki przegląd aplikacji .....................................................................................................445
                  Architektura aplikacji ..........................................................................................................447
                  Warstwy usług w ProjectPal ................................................................................................450
                  Interfejsy u ytkownika ProjectPal .......................................................................................451
                  Baza danych ProjectPal .......................................................................................................451
                  Komponenty ProjectPal .......................................................................................................454
                  Wewnątrz kodu ProjectPal...................................................................................................456

                  QFCVMK
QFCVGM #         2TGINæF 0'6  
                  Programowanie wielu platform ...........................................................................................489
                  Wiele języków programowania ...........................................................................................489
                  Biblioteki klas bazowych .NET ...........................................................................................490
                  Wspólne środowisko uruchomieniowe ................................................................................494
                  Wspólny system typów ........................................................................................................495
                  Produkty dla serwerów .NET...............................................................................................495
QFCVGM $         0CLEú EKGL W [YCPG QDKGMV[ #520'6  
                  Obiekt HttpContext (statyczna kontrolka Context) .............................................................497
                  Klasa HttpApplication .........................................................................................................498
                  Klasa HttpApplicationState (statyczny obiekt Application)................................................499
                  Klasa HttpSessionState (statyczny obiekt Session) .............................................................500
                  Klasa HttpRequest (statyczny obiekt Request)....................................................................501
                  Klasa HttpResponse (statyczny obiekt Response)...............................................................502
                  Klasa Server (HttpServerUtility) .........................................................................................504
                  SMTPMail API ....................................................................................................................504
QFCVGM %         0CLEú EKGL W [YCPG QDKGMV[ #1  
                  Obiekt DataSet .....................................................................................................................507
                  Obiekt DataTable .................................................................................................................508
#520'6 8CFGOGEWO RTQHGULQPCNKUV[


            Obiekt DataColumn .............................................................................................................510
            Klasa DataRow ....................................................................................................................511
            Obiekt DataRelation ............................................................................................................512
            Obiekt DataView .................................................................................................................512
            Klasa DataRowView............................................................................................................513
            Obiekty OLEDB ..................................................................................................................514
            Obiekty SQLData... .............................................................................................................517
QFCVGM    -QPVTQNMK *6/. UGTYGTC  
            Obiekt HtmlForm — element form.................................................................................523
            Obiekt HtmlInputText — element input .........................................................................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........................................................528
            Obiekt HtmlTextArea — element textarea .....................................................................529
            Obiekt HtmlButton — element button ............................................................................531
            Obiekt HtmlInputButton — element input type=button ..............................................532
            Obiekt HtmlAnchor — element a ...................................................................................532
            Obiekt HtmlImage — element img .................................................................................533
            Obiekt HtmlInputImage — element input type=image ...............................................534
            Obiekt HtmlSelect — elementy select i option ..........................................................535
            Obiekt HtmlTable — element table ................................................................................537
            Obiekt HtmlTableRow — element tr ..............................................................................538
            Obiekt HtmlTableCell — element td ..............................................................................539
QFCVGM '   -QPVTQNMK #52 UGTYGTC  
            Najczęściej stosowane właściwości klasy Webcontrol .......................................................542
            Kontrolka Label ...................................................................................................................544
            Kontrolka Image ..................................................................................................................544
            Kontrolka TextBox ..............................................................................................................544
            Kontrolka DropDownList ....................................................................................................545
            Kontrolka ListBox ...............................................................................................................545
            Kontrolka CheckBox ...........................................................................................................546
            Kontrolka CheckBoxList .....................................................................................................546
            Kontrolka RadioButton........................................................................................................547
            Kontrolka RadioButtonList..................................................................................................548
            Kontrolka Button .................................................................................................................548
            Kontrolka LinkButton..........................................................................................................549
            Kontrolka ImageButton .......................................................................................................549
            Kontrolka HyperLink...........................................................................................................550
            Kontrolka Table ...................................................................................................................550
            Kontrolka TableCell ............................................................................................................551
            Kontrolka TableRow............................................................................................................551
            Kontrolka Panel ...................................................................................................................551
            Kontrolka Repeater ..............................................................................................................552
            Kontrolka DataList ..............................................................................................................552
            Kontrolka DataGrid .............................................................................................................554
            Kontrolka AdRotator ...........................................................................................................556
            Kontrolka Calendar..............................................................................................................557
QFCVGM (   /KETQUQHV /QDKNG +PVGTPGV 6QQNMKV 
            Grupy kontrolek ...................................................................................................................559
            Kontrolki formularza i układu strony ..................................................................................560
            Kontrolki prezentacyjne.......................................................................................................564
5RKU VTG EK                     


            Kontrolki nawigacyjne.........................................................................................................565
            Kontrolki wprowadzania danych .........................................................................................567
            Kontrolki sprawdzania poprawności ...................................................................................570
QFCVGM )   .KUVC CUQDÎY 0'6  
            Witryny działające na bazie ASP.NET................................................................................579
            Witryny dotyczące ASP.NET ..............................................................................................579
            Witryny dotyczące C# .........................................................................................................580
            Witryny dotyczące Visual Basic .NET ................................................................................580
            Witryny dotyczące .NET .....................................................................................................580
            Usługi sieciowe XML ..........................................................................................................581
            Witryny firmy Microsoft dotyczące .NET...........................................................................581
            Grupy dyskusyjne dotyczące .NET .....................................................................................581
            Listy wysyłkowe dotyczące .NET .......................................................................................582
            Magazyny.............................................................................................................................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


2NKMK WUVCYKG CRNKMCELK
       Aplikacje ASP.NET mogą być konfigurowane za pomocą dwóch mechanizmów, opartych
       na plikach:
           global.asax — plik globalnych ustawień aplikacji.
           web.config — plik w formacie XML zawierający konfigurację aplikacji.


2NKM INQDCNCUCZ
       Plik global.asax słu y dwóm głównym celom:
           Umo liwia definiowanie zmiennych, obiektów i danych o zasięgu aplikacji i sesji.
           Umo liwia definiowanie procedur obsługi zdarzeń, które mają miejsce w zakresie
           aplikacji, na poziomie sesji i aplikacji.

       [TGMV[Y[ UVQUQYCPG Y RNKMW INQDCNCUCZ
       Plik global.asax mo e zawierać następujące elementy:
%ú è +   9RTQYCFGPKG FQ #520'6


         dyrektywę #UUGODN[ — stosowana do rejestrowania skompilowanych zbiorów
         zawierających aplikacje WWW; innym sposobem rejestrowania zbiorów jest u ycie
         pliku web.config, który jest omówiony później w podrozdziale „Plik konfiguracyjny
         web.config”
            #UUGODN[ 0COG /[#UUGODN[FNN

         dyrektywę +ORQTV — importuje jawnie do aplikacji przestrzeń nazw. Wszystkie
         klasy i interfejsy zdefiniowane w tej przestrzeni stają się dostępne dla aplikacji
             +ORQTV 0COGURCEG 5[UVGO+1
             +ORQTV 0COGURCEG 5[UVGO%QNNGEVKQPU

         dyrektywę #RRNKECVKQP — definiuje specyficzną dla aplikacji informację u ywaną
         przez aplikację ASP.NET; jedyną funkcją tej dyrektywy jest dziedziczenie
         właściwości innego obiektu. Ma dwa atrybuty — pierwszy to +PJGTKVU, gdzie
         podaje się nazwę klasy, którą rozszerzamy, zaś drugi — GUETKRVKQP, zawiera
         tekstowy opis aplikacji (opis ten jest ignorowany zarówno przez parser, jak
         i kompilator, programista mo e go jednak u yć do własnych celów).
            #RRNKECVKQP +PJGTKVU O[%NCUU GUETKRVKQP GUETKRVKQP


     OKGPPG Q CMTGUKG CRNKMCELK NWD UGULK
     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 rozdziału.

     Aby zadeklarować zmienną:
       #RRNKECVKQP
 O[#RRNKECVKQP5EQRG8CT   /[8CNWG
       5GUUKQP
 /[5GUUKQP5EQRG8CT   /[8CNWG

     Aby pobrać wartość zmiennej:
       /[8CNWG  #RRNKECVKQP
 O[#RRNKECVKQP5EQRG8CT 
       /[8CNWG  5GUUKQP
 /[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.
       1DLGEV KF KF TWPCV UGTXGT ENCUU O[%NCUU0COG UEQRG RKRGNKPG
       1DLGEV KF KF TWPCV UGTXGT RTQIKF O[%1/2TQI+ UEQRG UGUUKQP 
       1DLGEV KF KF TWPCV UGTXGT ENCUUKF O[%1/%NCUU+ UEQRG CRRNKECVKQP 


     FCTGPKC UGULK
     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     2TQLGMVQYCPKG CRNKMCELK #520'6          



          $NQMK UMT[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[FTWM  Przykładowy plik global.asax
               5ETKRV NCPIWCIG 8$ TWPCV UGTXGT
            
            
                 -QF Y[MQP[YCP[ PC UVCTEKG CRNKMCELK
                5WD #RRNKECVKQPA1P5VCTV

                  #RRNKECVKQP
 /[#RRNKECVKQP5EQRG8CT   /[8CNWG
                  5GUUKQP
 /[5GUUKQP5EQRG8CT   /[8CNWG
                'PF 5WD
            
                -QF URTæVCLæE[ RQ CRNKMCELK
               5WD #RRNKECVKQPA1P'PF

               'PF 5WD
            
                 -QF Y[MQP[YCP[ PC RQEæVMW UGULK
                5WD 5GUUKQPA1P5VCTV

                'PF 5WD
            
                 -QF URTæVCLæE[ RQ UGULK
                5WD 5GUUKQPA1P'PF

                'PF 5WD
            
            
               UETKRV



  Wprowadzanie zmian w pliku global.asax
  Zmiany w plikach konfiguracyjnych ASP.NET są automatycznie wykrywane przez system i natychmiast
  stosowane.
%ú è +    9RTQYCFGPKG FQ #520'6



 Kluczowe informacje o pliku global.asax
 Plik global.asax musi znajdować się w katalogu bazowym witryny lub aplikacji 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 należącego do aplikacji.
 Plik global.asax jest skonfigurowany tak, że bezpośrednie żądanie URL dotyczące tego pliku jest
 automatycznie odrzucane; blokuje to nieautoryzowany dostęp do pliku global.asax.



2NKM MQPHKIWTCE[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ść pracy 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ń konfiguracyjnych.

         Szczegółowy opis pliku web.config znajduje się w rozdziale 3., „Konfigurowanie aplikacji
         ASP.NET”.


5M CFPKC UVTQP[
         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ć:
             FKTGEVKXG CVVTKDWVGXCNWG =CVVTKDWVGXCNWG  ?

         Formy WWW obsługują następujące dyrektywy:
              2CIG
              %QPVTQN
4QFKC      2TQLGMVQYCPKG CRNKMCELK #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ę:
   2CIG CVVTKDWVGXCNWG =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. Jeśli nie jest
    ustawiony na VTWG, biblioteki DLL ActiveX napisane dla ASP nie będą dział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 wbudowanych cech
    ASP przez kontekst obiektu lub przez 1P5VCTV2CIG. Wartością domyślną jest HCNUG.
    $WHHGT — definiuje semantykę buforowania odpowiedzi HTTP. Jeśli 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. Obsługuje
    wszystkie prawidłowe wartości strony kodowej.
    %QPVGPV6[RG — definiuje typ zawartości HTTP w odpowiedzi, zgodny z 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 wszystkie
    wartości definiujące prawidłowe ustawienia kulturowe.
    GUETKRVKQP — dostarcza tekstowego opisu strony. Mo e zawierać dowolny tekst.
    'PCDNG8KGY5VCVG — wskazuje, czy informacja o właściwościach strony ma być
    przechowywana pomiędzy ądaniami strony. Jeśli ma wartość 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 wystąpi błąd
    braku strony.
    +PJGTKVU — zewnętrzna klasa, po której strona dziedziczy. Mo e to być dowolna
    klasa dziedzicząca po klasie 2CIG.
%ú è +   9RTQYCFGPKG FQ #520'6


         .CPIWCIG — język stosowany do kompilacji wszystkich bloków             i 
         wewnątrz strony. Mo e to być Visual Basic, C# lub JScript.
         .QECN KFGPVKHKGT 
.%+ — definiuje identyfikator lokalizacji dla kodu strony.
         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łowego).
         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 osiągnięcie
         powoduje przerwanie kompilacji strony. Mo liwe są wartoś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 ASP.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ę:
        %QPVTQN CVVTKDWVGXCNWG =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ą stroną.
         VTWG oznacza mo liwość powiązania, HCNUG przeciwny przypadek. Wartością
         domyślną jest VTWG.
4QFKC     2TQLGMVQYCPKG CRNKMCELK #520'6             


    %NCUU0COG — pozwala na podanie nazwy klasy automatycznie kompilowanej
    dynamicznie podczas wystąpienia ądania strony. Wartością mo e być dowolna
    prawidłowa nazwa klasy.
    %QORKNGT1RVKQPU — łańcuch znaków zawierający opcje kompilacji dla strony.
    GDWI — określa, czy strona ma być kompilowana z symbolami debuggera.
    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.
    Wartość VTWG oznacza, e stan sesji jest dostępny, wartość 4GCF1PN[ — e stan
    sesji mo e być odczytywany, ale nie modyfikowany, zaś wartość HCNUG odpowiada
    pozostałym przypadkom. Wartością domyślną jest VTWG.
    'ZRNKEKV — określa, e strona powinna być kompilowana w trybie Visual 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 to 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.NET.
    5VTKEV — określa, e strona powinna być kompilowana w trybie Visual 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łowego).
    9CTPKPI.GXGN — definiuje poziom ostrzegawczy kompilatora, którego osiągnięcie
    powoduje przerwanie kompilacji kontrolki u ytkownika. 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ę:
   +ORQTV PCOGURCEG VJG PCOGURCEG VQ DG KORQTVGF

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ć wielu dyrektyw  +ORQTV.
%ú è +   9RTQYCFGPKG FQ #520'6


     Poni sze przestrzenie nazw są automatycznie importowane 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:
         +ORQTV 0COGURCEG 5[UVGO0GV
         +ORQTV 0COGURCEG 9GD6QQNU


     [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. Dyrektywa ta ma następującą składnię:
         4GIKUVGT 6CIRTGHKZ VCIRTGHKZ   0COGURCEG PCOGURCEG
      
         4GIKUVGT 6CIRTGHKZ VCIRTGHKZ   6CIPCOG VCIPCOG   5TE RCVJPCOG

     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 powią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     2TQLGMVQYCPKG CRNKMCELK #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 serwera.
      4GIKUVGT 6CIRTGHKZ /[6CI 0COGURCEG /[%QORCP[/[0COG5RCEG
      4GIKUVGT 6CIRTGHKZ #EOG
      6CIPCOG #F4QVCVQT 5TE #F4QVCVQTCUEZ
    *6/.
    
      HQTO TWPCV UGTXGT
          /[6CI/[%QPVTQN KF %QPVTQN TWPCV UGTXGT  $4
          #EOG#F4QVCVQT HKNG O[CFUZON TWPCV UGTXGT 
      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[ 0COG CUUGODN[PCOG

lub
   #UUGODN[ 5TE RCVJPCOG

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 bin 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:
 CFF CUUGODN[
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[ 0COG O[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:
%ú è +     9RTQYCFGPKG FQ #520'6


           1WVRWV%CEJG WTCVKQP QHUGEQPFU
         .QECVKQP #P[ ^ %NKGPV ^ QYPUVTGCO ^ 5GTXGT ^ 0QPG 8CT[$[%QPVTQN EQPVTQNPCOG
         8CT[$[%WUVQO DTQYUGT ^ EWUVQOUVTKPI 8CT[$[*GCFGT JGCFGTU
         8CT[$[2CTCO RCTCOGVGTPCOG

     Dyrektywa ta ma następujące atrybuty:
           WTCVKQP — czas buforowania strony lub kontrolki u ytkownika w sekundach.
           Ustawienie tego atrybutu dla strony lub kontrolki u ytkownika ustala ustawienia
           wygasania odpowiedzi HTTP generowanej przez obiekt i automatycznie buforuje
           wyjście strony lub kontrolki u ytkownika.
           Atrybut ten jest wymagany. Jego brak spowoduje zgłoszenie błędu parsera.
           .QECVKQP — jedna z listy wartości OutputCacheLocation. Wartością domyślną
           jest #P[.
           Uwaga: atrybut ten jest wymagany dla buforowania wyjścia strony ASP.NET
           lub kontrolki u ytkownika. Jego brak spowoduje zgłoszenie błędu parsera.
           8CT[$[%WUVQO — dowolny tekst reprezentujący własne wymagania dotyczące
           buforowania wyjścia. Jeśli atrybut ma wartość DTQYUGT, buforowanie jest uzale nione
           od informacji o nazwie i wersji przeglądarki. Jeśli podano 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 stosowanych
           dla zró nicowania buforowania wyjścia. Jeśli w tym atrybucie podano kilka
           nagłówków, bufor wyjścia zawiera ró ne wersje ądanego dokumentu 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 ASP.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ących
           buforowanie wyjścia. Domyślnie łańcuchy te odpowiadają wartoś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 liwymi wartościami
           są PQPG,
oraz wszystkie poprawne zapytania i nazwy parametru 2156.
           Uwaga: atrybut ten jest konieczny do buforowania wyjścia stron ASP.NET
           i kontrolek u ytkownika. Jego brak spowoduje zgłoszenie błędu parsera. Jeśli nie
           chcecie podać parametrów ró nicujących buforowaną zawartość, nale y ustawić
           wartość na PQPG. Jeśli buforowanie wyjścia ma być uzale nione od wszystkich
           wartości parametrów, wartość nale y ustawić na
.
           8CT[$[%QPVTQN — lista oddzielonych przecinkami łańcuchów ró nicujących
           buforowanie wyjścia. Łańcuchy te reprezentują pełne ścisłe nazwy właściwości
           kontrolek u ytkownika. Jeśli atrybut ten zostanie zastosowany do kontrolki
           u ytkownika, jej wyjście jest buforowane w zale ności od wartości podanych
           właściwości.
              1WVRWV%CEJG WTCVKQP
4QFKC     2TQLGMVQYCPKG CRNKMCELK #520'6               



$NQM FGMNCTCELK
       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.
         UETKRV TWPCV UGTXGT NCPIWCIG EQFGNCPIWCIG    5TE RCVJPCOG
         6WVCL WOKGUECO[ MQF
         UETKRV

       Blok deklaracji ma następujące atrybuty:
           NCPIWCIG — podaje język u ywany w tym bloku deklaracji. Wartość mo e
           reprezentować dowolny kompatybilny z .NET język programowania, taki jak
           Visual Basic, C# czy JScript.NET. Jeśli nie podano języka, wartoś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 deklaracji jest ignorowany.

$NQM QFT[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ę:
         +PNKPG EQFG QT GZRTGUUKQP

       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 zawierający niedozwolony łańcuch:
         
         KO U #U 5VTKPI          
         4GURQPUG9TKVG
U
        


-QOGPVCTG RQ UVTQPKG UGTYGTC
       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[ MQF NWD KPPC CYCTVQ è
%ú è +     9RTQYCFGPKG FQ #520'6


      Bloki komentarza po stronie serwera w ASP.NET mają te same zastosowania co bloki
      komentarza w językach programowania, łącznie z dokumentacją i testowaniem.

      Wewnątrz bloków UETKRV TWPCV UGTXGT UETKRV i          mo na stosować składnię
      komentarza języka programowania, w którym napisano ten kod.

      Jeśli wewnątrz       zostanie zastosowany komentarz serwera, kompilator zgłosi błąd.

      Otwierający i zamykający znacznik komentarza mogą pojawiać się w tym samym wierszu
      kodu lub mogą być oddzielone wierszami anulowanego kodu.

      Komentarze po stronie serwera nie mogą być zagnie d ane.

      Poni szy przykład ilustruje usunięcie kodu kontrolki definiującego przycisk HTML:
            
          DWVVQP TWPCV UGTXGT KF /[$WVVQP 1P5GTXGT%NKEM /[$WVVQPA%NKEM
          %NKEM JGTG HQT GPNKIJVGOGPV
          DWVVQP
           


5M CFPKC PKGUVCPFCTFQY[EJ MQPVTQNGM UGTYGTC
      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 CFPKC FGMNCTCELK PKGUVCPFCTFQY[EJ MQPVTQNGM 9GD (QTOU
      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ę:
       VCIRTGHKZVCIPCOG KF 1RVKQPCN+ CVVTKDWVGPCOG XCNWG CVVTKDWVGPCOG
       RTQRGTV[PCOG XCNWG GXGPVPCOG GXGPVJCPFNGTOGVJQF TWPCV UGTXGT 

      lub
       VCIRTGHKZVCIPCOG KF 1RVKQPCN+ TWPCV UGTXGT      VCIRTGHKZVCIPCOG

      Mo liwe są następujące atrybuty:
            VCIRTGHKZ — alias pełnej nazwy przestrzeni nazw kontrolki. Aliasy kontrolek
            stworzonych przez u ytkownika są deklarowane w dyrektywie  4GIKUVGT.
            VCIPCOG — nazwa klasy zawierającą kontrolkę.
4QFKC      2TQLGMVQYCPKG CRNKMCELK #520'6           


            KF — unikalny identyfikator umo liwiający programistyczne 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 kodzie
            Web Form.

      Przykładowo, poni szy kod wstawia kontrolkę sieciową 6GZV $QZ:
       #526GZV$QZ KF /[6GZV$QZ TWPCV UGTXGT 


9[TC GPKC YKæ æEG FCPG
      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ę:
       VCIRTGHKZVCIPCOG RTQRGTV[       FCVCDKPFKPI GZRTGUUKQP   TWPCV UGTXGT 

      lub
       NKVGTCN VGZV        FCVCDKPFKPI GZRTGUUKQP

      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 są
            deklarowane za pomocą dyrektywy  4GIKUVGT.
            VCIPCOG — nazwa klasy platformy .NET zawierającej kontrolkę.
            RTQRGTV[ — właściwość kontrolki, dla której deklarowane jest powiązanie danych.
            GZRTGUUKQP — dowolne wyra enie spełniające wymienione poni ej wymagania.

      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 pojemniku.
%ú è +    9RTQYCFGPKG FQ #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%QPVCKPGTCVC+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 %QPVCKPGTCVC+VGO. Innym po-
      jemnikiem, który mo na stosować w CVC$KPFGT'XCN, jest 2CIG.
           CVC$KPFGT'XCN
%QPVCKPGTCVC+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:
           
DQQNCVC$KPFGT'XCN
%QPVCKPGTCVC+VGO $QQN8CNWG 


5M CFPKC PCEPKMÎY QDKGMVÎY UGTYGTC
      Znaczniki obiektów serwera deklarują i tworzą instancje obiektów COM i .NET. Składnia
      wygląda następująco:
       QDLGEV KF KF TWPCVUGTXGT ENCUU 0'6 (TCOGYQTM %NCUU 0COG
       QDLGEV KF KF TWPCVUGTXGT ENCUU %1/ 2TQI+ 
       QDLGEV KF KF TWPCVUGTXGT ENCUU %1/ %NCUU+ 

      Dostępne są następujące parametry:
           +F 7PKSWG PCOG — referencja do obiektu w późniejszym kodzie.
           0'6 (TCOGYQTM ENCUU PCOG — identyfikuje nazwę klasy platformy .NET,
           której instancję tworzymy.
           %1/ 2TQI+ — identyfikuje komponent COM, którego instancję tworzymy.
           %1/ %NCUU+ — identyfikuje komponent COM, którego instancję tworzymy.

      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 ytkownika.
4QFKC     2TQLGMVQYCPKG CRNKMCELK #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 serwera.

      Poni szy kod prezentuje przykład zastosowania znacznika obiektu serwera:
           JVON
           QDLGEV KF /[CVCDCUG ENCUU /KETQUQHV1.'$#FCRVQT TWPCV UGTXGT 
           UETKRV NCPIWCIG 8$ TWPCVUGTXGT
           5WD 2CIGA.QCF
5GPFGT CU 1DLGEV G CU 'XGPV#TIU
             KO 5VQEMGVCKNU CU 4GEQTF5GV
             5GV 5VQEMGVCKNU  /[CVCDCUG'ZGEWVG
 50OQPG[  UGNGEV
HTQO UVQEMU 
           'PF 5WD
           UETKRV
           JVON


5M CFPKC F[TGMV[Y[ FQ æECPKC RQ UVTQPKG UGTYGTC
      Dyrektywy dołączania po stronie serwera wstawiają zawartość podanego pliku do strony
      ASP.NET.
          KPENWFG RCVJV[RG  HKNGPCOG 

      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 preprocesora 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 dyrektywy dołączania po stronie serwera:
         JVON
         DQF[
                +PENWFG HKNG JGCFGTKPE 
              1VQ I ÎYPC CYCTVQ è RNKMW
               (QT + VQ 
                    +PENWFG XKTVWCN +PENWFGU(QQDCTKPE 
               0GZV
                 +PENWFG XKTVWCN HQQVGTKPE 
         DQF[
         JVON
%ú è +   9RTQYCFGPKG FQ #520'6



0CLEú EKGL UVQUQYCPG QDKGMV[ K MNCU[ #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 EK QDKGMVW #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 zasięgu aplikacji.
           Klasa *VVR#RRNKECVKQP5VCVG umo liwia programistom współdzielenie globalnych
           informacji pomiędzy wieloma ądaniami, sesjami i potokami 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 podkatalogach 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.


       FCTGPKC CRNKMCELK
       Przez system u ywane są następujące zdarzenia aplikacji:
           #RRNKECVKQP1P5VCTV
 — zdarzenie generowane, gdy aplikacja jest uruchamiana
           na serwerze WWW.
           #RRNKECVKQP1P'PF
 — zdarzenie generowane, gdy aplikacja kończy działanie
           lub przetwarzanie na serwerze WWW.
4QFKC     2TQLGMVQYCPKG CRNKMCELK #520'6           


           #RRNKECVKQP1P'TTQT
 — zdarzenie generowane, gdy aplikacja napotyka błąd;
           mo e być zastosowane do stworzenia lub przypisania nowej 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[ QDKGMV 4GSWGUV 
-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 EK QDKGMVW 4GSWGUV
       Obiekt 4GSWGUV posiada następujące właściwości:
           #EEGRV6[RGU — zwraca tablicę łańcuchów znaków obsługiwanych przez klienta
           typów MIME. Jest to właściwość tylko do odczytu.
           #RRNKECVKQP2CVJ — zwraca ście kę do katalogu głównego wirtualnej aplikacji.
           $TQYUGT — dostarcza informacji na temat mo liwości przeglądarki przychodzącego
           klienta.
           %NKGPV%GTVKHKECVG — zwraca informacje o certyfikacie bezpieczeństwa klienta,
           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łaściwość
           tylko do odczytu.
           (KNGU — zwraca zbiór plików przekazanych przez klienta (w formacie MIME
           multipart).
           (QTO — zwraca zbiór zmiennych formularza.
           *VVR/GVJQF — opisuje metodę transferu danych u ytą przez klienta ()'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łączenia HTTP.
%ú è +   9RTQYCFGPKG FQ #520'6


         +U5GEWTG%QPPGEVKQP — wskazuje, czy połączenie HTTP jest bezpieczne (HTTPS).
         2CVJ — wskazuje wirtualną ście kę bie ącego ądania. Jest to właściwość tylko
         do odczytu.
         3WGT[5VTKPI — zwraca zbiór zmiennych 3WGT[5VTKPI.
         4GSWGUV6[RG — opisuje metodę transferu danych u ytą przez klienta ()'6, 2156).
         5GTXGT8CTKCDNGU — zwraca zbiór zmiennych serwera WWW. (Stosowany ze
         względu na kompatybilność; generalnie lepiej jest u ywać zdefiniowanych
         właściwości obiektu 4GSWGUV).
         6QVCN$[VGU — zwraca liczbę bajtów w bie ącym strumieniu wejściowym.
         7TN — zwraca informację dotyczącą URL bie ącego ądania.
         7TN4GHGTTGT — zwraca informację dotyczącą URL poprzedniego ądania klienta,
         które doprowadziło do bie ącego URL.
         7UGT#IGPV — zwraca surowy User Agent String przeglądarki klienta.
         7UGT*QUV#FFTGUU — zwraca adres IP zdalnego klienta.
         7UGT*QUV0COG — zwraca nazwę DNS zdalnego klienta.
         7UGT.CPIWCIGU — zwraca posortowaną tabelę preferencji językowych klienta.


      /GVQF[ QDKGMVW 4GSWGUV
      Obiekt 4GSWGUV ma następujące metody:
         $KPCT[4GCF
KPV PWO$[VGU — odczytuje binarnie podaną liczbę bajtów z bie ącego
         strumienia wejściowego.
         /CR2CVJ
5VTKPI 8KTVWCN2CVJ — przekłada wirtualną ście kę (w ądaniu URL)
         na fizyczną ście kę na serwerze dla bie ącego ądania.
         5CXG#U
5VTKPI HKNGPCOG, $QQNGCP KPE*GCFGTU — zapisuje ądanie HTTP na dysk.


5VCV[EP[ QDKGMV 4GURQPUG 
-NCUC *VVR4GURQPUG
      Obiekt 4GURQPUG jest stosowany do wysyłania informacji z serwera sieci WWW do prze-
      glądarki klienta.

      9 C EKYQ EK QDKGMVW 4GURQPUG
      Obiekt 4GURQPUG ma następujące właściwości:
         $WHHGT — umo liwia dostęp do bufora *VVR4GURQPUG, co pozwala na zło enie
         całej strony na serwerze i wysłanie jej w całości do klienta, zamiast przesyłania
         przetworzonych sekcji z osobna.
         $WHHGT1WVRWV — ustawia wartość wskazującą, czy wyjście HTTP jest buforowane.
         %CEJG — zwraca informacje o buforowaniu strony WWW (czas wygaśnięcia,
         prywatność, klauzule warunkowe).
4QFKC     2TQLGMVQYCPKG CRNKMCELK #520'6           


           %JCTUGV — ustala zestaw znaków dla wyjścia HTTP.
           %QPVGPV'PEQFGT — umo liwia dostęp do bie ącego kodera zawartości.
           %QPVGPV'PEQFKPI — ustala zestaw znaków dla wyjścia HTTP.
           %QPVGPV6[RG — ustawia typ MIME wyjścia HTTP.
           %QQMKGU — pobiera zbiór *VVR%QQMKG wysłany przez bie ącą odpowiedź.
           'ZRKTGU — ustala ustawienia wygasania dla klienta.
           +U%NKGPV%QPPGEVGF — pobiera wartość wskazującą, czy klient jest jeszcze
           połączony z serwerem.
           5VCVWU%QFG — ustala kod stanu HTTP dla wyjścia zwracanego do klienta.
           5VCVWUGUETKRVKQP — ustala komunikat stanu HTTP zwracany do klienta.


       /GVQF[ QDKGMVW 4GURQPUG
       Obiekt *VVR4GURQPUG ma następujące metody:
           #RRGPF6Q.QI
5VTKPI .QI'PVT[ — dodaje własną informację do pliku dziennika IIS.
           2KEU
5VTKPI 2KEU8CNWG — dodaje etykietę PICS (Platform for Internet Content
           Selection) nagłówka HTTP do strumienia wyjściowego.
           4GFKTGEV
5VTKPI PGY74. — przekierowuje przeglądarkę klienta na nowy adres URL.
           9TKVG
5VTKPI QWVRWV5VTKPI — zapisuje wartość do strumienia wyjściowego
           zawartości HTTP.
           9TKVG(KNG
(KNGPCOG — zapisuje plik bezpośrednio do strumienia wyjściowego
           zawartości HTTP.


-NCUC 5GTXGT 
-NCUC *VVR5GTXGT7VKNKV[
       Obiekt 5GTXGT7VKNKV[ jest niemal zupełnie tym samym co obiekt 5GTXGT klasycznego ASP.
       Umo liwia dostęp do u ytecznych narzędzi po stronie serwera do stosowania w aplikacjach
       ASP.NET.

       9 C EKYQ EK QDKGMVW 5GTXGT
       Krótki spis właściwości obiektu 5GTXGT zawiera:
           /CEJKPG0COG — pobiera nazwę serwera sieci WWW.
           5ETKRV6KOGQWV — wymaga podania w sekundach limitu czasu dla skryptów serwera.


       /GVQF[ MNCU[ *VVR5GTXGT7VKNKV[
       Poni ej przedstawiono krótki przegląd metod klasy *VVR5GTXGT7VKNKV[:
           %TGCVG1DKGEV
5VTKPI RTQIKF — tworzy instancję obiektu COM identyfikowanego
           przez progid.
%ú è +   9RTQYCFGPKG FQ #520'6


         'ZGEWVG — uruchamia inną stronę WWW na tym serwerze, wstrzymując
         wykonywanie bie ącej strony do momentu, a serwer zakończy przetwarzanie nowej.
         )GV.CUV'TTQT — zwraca ostatni odnotowany wyjątek bie ącej aplikacji WWW
         lub strony.
         *VON'PEQFG — koduje łańcuch i zwraca zakodowany łańcuch.
         *VONGEQFG — dekoduje łańcuch i zwraca zdekodowany łańcuch.
         /CRRCVJ — przekłada ście kę wirtualną na ście kę fizyczną.
         6TCPUHGT — kończy wykonywanie bie ącej strony i rozpoczyna wykonywanie
         nowego ądania, u ywając podanej ście ki URL.
         7TN'PEQFG — koduje łańcuch.
         7TNGEQFG — dekoduje łańcuch.
         7TN2CVJ'PEQFG — koduje część łańcucha URL zawierającego ście kę i zwraca
         zakodowany łańcuch.


 NGFGPKG CRNKMCELK #520'6
     Podczas projektowania aplikacji ASP.NET macie mo liwość śledzenia stanu lub postępu
     działania aplikacji w czasie rzeczywistym. Jest to mo liwe dzięki funkcjom śledzenia
     ASP.NET.

     Zwykłą metodą osiągnięcia tego efektu w aplikacjach klasycznego ASP było umieszczanie
     niemal w ka dym miejscu kodu instrukcji TGURQPUGYTKVG
. Technika ta jednak wpływa na:
         wydajność — większa ilość kodu na stronie WWW powoduje, e wczytuje się
         on wolniej;
         czytelność i łatwość obsługi kodu — częste stosowanie w kodzie strony
         internetowej funkcji TGURQPUGYTKVG
, zarówno do wypisywania treści strony,
         jak i informacji słu ącej do kontroli działania, mo e początkowo uczynić kod
         trudnym do czytania i obsługi;
         mo liwość wyłączania — prawdopodobnie najwa niejszą mo liwością, której
         brakuje metodzie TGURQPUGYTKVG, jest włączanie i wyłączanie wyjścia do przeglądarki.

     ASP.NET pozwala na dynamiczne śledzenie stanu aplikacji WWW dzięki swojemu syste-
     mowi śledzenia. System, w który wyposa ony jest ASP.NET, wykonuje dwa typy operacji:
         śledzenie na poziomie strony (Page-level Tracing) — pozwala na śledzenie na
         poziomie strony WWW na podstawie systemu „strona po stronie”;
         śledzenie na poziomie aplikacji (Application-level Tracing) — pozwala na śledzenie
         na poziomie aplikacji.

     Oba typy śledzenia są konfigurowane za pomocą pliku konfiguracyjnego web.config.
4QFKC       2TQLGMVQYCPKG CRNKMCELK #520'6              



+PHQTOCELG NGFGPKC
      Na razie omówiliśmy śledzenie na poziomie abstrakcyjnym. ASP.NET automatycznie
      śledzi stan aplikacji i stron WWW na serwerze sieci WWW i gdy śledzenie jest włączone,
      większość z tych informacji jest dostępnych dla programisty. Dostępne informacje po-
      chodzące z operacji śledzenia są omówione w następnych podrozdziałach.

      Przed szczegółowym przedstawieniem ka dej sekcji wyników śledzenia warto stworzyć
      prostą stronę internetową z włączonym śledzeniem. Aby to zrobić, wystarczy umieścić na
      początku strony .aspx dyrektywę:
        RCIG 6TCEG VTWG

      Podczas przetwarzania generowana jest lista śledzenia, umieszczona później na końcu
      strony. Lista ta składa się z wymienionych poni ej sekcji.

      Sekcja Request Details (szczegóły ądania) zawiera następujące elementy:
       5GUUKQP +            Identyfikator sesji dla podanego ądania.
       6KOG QH 4GSWGUV       Czas pojawienia się ądania.
       4GSWGUV 'PEQFKPI      Kodowanie znaków zastosowane w ądaniu.
       4GSWGUV 6[RG          )'6 ^ 2156
       5VCVWU %QFG           Wartość kodu stanu powiązanego z odpowiedzią. Więcej informacji na ten
                             temat mo na znaleźć pod adresem http://www.w3c.org w dokumencie
                             RFC 2616 dla HTTP 1.1
       4GURQPUG 'PEQFKPI     Kodowanie znaków dla odpowiedzi

      Sekcja Trace Information (informacje śledzenia) zawiera następujące elementy:
       %CVGIQT[              Kategoria śledzenia podana za pomocą metody 6TCEG9CTP
                             lub 6TCEG9TKVG.
       /GUUCIG               Wiadomość śledzenia podana za pomocą metody 6TCEG9CTP
                             lub 6TCEG9TKVG.
       (TQO (KTUV
U         Czas w sekundach od wyświetlenia pierwszej informacji.
       (TQO .CUV
U          Czas w sekundach od wyświetlenia ostatniej informacji.

      Sekcja Control Tree (drzewo kontrolek) zawiera następujące elementy:
       %QPVTQN +            Identyfikator kontrolki. Jeśli nie podano ID kontrolki, ASP.NET
                             wygeneruje je automatycznie za pomocą właściwości %NKGPV+.
       6[RG                  Pełna nazwa typu kontrolki.
       4GPFGT 5KG $[VGU     Rozmiar w bajtach odrysowywanej kontrolki (włącznie z kontrolkami
                             potomnymi).
       8KGY5VCVG 5KG $[VGU Rozmiar w bajtach informacji o wartościach atrybutów kontrolki
                             (wyłączając kontrolki potomne).
%ú è +   9RTQYCFGPKG FQ #520'6


       Sekcja Session State (stan sesji) zawiera następujące elementy:
        5GUUKQP -G[          Klucz stanu sesji.
        6[RG                 Typ danych składowanego obiektu.
        8CNWG                Aktualnie składowany obiekt.

       Sekcja Application State (stan aplikacji) zawiera następujące elementy:
        #RRNKECVKQP -G[      Klucz stanu aplikacji.
        6[RG                 Typ danych składowanego obiektu.
        8CNWG                Aktualnie składowany obiekt.

       Sekcja Cookies Collection (zbiór cookies) zawiera następujące elementy:
        0COG                 Nazwa cookie.
        8CNWG                Dane przechowywane w cookie.
        5KG                 Rozmiar cookie w bajtach.

       Sekcja Headers Collection (zbiór nagłówków) zawiera następujące elementy:
        0COG                 Nazwa elementu nagłówka.
        8CNWG                Dane elementu nagłówka.

       Sekcja Form Collection (zbiór formularza) zawiera następujące elementy:
        0COG                 Nazwa zmiennej formularza.
        8CNWG                Dane zmiennej formularza.

       Sekcja Server Variables (zmienne serwera) zawiera następujące elementy:
        0COG                 Nazwa zmiennej serwera.
        8CNWG                Dane zmiennej serwera.


5VCV[EP[ QDKGMV 6TCEG 
-NCUC 6TCEG%QPVGZV
       Obiekt 6TCEG jest nową wbudowaną kontrolką ASP.NET. Słu y on do zmieniania ustawień
       śledzenia strony WWW lub do wysyłania informacji śledzenia z aplikacji WWW do sys-
       temu śledzenia.

       9 C EKYQ EK MNCU[ 6TCEG%QPVGZV
       Poni ej przedstawiono właściwości obiektu 6TCEG:
           +U'PCDNGF — wskazuje, czy dla bie ącego ądania WWW śledzenie jest włączone.
           6TCEG/QFG — ustawia porządek, w jakim wiadomości śledzenia będą przekazywane
           do ądającej przeglądarki.
4QFKC       2TQLGMVQYCPKG CRNKMCELK #520'6          



      /GVQF[ QDKGMVW 6TCEG
      Obiekt 6TCEG ma następujące metody:
          9TKVG — zapisuje informacje śledzenia do dziennika śledzenia.
          9CTP — zapisuje informacje śledzenia do dziennika śledzenia. W przeciwieństwie
          do 9TKVG, wszystkie ostrze enia będą oznaczone w dzienniku kolorem czerwonym.

      5VQUQYCPKG QDKGMVW 6TCEG
      Obiekt 6TCEG jest stosowany w Web Forms tylko do czterech zadań. Są to:
          zmiana porządku wyświetlania informacji śledzenia — temu celowi słu y
          właściwość VTCEG6TCEG/QFG. Poni ej przedstawiono przykład, który ilustruje
          uporządkowanie informacji śledzenia według kategorii:
           6TCEG6TCEG/QFG UQTV$[%CVGIQT[

          sprawdzenie, czy śledzenie bie ącej strony jest włączone — w tym celu stosuje
          się właściwość VTCEGKU'PCDNGF obiektu 6TCEG. Poni ej przedstawiono przykład
          takiego zastosowania, gdzie flaga VTCEG działa jako przełącznik dla własnego kodu
          słu ącego do usuwania błędów:
            +H VTCEGGPCDNGF VJGP
               MQF U W æE[ FQ WUWYCPKC D úFÎY
            'PF KH

          wysyłanie informacji (Trace Information) do systemu śledzenia — za pomocą
          metody VTCEGYTKVG
 mo na wysłać tekst do systemu śledzenia. Metoda ta pozwala
          na podanie samego łańcucha oraz kategorii, w której zostanie on umieszczony.
          Poni szy przykład ilustruje dodanie informacji do kategorii 75'4 '(+0+' :
           6TCEGYTKVG
 75'4 '(+0+'  VJKU KU C WUGT FGHKPKGF VTCEG UVTKPI 

          wysyłanie ostrze eń (Warning Trace Information) do systemu śledzenia
          — działa tak samo jak metoda 9TKVG, z jednym wyjątkiem — wysłany łańcuch
          będzie wyświetlony w wypisanej informacji śledzenia na czerwono. Oto przykład
          ilustrujący to zastosowanie:
           6TCEGYCTP
 75'4 '(+0+'  VJKU KU C WUGT FGHKPKGF VTCEG UVTKPI 


5VQUQYCPKG NGFGPKC PC RQKQOKG UVTQP[
      Aby stosować śledzenie na poziomie strony, nale y umieścić atrybut 6TCEG w dyrektywie
       2CIG. Oto przykład:
         2CIG 6TCEG VTWG

      Po umieszczeniu tego kodu strona WWW wypisuje całą informację śledzenia na końcu
      dyrektywy podczas jej działania.

      Gdy atrybut 6TCEG jest ustawiony na VTWG, właściwość 6TCEGKU'PCDNGF jest równie
      ustawiona na VTWG.
%ú è +     9RTQYCFGPKG FQ #520'6


          Dyrektywa  2CIG obsługuje jeszcze jeden atrybut do stosowania w systemie śledzenia
          — 6TCEG/QFG. Atrybut ten jest stosowany do ustawiania kolejności wyświetlenia infor-
          macji systemu śledzenia. Ma on tylko dwa mo liwe atrybuty:
                 5QTV$[6KOG
                 5QTV$[%CVGIQT[

          Poni szy przykład ilustruje u ycie atrybutu 6TCEG/QFG w dyrektywie  2CIG:
              2CIG .CPIWCIG 8$ 6TCEG 6TWG 6TCEG/QFG 5QTV$[%CVGIQT[

          Gdy dla strony włączono śledzenie, informacje śledzenia są wyświetlane w ka dej przeglą-
          darce, która ąda od serwera tej strony.

          Przykład śledzenia na poziomie strony przedstawiono na wydruku 2.2.

9[FTWM  Przykład śledzenia strony (trace01.aspx)
                 2CIG 6TCEG 6TWG 6TCEG/QFG 5QTV$[6KOG
            
               5ETKRV TWPCV 5GTXGT
            
               5WD 2CIGA.QCF
 U #U 1DLGEV G #U 'XGPV#TIU 
               VTCEGYCTP
 75'4 '(+0+' 64#%' 9#40  5VTQPC C CFQYCPC 
               VTCEGYTKVG
 75'4 '(+0+' 64#%' 94+6'  5VTQPC C CFQYCPC 
               'PF 5WD
            
            
               5ETKRV
            
               JVON
               DQF[
               D 2QFCL UYQLG KOKúD
               DT
               HQTO TWPCV UGTXGT
                CURVGZVDQZ KF O[PCOG TWPCV UGTXGT 
                CURDWVVQP KF O[DWVVQP VGZV Y[ NKL TWPCV UGTXGT 
                DT
               HQTO
               DQF[
               JVON


          W kodzie przedstawionym na wydruku 2.2 system śledzenia zostaje uruchomiony z porząd-
          kiem wyświetlania wyników zale nym od czasu. Następnie w obsłudze zdarzenia RCIGANQCF
          tworzona jest informacja i ostrze enie systemu śledzenia. Wynik działania tego kodu przed-
          stawiono na rysunku 2.1.


 NGFGPKG PC RQKQOKG CRNKMCELK
          Aby umo liwić śledzenie na poziomie aplikacji, nale y dodać do pliku web.config sekcję
          6TCEG.
4QFKC     2TQLGMVQYCPKG CRNKMCELK #520'6          


4[UWPGM 
Przykład
zastosowania
śledzenia na
poziomie strony




          Sekcja 6TCEG słu y do konfigurowania systemu śledzenia ASP.NET:
             EQPHKITCVKQP
                U[UVGOYGD
                   EWUVQO'TTQTU OQFG 1HH 
                   VTCEG
                    GPCDNGF VTWG
                    TGSWGUV.KOKV 
                    RCIG1WVRWV VTWG
                    VTCEG/QFG 5QTV$[6KOG
                    NQECN1PN[ VTWG
                   
                U[UVGOYGD
             EQPHKIWTCVKQP

          Poni ej przedstawiono składnię sekcji 6TCEG:
              GPCDNGF — nale y ustawić na VTWG, jeśli mo liwe jest śledzenie aplikacji;
              w przeciwnym wypadku HCNUG. Wartością domyślną jest HCNUG.
              TGSWGUV.KOKV — liczba śledzonych ądań składowanych na serwerze. Wartością
              domyślną jest .
              RCIG1WVRWV — jeśli informacja śledzenia ma być wyświetlana zarówno na stronie
              aplikacji, jak i w narzędziu śledzenia, .axd nale y ustawić na VTWG; w przeciwnym
              wypadku na HCNUG.
              Opcja ta nie ma wpływu na strony z włączonym śledzeniem.
              VTCEG/QFG — wskazuje, czy informacja śledzenia powinna być wyświetlona
              w kolejności, w jakiej była przetwarzana, według czasu (5QTV$[6KOG) czy
              w kolejności alfabetycznej zgodnie z kategorią zdefiniowaną przez u ytkownika
              (5QTV$[%CVGIQT[).
              NQECN1PN[ — jeśli podgląd śledzenia (trace.axd) ma być dostępny tylko na
              komputerze, na którym działa serwer, nale y ustawić na VTWG; w przeciwnym
              wypadku na HCNUG.

Weitere ähnliche Inhalte

Ähnlich wie ASP.NET. Vademecum profesjonalisty

Visual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaVisual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaWydawnictwo Helion
 
Ajax. Zaawansowane programowanie
Ajax. Zaawansowane programowanieAjax. Zaawansowane programowanie
Ajax. Zaawansowane programowanieWydawnictwo Helion
 
Delphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programistyDelphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programistyWydawnictwo Helion
 
Java. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalistyJava. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalistyWydawnictwo Helion
 
Delphi dla .NET. Vademecum profesjonalisty
Delphi dla .NET. Vademecum profesjonalistyDelphi dla .NET. Vademecum profesjonalisty
Delphi dla .NET. Vademecum profesjonalistyWydawnictwo Helion
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaWydawnictwo Helion
 
PHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalistyPHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalistyWydawnictwo Helion
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweWydawnictwo Helion
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?tkryskiewicz
 
Microsoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaMicrosoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaWydawnictwo Helion
 
Spring Framework. Profesjonalne tworzenie oprogramowania w Javie
Spring Framework. Profesjonalne tworzenie oprogramowania w JavieSpring Framework. Profesjonalne tworzenie oprogramowania w Javie
Spring Framework. Profesjonalne tworzenie oprogramowania w JavieWydawnictwo Helion
 
JavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanieJavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanieWydawnictwo Helion
 
Excel 2003. Programowanie. Zapiski programisty
Excel 2003. Programowanie. Zapiski programistyExcel 2003. Programowanie. Zapiski programisty
Excel 2003. Programowanie. Zapiski programistyWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIWydawnictwo Helion
 
Java w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaJava w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaWydawnictwo Helion
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaWydawnictwo Helion
 

Ähnlich wie ASP.NET. Vademecum profesjonalisty (20)

Visual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaVisual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga eksperta
 
Ajax. Zaawansowane programowanie
Ajax. Zaawansowane programowanieAjax. Zaawansowane programowanie
Ajax. Zaawansowane programowanie
 
Ajax w akcji
Ajax w akcjiAjax w akcji
Ajax w akcji
 
Delphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programistyDelphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programisty
 
Java. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalistyJava. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalisty
 
Delphi dla .NET. Vademecum profesjonalisty
Delphi dla .NET. Vademecum profesjonalistyDelphi dla .NET. Vademecum profesjonalisty
Delphi dla .NET. Vademecum profesjonalisty
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
 
Spring. Zapiski programisty
Spring. Zapiski programistySpring. Zapiski programisty
Spring. Zapiski programisty
 
PHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalistyPHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalisty
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetowe
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Microsoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaMicrosoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga eksperta
 
C# i .NET
C# i .NETC# i .NET
C# i .NET
 
Spring Framework. Profesjonalne tworzenie oprogramowania w Javie
Spring Framework. Profesjonalne tworzenie oprogramowania w JavieSpring Framework. Profesjonalne tworzenie oprogramowania w Javie
Spring Framework. Profesjonalne tworzenie oprogramowania w Javie
 
JavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanieJavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanie
 
Excel 2003. Programowanie. Zapiski programisty
Excel 2003. Programowanie. Zapiski programistyExcel 2003. Programowanie. Zapiski programisty
Excel 2003. Programowanie. Zapiski programisty
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
Java w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaJava w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga eksperta
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
 
C# i ASP.NET. Szybki start
C# i ASP.NET. Szybki startC# i ASP.NET. Szybki start
C# i ASP.NET. Szybki start
 

Mehr von Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 

Mehr von Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

ASP.NET. Vademecum profesjonalisty

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ ASP .NET. SPIS TRE CI Vademecum KATALOG KSI¥¯EK profesjonalisty Autor: Scott Worley KATALOG ONLINE T³umaczenie: Pawe³ Janociñski ISBN: 83-7197-691-7 ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: Inside ASP.NET Format: B5, stron: 482 TWÓJ KOSZYK Przyk³ady na ftp: 385 kB ASP .NET to najnowsza technologia Microsoftu, bêd¹ca ³¹cz¹ca Active Server Pages DODAJ DO KOSZYKA (ASP) z platform¹ .NET. Umo¿liwia ona pisanie wydajnych aplikacji WWW, korzystaj¹cych z zawansowanych mo¿liwo ci rodowiska .NET. CENNIK I INFORMACJE 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, ZAMÓW INFORMACJE a tak¿e innych powi¹zanych z ni¹ technologii. O NOWO CIACH Ksi¹¿ka opisuje miêdzy innymi: ZAMÓW CENNIK • Klasy bazowe i podstawowe obiekty ASP .NET • Szczegó³owe wskazówki dotycz¹ce projektowania i konfigurowania aplikacji ASP .NET CZYTELNIA • Now¹ technologiê tworzenia interfejsu u¿ytkownika: WebForms i zaawansowane aspekty jej u¿ycia FRAGMENTY KSI¥¯EK ONLINE • 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. Wydawnictwo Helion Je li programowa³e wcze niej w ASP, „ASP .NET. Vademecum profesjonalisty” ul. Chopina 6 to jedyna ksi¹¿ka, która jest Ci potrzebna, by w pe³ni wykorzystaæ mo¿liwo ci tej 44-100 Gliwice technologii. To ksi¹¿ka napisana przez profesjonalistów dla profesjonalistów. tel. (32)230-98-63 To ksi¹¿ka dla Ciebie. e-mail: helion@helion.pl
  • 2. 5RKU VTG EK 1 #WVQTG 9RTQYCFGPKG %ú è + 9RTQYCFGPKG FQ #520'6 4QFKC 2TGINæF #520'6 ASP.NET ...............................................................................................................................17 Biblioteki klas bazowych .NET .............................................................................................19 Konfiguracja aplikacji sieciowych ASP.NET .......................................................................22 Zarządzanie sesjami i stanem ................................................................................................22 Zarządzanie buforowaniem....................................................................................................22 Warstwy aplikacji WWW w ASP.NET .................................................................................23 Web Forms.............................................................................................................................24 Usługi sieciowe XML ............................................................................................................25 Współpraca z COM/COM+ i usługi składników...................................................................26 ADO.NET ..............................................................................................................................26 Przejście z klasycznego ASP do ASP.NET ...........................................................................26 Globalizacja i lokalizacja.......................................................................................................27 Poprawione bezpieczeństwo ..................................................................................................28 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 Pliki ustawień aplikacji ..........................................................................................................29 Składnia strony ......................................................................................................................32 Najczęściej stosowane obiekty i klasy ASP.NET..................................................................44 Śledzenie aplikacji ASP.NET ................................................................................................48 Przechodzenie do ASP.NET ..................................................................................................54 4QFKC -QPHKIWTQYCPKG CRNKMCELK #520'6 Poło enie pliku konfiguracyjnego web.config ......................................................................59 Stosowanie sekcji konfiguracyjnej appSettings ................................................................62 Analiza sekcji konfiguracyjnych system.web........................................................................63 %ú è ++ 4FG #520'6 4QFKC 2TQITCOQYCPKG QRCTVG PC 9GD (QTOU Wprowadzenie do Web Forms ..............................................................................................77 Architektura Web Forms .......................................................................................................82 Oddzielanie kodu od interfejsu u ytkownika ........................................................................86 Kontrolki serwera ..................................................................................................................87 Kontrolki sprawdzania poprawności ...................................................................................125 4QFKC CTæFCPKG UVCPGO Y #520'6 Czym jest zarządzanie stanem? ...........................................................................................135 Stosowanie zarządzania stanem aplikacji w ASP.NET .......................................................138
  • 3. #520'6 8CFGOGEWO RTQHGULQPCNKUV[ %ú è +++ QUVúR FQ FCP[EJ Y #520'6 4QFKC 5VQUQYCPKG #10'6 Y CRNKMCELCEJ #520'6 Dostęp do danych z perspektywy strony internetowej ........................................................151 ADO i ADO.NET ................................................................................................................153 Praca z podstawowymi obiektami ADO.NET .....................................................................160 Tworzenie Web Forms orientowanych na dane ..................................................................179 Aplikacje ASP.NET z obsługą transakcji ............................................................................191 4QFKC 5VQUQYCPKG Lú[MC :/. Y CRNKMCELCEJ #520'6 Struktura dokumentu XML..................................................................................................196 Stosowanie języka XML w ASP.NET.................................................................................199 Inne technologie oparte na XML .........................................................................................201 Stosowanie języka XML w aplikacjach...............................................................................206 Przykłady z ycia wzięte......................................................................................................207 %ú è +8 CCYCPUQYCPG VGEJPQNQIKG 4QFKC 2TQLGMVQYCPKG WU WI UKGEKQY[EJ :/. Y #520'6 Wprowadzenie do usług sieciowych XML..........................................................................229 Stosowanie SOAP Toolkit w usługach sieciowych XML ...................................................242 XML Web Service Discovery — reklamowanie serwisu....................................................252 Stosowanie usług sieciowych XML na stronach ASP.NET ................................................255 4QFKC CDGRKGECPKG CRNKMCELK #520'6 Przegląd funkcji bezpieczeństwa ASP.NET ........................................................................259 Stosowanie zabezpieczeń w aplikacjach ASP.NET ............................................................265 Wewnątrz zabezpieczeń ASP.NET......................................................................................282 Inne aspekty bezpieczeństwa ...............................................................................................287 4QFKC 5VQUQYCPKG WU WI UM CFPKMÎY Y #520'6 Czym są usługi składników?................................................................................................289 Stosowanie usług składników w aplikacjach ASP.NET......................................................291 Obiekt roboczy.....................................................................................................................296 Stosowanie obiektu roboczego ............................................................................................300 Komponenty usługowe ........................................................................................................306 4QFKC 5VQUQYCPKG WU WI QDU WIK YKCFQOQ EK Y #520'6 Wprowadzenie do systemów obsługi wiadomości ..............................................................311 Zarządzanie kolejkami wiadomości MSMQ w Windows 2000 ..........................................314 Architektura usług obsługi wiadomości w .NET.................................................................315 Wykonywanie zadań za pomocą MSMQ ............................................................................318 4QFKC 5VQUQYCPKG WU WI MCVCNQIQY[EJ Y #520'6 Wprowadzenie do usług katalogowych ...............................................................................325 Jak działa Active Directory?................................................................................................327 Korzyści ze stosowania Active Directory............................................................................328 Podsumowanie technologii Active Directory ......................................................................330 4QFKC .QMCNKCELC K INQDCNKCELC CRNKMCELK #520'6 Czym jest lokalizacja? .........................................................................................................337 Lokalizowanie aplikacji ASP.NET......................................................................................340
  • 4. 5RKU VTG EK %ú è 8 CCYCPUQYCPG 9GD (QTOU 4QFKC -QPVTQNC DWHQTQYCPKC Y #520'6 Zarządzanie buforowaniem w ASP.NET.............................................................................359 Buforowanie stron wychodzących.......................................................................................360 Buforowanie fragmentów (częściowe buforowanie strony) ................................................366 Buforowanie ądań ..............................................................................................................369 4QFKC 6YQTGPKG MQPVTQNGM W [VMQYPKMC K MQPVTQNGM FQUVQUQYCP[EJ FNC #520'6 Kontrolki u ytkownika ........................................................................................................375 Wprowadzenie do kontrolek dostosowanych ......................................................................391 4QFKC 2TQITCOQYCPKG WTæFG RTGPQ P[EJ Y #520'6 WAP (Wireless Application Protocol) ................................................................................414 WML (Wireless Markup Language)....................................................................................415 Wprowadzenie ASP.NET ....................................................................................................416 %ú è 8+ 2QFUWOQYCPKG 4QFKC 2QFUWOQYCPKG Czym jest ProjectPal? ..........................................................................................................437 Instalacja aplikacji ProjectPal ..............................................................................................439 Krótki przegląd aplikacji .....................................................................................................445 Architektura aplikacji ..........................................................................................................447 Warstwy usług w ProjectPal ................................................................................................450 Interfejsy u ytkownika ProjectPal .......................................................................................451 Baza danych ProjectPal .......................................................................................................451 Komponenty ProjectPal .......................................................................................................454 Wewnątrz kodu ProjectPal...................................................................................................456 QFCVMK QFCVGM # 2TGINæF 0'6 Programowanie wielu platform ...........................................................................................489 Wiele języków programowania ...........................................................................................489 Biblioteki klas bazowych .NET ...........................................................................................490 Wspólne środowisko uruchomieniowe ................................................................................494 Wspólny system typów ........................................................................................................495 Produkty dla serwerów .NET...............................................................................................495 QFCVGM $ 0CLEú EKGL W [YCPG QDKGMV[ #520'6 Obiekt HttpContext (statyczna kontrolka Context) .............................................................497 Klasa HttpApplication .........................................................................................................498 Klasa HttpApplicationState (statyczny obiekt Application)................................................499 Klasa HttpSessionState (statyczny obiekt Session) .............................................................500 Klasa HttpRequest (statyczny obiekt Request)....................................................................501 Klasa HttpResponse (statyczny obiekt Response)...............................................................502 Klasa Server (HttpServerUtility) .........................................................................................504 SMTPMail API ....................................................................................................................504 QFCVGM % 0CLEú EKGL W [YCPG QDKGMV[ #1 Obiekt DataSet .....................................................................................................................507 Obiekt DataTable .................................................................................................................508
  • 5. #520'6 8CFGOGEWO RTQHGULQPCNKUV[ Obiekt DataColumn .............................................................................................................510 Klasa DataRow ....................................................................................................................511 Obiekt DataRelation ............................................................................................................512 Obiekt DataView .................................................................................................................512 Klasa DataRowView............................................................................................................513 Obiekty OLEDB ..................................................................................................................514 Obiekty SQLData... .............................................................................................................517 QFCVGM -QPVTQNMK *6/. UGTYGTC Obiekt HtmlForm — element form.................................................................................523 Obiekt HtmlInputText — element input .........................................................................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........................................................528 Obiekt HtmlTextArea — element textarea .....................................................................529 Obiekt HtmlButton — element button ............................................................................531 Obiekt HtmlInputButton — element input type=button ..............................................532 Obiekt HtmlAnchor — element a ...................................................................................532 Obiekt HtmlImage — element img .................................................................................533 Obiekt HtmlInputImage — element input type=image ...............................................534 Obiekt HtmlSelect — elementy select i option ..........................................................535 Obiekt HtmlTable — element table ................................................................................537 Obiekt HtmlTableRow — element tr ..............................................................................538 Obiekt HtmlTableCell — element td ..............................................................................539 QFCVGM ' -QPVTQNMK #52 UGTYGTC Najczęściej stosowane właściwości klasy Webcontrol .......................................................542 Kontrolka Label ...................................................................................................................544 Kontrolka Image ..................................................................................................................544 Kontrolka TextBox ..............................................................................................................544 Kontrolka DropDownList ....................................................................................................545 Kontrolka ListBox ...............................................................................................................545 Kontrolka CheckBox ...........................................................................................................546 Kontrolka CheckBoxList .....................................................................................................546 Kontrolka RadioButton........................................................................................................547 Kontrolka RadioButtonList..................................................................................................548 Kontrolka Button .................................................................................................................548 Kontrolka LinkButton..........................................................................................................549 Kontrolka ImageButton .......................................................................................................549 Kontrolka HyperLink...........................................................................................................550 Kontrolka Table ...................................................................................................................550 Kontrolka TableCell ............................................................................................................551 Kontrolka TableRow............................................................................................................551 Kontrolka Panel ...................................................................................................................551 Kontrolka Repeater ..............................................................................................................552 Kontrolka DataList ..............................................................................................................552 Kontrolka DataGrid .............................................................................................................554 Kontrolka AdRotator ...........................................................................................................556 Kontrolka Calendar..............................................................................................................557 QFCVGM ( /KETQUQHV /QDKNG +PVGTPGV 6QQNMKV Grupy kontrolek ...................................................................................................................559 Kontrolki formularza i układu strony ..................................................................................560 Kontrolki prezentacyjne.......................................................................................................564
  • 6. 5RKU VTG EK Kontrolki nawigacyjne.........................................................................................................565 Kontrolki wprowadzania danych .........................................................................................567 Kontrolki sprawdzania poprawności ...................................................................................570 QFCVGM ) .KUVC CUQDÎY 0'6 Witryny działające na bazie ASP.NET................................................................................579 Witryny dotyczące ASP.NET ..............................................................................................579 Witryny dotyczące C# .........................................................................................................580 Witryny dotyczące Visual Basic .NET ................................................................................580 Witryny dotyczące .NET .....................................................................................................580 Usługi sieciowe XML ..........................................................................................................581 Witryny firmy Microsoft dotyczące .NET...........................................................................581 Grupy dyskusyjne dotyczące .NET .....................................................................................581 Listy wysyłkowe dotyczące .NET .......................................................................................582 Magazyny.............................................................................................................................582 5MQTQYKF
  • 7. 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 2NKMK WUVCYKG CRNKMCELK Aplikacje ASP.NET mogą być konfigurowane za pomocą dwóch mechanizmów, opartych na plikach: global.asax — plik globalnych ustawień aplikacji. web.config — plik w formacie XML zawierający konfigurację aplikacji. 2NKM INQDCNCUCZ Plik global.asax słu y dwóm głównym celom: Umo liwia definiowanie zmiennych, obiektów i danych o zasięgu aplikacji i sesji. Umo liwia definiowanie procedur obsługi zdarzeń, które mają miejsce w zakresie aplikacji, na poziomie sesji i aplikacji. [TGMV[Y[ UVQUQYCPG Y RNKMW INQDCNCUCZ Plik global.asax mo e zawierać następujące elementy:
  • 8. %ú è + 9RTQYCFGPKG FQ #520'6 dyrektywę #UUGODN[ — stosowana do rejestrowania skompilowanych zbiorów zawierających aplikacje WWW; innym sposobem rejestrowania zbiorów jest u ycie pliku web.config, który jest omówiony później w podrozdziale „Plik konfiguracyjny web.config” #UUGODN[ 0COG /[#UUGODN[FNN dyrektywę +ORQTV — importuje jawnie do aplikacji przestrzeń nazw. Wszystkie klasy i interfejsy zdefiniowane w tej przestrzeni stają się dostępne dla aplikacji +ORQTV 0COGURCEG 5[UVGO+1 +ORQTV 0COGURCEG 5[UVGO%QNNGEVKQPU dyrektywę #RRNKECVKQP — definiuje specyficzną dla aplikacji informację u ywaną przez aplikację ASP.NET; jedyną funkcją tej dyrektywy jest dziedziczenie właściwości innego obiektu. Ma dwa atrybuty — pierwszy to +PJGTKVU, gdzie podaje się nazwę klasy, którą rozszerzamy, zaś drugi — GUETKRVKQP, zawiera tekstowy opis aplikacji (opis ten jest ignorowany zarówno przez parser, jak i kompilator, programista mo e go jednak u yć do własnych celów). #RRNKECVKQP +PJGTKVU O[%NCUU GUETKRVKQP GUETKRVKQP OKGPPG Q CMTGUKG CRNKMCELK NWD UGULK 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 rozdziału. Aby zadeklarować zmienną: #RRNKECVKQP O[#RRNKECVKQP5EQRG8CT /[8CNWG 5GUUKQP /[5GUUKQP5EQRG8CT /[8CNWG Aby pobrać wartość zmiennej: /[8CNWG #RRNKECVKQP O[#RRNKECVKQP5EQRG8CT /[8CNWG 5GUUKQP /[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. 1DLGEV KF KF TWPCV UGTXGT ENCUU O[%NCUU0COG UEQRG RKRGNKPG 1DLGEV KF KF TWPCV UGTXGT RTQIKF O[%1/2TQI+ UEQRG UGUUKQP 1DLGEV KF KF TWPCV UGTXGT ENCUUKF O[%1/%NCUU+ UEQRG CRRNKECVKQP FCTGPKC UGULK 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ę.
  • 9. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 $NQMK UMT[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[FTWM Przykładowy plik global.asax 5ETKRV NCPIWCIG 8$ TWPCV UGTXGT -QF Y[MQP[YCP[ PC UVCTEKG CRNKMCELK 5WD #RRNKECVKQPA1P5VCTV #RRNKECVKQP /[#RRNKECVKQP5EQRG8CT /[8CNWG 5GUUKQP /[5GUUKQP5EQRG8CT /[8CNWG 'PF 5WD -QF URTæVCLæE[ RQ CRNKMCELK 5WD #RRNKECVKQPA1P'PF 'PF 5WD -QF Y[MQP[YCP[ PC RQEæVMW UGULK 5WD 5GUUKQPA1P5VCTV 'PF 5WD -QF URTæVCLæE[ RQ UGULK 5WD 5GUUKQPA1P'PF 'PF 5WD UETKRV Wprowadzanie zmian w pliku global.asax Zmiany w plikach konfiguracyjnych ASP.NET są automatycznie wykrywane przez system i natychmiast stosowane.
  • 10. %ú è + 9RTQYCFGPKG FQ #520'6 Kluczowe informacje o pliku global.asax Plik global.asax musi znajdować się w katalogu bazowym witryny lub aplikacji 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 należącego do aplikacji. Plik global.asax jest skonfigurowany tak, że bezpośrednie żądanie URL dotyczące tego pliku jest automatycznie odrzucane; blokuje to nieautoryzowany dostęp do pliku global.asax. 2NKM MQPHKIWTCE[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ść pracy 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ń konfiguracyjnych. Szczegółowy opis pliku web.config znajduje się w rozdziale 3., „Konfigurowanie aplikacji ASP.NET”. 5M CFPKC UVTQP[ 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ć: FKTGEVKXG CVVTKDWVGXCNWG =CVVTKDWVGXCNWG ? Formy WWW obsługują następujące dyrektywy: 2CIG %QPVTQN
  • 11. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #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ę: 2CIG CVVTKDWVGXCNWG =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. Jeśli nie jest ustawiony na VTWG, biblioteki DLL ActiveX napisane dla ASP nie będą dział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 wbudowanych cech ASP przez kontekst obiektu lub przez 1P5VCTV2CIG. Wartością domyślną jest HCNUG. $WHHGT — definiuje semantykę buforowania odpowiedzi HTTP. Jeśli 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. Obsługuje wszystkie prawidłowe wartości strony kodowej. %QPVGPV6[RG — definiuje typ zawartości HTTP w odpowiedzi, zgodny z 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 wszystkie wartości definiujące prawidłowe ustawienia kulturowe. GUETKRVKQP — dostarcza tekstowego opisu strony. Mo e zawierać dowolny tekst. 'PCDNG8KGY5VCVG — wskazuje, czy informacja o właściwościach strony ma być przechowywana pomiędzy ądaniami strony. Jeśli ma wartość 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 wystąpi błąd braku strony. +PJGTKVU — zewnętrzna klasa, po której strona dziedziczy. Mo e to być dowolna klasa dziedzicząca po klasie 2CIG.
  • 12. %ú è + 9RTQYCFGPKG FQ #520'6 .CPIWCIG — język stosowany do kompilacji wszystkich bloków i wewnątrz strony. Mo e to być Visual Basic, C# lub JScript. .QECN KFGPVKHKGT .%+ — definiuje identyfikator lokalizacji dla kodu strony. 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łowego). 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 osiągnięcie powoduje przerwanie kompilacji strony. Mo liwe są wartoś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 ASP.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ę: %QPVTQN CVVTKDWVGXCNWG =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ą stroną. VTWG oznacza mo liwość powiązania, HCNUG przeciwny przypadek. Wartością domyślną jest VTWG.
  • 13. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 %NCUU0COG — pozwala na podanie nazwy klasy automatycznie kompilowanej dynamicznie podczas wystąpienia ądania strony. Wartością mo e być dowolna prawidłowa nazwa klasy. %QORKNGT1RVKQPU — łańcuch znaków zawierający opcje kompilacji dla strony. GDWI — określa, czy strona ma być kompilowana z symbolami debuggera. 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. Wartość VTWG oznacza, e stan sesji jest dostępny, wartość 4GCF1PN[ — e stan sesji mo e być odczytywany, ale nie modyfikowany, zaś wartość HCNUG odpowiada pozostałym przypadkom. Wartością domyślną jest VTWG. 'ZRNKEKV — określa, e strona powinna być kompilowana w trybie Visual 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 to 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.NET. 5VTKEV — określa, e strona powinna być kompilowana w trybie Visual 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łowego). 9CTPKPI.GXGN — definiuje poziom ostrzegawczy kompilatora, którego osiągnięcie powoduje przerwanie kompilacji kontrolki u ytkownika. 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ę: +ORQTV PCOGURCEG VJG PCOGURCEG VQ DG KORQTVGF 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ć wielu dyrektyw +ORQTV.
  • 14. %ú è + 9RTQYCFGPKG FQ #520'6 Poni sze przestrzenie nazw są automatycznie importowane 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: +ORQTV 0COGURCEG 5[UVGO0GV +ORQTV 0COGURCEG 9GD6QQNU [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. Dyrektywa ta ma następującą składnię: 4GIKUVGT 6CIRTGHKZ VCIRTGHKZ 0COGURCEG PCOGURCEG 4GIKUVGT 6CIRTGHKZ VCIRTGHKZ 6CIPCOG VCIPCOG 5TE RCVJPCOG 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 powią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
  • 15. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #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 serwera. 4GIKUVGT 6CIRTGHKZ /[6CI 0COGURCEG /[%QORCP[/[0COG5RCEG 4GIKUVGT 6CIRTGHKZ #EOG 6CIPCOG #F4QVCVQT 5TE #F4QVCVQTCUEZ *6/. HQTO TWPCV UGTXGT /[6CI/[%QPVTQN KF %QPVTQN TWPCV UGTXGT $4 #EOG#F4QVCVQT HKNG O[CFUZON TWPCV UGTXGT 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[ 0COG CUUGODN[PCOG lub #UUGODN[ 5TE RCVJPCOG 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 bin 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: CFF CUUGODN[
  • 16. 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[ 0COG O[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:
  • 17. %ú è + 9RTQYCFGPKG FQ #520'6 1WVRWV%CEJG WTCVKQP QHUGEQPFU .QECVKQP #P[ ^ %NKGPV ^ QYPUVTGCO ^ 5GTXGT ^ 0QPG 8CT[$[%QPVTQN EQPVTQNPCOG 8CT[$[%WUVQO DTQYUGT ^ EWUVQOUVTKPI 8CT[$[*GCFGT JGCFGTU 8CT[$[2CTCO RCTCOGVGTPCOG Dyrektywa ta ma następujące atrybuty: WTCVKQP — czas buforowania strony lub kontrolki u ytkownika w sekundach. Ustawienie tego atrybutu dla strony lub kontrolki u ytkownika ustala ustawienia wygasania odpowiedzi HTTP generowanej przez obiekt i automatycznie buforuje wyjście strony lub kontrolki u ytkownika. Atrybut ten jest wymagany. Jego brak spowoduje zgłoszenie błędu parsera. .QECVKQP — jedna z listy wartości OutputCacheLocation. Wartością domyślną jest #P[. Uwaga: atrybut ten jest wymagany dla buforowania wyjścia strony ASP.NET lub kontrolki u ytkownika. Jego brak spowoduje zgłoszenie błędu parsera. 8CT[$[%WUVQO — dowolny tekst reprezentujący własne wymagania dotyczące buforowania wyjścia. Jeśli atrybut ma wartość DTQYUGT, buforowanie jest uzale nione od informacji o nazwie i wersji przeglądarki. Jeśli podano 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 stosowanych dla zró nicowania buforowania wyjścia. Jeśli w tym atrybucie podano kilka nagłówków, bufor wyjścia zawiera ró ne wersje ądanego dokumentu 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 ASP.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ących buforowanie wyjścia. Domyślnie łańcuchy te odpowiadają wartoś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 liwymi wartościami są PQPG,
  • 18. oraz wszystkie poprawne zapytania i nazwy parametru 2156. Uwaga: atrybut ten jest konieczny do buforowania wyjścia stron ASP.NET i kontrolek u ytkownika. Jego brak spowoduje zgłoszenie błędu parsera. Jeśli nie chcecie podać parametrów ró nicujących buforowaną zawartość, nale y ustawić wartość na PQPG. Jeśli buforowanie wyjścia ma być uzale nione od wszystkich wartości parametrów, wartość nale y ustawić na
  • 19. . 8CT[$[%QPVTQN — lista oddzielonych przecinkami łańcuchów ró nicujących buforowanie wyjścia. Łańcuchy te reprezentują pełne ścisłe nazwy właściwości kontrolek u ytkownika. Jeśli atrybut ten zostanie zastosowany do kontrolki u ytkownika, jej wyjście jest buforowane w zale ności od wartości podanych właściwości. 1WVRWV%CEJG WTCVKQP
  • 20. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 $NQM FGMNCTCELK 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. UETKRV TWPCV UGTXGT NCPIWCIG EQFGNCPIWCIG 5TE RCVJPCOG 6WVCL WOKGUECO[ MQF UETKRV Blok deklaracji ma następujące atrybuty: NCPIWCIG — podaje język u ywany w tym bloku deklaracji. Wartość mo e reprezentować dowolny kompatybilny z .NET język programowania, taki jak Visual Basic, C# czy JScript.NET. Jeśli nie podano języka, wartoś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 deklaracji jest ignorowany. $NQM QFT[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ę: +PNKPG EQFG QT GZRTGUUKQP 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 zawierający niedozwolony łańcuch: KO U #U 5VTKPI 4GURQPUG9TKVG U -QOGPVCTG RQ UVTQPKG UGTYGTC 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[ MQF NWD KPPC CYCTVQ è
  • 21. %ú è + 9RTQYCFGPKG FQ #520'6 Bloki komentarza po stronie serwera w ASP.NET mają te same zastosowania co bloki komentarza w językach programowania, łącznie z dokumentacją i testowaniem. Wewnątrz bloków UETKRV TWPCV UGTXGT UETKRV i mo na stosować składnię komentarza języka programowania, w którym napisano ten kod. Jeśli wewnątrz zostanie zastosowany komentarz serwera, kompilator zgłosi błąd. Otwierający i zamykający znacznik komentarza mogą pojawiać się w tym samym wierszu kodu lub mogą być oddzielone wierszami anulowanego kodu. Komentarze po stronie serwera nie mogą być zagnie d ane. Poni szy przykład ilustruje usunięcie kodu kontrolki definiującego przycisk HTML: DWVVQP TWPCV UGTXGT KF /[$WVVQP 1P5GTXGT%NKEM /[$WVVQPA%NKEM %NKEM JGTG HQT GPNKIJVGOGPV DWVVQP 5M CFPKC PKGUVCPFCTFQY[EJ MQPVTQNGM UGTYGTC 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 CFPKC FGMNCTCELK PKGUVCPFCTFQY[EJ MQPVTQNGM 9GD (QTOU 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ę: VCIRTGHKZVCIPCOG KF 1RVKQPCN+ CVVTKDWVGPCOG XCNWG CVVTKDWVGPCOG RTQRGTV[PCOG XCNWG GXGPVPCOG GXGPVJCPFNGTOGVJQF TWPCV UGTXGT lub VCIRTGHKZVCIPCOG KF 1RVKQPCN+ TWPCV UGTXGT VCIRTGHKZVCIPCOG Mo liwe są następujące atrybuty: VCIRTGHKZ — alias pełnej nazwy przestrzeni nazw kontrolki. Aliasy kontrolek stworzonych przez u ytkownika są deklarowane w dyrektywie 4GIKUVGT. VCIPCOG — nazwa klasy zawierającą kontrolkę.
  • 22. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 KF — unikalny identyfikator umo liwiający programistyczne 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 kodzie Web Form. Przykładowo, poni szy kod wstawia kontrolkę sieciową 6GZV $QZ: #526GZV$QZ KF /[6GZV$QZ TWPCV UGTXGT 9[TC GPKC YKæ æEG FCPG 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ę: VCIRTGHKZVCIPCOG RTQRGTV[ FCVCDKPFKPI GZRTGUUKQP TWPCV UGTXGT lub NKVGTCN VGZV FCVCDKPFKPI GZRTGUUKQP 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 są deklarowane za pomocą dyrektywy 4GIKUVGT. VCIPCOG — nazwa klasy platformy .NET zawierającej kontrolkę. RTQRGTV[ — właściwość kontrolki, dla której deklarowane jest powiązanie danych. GZRTGUUKQP — dowolne wyra enie spełniające wymienione poni ej wymagania. 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 pojemniku.
  • 23. %ú è + 9RTQYCFGPKG FQ #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%QPVCKPGTCVC+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 %QPVCKPGTCVC+VGO. Innym po- jemnikiem, który mo na stosować w CVC$KPFGT'XCN, jest 2CIG. CVC$KPFGT'XCN %QPVCKPGTCVC+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: DQQNCVC$KPFGT'XCN %QPVCKPGTCVC+VGO $QQN8CNWG 5M CFPKC PCEPKMÎY QDKGMVÎY UGTYGTC Znaczniki obiektów serwera deklarują i tworzą instancje obiektów COM i .NET. Składnia wygląda następująco: QDLGEV KF KF TWPCVUGTXGT ENCUU 0'6 (TCOGYQTM %NCUU 0COG QDLGEV KF KF TWPCVUGTXGT ENCUU %1/ 2TQI+ QDLGEV KF KF TWPCVUGTXGT ENCUU %1/ %NCUU+ Dostępne są następujące parametry: +F 7PKSWG PCOG — referencja do obiektu w późniejszym kodzie. 0'6 (TCOGYQTM ENCUU PCOG — identyfikuje nazwę klasy platformy .NET, której instancję tworzymy. %1/ 2TQI+ — identyfikuje komponent COM, którego instancję tworzymy. %1/ %NCUU+ — identyfikuje komponent COM, którego instancję tworzymy. 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 ytkownika.
  • 24. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #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 serwera. Poni szy kod prezentuje przykład zastosowania znacznika obiektu serwera: JVON QDLGEV KF /[CVCDCUG ENCUU /KETQUQHV1.'$#FCRVQT TWPCV UGTXGT UETKRV NCPIWCIG 8$ TWPCVUGTXGT 5WD 2CIGA.QCF 5GPFGT CU 1DLGEV G CU 'XGPV#TIU KO 5VQEMGVCKNU CU 4GEQTF5GV 5GV 5VQEMGVCKNU /[CVCDCUG'ZGEWVG 50OQPG[ UGNGEV
  • 25. HTQO UVQEMU 'PF 5WD UETKRV JVON 5M CFPKC F[TGMV[Y[ FQ æECPKC RQ UVTQPKG UGTYGTC Dyrektywy dołączania po stronie serwera wstawiają zawartość podanego pliku do strony ASP.NET. KPENWFG RCVJV[RG HKNGPCOG 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 preprocesora 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 dyrektywy dołączania po stronie serwera: JVON DQF[ +PENWFG HKNG JGCFGTKPE 1VQ I ÎYPC CYCTVQ è RNKMW (QT + VQ +PENWFG XKTVWCN +PENWFGU(QQDCTKPE 0GZV +PENWFG XKTVWCN HQQVGTKPE DQF[ JVON
  • 26. %ú è + 9RTQYCFGPKG FQ #520'6 0CLEú EKGL UVQUQYCPG QDKGMV[ K MNCU[ #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 EK QDKGMVW #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 zasięgu aplikacji. Klasa *VVR#RRNKECVKQP5VCVG umo liwia programistom współdzielenie globalnych informacji pomiędzy wieloma ądaniami, sesjami i potokami 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 podkatalogach 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. FCTGPKC CRNKMCELK Przez system u ywane są następujące zdarzenia aplikacji: #RRNKECVKQP1P5VCTV — zdarzenie generowane, gdy aplikacja jest uruchamiana na serwerze WWW. #RRNKECVKQP1P'PF — zdarzenie generowane, gdy aplikacja kończy działanie lub przetwarzanie na serwerze WWW.
  • 27. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 #RRNKECVKQP1P'TTQT — zdarzenie generowane, gdy aplikacja napotyka błąd; mo e być zastosowane do stworzenia lub przypisania nowej 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[ QDKGMV 4GSWGUV -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 EK QDKGMVW 4GSWGUV Obiekt 4GSWGUV posiada następujące właściwości: #EEGRV6[RGU — zwraca tablicę łańcuchów znaków obsługiwanych przez klienta typów MIME. Jest to właściwość tylko do odczytu. #RRNKECVKQP2CVJ — zwraca ście kę do katalogu głównego wirtualnej aplikacji. $TQYUGT — dostarcza informacji na temat mo liwości przeglądarki przychodzącego klienta. %NKGPV%GTVKHKECVG — zwraca informacje o certyfikacie bezpieczeństwa klienta, 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łaściwość tylko do odczytu. (KNGU — zwraca zbiór plików przekazanych przez klienta (w formacie MIME multipart). (QTO — zwraca zbiór zmiennych formularza. *VVR/GVJQF — opisuje metodę transferu danych u ytą przez klienta ()'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łączenia HTTP.
  • 28. %ú è + 9RTQYCFGPKG FQ #520'6 +U5GEWTG%QPPGEVKQP — wskazuje, czy połączenie HTTP jest bezpieczne (HTTPS). 2CVJ — wskazuje wirtualną ście kę bie ącego ądania. Jest to właściwość tylko do odczytu. 3WGT[5VTKPI — zwraca zbiór zmiennych 3WGT[5VTKPI. 4GSWGUV6[RG — opisuje metodę transferu danych u ytą przez klienta ()'6, 2156). 5GTXGT8CTKCDNGU — zwraca zbiór zmiennych serwera WWW. (Stosowany ze względu na kompatybilność; generalnie lepiej jest u ywać zdefiniowanych właściwości obiektu 4GSWGUV). 6QVCN$[VGU — zwraca liczbę bajtów w bie ącym strumieniu wejściowym. 7TN — zwraca informację dotyczącą URL bie ącego ądania. 7TN4GHGTTGT — zwraca informację dotyczącą URL poprzedniego ądania klienta, które doprowadziło do bie ącego URL. 7UGT#IGPV — zwraca surowy User Agent String przeglądarki klienta. 7UGT*QUV#FFTGUU — zwraca adres IP zdalnego klienta. 7UGT*QUV0COG — zwraca nazwę DNS zdalnego klienta. 7UGT.CPIWCIGU — zwraca posortowaną tabelę preferencji językowych klienta. /GVQF[ QDKGMVW 4GSWGUV Obiekt 4GSWGUV ma następujące metody: $KPCT[4GCF KPV PWO$[VGU — odczytuje binarnie podaną liczbę bajtów z bie ącego strumienia wejściowego. /CR2CVJ 5VTKPI 8KTVWCN2CVJ — przekłada wirtualną ście kę (w ądaniu URL) na fizyczną ście kę na serwerze dla bie ącego ądania. 5CXG#U 5VTKPI HKNGPCOG, $QQNGCP KPE*GCFGTU — zapisuje ądanie HTTP na dysk. 5VCV[EP[ QDKGMV 4GURQPUG -NCUC *VVR4GURQPUG Obiekt 4GURQPUG jest stosowany do wysyłania informacji z serwera sieci WWW do prze- glądarki klienta. 9 C EKYQ EK QDKGMVW 4GURQPUG Obiekt 4GURQPUG ma następujące właściwości: $WHHGT — umo liwia dostęp do bufora *VVR4GURQPUG, co pozwala na zło enie całej strony na serwerze i wysłanie jej w całości do klienta, zamiast przesyłania przetworzonych sekcji z osobna. $WHHGT1WVRWV — ustawia wartość wskazującą, czy wyjście HTTP jest buforowane. %CEJG — zwraca informacje o buforowaniu strony WWW (czas wygaśnięcia, prywatność, klauzule warunkowe).
  • 29. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 %JCTUGV — ustala zestaw znaków dla wyjścia HTTP. %QPVGPV'PEQFGT — umo liwia dostęp do bie ącego kodera zawartości. %QPVGPV'PEQFKPI — ustala zestaw znaków dla wyjścia HTTP. %QPVGPV6[RG — ustawia typ MIME wyjścia HTTP. %QQMKGU — pobiera zbiór *VVR%QQMKG wysłany przez bie ącą odpowiedź. 'ZRKTGU — ustala ustawienia wygasania dla klienta. +U%NKGPV%QPPGEVGF — pobiera wartość wskazującą, czy klient jest jeszcze połączony z serwerem. 5VCVWU%QFG — ustala kod stanu HTTP dla wyjścia zwracanego do klienta. 5VCVWUGUETKRVKQP — ustala komunikat stanu HTTP zwracany do klienta. /GVQF[ QDKGMVW 4GURQPUG Obiekt *VVR4GURQPUG ma następujące metody: #RRGPF6Q.QI 5VTKPI .QI'PVT[ — dodaje własną informację do pliku dziennika IIS. 2KEU 5VTKPI 2KEU8CNWG — dodaje etykietę PICS (Platform for Internet Content Selection) nagłówka HTTP do strumienia wyjściowego. 4GFKTGEV 5VTKPI PGY74. — przekierowuje przeglądarkę klienta na nowy adres URL. 9TKVG 5VTKPI QWVRWV5VTKPI — zapisuje wartość do strumienia wyjściowego zawartości HTTP. 9TKVG(KNG (KNGPCOG — zapisuje plik bezpośrednio do strumienia wyjściowego zawartości HTTP. -NCUC 5GTXGT -NCUC *VVR5GTXGT7VKNKV[ Obiekt 5GTXGT7VKNKV[ jest niemal zupełnie tym samym co obiekt 5GTXGT klasycznego ASP. Umo liwia dostęp do u ytecznych narzędzi po stronie serwera do stosowania w aplikacjach ASP.NET. 9 C EKYQ EK QDKGMVW 5GTXGT Krótki spis właściwości obiektu 5GTXGT zawiera: /CEJKPG0COG — pobiera nazwę serwera sieci WWW. 5ETKRV6KOGQWV — wymaga podania w sekundach limitu czasu dla skryptów serwera. /GVQF[ MNCU[ *VVR5GTXGT7VKNKV[ Poni ej przedstawiono krótki przegląd metod klasy *VVR5GTXGT7VKNKV[: %TGCVG1DKGEV 5VTKPI RTQIKF — tworzy instancję obiektu COM identyfikowanego przez progid.
  • 30. %ú è + 9RTQYCFGPKG FQ #520'6 'ZGEWVG — uruchamia inną stronę WWW na tym serwerze, wstrzymując wykonywanie bie ącej strony do momentu, a serwer zakończy przetwarzanie nowej. )GV.CUV'TTQT — zwraca ostatni odnotowany wyjątek bie ącej aplikacji WWW lub strony. *VON'PEQFG — koduje łańcuch i zwraca zakodowany łańcuch. *VONGEQFG — dekoduje łańcuch i zwraca zdekodowany łańcuch. /CRRCVJ — przekłada ście kę wirtualną na ście kę fizyczną. 6TCPUHGT — kończy wykonywanie bie ącej strony i rozpoczyna wykonywanie nowego ądania, u ywając podanej ście ki URL. 7TN'PEQFG — koduje łańcuch. 7TNGEQFG — dekoduje łańcuch. 7TN2CVJ'PEQFG — koduje część łańcucha URL zawierającego ście kę i zwraca zakodowany łańcuch. NGFGPKG CRNKMCELK #520'6 Podczas projektowania aplikacji ASP.NET macie mo liwość śledzenia stanu lub postępu działania aplikacji w czasie rzeczywistym. Jest to mo liwe dzięki funkcjom śledzenia ASP.NET. Zwykłą metodą osiągnięcia tego efektu w aplikacjach klasycznego ASP było umieszczanie niemal w ka dym miejscu kodu instrukcji TGURQPUGYTKVG . Technika ta jednak wpływa na: wydajność — większa ilość kodu na stronie WWW powoduje, e wczytuje się on wolniej; czytelność i łatwość obsługi kodu — częste stosowanie w kodzie strony internetowej funkcji TGURQPUGYTKVG , zarówno do wypisywania treści strony, jak i informacji słu ącej do kontroli działania, mo e początkowo uczynić kod trudnym do czytania i obsługi; mo liwość wyłączania — prawdopodobnie najwa niejszą mo liwością, której brakuje metodzie TGURQPUGYTKVG, jest włączanie i wyłączanie wyjścia do przeglądarki. ASP.NET pozwala na dynamiczne śledzenie stanu aplikacji WWW dzięki swojemu syste- mowi śledzenia. System, w który wyposa ony jest ASP.NET, wykonuje dwa typy operacji: śledzenie na poziomie strony (Page-level Tracing) — pozwala na śledzenie na poziomie strony WWW na podstawie systemu „strona po stronie”; śledzenie na poziomie aplikacji (Application-level Tracing) — pozwala na śledzenie na poziomie aplikacji. Oba typy śledzenia są konfigurowane za pomocą pliku konfiguracyjnego web.config.
  • 31. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 +PHQTOCELG NGFGPKC Na razie omówiliśmy śledzenie na poziomie abstrakcyjnym. ASP.NET automatycznie śledzi stan aplikacji i stron WWW na serwerze sieci WWW i gdy śledzenie jest włączone, większość z tych informacji jest dostępnych dla programisty. Dostępne informacje po- chodzące z operacji śledzenia są omówione w następnych podrozdziałach. Przed szczegółowym przedstawieniem ka dej sekcji wyników śledzenia warto stworzyć prostą stronę internetową z włączonym śledzeniem. Aby to zrobić, wystarczy umieścić na początku strony .aspx dyrektywę: RCIG 6TCEG VTWG Podczas przetwarzania generowana jest lista śledzenia, umieszczona później na końcu strony. Lista ta składa się z wymienionych poni ej sekcji. Sekcja Request Details (szczegóły ądania) zawiera następujące elementy: 5GUUKQP + Identyfikator sesji dla podanego ądania. 6KOG QH 4GSWGUV Czas pojawienia się ądania. 4GSWGUV 'PEQFKPI Kodowanie znaków zastosowane w ądaniu. 4GSWGUV 6[RG )'6 ^ 2156 5VCVWU %QFG Wartość kodu stanu powiązanego z odpowiedzią. Więcej informacji na ten temat mo na znaleźć pod adresem http://www.w3c.org w dokumencie RFC 2616 dla HTTP 1.1 4GURQPUG 'PEQFKPI Kodowanie znaków dla odpowiedzi Sekcja Trace Information (informacje śledzenia) zawiera następujące elementy: %CVGIQT[ Kategoria śledzenia podana za pomocą metody 6TCEG9CTP lub 6TCEG9TKVG. /GUUCIG Wiadomość śledzenia podana za pomocą metody 6TCEG9CTP lub 6TCEG9TKVG. (TQO (KTUV U Czas w sekundach od wyświetlenia pierwszej informacji. (TQO .CUV U Czas w sekundach od wyświetlenia ostatniej informacji. Sekcja Control Tree (drzewo kontrolek) zawiera następujące elementy: %QPVTQN + Identyfikator kontrolki. Jeśli nie podano ID kontrolki, ASP.NET wygeneruje je automatycznie za pomocą właściwości %NKGPV+. 6[RG Pełna nazwa typu kontrolki. 4GPFGT 5KG $[VGU Rozmiar w bajtach odrysowywanej kontrolki (włącznie z kontrolkami potomnymi). 8KGY5VCVG 5KG $[VGU Rozmiar w bajtach informacji o wartościach atrybutów kontrolki (wyłączając kontrolki potomne).
  • 32. %ú è + 9RTQYCFGPKG FQ #520'6 Sekcja Session State (stan sesji) zawiera następujące elementy: 5GUUKQP -G[ Klucz stanu sesji. 6[RG Typ danych składowanego obiektu. 8CNWG Aktualnie składowany obiekt. Sekcja Application State (stan aplikacji) zawiera następujące elementy: #RRNKECVKQP -G[ Klucz stanu aplikacji. 6[RG Typ danych składowanego obiektu. 8CNWG Aktualnie składowany obiekt. Sekcja Cookies Collection (zbiór cookies) zawiera następujące elementy: 0COG Nazwa cookie. 8CNWG Dane przechowywane w cookie. 5KG Rozmiar cookie w bajtach. Sekcja Headers Collection (zbiór nagłówków) zawiera następujące elementy: 0COG Nazwa elementu nagłówka. 8CNWG Dane elementu nagłówka. Sekcja Form Collection (zbiór formularza) zawiera następujące elementy: 0COG Nazwa zmiennej formularza. 8CNWG Dane zmiennej formularza. Sekcja Server Variables (zmienne serwera) zawiera następujące elementy: 0COG Nazwa zmiennej serwera. 8CNWG Dane zmiennej serwera. 5VCV[EP[ QDKGMV 6TCEG -NCUC 6TCEG%QPVGZV Obiekt 6TCEG jest nową wbudowaną kontrolką ASP.NET. Słu y on do zmieniania ustawień śledzenia strony WWW lub do wysyłania informacji śledzenia z aplikacji WWW do sys- temu śledzenia. 9 C EKYQ EK MNCU[ 6TCEG%QPVGZV Poni ej przedstawiono właściwości obiektu 6TCEG: +U'PCDNGF — wskazuje, czy dla bie ącego ądania WWW śledzenie jest włączone. 6TCEG/QFG — ustawia porządek, w jakim wiadomości śledzenia będą przekazywane do ądającej przeglądarki.
  • 33. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 /GVQF[ QDKGMVW 6TCEG Obiekt 6TCEG ma następujące metody: 9TKVG — zapisuje informacje śledzenia do dziennika śledzenia. 9CTP — zapisuje informacje śledzenia do dziennika śledzenia. W przeciwieństwie do 9TKVG, wszystkie ostrze enia będą oznaczone w dzienniku kolorem czerwonym. 5VQUQYCPKG QDKGMVW 6TCEG Obiekt 6TCEG jest stosowany w Web Forms tylko do czterech zadań. Są to: zmiana porządku wyświetlania informacji śledzenia — temu celowi słu y właściwość VTCEG6TCEG/QFG. Poni ej przedstawiono przykład, który ilustruje uporządkowanie informacji śledzenia według kategorii: 6TCEG6TCEG/QFG UQTV$[%CVGIQT[ sprawdzenie, czy śledzenie bie ącej strony jest włączone — w tym celu stosuje się właściwość VTCEGKU'PCDNGF obiektu 6TCEG. Poni ej przedstawiono przykład takiego zastosowania, gdzie flaga VTCEG działa jako przełącznik dla własnego kodu słu ącego do usuwania błędów: +H VTCEGGPCDNGF VJGP MQF U W æE[ FQ WUWYCPKC D úFÎY 'PF KH wysyłanie informacji (Trace Information) do systemu śledzenia — za pomocą metody VTCEGYTKVG mo na wysłać tekst do systemu śledzenia. Metoda ta pozwala na podanie samego łańcucha oraz kategorii, w której zostanie on umieszczony. Poni szy przykład ilustruje dodanie informacji do kategorii 75'4 '(+0+' : 6TCEGYTKVG 75'4 '(+0+' VJKU KU C WUGT FGHKPKGF VTCEG UVTKPI wysyłanie ostrze eń (Warning Trace Information) do systemu śledzenia — działa tak samo jak metoda 9TKVG, z jednym wyjątkiem — wysłany łańcuch będzie wyświetlony w wypisanej informacji śledzenia na czerwono. Oto przykład ilustrujący to zastosowanie: 6TCEGYCTP 75'4 '(+0+' VJKU KU C WUGT FGHKPKGF VTCEG UVTKPI 5VQUQYCPKG NGFGPKC PC RQKQOKG UVTQP[ Aby stosować śledzenie na poziomie strony, nale y umieścić atrybut 6TCEG w dyrektywie 2CIG. Oto przykład: 2CIG 6TCEG VTWG Po umieszczeniu tego kodu strona WWW wypisuje całą informację śledzenia na końcu dyrektywy podczas jej działania. Gdy atrybut 6TCEG jest ustawiony na VTWG, właściwość 6TCEGKU'PCDNGF jest równie ustawiona na VTWG.
  • 34. %ú è + 9RTQYCFGPKG FQ #520'6 Dyrektywa 2CIG obsługuje jeszcze jeden atrybut do stosowania w systemie śledzenia — 6TCEG/QFG. Atrybut ten jest stosowany do ustawiania kolejności wyświetlenia infor- macji systemu śledzenia. Ma on tylko dwa mo liwe atrybuty: 5QTV$[6KOG 5QTV$[%CVGIQT[ Poni szy przykład ilustruje u ycie atrybutu 6TCEG/QFG w dyrektywie 2CIG: 2CIG .CPIWCIG 8$ 6TCEG 6TWG 6TCEG/QFG 5QTV$[%CVGIQT[ Gdy dla strony włączono śledzenie, informacje śledzenia są wyświetlane w ka dej przeglą- darce, która ąda od serwera tej strony. Przykład śledzenia na poziomie strony przedstawiono na wydruku 2.2. 9[FTWM Przykład śledzenia strony (trace01.aspx) 2CIG 6TCEG 6TWG 6TCEG/QFG 5QTV$[6KOG 5ETKRV TWPCV 5GTXGT 5WD 2CIGA.QCF U #U 1DLGEV G #U 'XGPV#TIU VTCEGYCTP 75'4 '(+0+' 64#%' 9#40 5VTQPC C CFQYCPC VTCEGYTKVG 75'4 '(+0+' 64#%' 94+6' 5VTQPC C CFQYCPC 'PF 5WD 5ETKRV JVON DQF[ D 2QFCL UYQLG KOKúD DT HQTO TWPCV UGTXGT CURVGZVDQZ KF O[PCOG TWPCV UGTXGT CURDWVVQP KF O[DWVVQP VGZV Y[ NKL TWPCV UGTXGT DT HQTO DQF[ JVON W kodzie przedstawionym na wydruku 2.2 system śledzenia zostaje uruchomiony z porząd- kiem wyświetlania wyników zale nym od czasu. Następnie w obsłudze zdarzenia RCIGANQCF tworzona jest informacja i ostrze enie systemu śledzenia. Wynik działania tego kodu przed- stawiono na rysunku 2.1. NGFGPKG PC RQKQOKG CRNKMCELK Aby umo liwić śledzenie na poziomie aplikacji, nale y dodać do pliku web.config sekcję 6TCEG.
  • 35. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 4[UWPGM Przykład zastosowania śledzenia na poziomie strony Sekcja 6TCEG słu y do konfigurowania systemu śledzenia ASP.NET: EQPHKITCVKQP U[UVGOYGD EWUVQO'TTQTU OQFG 1HH VTCEG GPCDNGF VTWG TGSWGUV.KOKV RCIG1WVRWV VTWG VTCEG/QFG 5QTV$[6KOG NQECN1PN[ VTWG U[UVGOYGD EQPHKIWTCVKQP Poni ej przedstawiono składnię sekcji 6TCEG: GPCDNGF — nale y ustawić na VTWG, jeśli mo liwe jest śledzenie aplikacji; w przeciwnym wypadku HCNUG. Wartością domyślną jest HCNUG. TGSWGUV.KOKV — liczba śledzonych ądań składowanych na serwerze. Wartością domyślną jest . RCIG1WVRWV — jeśli informacja śledzenia ma być wyświetlana zarówno na stronie aplikacji, jak i w narzędziu śledzenia, .axd nale y ustawić na VTWG; w przeciwnym wypadku na HCNUG. Opcja ta nie ma wpływu na strony z włączonym śledzeniem. VTCEG/QFG — wskazuje, czy informacja śledzenia powinna być wyświetlona w kolejności, w jakiej była przetwarzana, według czasu (5QTV$[6KOG) czy w kolejności alfabetycznej zgodnie z kategorią zdefiniowaną przez u ytkownika (5QTV$[%CVGIQT[). NQECN1PN[ — jeśli podgląd śledzenia (trace.axd) ma być dostępny tylko na komputerze, na którym działa serwer, nale y ustawić na VTWG; w przeciwnym wypadku na HCNUG.
  • 36. %ú è + 9RTQYCFGPKG FQ #520'6 7 [EKG RQFINæFW NGFGPKC VTCEGCZF Po włączeniu śledzenia dla całej aplikacji WWW ka da strona przetwarza ądania stron tak, jakby włączone było ich śledzenie. ądania te są przechowywane na serwerze i mogą być przeglądane za pomocą aplikacji podglądu śledzenia (trace.axd). Jest to plik umieszczony w katalogu głównym aplikacji, tworzony w momencie, gdy w pliku konfiguracyjnym web. config umieszczana jest zdefiniowana powy ej sekcja. Działanie podglądu przedstawiają rysunki 2.2 i 2.3. 4[UWPGM Strona śledzenia aplikacji 4[UWPGM Strona szczegółów żądania 2TGEJQFGPKG FQ #520'6 Jednym z problemów, z którymi spotka się większość u ytkowników, jest przejście z kla- sycznego ASP do ASP.NET. Ten podrozdział ma na celu przedstawienie obszarów mo liwej niekompatybilności pomiędzy tymi odmianami ASP. ASP i ASP.NET mogą bez problemu działać obok siebie na jednym serwerze IIS; nie istnieje zatem mo liwość zniszczenia aplikacji ASP przez instalację ASP.NET.
  • 37. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 Niezale ność ta jest osiągnięta przez zastosowanie ró nych rozszerzeń plików dla stron ASP i ASP.NET. Oznacza to, e migracja będzie w większości polegała na skopiowaniu plików .asp do plików .aspx, przetestowaniu ich, wyeliminowaniu problemów i publikacji. Poni ej wymieniono listę mo liwych problemów z kompatybilnością pomiędzy klasycz- nym ASP i ASP.NET. OKCP[ Y UETKRV K Wszystkie procedury i zmienne globalne muszą być deklarowane wewnątrz bloków UETKRV TWPCVUGTXGT , a nie w blokach odrysowujących ASP: . Strona mo e zawierać więcej ni jeden blok UETKRV , ale we wszystkich blokach na stronie musi być stosowany ten sam język programowania. Cały kod umieszczony w bloku UETKRV UETKRV , oprócz definicji globalnych zmien- nych, musi być zawarty wewnątrz procedur. W klasycznym ASP kod był umieszczony pomiędzy znacznikami i , a wszystkie elementy strony umieszczone przed pierwszym znacznikiem były wykonywane zaraz po załadowaniu się strony. Aby uzyskać kod wykonujący się zaraz po załadowaniu strony w ASP.NET, nale y zastosować obsługę zdarzenia RCIGANQCF. (WPMELG QFT[UQYWLæEG UMT[RVW Funkcje odrysowujące nie są obsługiwane przez ASP.NET. W klasycznym ASP mo na było umieszczać kod HTML wewnątrz ciała funkcji, jak przedstawiono w poni szym przykładzie: (WPEVKQP O[4GPFGT(WPEVKQP VCDNG VT VF 4GURQPUG9TKVG 4GPFGT HWPEVKQP UCORNG VGZV VF VT VCDNG 'PF (WPEVKQP Na stronie ASP.NET taki kod wywołałby błąd. Aby tego uniknąć, nale ałoby zapisać ten skrypt następująco: 5%4+26 .#0)7#)' 8$ TWPCVUGTXGT (WPEVKQP O[4GPFGT(WPEVKQP 4GURQPUG9TKVG VCDNG VT VF 4GURQPUG9TKVG 4GPFGT HWPEVKQP UCORNG VGZV 4GURQPUG9TKVG VF VT VCDNG 'PF (WPEVKQP 5%4+26 Aby wygenerować ten fragment kodu HTML, wystarczy teraz wywołać powy szą funkcję.
  • 38. %ú è + 9RTQYCFGPKG FQ #520'6 1DU WIKYCPG Lú[MK UVTQP KPVGTPGVQY[EJ Cały kod na stronie ASP.NET musi być napisany w tym samym języku programowania. Obecnie ASP.NET obsługuje Visual Basic, C# i JScript. Przykładowo: .CPIWCIG ,UETKRV Nazwa języka mo e być zadeklarowana jako atrybut znacznika UETKRV , jeśli jest to wymagane, ale musi być to ten sam język, w którym napisano resztę kodu na stronie. Jeśli w ró nych blokach skryptu na tej same stronie podano ró ne języki, zostanie zgłoszony błąd, poniewa na jednej stronie dopuszczalny jest tylko jeden język. Mo na jednak stosować kontrolki u ytkownika napisane w dowolnym języku kompatybilnym z ASP.NET. 0KIF[ YKúEGL 8$5ETKRV VBScript nie jest ju obsługiwany, ale jego składnia jest bardzo podobna do składni Visual Basic.NET. Poni ej przedstawiono najwa niejsze ró nice pomiędzy nimi: Nie istnieje ju typ danych 8CTKCPV. Został on zastąpiony przez typ QDLGEV. Typy obiektowe muszą być rzutowane jawnie na którykolwiek podstawowy typ danych. Lista parametrów wywołania ka dej funkcji musi być ujęta w nawiasy. Dotyczy to równie funkcji bez parametrów. Domyślnie, argumenty są przekazywane przez wartość, a nie przez referencję, jak w poprzednich wersjach Visual Basica. Obiekty nie mają ju domyślnych właściwości. Wszystkie właściwości muszą być podane jawnie. Przykładowo, do tekstu zapisanego w polu tekstowym nale y się odwoływać następująco: KO UVT #U 5VTKPI 6GZV$QZ6GZV Typ danych +PVGIGT ma teraz 32 bity, typ .QPI zaś ma 64 bity. Typy danych powinny zawsze być jawnie rzutowane na inne typy danych. Rzutowanie niejawne jest niebezpieczne. Przykładowo, jeśli konieczna jest wartość łańcuchowa, liczbę nale y zrzutować jawnie: 4GURQPUG9TKVG 0WODGT 'PVGTGF KU %V[RG EQWPV UVTKPI Zmienne wymienione w tej samej instrukcji KO będą tego samego typu. Przykładowo, w instrukcji KO K L M #U +PVGIGT, zmienne K, L i M będą typu +PVGIGT. W poprzednich wersjach Visual Basica zmienne K i L byłyby typu 8CTKCPV, zaś M typu +PVGIGT. Nie są obsługiwane polecenia 5GV i .GV. Przypisywanie obiektów odbywa się za pomocą prostej operacji przypisania: O[1DLGEV O[1DLGEV Zmieniła się składnia właściwości klas. Nie ma ju 2TQRGTV[ .GV, 2TQRGTV[ )GV ani 2TQRGTV[ 5GV.
  • 39. 4QFKC 2TQLGMVQYCPKG CRNKMCELK #520'6 2WDNKE 2TQRGTV[ O[2TQRGTV[ #U 5VTKPI )GV O[2TQRGTV[ A8CNWG 'PF )GV 5GV A8CNWG O[2TQRGTV[ 'PF 5GV 'PF 2TQRGTV[ Podczas konkatenacji łańcuchów znaków po obu stronach operatora muszą wystąpić spacje. VBScript umo liwiał zapis C D E; teraz jednak, aby uniknąć wystąpienia błędu składni, nale y zapisać C D E. Wszystkie instrukcje +H muszą składać się z wielu wierszy. W języku VBScript mo liwe było napisanie +H w jednym wierszu. [TGMV[Y[ UVTQP UKGEK 999 Poprzednie wersje ASP wymagały umieszczania dyrektyw stron, jeśli występowały, w pierw- szym wierszu strony wewnątrz tego samego bloku. Przykładowo: .#0)7#)' 8$5ETKRV %1'2#)' W ASP.NET dodano kilka nowych dyrektyw. Atrybut .CPIWCIG musi być teraz umieszczony wewnątrz dyrektywy 2CIG. Ilustruje to poni szy przykład: 2CIG .CPIWCIG 8$ %QFGRCIG 1WVRWV%CEJG WTCVKQP 8CT[$[2CTCO NQECVKQP Dyrektywy mogą być umieszczone w dowolnym miejscu strony .aspx, jednak standardową praktyką jest umieszczanie ich na początku strony. W dyrektywach ASP.NET wielkość znaków nie ma adnego znaczenia; nie jest równie wymagane ujmowanie wartości atry- butów w cudzysłowy. 9URÎ RTCEC %1/ Większość komponentów COM współpracuje z ASP.NET. Mo liwe jest równie im- plementowanie powiązań za pomocą 5GTXGT%TGCVG1DLGEV, podobnie jak w poprzednich wersjach ASP.