okladka
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
O Autorach (11)
Przedmowa do wydania oryginalnego (13)
Przedmowa do wydania polskiego (15)
Część V Zaawansowane wykorzystanie komponentów (17)
Rozdział 14. Pakiety (19)

  • Korzyści związane z używaniem pakietów (19)
    • Redukcja kodu wynikowego (19)
    • Zmniejszenie rozmiaru dystrybuowanych plików (20)
    • Pakiety jako zasobniki z komponentami (20)
  • Kiedy nie opłaca się używać pakietów? (20)
  • Typy pakietów (21)
  • Pliki pakietu (21)
  • Kompilacja aplikacji z podziałem na pakiety (21)
  • Instalowanie pakietów w środowisku IDE (22)
  • Tworzenie i instalowanie własnych pakietów (23)
    • Edytor pakietów (23)
    • Scenariusze projektowania pakietów (24)
  • Wersjonowanie pakietów (27)
  • Dyrektywy kompilacji związane z tworzeniem pakietów (28)
    • Słabe wiązanie modułu w pakiecie (28)
  • Konwencje nazewnictwa pakietów (29)
  • Pakiety rozszerzające funkcjonalność aplikacji (30)
    • Generowanie formularzy rozszerzających (30)
  • Eksportowanie funkcji i procedur z pakietów (36)
    • Wyświetlanie formularza zawartego w pakiecie (36)
  • Uzyskiwanie informacji o pakiecie (39)
  • Podsumowanie (42)
Rozdział 15. OLE, COM i ActiveX (43)
  • Podstawy COM (43)
    • COM - model obiektu-komponentu (43)
    • COM kontra ActiveX kontra OLE (44)
    • Nieco terminologii (45)
    • Cóż wspaniałego jest w ActiveX? (45)
    • OLE 1 kontra OLE 2 (45)
    • Pamięć strukturalna (46)
    • Jednolity transfer danych (46)
    • Modele wątkowe obiektu COM (46)
    • COM+ (47)
  • Technologia COM a Object Pascal (47)
    • Interfejsy (47)
    • Szczegóły korzystania z interfejsów COM w Delphi 6 (50)
    • Typ HRESULT (55)
  • Klasy COM i obiekty-producenci (57)
    • Klasy TComObject i TComObjectFactory (57)
    • Wewnątrzprocesowe serwery COM (58)
    • Zewnątrzprocesowe serwery COM (61)
    • Agregacja obiektów COM (62)
  • Rozproszona realizacja COM (DCOM) (63)
  • Automatyzacja COM (64)
    • Interfejs IDispatch (64)
    • Informacja o typie obiektu automatyzacji (66)
    • Wczesne wiązanie kontra późne wiązanie (66)
    • Rejestracja (67)
    • Tworzenie przykładowego serwera automatyzacji (67)
    • Tworzenie aplikacji-kontrolerów automatyzacji (80)
  • Zaawansowane techniki automatyzacji (87)
    • Zdarzenia automatyzacji (87)
    • Kolekcje automatyzacji (100)
    • Nowe typy interfejsów w bibliotece typu (108)
    • Wymiana danych binarnych (109)
    • Za kulisami, czyli elementy COM wbudowane w Object Pascal (111)
  • TOleContainer (121)
    • Elementy podstawowe - prosta aplikacja demonstracyjna (122)
    • Mechanizmy zaawansowane - nieco większa aplikacja (123)
  • Podsumowanie (132)
Rozdział 16. Programowanie rozszerzeń powłoki Windows (133)
  • Współpraca aplikacji z zasobnikiem systemowym (133)
    • Funkcja Shell_NotifyIcon (133)
    • Zarządzanie komunikatami (136)
    • Ikony i podpowiedzi (136)
    • Współdziałanie myszy z zasobnikiem (137)
    • Ukrywanie i odkrywanie aplikacji (140)
  • Paski narzędziowe aplikacji na pulpicie (147)
    • Formularz TAppBar - enkapsulacja paska aplikacji (148)
    • Przykład wykorzystania paska aplikacji (157)
  • Łączniki powłoki (shell links) (159)
    • Uzyskiwanie instancji interfejsu IShellLink (160)
    • Zastosowanie interfejsu IShellLink (160)
    • Przykładowa aplikacja (168)
  • Serwery rozszerzające powłoki (shell extensions) (175)
    • Tworzenie obiektów COM serwerów rozszerzających (176)
    • Rozszerzenia typu Copy Hook (177)
    • Rozszerzenia typu Context Menu (182)
    • Rozszerzenia typu Icon (191)
    • Rozszerzenia typu Info Tip (199)
  • Podsumowanie (205)
