Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00120 008437 10460593 na godz. na dobę w sumie
Delphi 6. Vademecum profesjonalisty. Tom II - książka
Delphi 6. Vademecum profesjonalisty. Tom II - książka
Autor: , Liczba stron: 504
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-745-X Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> delphi - programowanie
Porównaj ceny (książka, ebook, audiobook).
Drugi tom 'Delphi 6. Vademecum profesjonalisty' poświęcony jest zaawansowanym mechanizmom Delphi, związanym z programowaniem systemowym, nowoczesną obsługą baz danych i tworzeniem aplikacji internetowych. Jego treść wyraźnie oddaje specyficzną rolę Delphi 6 -- jako świadectwa coraz ściślejszego integrowania się trzech najważniejszych filarów współczesnych zastosowań komputerów i zdobyczy informatyki: wizualnego projektowania aplikacji, efektywnego przetwarzania dużej ilości danych o coraz większej złożoności oraz Internetu.

Treść książki rozpoczyna się od omówienia podstawowych zasad tworzenia i wykorzystywania pakietów Delphi. Aplikacje dawno już przestały być pojedynczymi 'programami' -- ich postępująca złożoność wymusza raczej budowę modułową, której najważniejszymi konsekwencjami są: łatwość utrzymania i rozbudowy oraz sprawniejsza dystrybucja. Pakiety stanowią także podstawowy 'budulec' IDE, będąc 'nośnikami' jego kluczowych elementów, jak komponenty, edytory komponentów i właściwości oraz zintegrowane narzędzia rozszerzające.

Mimo, iż Delphi uwalnia programistę od mnóstwa nużących, niskopoziomowych szczegółów Windows, nie jest ono w stanie zapewnić elastyczności wystarczającej do wykorzystania wszystkich możliwości Windows; programista zmuszony jest więc niekiedy do bezpośredniego posługiwania się funkcjami Win32 API, w czym Delphi mu bynajmniej nie przeszkadza, a raczej oferuje dodatkowe mechanizmy wspomagające. Czytelnicy znajdą w niniejszej książce kilka praktycznych przykładów wykorzystania Win32 API: obsługę zasobnika, zarządzanie paskami aplikacji, tworzenie i obsługę łączników powłoki oraz aplikacje rozszerzające jej funkcjonalność.

Jedną z największych zalet IDE Delphi jest możliwość jego rozbudowy przez użytkownika. Oprócz (wynikającej z obiektowego modelu programowania) możliwości definiowania nowych komponentów, możliwe jest także tworzenie specjalizowanych edytorów współpracujących z projektantem formularzy; ich integrację ze środowiskiem umożliwia interfejs Open Tools API, którego unowocześnioną -- bo bazującą już całkowicie na interfejsach COM -- wersję opisujemy w jednym z rozdziałów.

Wśród wielu mechanizmów bazodanowych, dedykowanych konkretnym platformom systemowym, coraz większego znaczenia nabiera model uniwersalny, nie związany z żadnym konkretnym środowiskiem -- CORBA (Common Object Request Broker Architecture). Prezentujemy opis podstawowych założeń tego modelu oraz ilustrujemy konkretnymi przykładami jego wykorzystanie w połączeniu z usługami sieciowymi (web services) oraz obiektami Enterprise Java Beans (EJB) zaimplementowanymi na borlandowskim serwerze aplikacji (Borland Application Server). W kolejnym rozdziale zajmujemy się bardziej szczegółowo samymi usługami sieciowymi i protokołem SOAP.

Wprowadzona w Delphi 3 technologia MIDAS, będąca praktyczną realizacją modelu aplikacji wielowarstwowej (multitier), występuje w Delphi 6 w unowocześnionej wersji i pod zmienioną nazwą DataSnap -- dosłownie 'migawka danych'; nazwa ta dość trafnie oddaje charakter podstawowej idei całego mechanizmu, jaką jest lokalne przetwarzanie na komputerze klienta małych porcji ('migawek') danych pobranych z serwera.

