
Doskonałe źródło wiedzy dla wszystkich programistów C#
- Szczegółowe omówienie C# i .NET w wersji 2.0
- Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
- Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
- Elementy platformy .NET
- Podstawy języka C#
- Praca z klasami i obiektami w C#
- Przetwarzanie tekstu oraz operacje wejścia i wyjścia
- Tworzenie aplikacji Window Forms
- Korzystanie z biblioteki GDI+
- Połączenia z bazami danych za pomocą ADO.NET
- Aplikacje wielowątkowe oraz rozproszone
- Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
O autorze (17)Podziękowania (18)
Słowo wstępne (19)
Przedmowa (21)
Część I Podstawy programowania w języku C# i wprowadzenie do technologii .NET (25)
Rozdział 1. Wprowadzenie do technologii .NET i języka C# (27)
- 1.1. Przegląd składników platformy .NET (28)
- Microsoft .NET i standardy CLI (30)
- 1.2. Wspólne środowisko uruchomieniowe (CLR) (32)
- Kompilacja kodu platformy .NET (32)
- Wspólny system typów (CTS) (34)
- Zestawy .NET (36)
- 1.3. Biblioteka klas platformy (FCL) (41)
- 1.4. Praca z platformą .NET i zestawem narzędzi .NET Framework SDK (44)
- Aktualizowanie platformy .NET Framework (45)
- Narzędzia platformy .NET Framework (46)
- Ildasm.exe (47)
- wincv.exe (50)
- Narzędzie Framework Configuration (50)
- 1.5. Wyjaśnienie działania kompilatora C# (53)
- Lokalizowanie kompilatora (53)
- Kompilowanie oprogramowania z poziomu wiersza poleceń (54)
- 1.6. Podsumowanie (57)
- 1.7. Sprawdź, czego się nauczyłeś (57)
- 2.1. Podstawowa struktura programu C# (60)
- Ogólne uwagi odnośnie programowania w języku C# (62)
- 2.2. Typy proste (65)
- decimal (67)
- bool (67)
- char (67)
- byte, sbyte (68)
- short, int, long (68)
- single i double (68)
- Konwertowanie łańcuchów numerycznych za pomocą metod Parse() i TryParse() (69)
- 2.3. Operatory arytmetyczne, logiczne i warunkowe (69)
- Operatory arytmetyczne (69)
- Operatory warunkowe i relacyjne (70)
- Instrukcje kontrolujące przepływ sterowania (71)
- if-else (71)
- switch (73)
- 2.4. Pętle (74)
- Pętla while (74)
- Pętla do (74)
- Pętla for (75)
- Pętla foreach (75)
- Kontrola przepływu sterowania w pętlach (76)
- 2.5. Dyrektywy preprocesora C# (76)
- Kompilacja warunkowa (77)
- Dyrektywy diagnostyczne (79)
- Regiony (obszary) kodu (79)
- 2.6. Łańcuchy znaków (79)
- Stałe łańcuchowe (80)
- Operacje na łańcuchach (81)
- 2.7. Typy wyliczeniowe (84)
- Praca z typami wyliczeniowymi (84)
- Metody klasy System.Enum (85)
- Typy wyliczeniowe i flagi bitowe (86)
- 2.8. Tablice (87)
- Deklarowanie i tworzenie tablic (88)
- Stosowanie metod i właściwości tablicy System.Array (88)
- 2.9. Typy referencyjne i wartościowe (90)
- Klasy System.Object i System.ValueType (90)
- Techniki przydzielania pamięci dla typów referencyjnych i typów wartościowych (91)
- Technika pakowania (92)
- Podsumowanie różnic pomiędzy typami wartościowymi a typami referencyjnymi (94)
- 2.10. Podsumowanie (95)
- 2.11. Sprawdź, czego się nauczyłeś (95)
- 3.1. Wprowadzenie do klas języka C# (98)
- 3.2. Definiowanie klas (98)
- Atrybuty (99)
- Modyfikatory dostępu (102)
- Modyfikatory abstract, sealed i static (102)
- Identyfikator klasy (103)
- Klasy bazowe, interfejsy i dziedziczenie (103)
- 3.3. Przegląd składowych klasy (104)
- Modyfikatory dostępu do składowych (104)
- 3.4. Stałe, pola i właściwości (104)
- Stałe (106)
- Pola (107)
- Właściwości (109)
- Indeksery (111)
- 3.5. Metody (113)
- Modyfikatory metod (113)
- Przekazywanie parametrów (118)
- 3.6. Konstruktory (120)
- Konstruktor instancji (120)
- Konstruktor prywatny (124)
- Konstruktor statyczny (125)
- 3.7. Delegacje i zdarzenia (126)
- Delegacje (127)
- Obsługa zdarzeń z wykorzystaniem delegacji (129)
- 3.8. Przeciążanie operatorów (136)
- 3.9. Interfejsy (139)
- Tworzenie i stosowanie interfejsów niestandardowych (139)
- Praca z interfejsami (142)
- 3.10. Klasy uniwersalne (143)
- 3.11. Struktury (146)
- Definiowanie struktur (147)
- Stosowanie struktur z metodami i właściwościami (148)
- 3.12. Struktury kontra klasy (149)
- Struktury są typami wartościowymi, klasy są typami referencyjnymi (149)
- W przeciwieństwie do klas struktury nie mogą być dziedziczone (150)
- Ogólne reguły, które należy uwzględniać, wybierając pomiędzy strukturami a klasami (150)
- 3.13. Podsumowanie (151)
- 3.14. Sprawdź, czego się nauczyłeś (151)
- 4.1. Tworzenie obiektów (156)
- Przykład: Tworzenie obiektów za pomocą wielu klas fabrykujących (158)
- 4.2. Obsługa wyjątków (159)
- Klasa System.Exception (160)
- Pisanie kodu obsługującego wyjątki (160)
- Przykład: Obsługa wspólnych wyjątków SystemException (163)
- Tworzenie niestandardowych klas wyjątków (164)
- Wyjątki nieobsługiwane (167)
- Wskazówki dotyczące obsługi wyjątków (168)
- 4.3. Implementowanie metod klasy System.Object w klasach niestandardowych (170)
- Metoda ToString() jako narzędzie opisywania obiektów (170)
- Metoda Equals() jako narzędzie porównywania obiektów (172)
- Klonowanie jako sposób tworzenia kopii obiektów (174)
- 4.4. Praca z klasami i interfejsami kolekcji technologii .NET (176)
- Interfejsy kolekcji (176)
- Przestrzeń nazw System.Collections (185)
- Klasy Stack i Queue (185)
- Klasa ArrayList (187)
- Klasa Hashtable (188)
- Przestrzeń nazw System.Collections.Generic (191)
- 4.5. Serializacja obiektów (195)
- Serializacja binarna (195)
- 4.6. Zarządzanie cyklem życia obiektów (199)
- Odzyskiwanie pamięci w technologii .NET (199)
- 4.7. Podsumowanie (205)
- 4.8. Sprawdź, czego się nauczyłeś (205)
Rozdział 5. Przetwarzanie tekstu i plikowe operacje wejścia-wyjścia w języku C# (209)
- 5.1. Znaki i format Unicode (210)
- Format Unicode (211)
- Praca ze znakami (212)
- 5.2. Klasa String (215)
- Tworzenie łańcuchów (216)
- Przegląd operacji na łańcuchach znakowych (218)
- 5.3. Porównywanie łańcuchów znakowych (219)
- Stosowanie metody String.Compare() (219)
- Stosowanie metody String.CompareOrdinal() (221)
- 5.4. Przeszukiwanie, modyfikowanie i kodowanie zawartości łańcuchów (222)
- Przeszukiwanie zawartości łańcuchów (222)
- Przeszukiwanie łańcuchów zawierających pary zastępcze (222)
- Przekształcanie łańcuchów (223)
- Kodowanie łańcuchów (225)
- 5.5. Klasa StringBuilder (226)
- Przegląd składowych klasy StringBuilder (227)
- Konkatenacja w klasie StringBuilder kontra tradycyjna konkatenacja łańcuchów (228)
- 5.6. Formatowanie wartości liczbowych oraz daty i godziny (229)
- Konstruowanie elementów formatowania (230)
- Formatowanie wartości liczbowych (231)
- Formatowanie daty i godziny (231)
- 5.7. Wyrażenia regularne (236)
- Klasa Regex (237)
- Tworzenie wyrażeń regularnych (242)
- Przykład dopasowywania wzorca do łańcucha (242)
- Praca z grupami (245)
- Przykłady stosowania wyrażeń regularnych (247)
- 5.8. Przestrzeń nazw System.IO - klasy obsługujące odczytywanie i zapisywanie strumieni danych (248)
- Klasa Stream (249)
- Klasa FileStream (249)
- Klasa MemoryStream (251)
- Klasa BufferedStream (252)
- Stosowanie klas StreamReader i StreamWriter odpowiednio do odczytywania i zapisywania wierszy tekstu (253)
- Klasy StringWriter i StringReader (255)
- Szyfrowanie danych za pomocą klasy CryptoStream (256)
- 5.9. Przestrzeń nazw System.IO - katalogi i pliki (259)
- Klasa FileSystemInfo (259)
- Praca z katalogami za pomocą klas DirectoryInfo, Directory oraz Path (260)
- Praca z plikami za pomocą klas FileInfo i File (263)
- 5.10. Podsumowanie (265)
- 5.11. Sprawdź, czego się nauczyłeś (266)
- 6.1. Programowanie aplikacji Windows Forms (270)
- Ręczne konstruowanie aplikacji Windows Forms (271)
- 6.2. Klasy kontrolek przestrzeni nazw Windows.Forms (274)
- Klasa Control (274)
- Praca z kontrolkami (276)
- Zdarzenia związane z kontrolkami (281)
- 6.3. Klasa Form (286)
- Konfigurowanie wyglądu formularza (288)
- Ustawianie położenia i rozmiaru formularza (291)
- Wyświetlanie formularzy (292)
- Cykl życia formularza niemodalnego (293)
- Wzajemne oddziaływanie formularzy - przykład prostej aplikacji (295)
- Formularz właściciela i formularze własności (298)
- Okna komunikatów i okna dialogowe (300)
- Formularze MDI (302)
- 6.4. Praca z menu (306)
- Właściwości klasy MenuItem (306)
- Menu kontekstowe (307)
- 6.5. Dodawanie pomocy do formularza (308)
- Podpowiedzi (309)
- Obsługa zdarzeń naciśnięcia klawisza F1 i kliknięcia przycisku Pomoc (310)
- Komponent HelpProvider (312)
- 6.6. Dziedziczenie formularzy (313)
- Konstruowanie i korzystanie z bibliotek formularzy (313)
- Korzystanie z formularzy potomnych (314)
- 6.7. Podsumowanie (315)
- 6.8. Sprawdź, czego się nauczyłeś (316)
- 7.1. Przegląd dostępnych w technologii .NET kontrolek formularzy Windows Forms (318)
- 7.2. Klasy przycisków, grup kontrolek, paneli i etykiet (321)
- Klasa Button (321)
- Klasa CheckBox (323)
- Klasa RadioButton (324)
- Klasa GroupBox (325)
- Klasa Panel (326)
- Klasa Label (328)
- 7.3. Kontrolki PictureBox i TextBox (329)
- Klasa PictureBox (329)
- Klasa TextBox (331)
- 7.4. Klasy ListBox, CheckedListBox i ComboBox (333)
- Klasa ListBox (333)
- Pozostałe kontrolki list: ComboBox i CheckedListBox (338)
- 7.5. Klasy ListView i TreeView (339)
- Klasa ListView (339)
- Klasa TreeView (346)
- 7.6.Klasy ProgressBar, Timer i StatusStrip (351)
- Konstruowanie obiektów kontrolek StatusStrip (351)
- 7.7. Konstruowanie kontrolek niestandardowych (353)
- Rozbudowa istniejącej kontrolki (354)
- Budowa niestandardowej kontrolki użytkownika (354)
- Przykład kontrolki UserControl (355)
- Stosowanie niestandardowych kontrolek użytkownika (356)
- Praca z kontrolkami użytkownika na etapie projektowania aplikacji (357)
- 7.8. Stosowanie techniki przeciągania i upuszczania w kontrolkach formularzy WinForms (358)
- Wprowadzenie do techniki przeciągania i upuszczania (358)
- 7.9. Korzystanie z zasobów (364)
- Praca z plikami zasobów (364)
- Stosowanie plików zasobów w procesie tworzenia formularzy obsługujących wiele języków (368)
- 7.10. Podsumowanie (371)
- 7.11. Sprawdź, czego się nauczyłeś (371)
- 8.1. Przegląd biblioteki GDI+ (374)
- Klasa Graphics (375)
- Zdarzenie Paint (379)
- 8.2. Używanie obiektów klasy Graphics (382)
- Podstawowe operacje grafiki dwuwymiarowej (383)
- Pióra (387)
- Pędzle (389)
- Kolory (393)
- Przykładowy projekt: budowa przeglądarki kolorów (396)
- 8.3. Obrazy (400)
- Wczytywanie i zapisywanie obrazów (400)
- Operacje na obrazach (403)
- Przykładowy projekt: praca z obrazami (406)
- Uwaga odnośnie biblioteki GDI i BitBlt dla platformy Microsoft Windows (412)
- 8.4. Podsumowanie (413)
- 8.5. Sprawdź, czego się nauczyłeś (414)
- 9.1. Czcionki (418)
- Rodziny czcionek (419)
- Klasa Font (420)
- 9.2. Rysowanie łańcuchów tekstowych (424)
- Rysowanie tekstu wielowierszowego (424)
- Formatowanie łańcuchów za pomocą klasy StringFormat (425)
- Stosowanie pozycji tabulacyjnych (425)
- Przycinanie, wyrównywanie i zawijanie łańcuchów (428)
- 9.3. Drukowanie (429)
- Wprowadzenie (430)
- Klasa PrintDocument (431)
- Ustawienia drukarki (431)
- Ustawienia strony (434)
- Zdarzenia PrintDocument (435)
- Zdarzenie PrintPage (437)
- Podgląd raportu przeznaczonego do wydrukowania (438)
- Przykład raportu (439)
- Tworzenie niestandardowych klas potomnych względem klasy PrintDocument (443)
- 9.4. Podsumowanie (445)
- 9.5. Sprawdź, czego się nauczyłeś (446)
- 10.1. Praca z formatem XML (448)
- Tworzenie dokumentów XML za pomocą mechanizmu serializacji do formatu XML (449)
- Definicja schematu XML (XSD) (452)
- Stosowanie arkuszy stylów XML (454)
- 10.2. Techniki odczytu danych w formacie XML (457)
- Klasa XmlReader (458)
- Klasa XmlNodeReader (463)
- Klasa XmlReaderSettings (464)
- Weryfikacja danych XML z wykorzystaniem schematu XML (464)
- Opcje związane z odczytem danych XML (466)
- 10.3. Techniki zapisywania danych w formacie XML (466)
- 10.4. Przeszukiwanie kodu XML za pomocą instrukcji języka XPath (469)
- Konstruowanie zapytań języka XPath (470)
- Klasa XmlDocument i instrukcje języka XPath (473)
- Klasa XPathDocument i instrukcje języka XPath (473)
- Klasa XmlDataDocument i instrukcje języka XPath (474)
- 10.5. Podsumowanie (476)
- 10.6. Sprawdź, czego się nauczyłeś (477)
- 11.1. Architektura ADO.NET (480)
- Dostawca danych OLE DB w .NET (481)
- Dostawca danych .NET (481)
- 11.2. Modele dostępu do danych - połączeniowy i bezpołączeniowy (483)
- Model połączeniowy (484)
- Model bezpołączeniowy (485)
- 11.3. Model połączeniowy ADO.NET (487)
- Klasy do obsługi połączenia (487)
- Obiekt polecenia (490)
- Obiekt DataReader (494)
- 11.4. Klasy DataSet, DataTable i model bezpołączeniowy (497)
- Klasa DataSet (497)
- Kolekcja DataTable (497)
- Ładowanie danych do obiektu DataSet (501)
- Używanie obiektu DataAdapter do aktualizacji bazy danych (503)
- Definiowanie relacji między tabelami w obiekcie DataSet (506)
- Wybór między modelem połączeniowym a bezpołączeniowym (509)
- 11.5. XML i ADO.NET (509)
- Używanie obiektów DataSet do tworzenia plików z danymi i szablonami XML (510)
- Tworzenie szablonu obiektu DataSet na podstawie pliku XML (512)
- Wczytywanie danych XML do obiektu DataSet (512)
- 11.6. Podsumowanie (515)
- 11.7. Sprawdź, czego się nauczyłeś (515)
- 12.1. Wprowadzenie do wiązania danych (518)
- Proste wiązanie danych (518)
- Złożone wiązanie danych z kontrolkami obsługującymi listy (520)
- Jednostronne i dwustronne wiązanie danych (521)
- Użycie menedżerów wiązania (523)
- 12.2. Używanie prostego i złożonego wiązania danych w aplikacjach (526)
- Wiązanie z obiektem DataTable (526)
- Wiązanie kontrolek z obiektem ArrayList (528)
- Dodawanie elementów do źródła danych (530)
- Identyfikacja aktualizacji (531)
- Aktualizacja oryginalnej bazy danych (532)
- 12.3. Klasa DataGridView (532)
- Właściwości (532)
- Zdarzenia (539)
- Ustawianie relacji nadrzędna-szczegółowa w kontrolkach DataGridView (543)
- Tryb wirtualny (545)
- 12.4. Podsumowanie (550)
- 12.5. Sprawdź, czego się nauczyłeś (550)
Rozdział 13. Programowanie asynchroniczne i wielowątkowość (555)
- 13.1. Czym jest wątek? (556)
- Wielowątkowość (556)
- 13.2. Programowanie asynchroniczne (559)
- Delegacje asynchroniczne (560)
- Przykłady implementacji wywołań asynchronicznych (563)
- 13.3. Bezpośrednie używanie wątków (571)
- Tworzenie i używanie wątków (571)
- Praktyczne wykorzystanie wielowątkowości (574)
- Używanie puli wątków (577)
- Klasy Timer (578)
- 13.4. Synchronizacja wątków (580)
- Atrybut Synchronization (582)
- Klasa Monitor (583)
- Muteksy (584)
- Semafory (585)
- Unikanie zakleszczenia (587)
- Podsumowanie technik synchronizacji (588)
- 13.5. Podsumowanie (589)
- 13.6. Sprawdź, czego się nauczyłeś (590)
- 14.1. Domeny aplikacji (594)
- Zalety domen aplikacji (594)
- Domeny aplikacji i zestawy (595)
- Używanie klasy AppDomain (596)
- 14.2. Zdalne korzystanie z obiektów (598)
- Architektura technologii Remoting (600)
- Rodzaje wywołań zdalnych (603)
- Obiekty aktywowane przez klienta (604)
- Obiekty aktywowane przez serwer (605)
- Rejestracja typów (606)
- Zdalne wywołania obiektów aktywowanych przez serwer (609)
- Zdalne wywoływanie obiektów aktywowanych przez klienta (616)
- Projektowanie aplikacji rozproszonych (621)
- 14.3. Dzierżawy i sponsorowanie (622)
- Dzierżawa (623)
- Sponsorowanie (626)
- 14.4. Podsumowanie (628)
- 14.5. Sprawdź, czego się nauczyłeś (628)
- 15.1. Stosowanie standardów programowania platformy .NET (633)
- Używanie FxCop (633)
- 15.2. Zestawy z silną nazwą (636)
- Tworzenie zestawów z silną nazwą (637)
- Podpisywanie opóźnione (638)
- Globalna pamięć podręczna zestawów (GAC) (639)
- Kontrola wersji (640)
- 15.3. Bezpieczeństwo (641)
- Uprawnienia i zbiory uprawnień (642)
- Dowód (646)
- Zasady bezpieczeństwa (648)
- Konfigurowanie zasad bezpieczeństwa (650)
- Narzędzie konfiguracyjne platformy .NET (651)
- Konfiguracja bezpieczeństwa opartego na uprawnieniach kodu za pomocą narzędzia konfiguracyjnego - przykład praktyczny (653)
- Żądanie uprawnień dla zestawu (657)
- Zabezpieczanie programowe (660)
- 15.4. Instalowanie aplikacji (667)
- Instalacja w systemie Windows - XCOPY a instalator Windows (667)
- Instalowanie zestawów w globalnej pamięci podręcznej zestawów (668)
- Instalowanie zestawów prywatnych (668)
- Konfigurowanie za pomocą elementu codeBase (669)
- Używanie pliku konfiguracyjnego do zarządzania różnymi wersjami zestawów (670)
- Wersje zestawu i informacje o produkcie (670)
- 15.5. Podsumowanie (671)
- 15.6. Sprawdź, czego się nauczyłeś (672)
Rozdział 16. Formularze i kontrolki ASP.NET (677)
- 16.1. Komunikacja klient-serwer poprzez połączenie internetowe (678)
- Przykładowa aplikacja internetowa (680)
- Kalkulator BMI w języku ASP.NET (684)
- Model wykorzystujący kod inline (685)
- Model wykorzystujący kod ukryty (691)
- Kod ukryty i klasy częściowe (695)
- Klasa Page (696)
- 16.2. Kontrolki formularzy Web (699)
- Przegląd kontrolek Web (700)
- Określanie wyglądu kontrolek Web (701)
- Proste kontrolki (701)
- Kontrolki do obsługi list (706)
- Kontrolka DataList (708)
- 16.3. Wiązanie danych oraz kontrolki do obsługi źródeł danych (711)
- Wiązanie z obiektem DataReader (711)
- Wiązanie z obiektem DataSet (712)
- Kontrolki do obsługi źródeł danych (714)
- 16.4. Kontrolki walidacyjne (721)
- Używanie kontrolek walidacyjnych (721)
- 16.5. Strony główne i strony z treścią (725)
- Tworzenie strony głównej (726)
- Tworzenie stron z treścią (727)
- Dostęp do strony głównej ze stron z treścią (728)
- 16.6. Tworzenie i używanie niestandardowych kontrolek Web (729)
- Przykładowa niestandardowa kontrolka (729)
- Używanie niestandardowych kontrolek (732)
- Zarządzanie stanem kontrolki (732)
- Kontrolki złożone (733)
- 16.7. Wybór kontrolki Web do wyświetlania danych (736)
- 16.8. Podsumowanie (737)
- 16.9. Sprawdź, czego się nauczyłeś (737)
- 17.1. Klasy HttpRequest i HttpResponse (740)
- Obiekt HttpRequest (741)
- Obiekt HttpResponse (744)
- 17.2. ASP.NET i pliki konfiguracyjne (748)
- Zawartość pliku web.config (749)
- Dodawanie niestandardowych elementów konfiguracyjnych (753)
- 17.3. Bezpieczeństwo aplikacji ASP.NET (756)
- Uwierzytelnianie przy użyciu formularzy (757)
- Przykład zastosowania uwierzytelniania przy użyciu formularzy (759)
- 17.4. Przechowywanie stanu (763)
- Stan aplikacji (765)
- Stan sesji (766)
- 17.5. Pamięć podręczna (769)
- Umieszczanie w pamięci podręcznej odpowiedzi (769)
- Umieszczanie danych w pamięci podręcznej (772)
- 17.6. Tworzenie klienta używającego klas WebRequest i WebResponse (775)
- Klasy WebRequest i WebResponse (775)
- Przykładowy klient internetowy (775)
- 17.7. Potoki HTTP (777)
- Przetwarzania żądania w potoku (778)
- Klasa HttpApplication (779)
- Moduły HTTP (782)
- Obiekty obsługi HTTP (787)
- 17.8. Podsumowanie (790)
- 17.9. Sprawdź, czego się nauczyłeś (791)
- 18.1. Wprowadzenie do usług Web (794)
- Wyszukiwanie i używanie usług Web (796)
- 18.2. Tworzenie usługi Web (798)
- Samodzielne tworzenie usługi Web (799)
- Tworzenie usługi Web za pomocą środowiska VS.NET (802)
- Rozszerzanie usług Web za pomocą atrybutów WebService i WebMethod (803)
- 18.3. Tworzenie klienta usługi Web (806)
- Tworzenie prostego klienta używającego klasy usługi Web (807)
- Tworzenie pośrednika za pomocą środowiska Visual Studio .NET (814)
- 18.4. Język WSDL i protokół SOAP (815)
- Język opisu usług Web (WSDL) (815)
- Prosty protokół dostępu do obiektów (SOAP) (818)
- 18.5. Używanie złożonych typów danych w usługach Web (825)
- Usługa Web zwracająca rysunki (825)
- Używanie usług Web Amazonu (827)
- Tworzenie pośrednika dla usług Web Amazonu (829)
- Tworzenie klienta usługi Web za pomocą formularzy Windows (830)
- 18.6. Wydajność usług Web (832)
- Konfigurowanie połączenia HTTP (833)
- Obsługa dużych ilości danych (834)
- 18.7. Podsumowanie (835)
- 18.8. Sprawdź, czego się nauczyłeś (835)
Dodatek A Elementy wprowadzone w .NET 2.0 i C# 2.0 (839)
Dodatek B Zdarzenia i delegacje kontrolki DataGridView (843)
Odpowiedzi do pytań (853)
Skorowidz (869)