Rozdział 17. Open Tools API (207)
  • Interfejsy Open Tools (207)
  • Przykłady zastosowań (210)
    • Prymitywny kreator ("Dumb Wizard") (210)
    • Kreator kreatorów (213)
    • DDG SEARCH (223)
  • Kreatory formularzowe (233)
  • Podsumowanie (240)
Część VI Projektowanie aplikacji korporacyjnych (241)
Rozdział 18. Przetwarzanie transakcyjne - COM+/MTS (243)
  • Co to jest COM+? (243)
  • Dlaczego COM? (243)
  • Usługi (244)
    • Transakcje (244)
    • Bezpieczeństwo (245)
    • Aktywacja natychmiastowa (250)
    • Komponenty kolejkowane (250)
    • Komasacja obiektów (257)
    • Zdarzenia (258)
  • Mechanizmy wykonawcze (265)
    • Baza rejestracyjna (265)
    • Komponenty konfigurowane (265)
    • Kontekst wykonawczy (266)
    • Neutralność wątkowa (266)
  • Tworzenie aplikacji COM+ (266)
    • Cel: skalowalność (266)
    • Kontekst wykonawczy (267)
    • Obiekty stanowe i bezstanowe (267)
    • Czas życia obiektu a interfejsy (268)
    • Organizacja aplikacji COM+ (269)
    • Transakcje (269)
    • Zasoby (270)
  • COM+ w Delphi (270)
    • Kreatory obiektów COM+ (270)
    • Szkielet aplikacji wykorzystującej COM+ (271)
    • Przykładowa aplikacja (273)
    • Śledzenie aplikacji COM+ (288)
  • Podsumowanie (289)
Rozdział 19. CORBA (291)
  • Możliwości CORBA (291)
  • Architektura CORBA (292)
    • OSAgent (293)
    • Interfejsy (294)
  • IDL - język opisu interfejsów (294)
    • Typy podstawowe (295)
    • Typy definiowane przez użytkownika (296)
    • Aliasy (296)
    • Wyliczenia (296)
    • Struktury (296)
    • Tablice (296)
    • Sekwencje (297)
    • Argumenty wywołania metod (297)
    • Moduły (297)
  • Przykład: prosta aplikacja bankowa (298)
  • Złożone typy danych (307)
  • Delphi, CORBA i Enterprise Java Beans (EJBs) (313)
    • Trochę teorii... (313)
    • EJB są specjalizowanymi komponentami (314)
    • EJB rezydują wewnątrz pojemnika (314)
    • EJB posiadają predefiniowane API (314)
    • Interfejsy Home i Remote (314)
    • Rodzaje EJB (314)
    • Dostosowanie JBuildera 5 do tworzenia EJB (315)
    • Prosta aplikacja EJB (316)
  • CORBA a usługi sieciowe (321)
    • Tworzenie usługi sieciowej (322)
    • Tworzenie aplikacji-klienta SOAP (323)
    • Umieszczenie klienta CORBA w serwerze WWW (325)
  • Podsumowanie (328)
Rozdział 20. BizSnap, SOAP i usługi sieciowe (329)
  • Czym są usługi sieciowe? (329)
  • SOAP (330)
  • Tworzenie usługi sieciowej (330)
    • Definiowanie interfejsu wywoływalnego (332)
    • Implementowanie interfejsu wywoływalnego (333)
    • Testowanie usługi sieciowej (334)
  • Wywoływanie usługi sieciowej z aplikacji-klienta (336)
    • Generowanie modułu importowego dla zdalnego obiektu (337)
    • Konfigurowanie komponentu THTTPRIO (338)
  • Podsumowanie (339)