Trzy ostatnie rozdziały książki mają nierozerwalny związek z Internetem. Pierwszy z nich poświęcony jest technologii Active Server Pages (ASP) i jej obiektom (ASO); prezentujemy konkretne przykłady współpracy ASP z bazami danych oraz przedstawiamy sposoby śledzenia aplikacji ASP za pomocą serwera MTS w Windows NT i Windows 2000. Technologia WebSnap, stanowiąca przedmiot rozważań drugiego rozdziału, jest wynikiem ścisłej integracji WebBrokera z mechanizmami bazodanowymi i umożliwia tworzenie internetowych aplikacji bazodanowych w sposób efektywniejszy niż kiedykolwiek dotąd. Rozdział ostatni poświęcony jest aplikacjom przeznaczonym dla tzw. urządzeń ruchomych (mobile devices), między innymi telefonów komórkowych. Przedstawiamy w nim m.in. prosty przykład wykorzystania protokołu WAP, omawiamy także kilka wybranych rozwiązań światowego rynku teleinformatycznego

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

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Delphi 6. Vademecum profesjonalisty. Tom II Autorzy: Xavier Pacheco, Steve Teixeira T‡umaczenie: Andrzej Gra¿yæski ISBN: 83-7197-745-X Tytu‡ orygina‡u: Format: B5, stron: 496 oprawa twarda Zawiera CD-ROM Delphi 6 Developers Guide Drugi tom (cid:132)Delphi 6. Vademecum profesjonalisty(cid:148), kt(cid:243)ry oddajemy do r„k Czytelnik(cid:243)w, po(cid:156)wiŒcony jest zaawansowanym mechanizmom Delphi, zwi„zanym z programowaniem systemowym, nowoczesn„ obs‡ug„ baz danych i tworzeniem aplikacji internetowych. Jego tre(cid:156)(cid:230) wyra(cid:159)nie oddaje specyficzn„ rolŒ Delphi 6 (cid:151) jako (cid:156)wiadectwa coraz (cid:156)ci(cid:156)lejszego integrowania siŒ trzech najwa¿niejszych filar(cid:243)w wsp(cid:243)‡czesnych zastosowaæ komputer(cid:243)w i zdobyczy informatyki: wizualnego projektowania aplikacji, efektywnego przetwarzania du¿ej ilo(cid:156)ci danych o coraz wiŒkszej z‡o¿ono(cid:156)ci oraz Internetu. Tre(cid:156)(cid:230) ksi„¿ki rozpoczyna siŒ od om(cid:243)wienia podstawowych zasad tworzenia i(cid:160) wykorzystywania pakiet(cid:243)w Delphi. Aplikacje dawno ju¿ przesta‡y by(cid:230) pojedynczymi (cid:132)programami(cid:148) (cid:151) ich postŒpuj„ca z‡o¿ono(cid:156)(cid:230) wymusza raczej budowŒ modu‡ow„, kt(cid:243)rej najwa¿niejszymi konsekwencjami s„: ‡atwo(cid:156)(cid:230) utrzymania i rozbudowy oraz sprawniejsza dystrybucja. Pakiety stanowi„ tak¿e podstawowy (cid:132)budulec(cid:148) IDE, bŒd„c (cid:132)no(cid:156)nikami(cid:148) jego kluczowych element(cid:243)w, jak komponenty, edytory komponent(cid:243)w i(cid:160) w‡a(cid:156)ciwo(cid:156)ci oraz zintegrowane narzŒdzia rozszerzaj„ce. Mimo, i¿ Delphi uwalnia programistŒ od mn(cid:243)stwa nu¿„cych, niskopoziomowych szczeg(cid:243)‡(cid:243)w Windows, nie jest ono w stanie zapewni(cid:230) elastyczno(cid:156)ci wystarczaj„cej do wykorzystania wszystkich mo¿liwo(cid:156)ci Windows; programista zmuszony jest wiŒc niekiedy do bezpo(cid:156)redniego pos‡ugiwania siŒ funkcjami Win32 API, w czym Delphi mu bynajmniej nie przeszkadza, a raczej oferuje dodatkowe mechanizmy wspomagaj„ce. Czytelnicy znajd„ w niniejszej ksi„¿ce kilka praktycznych przyk‡ad(cid:243)w wykorzystania Win32 API: obs‡ugŒ zasobnika, zarz„dzanie paskami aplikacji, tworzenie i obs‡ugŒ ‡„cznik(cid:243)w pow‡oki oraz aplikacje rozszerzaj„ce jej funkcjonalno(cid:156)(cid:230). Jedn„ z najwiŒkszych zalet IDE Delphi jest mo¿liwo(cid:156)(cid:230) jego rozbudowy przez u¿ytkownika. Opr(cid:243)cz (wynikaj„cej z obiektowego modelu programowania) mo¿liwo(cid:156)ci definiowania nowych komponent(cid:243)w, mo¿liwe jest tak¿e tworzenie specjalizowanych edytor(cid:243)w wsp(cid:243)‡pracuj„cych z projektantem formularzy; ich integracjŒ ze (cid:156)rodowiskiem umo¿liwia interfejs Open Tools API, kt(cid:243)rego unowocze(cid:156)nion„ (cid:151) bo bazuj„c„ ju¿ ca‡kowicie na interfejsach COM (cid:151) wersjŒ opisujemy w jednym z rozdzia‡(cid:243)w. 1#WVQTCEJJJ 2TGFOQYCFQY[FCPKCQT[IKPCNPGIQJ  2TGFOQYCFQY[FCPKCRQNUMKGIQ J  úħè8 CCYCPUQYCPGY[MQT[UVCPKGMQORQPGPVÎY   Rozdział 14. 2CMKGV[ J  Korzyści związane z używaniem pakietów...................................................w........................ 19 Redukcja kodu wynikowego ...................................................w........................................ 19 Zmniejszenie rozmiaru dystrybuowanych plików ...................................................w....... 20 Pakiety jako zasobniki z komponentami...................................................w...................... 20 Kiedy nie opłaca się używać pakietów?...................................................w............................. 20 Typy pakietów...................................................w...................................................w............ Pliki pakietu...................................................w...................................................w............ Kompilacja aplikacji z podziałem na pakiety...................................................w..................... 21 Instalowanie pakietów w środowisku IDE...................................................w......................... 22 Tworzenie i instalowanie własnych pakietów...................................................w.................... 23 ..... 21 ......... 21 Edytor pakietów ...................................................w...................................................w........ 23 Scenariusze projektowania pakietów ...................................................w........................... 24 Wersjonowanie pakietów ...................................................w...................................................w 27 Dyrektywy kompilacji związane z tworzeniem pakietów...................................................w.. 28 Słabe wiązanie modułu w pakiecie ...................................................w.............................. 28 Konwencje nazewnictwa pakietów ...................................................w.................................... 29 Pakiety rozszerzające funkcjonalność aplikacji ...................................................w................. 30 Generowanie formularzy rozszerzających ...................................................w................... 30 Eksportowanie funkcji i procedur z pakietów ...................................................w.................... 36 Wyświetlanie formularza zawartego w pakiecie...................................................w.......... 36 Uzyskiwanie informacji o pakiecie ...................................................w.................................... 39 Podsumowanie...................................................w...................................................w............. .... 42 Rozdział 15. 1.  1/K#EVKXG: J  Podstawy COM ...................................................w...................................................w............. .. 43 COM — model obiektu-komponentu ...................................................w.......................... 43 COM kontra ActiveX kontra OLE...................................................w............................... 44 Nieco terminologii ...................................................w...................................................w.... 45 Cóż wspaniałego jest w ActiveX?...................................................w................................ 45 OLE 1 kontra OLE 2 ...................................................w...................................................w. 45 Pamięć strukturalna...................................................w...................................................w... 46 Jednolity transfer danych ...................................................w............................................. 46 Modele wątkowe obiektu COM ...................................................w................................... 46 COM+ ...................................................w...................................................w..................... .. 47  GNRJK8CFGOGEWORTQHGULQPCNKUV[6QO Technologia COM a Object Pascal ...................................................w.................................... 47 Interfejsy ...................................................w...................................................w............... .... 47 Szczegóły korzystania z interfejsów COM w Delphi 6 .................................................. 50 Typ HRESULT ...................................................w...................................................w......... 55 Klasy COM i obiekty-producenci ...................................................w...................................... 57 Klasy TComObject i TComObjectFactory ...................................................w.................. 57 Wewnątrzprocesowe serwery COM ...................................................w............................ 58 Zewnątrzprocesowe serwery COM...................................................w.............................. 61 Agregacja obiektów COM ...................................................w........................................... 62 Rozproszona realizacja COM (DCOM) ...................................................w............................. 63 Automatyzacja COM...................................................w...................................................w....... 64 Interfejs IDispatch...................................................w...................................................w..... 64 Informacja o typie obiektu automatyzacji...................................................w.................... 66 Wczesne wiązanie kontra późne wiązanie ...................................................w................... 66 Rejestracja ...................................................w...................................................w.............. ... 67 Tworzenie przykładowego serwera automatyzacji ...................................................w...... 67 Tworzenie aplikacji-kontrolerów automatyzacji...................................................w.......... 80 Zaawansowane techniki automatyzacji ...................................................w.............................. 87 Zdarzenia automatyzacji ...................................................w.............................................. 87 Kolekcje automatyzacji...................................................w.............................................. 100 Nowe typy interfejsów w bibliotece typu ...................................................w.................. 108 Wymiana danych binarnych...................................................w....................................... 109 Za kulisami, czyli elementy COM wbudowane w Object Pascal ................................. 111 ... 121 Elementy podstawowe — prosta aplikacja demonstracyjna......................................... 122 Mechanizmy zaawansowane — nieco większa aplikacja............................................. 123 .. 132 Podsumowanie...................................................w...................................................w............. TOleContainer ...................................................w...................................................w............ Rozdział 16. 2TQITCOQYCPKGTQUGTGēRQYđQMK9KPFQYU  Współpraca aplikacji z zasobnikiem systemowym ...................................................w.......... 133 Funkcja Shell_NotifyIcon ...................................................w.......................................... 133 Zarządzanie komunikatami ...................................................w........................................ 136 Ikony i podpowiedzi...................................................w...................................................w 136 Współdziałanie myszy z zasobnikiem ...................................................w....................... 137 Ukrywanie i odkrywanie aplikacji ...................................................w............................. 140 Paski narzędziowe aplikacji na pulpicie...................................................w........................... 147 Formularz TAppBar — enkapsulacja paska aplikacji...................................................w 148 Przykład wykorzystania paska aplikacji ...................................................w.................... 157 Łączniki powłoki (shell links)...................................................w.......................................... 159 Uzyskiwanie instancji interfejsu IShellLink ...................................................w.............. 160 Zastosowanie interfejsu IShellLink...................................................w............................ 160 Przykładowa aplikacja ...................................................w............................................... 168 Serwery rozszerzające powłoki (shell extensions) ...................................................w........... 175 Tworzenie obiektów COM serwerów rozszerzających................................................. 176 Rozszerzenia typu Copy Hook...................................................w................................... 177 Rozszerzenia typu Context Menu ...................................................w.............................. 182 Rozszerzenia typu Icon ...................................................w.............................................. 191 Rozszerzenia typu Info Tip ...................................................w........................................ 199 Podsumowanie...................................................w...................................................w............. .. 205 Rozdział 17. 1RGP6QQNU#2+ J  Interfejsy Open Tools...................................................w...................................................w....207 Przykłady zastosowań ...................................................w...................................................w... 210 Prymitywny kreator („Dumb Wizard”)...................................................w...................... 210 Kreator kreatorów ...................................................w...................................................w... 213 DDG SEARCH ...................................................w...................................................w....... 223 5RKUVTGħEK  Kreatory formularzowe ...................................................w...................................................w. 233 Podsumowanie...................................................w...................................................w............. .. 240 úħè8+ 2TQLGMVQYCPKGCRNKMCELKMQTRQTCE[LP[EJ   Rozdział 18. 2TGVYCTCPKGVTCPUCME[LPGō 1/ /65  Co to jest COM+?...................................................w...................................................w......... . 243 Dlaczego COM? ...................................................w...................................................w............243 Usługi ...................................................w...................................................w................... ......... 244 Transakcje ...................................................w...................................................w...............244 Bezpieczeństwo...................................................w...................................................w....... 245 Aktywacja natychmiastowa ...................................................w....................................... 250 Komponenty kolejkowane ...................................................w......................................... 250 Komasacja obiektów ...................................................w.................................................. 257 Zdarzenia...................................................w...................................................w................ . 258 Mechanizmy wykonawcze ...................................................w............................................... 265 Baza rejestracyjna ...................................................w...................................................w... 265 Komponenty konfigurowane...................................................w...................................... 265 Kontekst wykonawczy ...................................................w............................................... 266 Neutralność wątkowa ...................................................w................................................. 266 Tworzenie aplikacji COM+...................................................w.............................................. 266 Cel: skalowalność...................................................w...................................................w.... 266 Kontekst wykonawczy ...................................................w............................................... 267 Obiekty stanowe i bezstanowe ...................................................w................................... 267 Czas życia obiektu a interfejsy...................................................w................................... 268 Organizacja aplikacji COM+ ...................................................w..................................... 269 Transakcje ...................................................w...................................................w...............269 Zasoby ...................................................w...................................................w................... .. 270 COM+ w Delphi...................................................w...................................................w............270 Kreatory obiektów COM+ ...................................................w......................................... 270 Szkielet aplikacji wykorzystującej COM+...................................................w................. 271 Przykładowa aplikacja ...................................................w............................................... 273 Śledzenie aplikacji COM+ ...................................................w......................................... 288 Podsumowanie...................................................w...................................................w............. .. 289 Rozdział 19. 14$# J  Możliwości CORBA ...................................................w...................................................w..... 291 Architektura CORBA ...................................................w...................................................w.... 292 OSAgent...................................................w...................................................w..................293 .. 294 Interfejsy ...................................................w...................................................w............... IDL — język opisu interfejsów ...................................................w........................................ 294 Typy podstawowe ...................................................w...................................................w... 295 Typy definiowane przez użytkownika ...................................................w....................... 296 Aliasy ...................................................w...................................................w................... ... 296 Wyliczenia...................................................w...................................................w...............296 .. 296 Struktury...................................................w...................................................w................ Tablice...................................................w...................................................w.................. ... 296 Sekwencje ...................................................w...................................................w............... 297 Argumenty wywołania metod ...................................................w.................................... 297 Moduły ...................................................w...................................................w................... . 297 Przykład: prosta aplikacja bankowa ...................................................w................................. 298 Złożone typy danych ...................................................w...................................................w..... 307 Delphi, CORBA i Enterprise Java Beans (EJBs) ...................................................w............. 313 Trochę teorii… ...................................................w...................................................w........ 313 EJB są specjalizowanymi komponentami...................................................w.................. 314  GNRJK8CFGOGEWORTQHGULQPCNKUV[6QO EJB rezydują wewnątrz pojemnika...................................................w............................ 314 EJB posiadają predefiniowane API...................................................w............................ 314 Interfejsy Home i Remote ...................................................w.......................................... 314 Rodzaje EJB ...................................................w...................................................w............ 314 Dostosowanie JBuildera 5 do tworzenia EJB ...................................................w............ 315 Prosta aplikacja EJB...................................................w...................................................w 316 CORBA a usługi sieciowe...................................................w................................................ 321 Tworzenie usługi sieciowej...................................................w........................................ 322 Tworzenie aplikacji-klienta SOAP ...................................................w............................ 323 Umieszczenie klienta CORBA w serwerze WWW ...................................................w... 325 Podsumowanie...................................................w...................................................w............. .. 328 Rozdział 20. $K5PCR51#2KWUđWIKUKGEKQYG J  Czym są usługi sieciowe?...................................................w................................................. 329 SOAP...................................................w...................................................w..................... Tworzenie usługi sieciowej ...................................................w.............................................. 330 Definiowanie interfejsu wywoływalnego ...................................................w.................. 332 Implementowanie interfejsu wywoływalnego ...................................................w........... 333 Testowanie usługi sieciowej ...................................................w...................................... 334 Wywoływanie usługi sieciowej z aplikacji-klienta ...................................................w.......... 336 ........ 330 Generowanie modułu importowego dla zdalnego obiektu............................................ 337 Konfigurowanie komponentu THTTPRIO ...................................................w................ 338 Podsumowanie...................................................w...................................................w............. .. 339 Rozdział 21. CVC5PCRXGN/+ #5J  Zasady tworzenia aplikacji wielowarstwowych...................................................w............... 341 Korzyści wynikające z architektury wielowarstwowej...................................................w......... 342 Centralizacja logiki biznesowej ...................................................w................................. 342 Architektura „uproszczonego klienta” ...................................................w....................... 343 Automatyczne uzgadnianie błędów ...................................................w........................... 343 Model aktówki ...................................................w...................................................w........ 343 Odporność na błędy...................................................w...................................................w. 343 Równoważenie obciążenia serwera...................................................w............................ 344 Typowa architektura DataSnap ...................................................w........................................ 344 Serwer ...................................................w...................................................w................... Klient...................................................w...................................................w................... .. 344 .... 347 Tworzenie aplikacji DataSnap...................................................w.......................................... 349 Tworzenie serwera ...................................................w...................................................w.. 349 Tworzenie klienta...................................................w...................................................w.... 351 Dodatkowe techniki optymalizowania aplikacji ...................................................w.............. 357 Techniki optymalizacji aplikacji-klienta...................................................w.................... 357 Techniki optymalizacji serwera aplikacji...................................................w................... 359 Przykładowe aplikacje...................................................w...................................................w... 368 Złączenia ...................................................w...................................................w................ . 368 Zaawansowane możliwości komponentu TClientDataSet .................................................. 378 Aplikacje dwuwarstwowe ...................................................w.......................................... 378 Klasyczne błędy......................................w...................................................w....................... Udostępnianie i instalacja aplikacji DataSnap ...................................................w................. 380 Licencjonowanie DataSnap...................................................w........................................ 380 Konfigurowanie DCOM...................................................w............................................. 380 Pliki wymagane przez aplikację...................................................w................................. 381 Kłopot z Internetem — zapory...................................................w................................... 382 ... 379 Podsumowanie...................................................w...................................................w............. .. 384 5RKUVTGħEK  úħè8++ 6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ   Rozdział 22. #EVKXG5GTXGT2CIGUJ  Active Server Objects...................................................w...................................................w....387 Active Server Pages ...................................................w...................................................w 387 Kreator obiektów ASO...................................................w...................................................w.. 389 Edytor biblioteki typu ...................................................w................................................ 391 Obiekt Response...................................................w...................................................w...... 394 Pierwsze uruchomienie ...................................................w.............................................. 395 Obiekt Request ...................................................w...................................................w........ 395 Rekompilacja obiektów ASO...................................................w..................................... 396 Ponowne uruchomienie serwera ASP ...................................................w........................ 397 Obiekty Session, Server i Application.................................................w................................ 398 Obiekty ASO i bazy danych...................................................w............................................. 399 Obiekty ASO a NetCLX...................................................w...................................................w 402 Śledzenie obiektów ASO...................................................w.................................................. 403 Śledzenie obiektów ASP za pomocą MTS...................................................w................. 404 Debugging ASO w Windows NT ...................................................w.............................. 405 Debugging ASO w Windows 2000...................................................w............................ 406 Podsumowanie...................................................w...................................................w............. .. 407 Rozdział 23. 9GD5PCR J  Możliwości WebSnap...................................................w...................................................w.... 409 Wiele modułów danych...................................................w.............................................. 409 Techniki skryptowe...................................................w...................................................w. 409 Komponenty-adaptery...................................................w................................................ 410 Wielokierunkowe zarządzanie stronami ...................................................w.................... 410 Komponenty-producenci...................................................w............................................ 410 Zarządzanie sesjami ...................................................w...................................................w 410 Usługi logowania ...................................................w...................................................w.... 411 Zarządzanie informacją o użytkownikach ...................................................w................. 411 Zarządzanie zasobami rozproszonymi ...................................................w....................... 411 Usługi ładowania plików...................................................w............................................ 411 Tworzenie aplikacji WebSnap...................................................w.......................................... 411 Projektowanie aplikacji...................................................w.............................................. 411 Rozbudowa aplikacji...................................................w.................................................. 418 Menu nawigacyjne ...................................................w...................................................w.. 419 Logowanie...................................................w...................................................w............... 422 Zarządzanie informacją o preferencjach użytkowników .............................................. 423 Przechowywanie informacji pomiędzy sesjami użytkowników ................................... 427 Przetwarzanie obrazów i obsługa grafiki ...................................................w................... 429 Wyświetlanie zawartości bazy danych...................................................w....................... 430 Konwertowanie aplikacji do postaci ISAPI DLL ...................................................w...... 434 Zagadnienia zaawansowane ...................................................w............................................. 435 Komponent LocateFileService...................................................w................................... 435 Ładowanie plików...................................................w...................................................w... 436 Wykorzystanie specyficznych szablonów...................................................w.................. 438 Współpraca komponentu TAdapterPageProducer z komponentawmi tworzonymi przez użytkowników...................................................w........................... 438 Podsumowanie...................................................w...................................................w............. .. 440 Rozdział 24. #RNKMCELGFNCVGNGHQPKKDGRTGYQFQYGL   Ewolucja oprogramowania — skąd przychodzimy?...................................................w........ 441 Przed rokiem 1980: ...................................................w...................................................w. 442 Późne lata 80.: biurkowe aplikacje bazodanowe...................................................w........ 442  GNRJK8CFGOGEWORTQHGULQPCNKUV[6QO Wczesne lata 90.: aplikacje klient-serwer...................................................w.................. 442 Późne lata 90.: aplikacje wielowarstwowe i Internet ...................................................w. 442 Wiek XXI: „ruchoma” informatyka...................................................w........................... 443 Ruchome urządzenia bezprzewodowe ...................................................w............................. 443 Telefony komórkowe ...................................................w................................................. 443 Urządzenia z systemem PalmOS ...................................................w............................... 443 PocketPC ...................................................w...................................................w.................444 RIM BlackBerry...................................................w...................................................w...... 444 Łączność radiowa ...................................................w...................................................w......... . 444 GSM, CDMA i TDMA ...................................................w.............................................. 444 CDPD ...................................................w...................................................w..................... . 444 ..... 445 3G...................................................w...................................................w....................... GPRS...................................................w...................................................w..................... .. 445 BlueTooth...................................................w...................................................w................445 ... 445 802.11...................................................w...................................................w................... Serwerowe technologie bezprzewodowe ...................................................w......................... 446 SMS...................................................w...................................................w...................... WAP...................................................w...................................................w...................... I-mode ...................................................w...................................................w................... PQA...................................................w...................................................w...................... ... 446 .. 446 .. 456 ... 456 Użytkowe aspekty aplikacji bezprzewodowych...................................................w............... 459 Komutacja obwodów kontra komutacja pakietów...................................................w..... 459 „Bezprzewodowy” nie znaczy „internetowy”...................................................w............ 460 Czynniki geometryczne...................................................w.............................................. 460 Wprowadzanie danych i techniki nawigacji ...................................................w.............. 460 M-commerce ...................................................w...................................................w........... 460 Podsumowanie...................................................w...................................................w............. .. 461 QFCVMK Y  Dodatek A 5MTÎEQP[URKUVTGħEKVQOW J  Dodatek B 5MQTQYKFVQOWJ  5MQTQYKFVQOWJJ  Rozdział 23. Jedną z nowości Delphi 6 jest technologia WebSnap, łącząca wszelkie zalety błyskawicz- nego projektowania aplikacji (RAD) z mechanizmami charakterystycznymi dla aplikacji serwera WWW. W związku z jej wszechstronnością, przejawiającą się m.in. we współpracy z dowolnym niemal źródłem — bazami danych, grafiką, „surowymi” plikami itp. oraz w obsłudze języków skryptowych, programiści zyskali wspaniałą możliwość przeniesię- nia swego dorobku i doświadczeń na platformę internetową, co nadaje nową jakość proce- sowi tworzenia aplikacji serwerów WWW i programowaniu rozproszonemu w ogólności. WebSnap nie jest technologią całkowicie nową — jest ona wynikiem integracji dwóch istnie- jących technologii: WebBrokera i +PVGTPGV ZRTGUU. Dzięki temu przenoszenie istniejących aplikacji na platformę WebSnap nie jest zbytnio skomplikowane. Technologia WebSnap daje wiele użytecznych możliwości, z których najważniejśsze teraz w skrócie omówimy. 9KGNGOQFWđÎYFCP[EJ W poprzednich wersjach Delphi aplikacje WebBroker i InternetExpress posiadały poje- dynczy moduł danych (9GD/QFWNG). Użycie kilku modułów danych w ramach pojedynczej aplikacji było niemożliwe na etapie projektowania i śwymagało dynamicznego tworzenia tychże w kodzie programu. WebSnap eliminuje to ograniczenie, dopuszczając dowolną liczbę modułów danych w ramach jednej aplikacji; każdy z tych modułów reprezentuje pojedynczą stronę WWW. Pozwala to na równoległą pracę kilku projektantów nad różnymi fragmentami aplikacji. 6GEJPKMKUMT[RVQYG WebSnap umożliwia wykorzystanie technik skryptowych w tworzonych aplikacjach, co znacznie ułatwia tworzenie i konfigurowanie aplikacji i dokumentów HTML. Komponen- tem odpowiedzialnym za obsługę skryptów po „serwerowej” stronie aplikacji jest 6#FCRVGT (i jego komponenty pochodne).  úħè8++u6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ -QORQPGPV[CFCRVGT[ Komponenty wywodzące się z klasy 6#FCRVGT definiują interfejs pomiędzy skryptowymi mechanizmami serwera i klienta. Stanowią one jedyny śrśodek udostępniania klientom skryp- tów serwera, co chroni te skrypty przed przypadkową lub zamierzoną modyfikacją i jedno- cześnie pozwala na ukrycie tych funkcji, które nie powinny być wyeksponowane dla aplikacji-klientów. Definiując komponent pochodny do 6#FCRVGT zapewniamy sobie zarządzanie specyficzną zawartością, stanowiącą materiał źródłowy na wynikową stronę WWW; materiał ten do- stępny jest także na etapie projektowania aplikacji. Taki komponent może zawierać dane oraz wykonywać określone akcje; na przykład komponent 6 CVC5GV#FCRVGT może wyświe- tlać rekordy ze zbioru danych oraz wykonywać rozmaite czynności związane z tym zbio- rem, jak przewijanie, dodawanie, aktualizacja i usuwanśie rekordów. 9KGNQMKGTWPMQYGCTæFCPKGUVTQPCOK WebSnap oferuje kilka sposobów obsługi żądań HTTP. Zawartość strony WWW może być identyfikowana przez nazwę tej strony, przez akcję komponentu 6#FCRVGT (lub pochod- nego) lub przez „zwykłą” akcję (na modłę WebBrokera). Umożliwia to elastyczną realizację wyboru strony do wyświetlenia — wyświetlenie takie może nastąpić wskutek naciśnięcia przycisku 5WDOKV lub wskutek wybrania łącznika (z menu łączników zbudowanego na podstawie zestawu dostępnych stron). -QORQPGPV[RTQFWEGPEK Integralną częścią aplikacji tworzonych z udziałem WebBrokera były komponenty–pro- ducenci stron, których zadaniem było generowanie zawartości strony wynikowej (w forma- cie HTML) na podstawie różnorodnych źródeł danych (na przykład zbioru danych lub wy- branego rekordu). InternetExpress rozszerza tę koncepcję o komponent 6/KFCU2CIG2TQFWEGT (w Delphi 6 zastąpiony przez +PGV:2CIG2TQFWEGT — por. rozdział 21.), a WebSnap idzie jeszcze dalej, oferując zestaw nowych komponentów wykorzystujących zawartość kom- ponentu 6#FCRVGT oraz danych w formacie XSL/XML. Najważniejszym z tych komponen- tów jest 6#FCRVGT2CIG2TQFWEGT, generujący zawartość strony wynikowej na podstawie akcji i pola komponentu 6#FCRVGT (lub pochodnego). CTæFCPKGUGULCOK Aplikacje WebSnap posiadają wbudowany mechanizm zarządzania sesjami, umożliwiający śledzenie akcji danego użytkownika wśród wielu żądań HTTP. Ponieważ HTTP jest pro- tokołem bezstanowym (ang. stateless), aplikacja musi zapewnić sobie we własnym zakre- sie środki do utrzymywania informacji o bieżącym stanie sesji każdego użytkownika; do środków tych należą m.in. cookies, odwołania do URL lub ukryte pola. WebSnap upraszcza to zadanie, udostępniając komponent 65GUUKQP5GTXKEG, sprawujący kontrolę nad wszystkimi żądaniami, niezależnie dla każdej sesji; informacja o sesji dostępna jest zarówno dla skryptu obecnego w serwerze, jak i dla kodu samej aplikacji. 4QFKCđu9GD5PCR  7UđWIKNQIQYCPKC Względy bezpieczeństwa aplikacji WebSnap wymagają logowania każdego użytkownika; WebSnap automatyzuje proces logowania, dostarczając w tym celu odpowiednich kompo- nentów-adapterów (6.QIKP(QTO#FCRVGT i 6.QIKP(QTO#FCRVGT.QIKP#EVKQP) realizujących dialog logowania i, w połączeniu z mechanizmami zarządzania sesjami, wykonujących uwierzytelnianie zgodne z wybranym modelem bezpieczeństwa aplikacji. Każdy użytkow- nik próbujący uzyskać dostęp do nieautoryzowanych stron odsyłany jest automatycznie na stronę logowania. CTæFCPKGKPHQTOCELæQWľ[VMQYPKMCEJ Integralną częścią zarządzania sesjami jest nadzór nad użytkownikami i ich uprawnienia- mi w stosunku do aplikacji (lub jej elementów). WebSnap umożliwia przechowywanie różnorodnych informacji o każdym z użytkowników (jak uprawnienia, preferencje itp.) i wykorzystywanie ich na potrzeby aplikacji. CTæFCPKGCUQDCOKTQRTQUQP[OK Strony HTML wykorzystywane, a także generowane, przez aplikację mogą być zależne od wielu różnych plików i zasobów, często generowanych w sposób dynamiczny. Aby ułatwić zarządzanie takimi „rozproszonymi” zasobami, WebSnap udostępnia tzw. usługi lokalizacyjne (ang. location services). 7UđWIKđCFQYCPKCRNKMÎY Zarządzanie ładowaniem plików przez serwer (ang. file uploading) wymaga zazwyczaj dość dużej ilości specjalizowanego kodu. WebSnap uwalnia programistę od tego problemu, oferując odpowiedni komponent-adapter sprawujący kontrolę nad ładowanymi plikami i udostępniający związane z tym formularze. Najefektywniejszym i najbardziej pouczającym sposobem poznania możliwości oferowa- nych przez technologię WebSnap będzie z pewnością samodzielne stworzenie przykła- dowej aplikacji. 2TQLGMVQYCPKGCRNKMCELK Tworzenie aplikacji WebSnap staje się prostsze, gdy używa się paska narzędziowego IDE o nazwie +PVGTPGV (rys. 23.1); jeżeli nie jest on widoczny, kliknij prawym przyciskiem myszy którykolwiek z widocznych pasków i w wyświetlonym menu kontekstowym za- znacz opcję +PVGTPGV.  úħè8++u6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ 4[UWPGM Pasek narzędziowy Internet Kliknij następnie przycisk New WebSnap Application (ten z ręką trzymającą globus) — spowoduje to wyświetlenie okna przedstawionego na rysunku 23.2. 4[UWPGM Kreator nowej aplikacji WebSnap Okno to zawiera opcje określające charakter tworzonej aplikacji WebSnap. Opcje w sekcji Server Type określają typ serwera, który będzie uruchamiany przez aplikację; ich znacze- nie jest następujące: n ISAPI/NSAPI Dynamic Link Library — wybranie tej opcji spowoduje utworzenie projektu aplikacji-rozszerzenia serwera WWW, przeznśaczonej do uruchomienia pod kontrolą serwera ISS (lub innego serwera obsługująścego aplikacje ISAPI, np. Personal Web Servera lub serwera Netscape z adapterem ISAPI). Wynikiem kompilacji projektu jest biblioteka DLL, wykonywana w śprzestrzeni adresowej serwera WWW. n CGI Stand-alone executable — opcja ta reprezentuje niezależną aplikację konsolową CGI, dokonującą zapisu do standardowych portśów wejścia-wyjścia i odczytu z nich, zgodnie ze specyfikacją CGI (Common Gateway Interface). Niemal wszystkie serwery WWW obsługują aplikacje CGI. n Win-CGI Stand-alone executable — ta opcja związana jest z mało popularnym (i nie zalecanym) typem aplikacji CGI, przeznaczonej dlaś Windows i komunikującej się z serwerem za pośrednictwem tekstowych plików .INI. n Apache Shared Module (DLL) — projekt inicjowany w wyniku wybrania tej opcji generuje bibliotekę DLL przeznaczoną dla serwera Apache; szczegółowe informacje na temat tego serwera możesz znaleźć na stronie http://www.apache.org. n Web App Debugger executable — jeżeli wybierzesz tę opcję, utworzoną aplikację będzie można uruchomić w środowisku specjalnego debuggeraś Delphi o nazwie Web App Debugger (rys. 23.3); wynikowy moduł aplikacji będziśe zewnątrzprocesowym serwerem COM, kontrolowanym i uruchamianym przez ten 4QFKCđu9GD5PCR  debugger. Stwarza to okazję do pełnego wykorzystania Delphi w zakresie śledzenia aplikacji — programista nie jest już skazany na testowśanie aplikacji metodą prób i błędów, wymuszające wielokrotne zatrzymywanie i ponowne uruchamianie serwera. 4[UWPGM Web App Debugger — debugger aplikacji WebSnap Aby nasza przykładowa aplikacja była jak najbardziej pouczająca, wybierzemy wariant Web App Debugger executable. Web App Debugger uruchamiany jest za pomocą polecenria 6QQNU9GD#RR GDWIIGT. Aby mógł on funkcjonować prawidłowo, konieczne jest rzarejestrowanie aplikacji UGTXGTKPHQGZG, znajdującej się w podkatalogu Bin zainstalowanego Delphi 6 — należy po prostu uruchomić jednokrotnie tę aplikację nrp. z poziomu wiersza poleceń. Web App Debugger spełnia rolę serwera dla testowanejr aplikacji, symuluje więc niejako rzeczywiste warunki jej pracy. Projekt stworrzony w wyniku wybrania opcji Web App Debugger executable kreatora z rysunku 23.2 zawiera formularz i sieciowry moduł danych (ang. Web module). Formularz pełni rolę środowiska dla serwera COM, który zostaje automatycznie zarejestrowany przy pierrwszym uruchomieniu aplikacji i staje się osiągalny za pośrednictwem przeglądarki WWrW. Ponieważ testowana aplikacja jest wykonywalnym modułem .EXE, można ją załardować w zwykły sposób do IDE i ustawić punkty przerwań (ang. breakpoints) w interesujących miejscach kodu. Aby uruchomić testowaną aplikację za pośrednictwem przeglądarki WWW, należy uruchomić Web App Debugger i kliknąć hiperłącze zatrytułowane Default URL; spowoduje to uruchomienie programu udostępniającego lristę zarejestrowanych w systemie zewnątrzprocesowych serwerów COM, z której rmożna wybrać aplikację do uruchomienia. Za pomocą opcji View Details możemy poznać systemowe szczegóły wskazanej aplikacji, a także usunąć ją z rejestru, jreżeli nie będzie dłużej potrzebna. Nie należy wyrejestrowywać aplikacji UGTXGTKPHQGZG — jeżeli dokonamy jej wyrejestrowania przez pomyłkę, trzeba będzie zarejrestrować ją ponownie, przez uruchomienie jej z wiersza poleceń. Kolejna sekcja opcji kreatora (Application Module Components) umożliwia określenie typu modułu danych oraz zawartych w nim komponentów. Wybranie opcji Page Module spowoduje utworzenie sieciowego modułu danych (Web module) reprezentującego stronę HTML; wybranie opcji Data Module spowoduje utworzenie tradycyjnego modułu danych (data module) funkcjonującego identycznie z modułem w zwykłej aplikacji klient-serwer. Dla naszej aplikacji wybierzemy sieciowy moduł danychś (Page Module).  úħè8++u6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ Po kliknięciu przycisku Components ujrzymy okno przedstawione na rysunku 23.4. 4[UWPGM Określenie zestawu komponentów umieszczanych automatycznie w module danych Kreator zaoferuje nam do wyboru następujące komponenty: n Application Adapter — zarządza polami i akcjami obiektu skryptowego w serwerze; jego najbardziej interesującą właściwoścśią jest 6KVNG. n End User Adapter — zarządza informacjami o aktualnie zalogowanym użytkowniku: jego nazwą, przywilejami, identyfikatorem sesji itp. Mśoże również zajmować się procesem logowania i wylogowania użytkownika. n Page Dispatcher — zajmuje się obsługą żądań HTTP związanych ze stroną jako całością (inaczej mówiąc — z nazwą strony). Udostępśnia on żądaną stronę na podstawie łącznika HREF lub odwołania z wnętrza akcjśi. n Adapter Dispatcher — zarządza żądaniami wygenerowanymi przez akcje komponentów-adapterów. Najczęściej są to żądania wysyłkśi formularzy HTML. n Dispatcher Actions — ta opcja związana jest z komponentem 69GD KURCVEJGT, dobrze znanym użytkownikom WebBrokera. Zajmuje się on obsłśugą żądań bazujących na adresach URL i może być użyty do definiowaniśa dodatkowych akcji, na wzór WebBrokera. n Locate File Service — zdarzenia tego komponentu generowane są każdorazowoś, gdy sieciowy moduł danych wymaga wprowadzania danych śHTML. Umożliwia to „przechwycenie” operacji wczytywania danych i zasśtąpienie lub uzupełnienie standardowych operacji, czyli w praktyce — wczytaniśe strumienia HTKL z dowolnego urządzenia. Komponent ten wykorzystywany jśest bardzo często do tworzenia standardowych stron na podstawie zawartości innych stron i szablonów. n Session Service — ten komponent zajmuje się zarządzaniem sesjami użytkowśnika, umożliwiając utrzymywanie informacji o stanie każdej sesjśi użytkownika pomiędzy kolejnymi żądaniami HTTP. Ma on również możliwość przerwania śsesji użytkownika po przekroczeniu przez niego ustalonego okresu bezczyśnności. Możliwe jest również dodawanie specyficznej informacji związanej z daną seśsją — odpowiedzialna za to jest właściwość 5GUUKQP8CNWG, będąca właściwością tablicową, indeksowaną 4QFKCđu9GD5PCR  łańcuchami znaków1. Fizycznie, komponent 65GUUKQP5GTXKEG wykorzystuje cookies (na komputerze klienta) do przechowywania informacji o śstanie sesji, możliwe jest jednak stworzenie klasy pochodnej wykorzystująścej w tym celu inne środki, jak zmienne URL lub ukryte pola. n User List Service — komponent ten utrzymuje listę użytkowników uprawnionych do logowania się do aplikacji oraz przechowuje niektśóre informacje o tych użytkownikach. Z każdą z opcji okna z rys. 23.4 związana jest rozwijana lista, oferująca do wyboru dostępne komponenty. Listę tę można poszerzyć o samodzierlnie tworzone komponenty — należy je tylko zarejestrować w WebSnap.r Możliwe jest na przykład stworzenie komponentu pochodnego do 65GUUKQP5GTXKEG, wykorzystującego inny niż cookies mechanizm do przechowywania informacji o stanie sersji. By wybrać wszystkie dostępne kategorie komponentów, zaznacz wszystkie pola opcji. Następnie z listy towarzyszącej opcji End User Adapter wybierz komponent TEndUser- SessionAdapter; komponentowi temu zostanie automatycznie przypisany identyfikator sesji użytkownika końcowego. Kliknij przycisk OK. Kolejna opcja związana jest z generowaną stroną HTML i umożliwia określenie jej nazwy — w naszym przykładzie będzie to Home. Za pomocą przycisku Page Options można określić właściwości tworzonej strony — Delphi udostępnia w tym celu kreator, którego okno jest przedstawione na rysunku 23.5. 4[UWPGM Okno właściwości docelowej strony HTML Opcje sekcji 2TQFWEGT umożliwiają wybranie odpowiedniego komponentu-producenta strony, stosownie do źródła danych, na podstawie którego generowany będzie strumień HTML stanowiący zawartość strony wynikowej. Wybierz komponent62CIG2TQFWEGT. W polu Script Engine można wybrać jeden z dwóch oferowanych przez Delphi 6 języków skryptowych: JScript i VBScript; pozostaw domyślną warśtość JScript. Opcje z grupy HTML umożliwiają określenie charakteru strony docelowej. Delphi 6 do- myślnie oferuje standardową stronę z prostym menu nawigacyjnym (Standard) oraz stronę 1 To stwierdzenie jest mocno uproszczone: 5GUUKQP8CNWG jest tak naprawdę kolekcją, posiada bowiem licznik elementów 8CNWG QWPV i ich tablicę 8CNWGU=?; dla uproszczenia można jednak przyjąć, iż istotnide mamy do czynienia z tablicą — uproszczenie to nie dotyczdy oczywiście kodu źródłowego aplikacji! — przyp. tłum.  úħè8++u6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ całkowicie pustą (Blank), możliwe jest jednakże zarejestrowanie w WebSnap własnego szablonu strony i użycie go w tym miejscu. Dla naszej aplikacji użyjemy strony standar- dowej (Standard). Pola Name i Title w sekcji Page powinny zawierać nazwę strony Home (nadaną jej w oknie głównym kreatora). Upewnij się ponadto, że zaznaczone jest pole Published, a pole Login Required pozostaje niezaznaczone. Po kliknięciu przycisku OK powrócisz do okna głównego kreatora; po kliknięciu jego przy- cisku OK powinieneś zobaczyć wygenerowany moduł danych, przypominający wyglądem ten z rysunku 23.6. 4[UWPGM Sieciowy moduł danych aplikacji WebSnap Nie powiedzieliśmy jeszcze ani słowa na temat komponentu 9GD#RR QORQPGPVU. Pełni on rolękoordynatora wiążącego ze sobą wszystkie pozostałe komponenty modułu danych, umożliwiając im wzajemne odwoływanie się do swych instancji oraz komunikowanie się ze sobą. Spojrzawszy w okno inspektora obiektów nietrudno zauważyć, iż większość jego właściwości to referencje do pozostałych komponentów.ś Na tym etapie projekt nadaje się do zapisania; nadaj modułowi sieciowemu nazwę YO*QOG (zamiast proponowanej 7PKV), formularzowi głównemu — 5GTXGT(QTO (zamiast propo- nowanej 7PKV), a projektowi — ) GOQ. Zawartość okna edytora kodu dla modułu YO*QOG też wygląda cokolwiek niecodziennie (rys. 23.7). Po pierwsze, od razu rzucają się w oczy zakładki u dolnej krawędzi okna. Każdy sieciowy moduł danych — jako że reprezentuje stronę WWW — oprócz kodu „pascalo- wego” posiada także „skryptowy” odpowiednik w formacie HTML, dostępny za pośrednic- twem drugiej (licząc od lewej) zakładki. Ponieważ w oknie edytora z rysunku 23.5 wy- brałeś standardowy szablon dla strony WWW, wygenerowana strona zawiera podstawowe 4QFKCđu9GD5PCR  menu nawigacyjne uwzględniające wszystkie opublikowane strony aplikacji; menu to będzie automatycznie uzupełniane w miarę dodawania nowych stron do aplikacji. 4[UWPGM Skrypt strony HTML związanej z sieciowym modułem danych Domyślny kod HTML, wygenerowany dla modułu YO*QOG, przedstawiamy na wydruku 23.1. Oprócz regularnych instrukcji HTML zawiera on także eleśmenty JavaScriptu. 9[FTWM Skrypt strony generowanej przez sieciowy moduł danyęch JVON JGCF VKVNG 2CIG6KVNG VKVNG JGCF DQF[ J #RRNKECVKQP6KVNG J KH PF7UGT.QIQWVPWNN ] KH PF7UGT KURNC[0COG ] J 9GNEQOG PF7UGT KURNC[0COG J _ KH PF7UGT.QIQWV PCDNGF ] CJTGH PF7UGT.QIQWV#U*4 (  .QIQWVC _ KH PF7UGT.QIKP(QTO PCDNGF ] CJTGH PF7UGT.QIKP(QTO#U*4 ( .QIKPC _ _ J 2CIG6KVNG J VCDNGEGNNURCEKPIEGNNRCFFKPI VF GPGY PWOGTCVQT 2CIGU U E HQT GCV PF GOQXG0GZV  úħè8++u6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ ] KH GKVGO 2WDNKUJGF ] KH E  U  PDUR^PDUR KH 2CIG0COGGKVGO 0COG U  CJTGH  GKVGO *4 (    GKVGO K6KVNG  C GNUG U GKVGO 6KVNG E _ _ KH E  4GURQPUG9TKVG U  VF VCDNG 2 (1065+   1.144GF 9KVCO[YCRNKMCELK9GD5PCR(106 2 #RNKMCELCVCRTGGPVWLGPQYGOQľNKYQħEK GNRJKYCMTGUKGVYQKTGPKCCRNKMCELK KPVGTGPVQY[EJ9GD5PCR 2 DQF[ JVON Zwróć uwagę, iż Delphi rozpoznaje składnię pliku HTML, wyróżniając elementy charak- terystyczne dla języka skryptowego (szczegóły związane z wyróżnianiem składni przez edytor kodu konfigurowalne są z poziomu opcji edytora — Tool/Editor Options — na stronie Color). Możliwe jest także użycie własnego edytora stron HTML, na przykład HomeSite, i zintegrowanie go z IDE — integracji takiej dokonuje się za pośrednictwem karty Internet opcji środowiskowych (Tools/Environment Options). W oknie Internet File Types zaznacz pozycję HTML i kliknij przycisk Edit, a następnie w polu Edit Action (okna Edit Type) wpisz (lub wybierz z listy) odpowiednią akcję zarejestrowaną w systemie dla plików HTML2. W wyniku kliknięcia zakładki HTML Result pojawi się kod strony wyni- kowej w „czystym” HTML-u, natomiast kliknięcie zakładki Preview udostępnia osta- teczną, graficzną postać strony. 4QDWFQYCCRNKMCELK Przystąpimy teraz do rozbudowy projektu wygenerowanego przez kreator. Na początek przejdź do modułu danych Home, wybierz komponent ApplicationAdapter i zmień jego właściwość ApplicationTitle na Delphi 6 Vademecum profesjonalisty — aplikacja demon- stracyjna WebSnap; gdy klikniesz zakładkę Preview (u dołu okna edytora kodu) zauważysz, iż zmiana ta odzwierciedlona została automatycznie w wyglądzie strony. Dzieje się tak za sprawą następującego elementu skryptowego: J #RRNKECVKQP6KVNG J powodującego włączenie tytułu aplikacji (#RRNKECVKQP6KVNG) do kodu HTML. Podobnie jak dla innych typów plików, dla plików *.HTM i *.HTML sterowanie dostępnymi akcjami 2 odbywa się z poziomu okna Typy plików opcji folderów; należy wśród zarejestrowanych typówd plików odnaleźć kategorię HTML Document — przyp. tłum. 4QFKCđu9GD5PCR  Następnie kliknij zakładkę HTML, przejdź w pobliże końca pliku i po znaczniku VCDNG wstaw następującą sekcję kodu: Przejdź następnie na zakładkę Preview, by zobaczyć nowy tekst w graficznym widoku strony. Uruchom teraz projekt; ukaże się pusty formularz — to właśnie jest serwer COM aplikacji. Jeżeli nie jest on jeszcze zarejestrowany, uruchomienie to dokona jego rejestracji. Zamknij ten formularz (kończąc w ten sposób wykonywanie aplikacji) i uruchom Web App Debu- gger (za pomocą odpowiedniego polecenia z menu Tools). Kliknij jego hiperłącze Default URL(powinno wskazywać aplikacjęServerInfo) i z wyświetlonej listy zarejestrowanych serwerów COM wybierz pozycję DDG6DEMO.DDG6TestApp, a następnie kliknij przycisk Go; w przeglądarce WWW powinna pojawić się wynikowa strona w formacie zbliżonym do prezentowanego na rysunku 23.8. 4[UWPGM Strona HTML wygenerowana przez aplikację WebSnap /GPWPCYKICE[LPG Dodamy teraz do aplikacji następną stronę ilustrującą funkcjonowanie menu nawigacyjnego. Przejdź do paska menu głównego IDE i z paska narzędziowego Internet (por. rysunek 23.1) wybierz drugi przycisk (New WebSnap Page Module). Spowoduje to uruchomienie krea- tora New WebSnap Page Module— pozostaw standardową zawartość wszystkich jego pól z wyjątkiem pola Name, w które powinieneś wpisać nazwę5KORNG. Spowoduje to utworzenie nowego modułu danych, zawierającego pojedynczy komponent 62CIG2TQFWEGT.  úħè8++u6YQTGPKGCRNKMCELKKPVGTPGVQY[EJ Ustawianie opcji tworzenia i buforowania modułu danoych Kreator New WebSnap Page Module zawiera (w sekcji Module Options) dwa pola: Create, okre- ślające zasady tworzenia instancji modułu danych oraz Caching, określające, co stanie się z in- stancją modułu danych, gdy zakończy on obsługę żądania. Instancje modułu danych mogą być tworzone zawsze (ang. Always) albo na żądanie (ang. On De- mand), czyli wówczas, gdy pojawi się żądanie obsługiwane przrez ten moduł. Tę drugą możliwość stosuje się do stron wyświetlanych bardzo rzadko, moduły odpowiadające stronom często wyświe- tlanym powinny korzystać z wariantu Always. Gdy moduł zakończy obsługę żądania, jego instancja może bryć zwolniona (opcja Delete Instance) lub przeniesiona do puli tzw. instancji oczekujących (opcja Cache Instance). Gdy pojawi się nowe żądanie dotyczące danego modułu, a we wspomnianej puli znajduje się jego instancja, to ona właśnie zostanie użyta przez system (zamiast tworzenia nowej instancji); należy jedynie mieć na uwadze fakt, iż stan wszystkich pól modułu będzie taki, jak w momencie zakończenia jego pracy w poprzednim „wcieleniu”. Kod HTML tego modułu jest identyczny z tym, który widziałeś przed chwilą (dla pierwszej strony). Zapisz moduł pod nazwąwmSimple. Dodaj teraz jakiś przykładowy tekst przy końcu modułu ś— na przykład taki: Skompiluj i uruchom aplikację za pośrednictwem Web App Debuggera (jak poprzednio). W obrazie strony głównej pojawi się teraz menu zawierające tytuły wszystkich innych stron. To menu jest rezultatem wykonania następującego frśagmentu skryptu: GPGY PWOGTCVQT 2CIGU U E HQT GCV PF GOQXG0GZV ] KH GKVGO 2WDNKUJGF ] KH E  U  PDUR^PDUR KH 2CIG0COGGKVGO 0COG U  CJTGH  GKVGO *4 (    GKVGO K6KVNG  C GNUG U GKVGO 6KVNG E _ _ KH E  4GURQPUG9TKVG U  Fragment ten realizuje iterację po wszystkich stronach zarejestrowanych w obiekcie 2CIGU, tworząc menu z ich nazw. Opcja menu zostaje uczyniona łącznikiem, jeżeli strona repre- zentowana przez tę opcję nie jest stroną bieżącą (innymi słowy, żadna strona nie zawiera 4QFKCđu9GD5PCR  łącznika do siebie samej). Nic oczywiście nie stoi na przeszkodzie, by to proste w gruncie rzeczy menu przystosować do bardziej specyficznych wymśogów konkretnej aplikacji. Gdy przyjrzysz się uważnie ekranowi komputera w momencrie przełączania stron, zobaczysz migoczący w tle formularz główny aplikacjri. Jest to spowodowane traktowaniem aplikacji przez Web App Debugger: przyr każdym nowym żądaniu uruchamia on aplikację zawierającą serwer COM, przekazruje jej żądanie, odbiera odpowiedź i zamyka aplikację. Generowaną stronę WWW można uczynić dostępną jedynie dla zalogowanych użytkow- ników — należy w tym celu zaznaczyć opcję Login Required w oknie kreatora New WebSnap Page Module. Utwórz nową stronę, nadaj jej nazwę LoggedIn i zaznacz wspo- mnianą opcję. Zapisz wygenerowany moduł pod nazwą wmLoggedIn. Następnie dodaj fragment tekstu powitalnego dla zalogowanego użytkowniśka: Pomiędzy kodem pascalowym stron Simple i LoggedIn istnieje niewielka różnica w ko- dzie rejestracyjnym, znajdującym się w sekcji KPKVKCNKCVKQP modułu: KPKVKCNKCVKQP KH9GD4GSWGUV*CPFNGT PKN VJGP 9GD4GSWGUV*CPFNGT#FF9GD/QFWNG(CEVQT[ 69GD2CIG/QFWNG(CEVQT[ TGCVG 6.QIIGF+P 
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Delphi 6. Vademecum profesjonalisty. Tom II
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


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