Rozdział 21. DataSnap vel MIDAS (341)
  • Zasady tworzenia aplikacji wielowarstwowych (341)
  • Korzyści wynikające z architektury wielowarstwowej (342)
    • Centralizacja logiki biznesowej (342)
    • Architektura "uproszczonego klienta" (343)
    • Automatyczne uzgadnianie błędów (343)
    • Model aktówki (343)
    • Odporność na błędy (343)
    • Równoważenie obciążenia serwera (344)
  • Typowa architektura DataSnap (344)
    • Serwer (344)
    • Klient (347)
  • Tworzenie aplikacji DataSnap (349)
    • Tworzenie serwera (349)
    • Tworzenie klienta (351)
  • Dodatkowe techniki optymalizowania aplikacji (357)
    • Techniki optymalizacji aplikacji-klienta (357)
    • Techniki optymalizacji serwera aplikacji (359)
  • Przykładowe aplikacje (368)
    • Złączenia (368)
  • Zaawansowane możliwości komponentu TClientDataSet (378)
    • Aplikacje dwuwarstwowe (378)
  • Klasyczne błędy (379)
  • Udostępnianie i instalacja aplikacji DataSnap (380)
    • Licencjonowanie DataSnap (380)
    • Konfigurowanie DCOM (380)
    • Pliki wymagane przez aplikację (381)
    • Kłopot z Internetem - zapory (382)
  • Podsumowanie (384)
Część VII Tworzenie aplikacji internetowych (385)
Rozdział 22. Active Server Pages (387)
  • Active Server Objects (387)
    • Active Server Pages (387)
  • Kreator obiektów ASO (389)
    • Edytor biblioteki typu (391)
    • Obiekt Response (394)
    • Pierwsze uruchomienie (395)
    • Obiekt Request (395)
    • Rekompilacja obiektów ASO (396)
    • Ponowne uruchomienie serwera ASP (397)
  • Obiekty Session, Server i Application (398)
  • Obiekty ASO i bazy danych (399)
  • Obiekty ASO a NetCLX (402)
  • Śledzenie obiektów ASO (403)
    • Śledzenie obiektów ASP za pomocą MTS (404)
    • Debugging ASO w Windows NT (405)
    • Debugging ASO w Windows 2000 (406)
  • Podsumowanie (407)
Rozdział 23. WebSnap (409)
  • Możliwości WebSnap (409)
    • Wiele modułów danych (409)
    • Techniki skryptowe (409)
    • Komponenty-adaptery (410)
    • Wielokierunkowe zarządzanie stronami (410)
    • Komponenty-producenci (410)
    • Zarządzanie sesjami (410)
    • Usługi logowania (411)
    • Zarządzanie informacją o użytkownikach (411)
    • Zarządzanie zasobami rozproszonymi (411)
    • Usługi ładowania plików (411)
  • Tworzenie aplikacji WebSnap (411)
    • Projektowanie aplikacji (411)
    • Rozbudowa aplikacji (418)
    • Menu nawigacyjne (419)
    • Logowanie (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 (429)
    • Wyświetlanie zawartości bazy danych (430)
    • Konwertowanie aplikacji do postaci ISAPI DLL (434)
  • Zagadnienia zaawansowane (435)
    • Komponent LocateFileService (435)
    • Ładowanie plików (436)
    • Wykorzystanie specyficznych szablonów (438)
    • Współpraca komponentu TAdapterPageProducer z komponentami tworzonymi przez użytkowników (438)
  • Podsumowanie (440)
Rozdział 24. Aplikacje dla telefonii bezprzewodowej (441)
  • Ewolucja oprogramowania - skąd przychodzimy? (441)
    • Przed rokiem 1980: (442)
    • Późne lata 80.: biurkowe aplikacje bazodanowe (442)
    • Wczesne lata 90.: aplikacje klient-serwer (442)
    • Późne lata 90.: aplikacje wielowarstwowe i Internet (442)
    • Wiek XXI: "ruchoma" informatyka (443)
  • Ruchome urządzenia bezprzewodowe (443)
    • Telefony komórkowe (443)
    • Urządzenia z systemem PalmOS (443)
    • PocketPC (444)
    • RIM BlackBerry (444)
  • Łączność radiowa (444)
    • GSM, CDMA i TDMA (444)
    • CDPD (444)
    • 3G (445)
    • GPRS (445)
    • BlueTooth (445)
    • 802.11 (445)
  • Serwerowe technologie bezprzewodowe (446)
    • SMS (446)
    • WAP (446)
    • I-mode (456)
    • PQA (456)
  • Użytkowe aspekty aplikacji bezprzewodowych (459)
    • Komutacja obwodów kontra komutacja pakietów (459)
    • "Bezprzewodowy" nie znaczy "internetowy" (460)
    • Czynniki geometryczne (460)
    • Wprowadzanie danych i techniki nawigacji (460)
    • M-commerce (460)
  • Podsumowanie (461)
Dodatki (463)
Dodatek A Skrócony spis treści tomu 1 (465)
Dodatek B Skorowidz tomu 1 (467)
Skorowidz tomu 2 (485)