54

Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary
Page 2: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Page 3: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

3

Spis tre�ci

Wst�p ...................................................................................................................................... 13

1. Prezentacja C# ............................................................................................................. 19Dlaczego C#? Dlaczego .NET? 19Biblioteka klas platformy .NET 20Styl j�zyka 21

�atwo�� konstruowania oprogramowania 22Kod zarz�dzany 23Ci�g�o�� i „ekosystem” Windows 24

C# 4.0, .NET 4.0 oraz Visual Studio 2010 25Podsumowanie 27

2. Podstawowe techniki programowania ......................................................................29Pocz�tki 29Przestrzenie nazw i typy 32Projekty i solucje 37Komentarze, regiony oraz czytelno�� 42

Nieprawid�owe komentarze 43Komentarze dokumentuj�ce XML 44

Zmienne 45Typy zmiennych 46

Wyra�enia i instrukcje 52Instrukcje przypisania 55Operatory inkrementacji i dekrementacji 55

Instrukcje sterowania przep�ywem i wyboru 56Instrukcje if 58Instrukcje switch oraz case 62

Instrukcje iteracji 64Instrukcje foreach 65Instrukcje for 67Instrukcje while oraz do 69Przerywanie wykonywania p�tli 70

Page 4: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

4 � Spis tre�ci

Metody 71Podsumowanie 74

3. Wyodr�bnianie idei przy wykorzystaniu klas i struktur ............................................ 77Dziel i rz�d 77

Wyodr�bnianie idei w formie metod 77Wyodr�bnianie idei przy u�yciu obiektów i klas 80

Definiowanie klas 81Reprezentowanie stanu przy u�yciu w�a�ciwo�ci 82Poziomy ochrony 84Inicjalizacja przy u�yciu konstruktora 86Pola: miejsca do zapisywania danych 90Pola mog� si� zmienia�, lecz sta�e nie 92Pola i w�a�ciwo�ci tylko do odczytu 93

Typ enum — powi�zane ze sob� sta�e 96Typy warto�ciowe i referencyjne 100Zbyt wiele konstruktorów, Panie Mozart 105Przeci��anie 105

Metody przeci��one oraz domy�lne parametry nazwane 106Inicjalizatory obiektów 108Definiowanie metod 112

Deklarowanie metod statycznych 115Pola i w�a�ciwo�ci statyczne 116

Konstruktory statyczne 117Podsumowanie 119

4. Rozszerzalno�� i polimorfizm ....................................................................................121Tworzenie asocjacji poprzez kompozycj� i agregacj� 122Dziedziczenie i polimorfizm 124Zast�powanie metod w klasach pochodnych 126

Ukrywanie sk�adowych klasy bazowej przy u�yciu new 127Zast�powanie metod przy u�yciu modyfikatorów virtual i override 129

Dziedziczenie i ochrona 132Wywo�ywanie metod klasy bazowej 134Dot�d i ani kroku dalej: modyfikator sealed 136Wymuszanie przes�aniania — metody abstrakcyjne 138Wszystkie typy dziedzicz� po klasie Object 144

Pakowanie i rozpakowywanie typów warto�ciowych 144C# nie obs�uguje wielokrotnego dziedziczenia implementacji 149C# obs�uguje wielokrotne dziedziczenie interfejsów 149Tworzenie jednych interfejsów na bazie innych 152

Jawna implementacja interfejsów 153Ostateczne rozwi�zanie: sprawdzanie typów podczas wykonywania programu 157Podsumowanie 158

Page 5: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Spis tre�ci � 5

5. Delegacje — �atwo�� komponowania i rozszerzalno�� .......................................... 159Kompozycja funkcyjna wykorzystuj�ca delegacje 166Typ Action<T> — akcje ogólne 172Predicate<T> — predykaty ogólne 175Stosowanie metod anonimowych 177Tworzenie delegacji przy u�yciu wyra�e lambda 178Delegacje we w�a�ciwo�ciach 180Ogólne delegacje do funkcji 182Informowanie klientów za pomoc� zdarze 186

Udost�pnianie du�ej liczby zdarze 194Podsumowanie 197

6. Obs�uga b��dów ........................................................................................................ 199Kiedy i jak uzna� niepowodzenie 204Zwracanie kodu b��du 207

Debugowanie warto�ci zwracanych 213Wyj�tki 214

Obs�uga wyj�tków 219Kiedy s� wykonywane bloki finally? 226Okre�lanie, jakie wyj�tki b�d� przechwytywane 227Wyj�tki niestandardowe 230

Podsumowanie 232

7. Tablice i listy ..............................................................................................................233Tablice 233

Tworzenie i inicjalizacja 234W�asne typy w tablicach 237Sk�adowe tablic 242Wielko�� tablic 247

List<T> 254Niestandardowe indeksatory 257Wyszukiwanie i sortowanie 264

Kolekcje i polimorfizm 264Tworzenie w�asnych implementacji IEnumerable<T> 268

Podsumowanie 274

8. LINQ ............................................................................................................................ 275Wyra�enia zapyta 275

Wyra�enia zapyta a wywo�ania metod 277Metody rozszerze a LINQ 278Klauzule let 280

Koncepcje i techniki LINQ 281Delegacje i wyra�enia lambda 281Styl funkcyjny i kompozycja 283Wykonywanie opónione 284

Page 6: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

6 � Spis tre�ci

Operatory LINQ 285Filtrowanie 285Porz�dkowanie 286Konkatenacja 289Grupowanie 289Projekcje 291Spinanie 298Robimy si� wybredni 299Testowanie ca�ej kolekcji 300Agregacja 302Operacje na zbiorach 304��czenie 304Konwersje 305

Podsumowanie 306

9. Klasy kolekcji .............................................................................................................. 307S�owniki 307

Popularne zastosowania s�owników 309IDictionary<TKey, TValue> 315S�owniki i LINQ 317

HashSet oraz SortedSet 318Kolejki 319Listy po��czone 320Stosy 321Podsumowanie 322

10. �a�cuchy znaków ......................................................................................................323Czym s� �acuchy znaków? 324Typy String i Char 325Litera�y �acuchowe i znakowe 326

Oznaczanie znaków specjalnych 327Formatowanie wy�wietlanych danych 330

Standardowe �acuchy formatowania liczb 331Niestandardowe �acuchy formatuj�ce 337Daty i godziny 340W drug� stron� — konwersja �acuchów na dane innych typów 343Z�o�one formatowanie przy u�yciu metody String.Format 345

Wra�liwo�� na ustawienia kulturowe 346Poznawanie regu� formatowania 348

Uzyskiwanie dost�pu do znaków na podstawie indeksów 349�acuchy znaków s� niezmienne 349Pobieranie ci�gu znaków 351Sk�adanie �acuchów znaków 352

Ponowne dzielenie �acuchów 354Wielkie i ma�e litery 355

Page 7: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Spis tre�ci � 7

Operacje na tek�cie 356StringBuilder — modyfikowalne �acuchy znaków 357

Odnajdywanie i zast�powanie �acuchów 361Wszelkiego typu „puste” �acuchy znaków 362Usuwanie bia�ych znaków 365Sprawdzanie typu znaków 368Kodowanie znaków 368

Dlaczego kodowanie ma znaczenie 370Kodowanie i dekodowanie 371Po co reprezentowa� �acuchy w formie sekwencji bajtów? 378

Podsumowanie 378

11. Pliki i strumienie ........................................................................................................ 379Sprawdzanie katalogów i plików 379Badanie katalogów 382Operacje na �cie�kach 383

�cie�ka i aktualny katalog roboczy 384Zdobywanie informacji o pliku 385Tworzenie plików tymczasowych 388Usuwanie plików 389Powszechnie znane katalogi 390Bezpieczne ��czenie elementów �cie�ek 393Tworzenie i zabezpieczanie hierarchii katalogów 394Usuwanie katalogu 401Zapis plików tekstowych 402

Zapis ca�ego pliku tekstowego w jednym wywo�aniu 402Zapis tekstu przy u�yciu klasy StreamWriter 403

Gdy pliki schodz� na z�� drog�: obs�uga wyj�tków 406Okre�lanie i modyfikacja uprawnie 410

Wczytywanie plików do pami�ci 414Strumienie 418

Poruszanie si� wewn�trz strumienia 424Zapis danych przy u�yciu strumieni 425

Odczyt, zapis i blokowanie plików 426Konstruktory klasy FileStream 428

Bufory strumieni 428Okre�lanie uprawnie podczas tworzenia strumieni 429Opcje zaawansowane 429

Asynchroniczne operacje na plikach 430Mechanizm Isolated Storage 433

Magazyny 434Zapis i odczyt tekstu 435Definicja izolowania 436

Page 8: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

8 � Spis tre�ci

Zarz�dzanie magazynami u�ytkownika przy u�yciu limitów 440Zarz�dzanie magazynami 441

Strumienie, które nie s� plikami 444Strumie adaptuj�cy — CryptoStream 447Wszystko w pami�ci — MemoryStream 448Reprezentowanie danych binarnych jako tekstu przy u�yciu kodowania Base64 449

Podsumowanie 452

12. XML ............................................................................................................................453Podstawy XML (krótki przegl�d) 453

Elementy 453XHTML 455

Litera „X” oznacza „rozszerzalny” (eXtensible) 456Tworzenie dokumentów XML 456

Elementy XML 459Atrybuty XML 460Umieszczanie kodu LINQ w LINQ to XML 463

Przeszukiwanie kodu XML za pomoc� LINQ 464Wyszukiwanie pojedynczego w�z�a 467Osie wyszukiwania 468Klauzule where 469

Serializacja XML 469Dostosowywanie serializacji XML za pomoc� atrybutów 472

Podsumowanie 473

13. Sieci ............................................................................................................................475Wybór technologii sieciowej 475

Aplikacja WWW z kodem klienta 476Klient .NET i serwer .NET 480Klient .NET i us�uga WWW pochodz�ca z zewn�trz 482Klient zewn�trzny i us�uga WWW .NET 483

Platforma WCF 483Tworzenie projektu WCF 483Kontrakty WCF 484Testowy host i klient WCF 486Udost�pnianie us�ugi WCF 489Pisanie klienta WCF 496Dwukierunkowa komunikacja z dwustronnymi kontraktami 504

Protokó� HTTP 513Klient WWW 514Klasy WebRequest i WebResponse 518

Gniazda 525Protoko�y IP, IPv6 oraz TCP 526��czenie si� z us�ugami za pomoc� klasy Socket 531Implementowanie us�ug za pomoc� klasy Socket 535

Page 9: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Spis tre�ci � 9

Inne mo�liwo�ci zwi�zane z sieci� 540Podsumowanie 540

14. Bazy danych ............................................................................................................... 541Krajobraz mo�liwo�ci dost�pu do danych w ramach platformy .NET 541

Klasyczny mechanizm ADO.NET 542LINQ i bazy danych 546Technologie dost�pu do danych nieopracowane przez firm� Microsoft 548WCF Data Services 548Technologia Silverlight i dost�p do danych 549Bazy danych 550

Model encji danych 551Wygenerowany kod 555Zmiana odwzorowywania 557Zwi�zki 558Dziedziczenie 565

Zapytania 566LINQ to Entities 566Entity SQL 570Mieszanie j�zyków ESQL oraz LINQ 573Dostawca ADO.NET EntityClient 574

Kontekst obiektu 574Obs�uga po��czenia 574Tworzenie, aktualizowanie i usuwanie 577Transakcje 579Optymistyczna wspó�bie�no�� 584Czas �ycia kontekstu i encji 586

WCF Data Services 587Podsumowanie 591

15. Podzespo�y .................................................................................................................593Komponenty .NET — podzespo�y 593

Odwo�ania 594Pisanie bibliotek 597Ochrona 599

Nazwy 602Podpisywanie i silne nazwy 603

�adowanie 605�adowanie z folderu aplikacji 606�adowanie z bufora GAC 606�adowanie z pliku Silverlight o rozszerzeniu xap 607Jawne �adowanie 607

Podsumowanie 609

Page 10: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

10 � Spis tre�ci

16. W�tki i kod asynchroniczny .......................................................................................611W�tki 613

W�tki i systemowy mechanizm szereguj�cy 615Stos 617Pula w�tków 624Powinowactwo oraz kontekst w�tków 625Popularne b��dne opinie dotycz�ce w�tków 627Tworzenie kodu wielow�tkowego jest trudne 634Strategie tworzenia kodu wielow�tkowego 637

Podstawowe narz�dzia synchronizacji 638Monitor 639Inne typy blokad 649Inne mechanizmy synchronizacji 653Zdarzenia 653Odliczanie 654

Programowanie asynchroniczne 655Model programowania asynchronicznego 656Programowanie asynchroniczne bazuj�ce na zdarzeniach 659Dorane operacje asynchroniczne 660

Task Parallel Library 661Zadania 661Obs�uga anulowania 668Obs�uga b��dów 669

Równoleg�o�� danych 671Metody Parallel.For oraz Parallel.ForEach 671PLINQ — równoleg�e LINQ 673

Podsumowanie 674

17. Atrybuty i odzwierciedlanie ..................................................................................... 675Atrybuty 675

Typy atrybutów 676W�asne atrybuty 677

Odzwierciedlanie 681Badanie metadanych 681Odkrywanie typów 683Odzwierciedlanie na rzecz okre�lonego typu 684Póne wi�zanie 686

Podsumowanie 689

18. Typ dynamic ............................................................................................................... 691Styl statyczny kontra styl dynamiczny 691

Styl dynamiczny i automatyzacja COM 693Typ dynamic 694

Typy obiektów i s�owo dynamic 697Typ dynamic w zastosowaniach niezwi�zanych z interoperacyjno�ci�? 707Podsumowanie 710

Page 11: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Spis tre�ci � 11

19. Wspó�dzia�anie z COM i Win32 ................................................................................. 711Importowanie kontrolek ActiveX 711

Importowanie kontrolek do projektów .NET 712Podzespo�y wspó�dzia�ania 714

Bez PIA 71664 czy 32 bity? 717Mechanizm P/Invoke 720Wskaniki 724Rozszerzenia sk�adni C# 4.0 729

W�a�ciwo�ci indeksowane 729Opcjonalny modyfikator ref 730

Podsumowanie 731

20. WPF i Silverlight ......................................................................................................... 733XAML i kod ukryty 735

XAML i obiekty 739Elementy i kontrolki 742

Panele uk�adów 743Elementy graficzne 752Kontrolki 759Kontrolki u�ytkownika 763

Szablony kontrolek 765Style 767Mened�er stanu wizualnego 769

Wi�zanie danych 771Szablony danych 773

Podsumowanie 776

21. Tworzenie aplikacji w ASP.NET ................................................................................ 777Podstawy technologii Web Forms 777

Zdarzenia formularzy sieciowych 779Cykl �ycia stron w technologii Web Forms 780

Tworzenie aplikacji internetowych 781Pliki kodu ukrytego 782Dodawanie kontrolek 783Kontrolki serwerowe 785

Wi�zanie danych 786Sprawdzanie kodu 789Dodawanie kontrolek i formularzy 792

Podsumowanie 796

22. Windows Forms ......................................................................................................... 797Tworzenie aplikacji 798

Dodawanie ród�a wi�zania 799

Page 12: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

12 � Spis tre�ci

Kontrolki 801Dokowanie i kotwiczenie 806

Wi�zanie danych 808Obs�uga zdarze 813Podsumowanie 814

Skorowidz ............................................................................................................................. 817

Page 13: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

777

ROZDZIA� 21.

Tworzenie aplikacji w ASP.NET

Programi�ci coraz wi�cej swoich aplikacji pisz� w taki sposób, by mog�y one dzia�a� w inter-necie, a korzystanie z nich odbywa�o si� za po�rednictwem przegl�darek WWW. Jak dowiedzie-li�my si� w rozdziale 20., technologia Silverlight pozwala pisa� kod C#, który b�dzie wyko-nywany w przegl�darce WWW po stronie klienta. Je�li natomiast chodzi o obs�ug� aplikacjiinternetowych po stronie serwera, to .NET Framework udost�pnia technologi� ASP.NET.

W tym rozdziale skoncentrujemy si� na przedstawieniu punktu, w którym spotykaj� si�ASP.NET oraz j�zyk C# — technologii Web Forms. ASP.NET jest zagadnieniem bardzo obszer-nym i je�li Czytelnik chcia�by znale� jego obszern� i wyczerpuj�c� prezentacj�, radzimy si�-gn�� po ksi��k� Programming ASP.NET 3.5, Fourth Edition napisan� przez Jessego Liberty,Dana Maharry’ego i Dana Hurwitza lub Learning ASP.NET 3.5, Second Edition napisan� przezJessego Liberty, Dana Hurwitza i Dana MacDonalda (obie zosta�y wydane przez wydawnictwoO’Reilly).

Podstawy technologii Web FormsTechnologia Web Forms przenosi ide� szybkiego programowania aplikacji (RAD — RapidApplication Development) do �wiata programowania aplikacji internetowych. Z poziomu VisualStudio lub programu Visual Web Developer, korzystaj�c z techniki „przeci�gnij i upu��”,mo�na umieszcza� elementy steruj�ce na formularzach i pisa� specjalny „kod ukryty” (ang.code-behind) wspomagaj�cy ich dzia�anie. Aplikacje tego typu s� zazwyczaj wdra�ane na ser-werze WWW (przewa�nie jest to serwer IIS, dost�pny niemal we wszystkich wersjach systemuWindows, lub Cassini, wbudowany w Visual Studio w celu testowania pisanych aplikacji),a u�ytkownicy prowadz� z nimi interakcj�, korzystaj�c z przegl�darek WWW.

Technologia ASP.NET obs�uguje tak�e inne modele ni� Web Forms — mo�na naprzyk�ad operowa� bezpo�rednio na poziomie ��da HTTP. Co wi�cej, platforma.NET 4 udost�pnia nowy model MVC (skrót od angielskich s�ów model, view, control-ler — model, widok, kontroler). Model ten jest znacznie bardziej skomplikowany, leczjednocze�nie zapewnia znacznie wi�ksze mo�liwo�ci oraz elastyczno��, przez co sta-nowi doskona�e rozwi�zanie w przypadku tworzenia z�o�onych aplikacji interneto-wych. Jako �e niniejsza ksi��ka nie jest po�wi�cona wy��cznie technologii ASP.NET,przedstawimy tu wy��cznie proste przyk�ady aplikacji tworzonych przy u�yciu tech-nologii Web Forms.

Page 14: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

778 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

Technologia Web Forms udost�pnia model, w którym strony WWW s� generowane dyna-micznie na serwerze i dostarczane do przegl�darki za po�rednictwem internetu. Zapewniaona mo�liwo�� tworzenia stron ASPX zawieraj�cych kod HTML oraz kontrolki sieciowe (ang.web controls), a tak�e pisania kodu C# implementuj�cego reakcje na czynno�ci wykonywaneprzez u�ytkownika na stronie i dodaj�cego do niej dynamiczne tre�ci. Kod C# jest wykonywanyna serwerze, a dane przez niego wytworzone s� integrowane z kontrolkami umieszczonymina stronie i wspólnie generuj� kod HTML, który nast�pnie zostaje przes�any do przegl�darkiu�ytkownika.

Koniecznie nale�y zwróci� uwag� na trzy kluczowe informacje podane w poprzednim akapiciei pami�ta� o nich podczas lektury tego rozdzia�u:

� Strony WWW mog� zawiera� zarówno kod HTML, jak i kontrolki sieciowe (opisane w dal-szej cz��ci rozdzia�u).

� W technologii ASP.NET kod jest wykonywany na serwerze w �rodowisku zarz�dzanym.(Oczywi�cie technologii tej mo�na u�ywa� w po��czeniu z technologi� AJAX b�d Silverlight,je�li chcemy tak�e skorzysta� z kodu dzia�aj�cego po stronie klienta).

� Kontrolki ASP.NET generuj� standardowy kod HTML wy�wietlany w przegl�darce.

W przypadku formularzy sieciowych tworzonych w technologii Web Forms interfejs u�ytkow-nika jest dzielony na dwa elementy: cz��� wizualn� (nazywan� tak�e interfejsem u�ytkownika —UI) oraz logik� jej obs�ugi. Rozwi�zanie to okre�lane jest jako separacja kodu (ang. code separation)i jest czym� bardzo po�ytecznym.

Interfejs u�ytkownika stron ASP.NET jest umieszczany w plikach z rozszerzeniem aspx.W przypadku ��dania wykonania formularza serwer generuje kod HTML, a nast�pnie przesy�ago do przegl�darki u�ytkownika. W kodzie stron ASP.NET umieszczane s� specjalne kon-trolki Web Forms zdefiniowane w przestrzeniach nazw System.Web oraz System.Web.UI bibliotekiklas .NET.

Pisanie stron korzystaj�cych z Web Forms przy u�yciu Visual Studio nie mog�o by� prostsze.Wystarczy, �e otworzymy formularz, przeci�gniemy na niego kilka kontrolek i napiszemy kod,który b�dzie je obs�ugiwa�. I gotowe! W�a�nie napisali�my aplikacj� internetow�.

Z drugiej strony, nawet w przypadku korzystania z Visual Studio napisanie solidnej i kom-pletnej aplikacji internetowej mo�e by� onie�mielaj�cym zadaniem. Technologia Web Formsudost�pnia niezwykle bogaty interfejs u�ytkownika — liczba i stopie z�o�ono�ci oferowanychprzez ni� kontrolek znacz�co wzros�y w ci�gu kilku ostatnich lat, podobnie zreszt� jak oczeki-wania u�ytkowników odno�nie do ich wygl�du i sposobu dzia�ania.

Co wi�cej, aplikacje internetowe s� z za�o�enia aplikacjami rozproszonymi. Zazwyczaj klienttakich aplikacji nie znajduje si� w tym samym budynku co serwer. W przypadku wi�kszo�ciz nich podczas tworzenia interfejsu u�ytkownika nale�y uwzgl�dnia� czasy opónie trans-misji sieciowych, przepustowo�� oraz wydajno�� serwera, gdy� ca�kowity czas obs�ugi ��daniamo�e wynie�� nawet kilka sekund.

Aby upro�ci� opisywane tu zagadnienia i umo�liwi� skoncentrowanie si� na aspektachzwi�zanych z j�zykiem C#, ca�kowicie pominiemy tu sprawy dotycz�ce przetwarzaniawykonywanego po stronie klienta i zajmiemy si� wy��cznie kontrolkami ASP.NETobs�ugiwanymi po stronie serwera.

Page 15: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Podstawy technologii Web Forms � 779

Zdarzenia formularzy sieciowychFormularze sieciowe s� sterowane zdarzeniami. Zdarzenie reprezentuje „co�, co si� zdarzy�o”(wi�cej informacji na ten temat mo�na znale� w rozdziale 5.).

Zdarzenie zostaje zg�oszone, gdy u�ytkownik kliknie przycisk, wybierze opcj� z listy b�dwejdzie w jak�kolwiek inn� interakcj� z interfejsem u�ytkownika. Oczywi�cie w przypadkuaplikacji internetowych interakcje te maj� miejsce w przegl�darce WWW dzia�aj�cej na kompu-terze u�ytkownika, niemniej jednak zdarzenia ASP.NET s� obs�ugiwane na serwerze. Aby takierozwi�zanie mog�o dzia�a�, konieczne jest wykonanie pe�nego cyklu komunikacji z serwerem.Przegl�darka musi przes�a� do serwera ��danie, a ten z kolei musi na nie odpowiedzie� —dopiero wtedy zdarzenie zostanie ca�kowicie obs�u�one. To mo�e jednak troch� potrwa�,wi�c w porównaniu z obs�ug� zdarze w klasycznych aplikacjach dla systemu Windows jeste-�my nieco ograniczeni — cho� obs�ugiwanie po stronie serwera niektórych zdarze takich jakprzesuwanie wskanika myszy po ekranie po prostu by�oby praktyczne, to jednak ASP.NETudost�pnia jedynie ograniczon� liczb� zdarze, na przyk�ad klikni�cie przycisku lub zmian�zawarto�ci pola tekstowego. S� to zdarzenia, które mog� skutkowa� powa�nymi zmianamii których obs�uga mo�e by� warta wys�ania ��dania na serwer.

Zdarzenia przesy�ane i nieprzesy�aneZdarzenia przesy�ane (ang. postback events) to takie, których zg�oszenie powoduje natychmia-stowe przes�anie formularza na serwer. Zaliczaj� si� do nich na przyk�ad zdarzenia zwi�zanez obs�ug� klikni�� takie jak zdarzenie Click przycisków. Istnieje tak�e liczna grupa zdarzenieprzesy�anych, czyli takich, których zg�oszenie nie powoduje natychmiastowego przes�ania for-mularza na serwer.

Mo�na zmusi� kontrolki generuj�ce zdarzenia nieprzesy�ane, by ich zdarzenia powo-dowa�y przes�anie formularza. W tym celu wystarczy przypisa� w�a�ciwo�ci AutoPost�Back warto�� true.

Zdarzenia nieprzesy�ane s� zg�aszane w momencie, gdy ASP.NET odkryje, �e nale�y je zg�osi�,co mo�e jednak nast�pi� ze znacznym opónieniem wzgl�dem momentu, w którym u�ytkownikwykona� czynno�� prowadz�c� do ich wygenerowania. Na przyk�ad kontrolka TextBox udost�pniazdarzenie TextChanged. Raczej nie b�dziemy oczekiwa�, �e formularz zostanie automatycznie prze-s�any na serwer w momencie, gdy u�ytkownik zacznie co� wpisywa� w polu tekstowym, dla-tego te� nie jest to zdarzenie przesy�ane. Je�li u�ytkownik wype�ni kilka pól formularza, serwernie b�dzie o tym nic wiedzia� — ta zmiana stanu nast�puje po stronie klienta. ASP.NET odkryjej� dopiero wtedy, gdy u�ytkownik kliknie przycisk, by przes�a� formularz na serwer. Dopierowówczas zostan� zg�oszone zdarzenia TextChanged dla wszystkich wype�nionych pól tekstowych.Oznacza to, �e w ramach obs�ugi jednego ��dania mo�e zosta� obs�u�onych wiele ró�nych zdarze.

Stan widokuU�ytkownicy oczekuj�, �e kontrolki tworz�ce interfejs u�ytkownika aplikacji b�d� pami�ta�yswój stan — znikni�cie warto�ci wpisanej w polu tekstowym lub opcji zaznaczonej na li�ciemo�e by� bardzo myl�ce. Niestety WWW jest z natury �rodowiskiem „bezstanowym”1. 1 Cho� jest to uzasadnione przez architektur� sieci, nie wp�ywa to dobrze na �atwo�� korzystania z niej.

Page 16: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

780 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

Oznacza to, �e ka�de przes�anie ��dania na serwer powoduje utrat� stanu z poprzedniego ��da-nia, chyba �e programista w�o�y wiele pracy i stara, by zachowa� posiadan� wiedz� o sesji.WWW obejmuje ca�e mnóstwo witryn zawieraj�cych formularze, których zawarto�� jest ca�ko-wicie tracona w przypadku, gdy przes�ane na serwer dane zawieraj� jakikolwiek b��d. Progra-mi�ci musz� wykona� ca�kiem sporo pracy, by zapobiec takim sytuacjom. Jednak ASP.NETudost�pnia mechanizmy pozwalaj�ce na automatyczn� obs�ug� pewnych aspektów stanu.

Za ka�dym razem, gdy formularz zostaje przes�any na serwer, ten przed odes�aniem odpowie-dzi do przegl�darki go odtwarza. ASP.NET oferuje mechanizm, który automatycznie zacho-wuje stan kontrolek obs�ugiwanych po stronie serwera (ViewState). A zatem je�li formularzzawiera list�, a u�ytkownik wybra� jedn� z dost�pnych na niej opcji, to opcja ta pozostaniezaznaczona tak�e po przes�aniu formularza na serwer i ponownym wy�wietleniu go w prze-gl�darce.

Cykl ycia stron w technologii Web FormsKa�de ��danie dotycz�ce strony docieraj�ce na serwer powoduje wygenerowanie na nim ci�guzdarze. Zdarzenia te sk�adaj� si� na ca�kowity cykl �ycia strony oraz wszystkich jej komponen-tów. Cykl ten zaczyna si� od ��dania zwrócenia strony, które sprawia, �e serwer j� wczytuje.Obs�uga ��dania koczy si� natomiast usuni�ciem strony z pami�ci serwera. Ostatecznym celemobs�ugi ��dania jest wygenerowanie i przes�anie do przegl�darki wynikowego kodu HTML.

Jako �e ASP.NET jest technologi� serwerow�, dla niej cykl �ycia strony wygl�da zupe�-nie inaczej ni� z punktu widzenia u�ytkownika. W chwili gdy u�ytkownik zobaczystron�, serwer ju� dawno skoczy� j� obs�ugiwa�. Kiedy kod HTML dotrze do przegl�-darki, równie dobrze mo�na by wy��czy� serwer i od��czy� go od internetu, a u�yt-kownik w ogóle by tego nie zauwa�y� a� do momentu przes�ania kolejnego ��dania.

Cykl �ycia strony jest wyznaczany poni�szymi zdarzeniami. Na ka�dym z etapów jej prze-twarzania ASP.NET wykonuje konkretne operacje, jednak z ka�dym z tych zdarze mo�naskojarzy� procedur� obs�ugi, by wykona� w niej jakie� dodatkowe czynno�ci.

InicjalizacjaInicjalizacja jest pierwszym etapem cyklu �ycia strony lub kontrolki. To w�a�nie podczasniej s� inicjowane wszelkie ustawienia, które b�d� potrzebne podczas obs�ugi ��dania.

Wczytanie ViewStateNa tym etapie zostaje okre�lona warto�� w�a�ciwo�ci ViewState. Warto�� ta jest przecho-wywana w ukrytym polu formularza HTML. Kiedy ASP.NET po raz pierwszy generujekod strony, umieszcza w nim to ukryte pole, a nast�pnie korzysta z niego, by zachowa� stanstrony pomi�dzy kolejnymi ��daniami przesy�anymi na serwer. Ci�g znaków zapisanyw tym polu jest przetwarzany przez platform� i na jego podstawie okre�lana jest warto��w�a�ciwo�ci ViewState. Zapewnia to mo�liwo�� zarz�dzania stanem poszczególnych kon-trolek pomi�dzy kolejnymi wy�wietleniami strony, dzi�ki czemu ich zawarto�� nie jest zaka�dym razem przywracana do warto�ci domy�lnej.

Przetworzenie danych zwrotnychPodczas tego etapu zostaj� przetworzone dane przes�ane na serwer — tak zwane danezwrotne (ang. postback data).

Page 17: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Tworzenie aplikacji internetowych � 781

WczytanieNa tym etapie nast�puje wywo�anie metody CreateChildControls, które powoduje utwo-rzenie i zainicjowanie kontrolek serwerowych w drzewie sterowania. Stan formularzyzostaje odtworzony, a ich kontrolki zawieraj� dane przes�ane z przegl�darki w ��daniu.

Wys�anie modyfikacji danych zwrotnychJe�li pojawi�y si� jakiekolwiek ró�nice pomi�dzy poprzednim i bie��cym stanem, to zostajewywo�ana metoda RaisePostDataChangedEvent, która powoduje zg�oszenie odpowiednichzdarze.

Obs�uga zdarze�Na tym etapie zostaje obs�u�one zdarzenie (zg�oszone po stronie klienta), które spowodo-wa�o przes�anie ��dania na serwer.

Generowanie wst�pneTo ostatni moment, by zmieni� w�a�ciwo�ci kontrolek, nim zostan� one wygenerowane.(W przypadku formularzy sieciowych „wygenerowanie” oznacza utworzenie odpowied-niego kodu HTML, który zostanie nast�pnie przes�any do przegl�darki).

Zapisanie stanuNa pocz�tku cyklu �ycia strony jej zachowany stan zosta� odczytany i odtworzony z ukry-tego pola formularza. Na tym etapie jest on ponownie zapisywany w polu jako �acuchznaków, co koczy pe�ny cykl przesy�ania stanu pomi�dzy klientem i serwerem.

GenerowaniePodczas tego etapu jest generowany kod wynikowy, który zostanie przes�any do prze-gl�darki.

ZwolnienieTo ostatni etap cyklu �ycia strony. Zapewnia on programi�cie mo�liwo�� wykonaniaostatecznych porz�dków i zwolnienia referencji do wszelkich kosztownych zasobów takichjak po��czenia z bazami danych.

Tworzenie aplikacji internetowychVisual Studio udost�pnia dwa sposoby tworzenia aplikacji internetowych. Nie jest to jedyniekwestia wyboru jednego z dwóch przycisków w menu zapewniaj�cych dost�p do tej samejmo�liwo�ci — obie opcje dzia�aj� ca�kowicie odmiennie, a Visual Studio nie oferuje wystarcza-j�cych informacji o ró�nicach pomi�dzy nimi w momencie, gdy trzeba dokona� wyboru. Jednymz tych dwóch sposobów jest skorzystanie z opcji New Project, która udost�pnia ró�ne szablonyprojektów ASP.NET umieszczone w sekcji Visual C#/Web, pozwalaj�ce na generowanie ró�-nych rodzajów projektów aplikacji internetowych. S� to pe�noprawne projekty aplikacji VisualStudio generowane i budowane dok�adnie tak samo jak wszelkie inne projekty (biblioteki,aplikacje konsolowe czy te� aplikacje WPF). Projekty tego typu s� nieco „l�ejsze” — nie maw nich pliku .csproj reprezentuj�cego projekt. Nie istnieje te� konieczno�� ich budowania,gdy� taki projekt sk�ada si� wy��cznie z plików ród�owych i to one póniej b�d� kopiowane naserwer WWW. W przyk�adach zamieszczonych w tym rozdziale wykorzystamy projekt apli-kacji internetowej, gdy� jest on najbardziej podobny do innych typów projektów, które mieli-�my okazj� pozna� we wcze�niejszej cz��ci ksi��ki.

Page 18: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

782 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

Aby utworzy� prosty formularz internetowy, który wykorzystamy w nast�pnym przyk�a-dzie, nale�y uruchomi� Visual Studio .NET i wybra� z menu g�ównego opcj� File/New/Project.W oknie dialogowym New Project nale�y nast�pnie zaznaczy� opcj� Visual C#/Web i wybra�szablon ASP.NET Empty Web Application.

Zgodnie z tym, co sugeruje nazwa szablonu, Visual Studio utworzy pust� aplikacj� internetow�.W jej sk�ad b�dzie pocz�tkowo wchodzi� wy��cznie plik Web.config zawieraj�cy ustawieniakonfiguracyjne witryny. Aby doda� do aplikacji nowy formularz, nale�y wybra� opcj� Pro-ject/Add New Item, po czym wybra� z listy szablonów wy�wietlonej po lewej stronie okna opcj�Visual C#/Web. Nast�pnie nale�y wybra� szablon Web Form i nada� mu nazw� HelloWeb.aspx.W rezultacie Visual Studio utworzy tak�e plik kodu ukrytego o nazwie HelloWeb.aspx.cs, któryb�dzie mo�na zobaczy� w panelu Solution Explorer po rozwini�ciu opcji HelloWeb.aspx. (Dodat-kowo pojawi si� tak�e plik HelloWeb.aspx.designer.cs, w którym Visual Studio b�dzie umiesz-cza� wszelki kod, który musi wygenerowa� automatycznie. Nie nale�y w nim umieszcza� �ad-nego w�asnego kodu, gdy� Visual Studio usuwa ten plik i odtwarza go za ka�dym razem, gdymusi wprowadzi� do wygenerowanego kodu jakie� zmiany).

Pliki kodu ukrytegoPrzyjrzyjmy si� nieco dok�adniej plikom aspx oraz plikom kodu ukrytego utworzonym przezVisual Studio. Najpierw zobaczmy kod HTML zapisany w pliku HelloWeb.aspx. Podczas edycjiplików aspx Visual Studio mo�e je wy�wietla� w trzech ró�nych widokach. Domy�lnym jest widokród�a (Source) prezentuj�cy kod HTML. U do�u okna edytora znajduj� si� trzy przyciski, którepozwalaj� prze��cza� si� pomi�dzy trzema dost�pnymi widokami: widokiem projektu (Design)prezentuj�cym zawarto�� strony w taki sposób, w jaki b�dzie ona wy�wietlana w przegl�darce,widokiem ród�a (Source) prezentuj�cym nieprzetworzony kod HTML strony oraz widokiempodzielonym (Split) prezentuj�cym stron� jednocze�nie na dwa opisane wcze�niej sposoby. Jakmo�na zauwa�y�, formularz zosta� utworzony na stronie przy u�yciu standardowego znacznikaform j�zyka HTML:

<form id="form1" runat="server">

Formularze internetowe ASP.NET wymagaj�, by na stronie znajdowa� si� przynajmniej jedenformularz HTML umo�liwiaj�cy zarz�dzanie interakcj� z u�ytkownikiem, dlatego te� VisualStudio utworzy�o go podczas dodawania nowej strony aspx. Atrybut runat="server" jest kluczemdo ca�ej magii, która póniej b�dzie wykonywana na serwerze. Ka�dy znacznik zawieraj�cyten atrybut jest traktowany jako kontrolka serwerowa, która powinna zosta� wykonana przezASP.NET Framework na serwerze.

Cho� form jest standardowym znacznikiem HTML, to atrybut runat do tego standardunie nale�y. Jednak ASP.NET usuwa ten atrybut z kodu HTML przed jego przes�aniemdo przegl�darki. Ma on jakiekolwiek znaczenie wy��cznie na serwerze.

Wewn�trz formularza Visual Studio umieszcza otwieraj�cy i zamykaj�cy znacznik div, pomi�dzyktórymi mo�na wstawia� w�asne kontrolki oraz tekst.

Po utworzeniu pustego formularza pierwsz� czynno�ci�, jak� Czytelnik zapewne b�dziechcia� wykona�, b�dzie umieszczenie na nim jakiego� tekstu. Po prze��czeniu si� do widokuród�a mo�na dodawa� kod bezpo�rednio do pliku HTML. W ten sposób mo�emy na przy-k�ad doda� jak�� zawarto�� do elementu div umieszczonego w sekcji body strony aspx, tak jakto pokazano na listingu 21.1 (dodany fragment zosta� wyró�niony pogrubion� czcionk�).

Page 19: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Tworzenie aplikacji internetowych � 783

Listing 21.1. Dodawanie zawarto�ci HTML

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HelloWeb.aspx.cs"Inherits="ProgrammingCSharpWeb.HelloWeb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> Witaj, �wiecie! Teraz jest: <%= DateTime.Now.ToString() %> </div> </form></body></html>

W ten sposób na stronie zostanie wy�wietlone powitanie oraz aktualny lokalny czas:Witaj, �wiecie! Teraz jest 2011-12-18 23:40:42

Znaczniki <% oraz %> dzia�aj� dok�adnie tak samo jak we wcze�niejszej wersji technologii ASP —oznaczaj� kod, który zosta� pomi�dzy nimi umieszczony (w naszym przypadku jest to kod C#).Znak równo�ci (=) znajduj�cy si� bezpo�rednio za znacznikiem otwieraj�cym sprawia, �eASP.NET przetworzy umieszczone za nim wyra�enie i wy�wietli jego warto��. Wykonajmyzatem t� stron�, naciskaj�c klawisz F5.

Dodawanie kontrolekKontrolki serwerowe mo�na umieszcza� na formularzu na trzy sposoby: samodzielnie pisz�cw pliku aspx odpowiedni kod, przeci�gaj�c je z panelu Toolbox (przy czym w tym przypadkumo�na je umieszcza� na stronie zarówno w widoku ród�a, jak i w widoku projektu) lubewentualnie pisz�c kod, który doda kontrolki w trakcie dzia�ania programu. W ramach przy-k�adu za�ó�my, �e chcemy wy�wietli� na stronie trzy przyciski opcji zapewniaj�ce u�ytkow-nikowi sk�adaj�cemu zamówienie mo�liwo�� wyboru jednej z trzech firm kurierskich. W tymcelu w kodzie strony, wewn�trz znacznika <form>, mo�na by umie�ci� nast�puj�cy kod HTML:

<asp:RadioButton GroupName="Shipper" id="Speedy" text="Speedy Express" Checked="True" runat="server"></asp:RadioButton><asp:RadioButton GroupName="Shipper" id="United" text="United Package" runat="server"></asp:RadioButton><asp:RadioButton GroupName="Shipper" id="Federal" text="Federal Shipping" runat="server"></asp:RadioButton>

Znacznik asp deklaruje serwerow� kontrolk� ASP.NET, która podczas przetwarzania stronyzostaje zast�piona zwyczajnym kodem HTML. Po uruchomieniu aplikacji przegl�darka wy�wietlizbiór trzech przycisków opcji — wybór jednego z nich spowoduje usuni�cie zaznaczeniapozosta�ych.

Dok�adnie ten sam efekt mo�na uzyska� znacznie �atwiej, przeci�gaj�c trzy przyciski opcjiz panelu Toolbox Visual Studio i upuszczaj�c je na formularzu, a jeszcze �atwiejszym rozwi�za-niem b�dzie przeci�gni�cie i upuszczenie na formularzu listy przycisków opcji, która b�dzie

Page 20: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

784 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

zarz�dza� wszystkimi przyciskami jako jedn� grup�. Kiedy zaznaczymy kontrolk� przyciskuopcji w widoku projektu, pojawi si� inteligentny znacznik (ang. smart tag), prosz�c nas o podanieród�a danych (zapewnia to nam mo�liwo�� powi�zania przycisku z kolekcj�, na przyk�adpobran� z bazy danych) lub wpisanie ich samemu. Klikni�cie przycisku Edit items powodujewy�wietlenie okna ListItem Collection Editor, w którym mo�emy doda� potrzebne nam trzyprzyciski opcji.

Ka�dy z przycisków b�dzie mia� domy�ln� nazw� ListItem, jednak zarówno ich opisy, jak i war-to�ci b�dzie mo�na samemu poda� w odpowiednich w�a�ciwo�ciach. Mo�na tam tak�e okre�li�,które z trzech pól b�dzie pocz�tkowo zaznaczone (patrz rysunek 21.1).

Rysunek 21.1. Kolekcja elementów ListItem

Wygl�d listy przycisków opcji mo�na poprawi�, modyfikuj�c warto�ci w�a�ciwo�ci wy�wie-tlonych w panelu Properties, które okre�laj� takie aspekty wygl�du jak: u�ywana czcionka,kolor, liczba kolumn, kierunek powtarzania (domy�lnie wybrany jest pionowy) itd. Mo�na torównie� zrobi�, korzystaj�c z rozbudowanego wsparcia, jakie Visual Studio zapewnia w zakre-sie tworzenia arkuszy stylów CSS (przedstawionego na rysunku 21.2).

Rysunek 21.2 pokazuje, �e mo�na prze��cza� wy�wietlane w prawym dolnym rogu VisualStudio panele Properties oraz Apply Styles. W przedstawionym przyk�adzie u�yli�my paneluProperties, by okre�li� tekst etykiety ekranowej, a nast�pnie panelu Styles, by utworzy� stylListBox, który wy�wietla wokó� listy przycisków obramowanie oraz okre�la ich czcionk� i kolor.Skorzystali�my tak�e z widoku podzielonego, by móc jednocze�nie ogl�da� stron� w widokuród�a oraz projektu.

Sekwencja znaczników wy�wietlana automatycznie u do�u okna Visual Studio pokazuje naszeaktualne po�o�enie w strukturze dokumentu. Jak wida�, znajdujemy si� w elemencie ListItemw kontrolce ListBox, która jest umieszczona w elemencie div wewn�trz formularza form1. Tonaprawd� �wietne narz�dzie.

Page 21: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Tworzenie aplikacji internetowych � 785

Rysunek 21.2. Stosowanie w�a�ciwo�ci i stylów

Kontrolki serweroweTechnologia Web Forms udost�pnia dwa rodzaje kontrolek serwerowych. Pierwszym z nichs� serwerowe kontrolki HTML. Wygl�daj� one niemal identycznie jak zwyczajne znacznikiHTML, jednak posiadaj� dodatkowy atrybut runat="server".

Alternatyw� dla serwerowych kontrolek HTML s� kontrolki serwerowe ASP.NET (ang.ASP.NET server controls; nazywane tak�e czasami kontrolkami internetowymi, ang. web controls).Stworzono je po to, by udost�pni� nieco wygodniejszy interfejs API do pracy ze standardo-wymi kontrolkami HTML. Kontrolki internetowe udost�pniaj� nieco bardziej spójny modelobiektowy oraz spójne nazewnictwo w�a�ciwo�ci. W przypadku kontrolek HTML istnieje naprzyk�ad wiele sposobów obs�ugi wprowadzania danych:

<input type="radio"><input type="checkbox"><input type="button"><input type="text"><textarea>

Ka�da z tych kontrolek dzia�a inaczej i wymaga zastosowania innych atrybutów. To dosy�przykry efekt nieco przypadkowego rozwoju j�zyka HTML we wczesnych latach istnieniaWWW. Kontrolki internetowe maj� za zadanie znormalizowa� zbiór dost�pnych elementów

Page 22: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

786 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

steruj�cych oraz zapewni� spójne wykorzystanie atrybutów w ca�ym ich modelu obiektowym.Poni�ej przedstawione zosta�y kontrolki internetowe odpowiadaj�ce kontrolkom HTML widocz-nym w poprzednim przyk�adzie.

<asp:RadioButton><asp:CheckBox><asp:Button><asp:TextBox rows="1"><asp:TextBox rows="5">

Kod HTML przekazywany do przegl�darki u�ytkownika nie zawiera znaczników zaczynaj�cychsi� od asp: (i bardzo dobrze, gdy� �adna przegl�darka nie wiedzia�aby, co z nimi zrobi�).ASP.NET konwertuje je na standardowy kod HTML, a zatem z punktu widzenia klienta niema �adnej ró�nicy pomi�dzy internetowymi kontrolkami ASP.NET a standardowymi kon-trolkami HTML. Wszystko sprowadza si� wi�c do pytania, z jakiego API b�dziemy chcielikorzysta� na serwerze: czy chcemy, by kod na serwerze operowa� na tych samych elementachi w�a�ciwo�ciach, które s� u�ywane po stronie klienta, czy te� wolimy, by kontrolki by�y zgodnez konwencjami u�ywanymi we wszystkich innych klasach biblioteki .NET.

W dalszej cz��ci rozdzia�u skoncentrujemy si� na kontrolkach internetowych.

Wi�zanie danychCho� niektóre tre�ci prezentowane przez aplikacje internetowe mog� by� sta�e, to jednakka�da interesuj�ca witryna WWW b�dzie si� zmienia� wraz z up�ywem czasu. Dlatego te� jestwysoce prawdopodobne, �e b�dziemy chcieli, by niektóre kontrolki na stronie wy�wietla�ydane, które od czasu do czasu mog� podlega� zmianom i które najprawdopodobniej b�d� prze-chowywane w bazie danych. Wiele kontrolek ASP.NET mo�na powi�za� z danymi, co znacznieu�atwia prezentowanie tych danych oraz ich modyfikacj�.

W poprzednim podrozdziale na sta�e umie�cili�my na formularzu trzy przyciski opcji, pojednym dla ka�dej z trzech firm kurierskich, które mo�e wybra� u�ytkownik. Jednak to niejest najlepsze rozwi�zanie — dostawcy si� zmieniaj�, a poza tym istnieje du�e prawdopodo-biestwo, �e w przysz�o�ci b�dziemy chcieli nawi�za� wspó�prac� tak�e z innymi firmamikurierskimi. Nie chcemy, by ka�da zmiana relacji biznesowych zmusza�a nas do r�cznegomodyfikowania tych kontrolek. Znacznie bardziej rozs�dnym rozwi�zaniem b�dzie zapisanielisty firm kurierskich w bazie danych i powi�zanie ich z przyciskami opcji wy�wietlanymi naformularzu. W tym podrozdziale dowiemy si�, w jaki sposób mo�na utworzy� te kontrolkidynamicznie i powi�za� je z informacjami przechowywanymi w bazie danych, korzystaj�c w tymcelu z mo�liwo�ci wi�zania z baz� danych zapewnianej przez kontrolk� RadioButtonList.

Dodajmy zatem do naszej aplikacji nowy formularz o nazwie DisplayShippers.aspx i wy�wietlmygo w widoku podzielonym. Teraz musimy przeci�gn�� kontrolk� RadioButtonList z paneluToolbox, umieszczaj�c j� na naszym nowym formularzu — b�d to w panelu widoku projektu,b�d to w kodzie ród�owym wewn�trz znacznika <div>.

Je�li z lewej strony okna Visual Studio nie jest widoczny panel Toolbox z kontrolk�przycisków opcji, to mo�na go wy�wietli�, wybieraj�c z menu g�ównego opcj�View/Toolbox, a nast�pnie rozwijaj�c zak�adk� Standard. By uporz�dkowa� kontrolki,mo�na klikn�� w panelu Toolbox prawym przyciskiem myszy i z wy�wietlonego menukontekstowego wybra� opcj� Sort Items Alphabetically.

Page 23: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Wi�zanie danych � 787

Nast�pnie w widoku projektu nale�y klikn�� na „inteligentnej” ikonie nowej kontrolki — nie-wielkiej strza�ce wy�wietlonej w jej prawym górnym rogu. Z wy�wietlonego menu nale�y wybra�opcj� Choose Data Source, a na ekranie pojawi si� okno dialogowe Data Source ConfigurationWizard przedstawione na rysunku 21.3.

Rysunek 21.3. Okno dialogowe Data Source Configuration Wizard

W oknie tym nale�y rozwin�� list� Select a data source i wybra� z niej opcj� <New Data Source>.Nast�pnie zostaniemy poproszeni o wybór ród�a danych spo�ród typów danych dost�pnychna komputerze. Powinni�my wybra� opcj� Database, poda� identyfikator i klikn�� przycisk OK.Na ekranie zostanie wy�wietlone okno dialogowe Configure Data Source przedstawione narysunku 21.4.

Mo�emy albo wybra� istniej�ce po��czenie z baz� danych, albo utworzy� nowe. W naszymprzypadku skorzystamy z tej drugiej mo�liwo�ci — kliknijmy zatem przycisk New Connection,by je skonfigurowa�. Na ekranie zostanie wy�wietlone okno dialogowe Add Connection.

Kolejnym krokiem b�dzie wype�nienie pól formularza: nale�y wybra� nazw� serwera, poda�informacje o sposobie logowania si� do niego (w razie w�tpliwo�ci nale�y wybra� opcj� WindowsAuthentication) oraz poda� nazw� bazy danych (w naszym przyk�adzie b�dzie to Northwind).Koniecznie powinni�my tak�e pami�ta� o klikni�ciu przycisku Test Connection, by przetestowa�po��czenie z baz� danych. Kiedy wszystko b�dzie dzia�a� prawid�owo, mo�na klikn�� przy-cisk OK, tak jak to pokazano na rysunku 21.5.

Po klikni�ciu przycisku OK w�a�ciwo�ci po��czenia zostan� wpisane do okna dialogowegoConfigure Data Source. Warto jeszcze raz si� im przyjrze�, a je�li wszystko b�dzie w porz�dku,

Page 24: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

788 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

Rysunek 21.4. Wybieranie po��czenia ze ród�em danych

mo�na klikn�� przycisk Next. Je�li chcemy zapisa� po��czenie w pliku konfiguracyjnymweb.config, to na kolejnej stronie kreatora powinni�my poda� jego nazw� (np. NorthWindConnec�tionString).

Po klikni�ciu kolejnego przycisku Next b�dziemy mieli mo�liwo�� okre�lenia tabel i kolumn,które chcemy pobiera�, b�d te� podania w�asnego zapytania SQL lub nazwy procedury sk�a-dowanej, które zostan� u�yte do pobrania danych.

W naszym przyk�adzie powinni�my rozwin�� list� Tables i przewin�� jej zawarto�� tak, by by�awidoczna opcja Shippers. Nast�pnie powinni�my zaznaczy� pola ShipperID oraz CompanyName, jakpokazano to na rysunku 21.6.

W dalszej kolejno�ci nale�y ponownie klikn�� przycisk Next i przetestowa� po��czenie, by spraw-dzi�, czy z bazy danych s� pobierane oczekiwane warto�ci (co pokazano na rysunku 21.7).

W kocu nadszed� czas, by po��czy� utworzone przed chwil� ród�o danych z kontrolk� Radio�ButtonList. Kontrolka ta (podobnie jak wi�kszo�� innych list) rozró�nia warto�� wy�wietla-n� (w naszym przypadku nazw� firmy kurierskiej) oraz warto�� wyboru (w naszym przyk�a-dzie jest ni� identyfikator firmy kurierskiej). Pola te nale�y wskaza� w kreatorze, wybieraj�c jez list rozwijalnych, tak jak to pokazano na rysunku 21.8.

Page 25: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Wi�zanie danych � 789

Rysunek 21.5. Okno dialogowe Add Connection

Sprawdzanie koduZanim przejdziemy dalej, nale�y zwróci� uwag� na kilka zagadnie. Kiedy naci�niemy kla-wisz F5, by uruchomi� aplikacj�, zostanie ona wy�wietlona w przegl�darce, a strona, zgodniez oczekiwaniami, b�dzie prezentowa�a grup� przycisków opcji. Mo�emy teraz wybra� opcj�Choose View/Source, a przekonamy si�, �e do przegl�darki zosta� przes�any prosty kod HTMLprzedstawiony na listingu 21.2.

Listing 21.2. Kod ród�owy wygenerowanej strony

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>

</title></head><body> <form method="post" action="DisplayShippers.aspx" id="form1"><div class="aspNetHidden">

Page 26: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

790 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

Rysunek 21.6. Konfiguracja polecenia Select

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwUJMjMzNjY1MzU4D2QWAgIDD2QWAgIBDxAPFgIeC18hRGF0YUJvdW5kZ2QQFQMOU3BlZWR5IEV4cHJlc3MOVW5pdGVkIFBhY2thZ2UQRmVkZXJhbCBTaGlwcGluZxUDATEBMgEzFCsDA2dnZ2RkZCOksd8IILjpH4OAdNkxGqjSa0RYAA3N2F8zJz4lyxsv" /></div>

<div class="aspNetHidden"> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQK02+CfAgL444i9AQL544i9AQL644i9AQL3jKLTDWylFXks1YMe8G5o7AkyHjJysQk0 Cliwu8U/2yTrYA/Y" /></div> <div> <table id="RadioButtonList1"> <tr> <td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="1" /> <label for="RadioButtonList1_0">Speedy Express</label></td> </tr><tr> <td><input id="RadioButtonList1_1" type="radio" name="RadioButtonList1" value="2" /> <label for="RadioButtonList1_1">United Package</label></td> </tr><tr> <td><input id="RadioButtonList1_2" type="radio" name="RadioButtonList1" value="3" /> <label for="RadioButtonList1_2">Federal Shipping</label></td> </tr>

Page 27: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Wi�zanie danych � 791

Rysunek 21.7. Testowanie zapytania

</table>

</div> </form></body></html>

Zwró�my uwag�, �e w powy�szym kodzie HTML nie ma elementu RadioButtonList; zawieraon tabel� z komórkami, wewn�trz których s� umieszczone standardowe kontrolki HTML orazetykiety. A zatem ASP.NET przekszta�ci� swoje kontrolki na kod HTML zrozumia�y dla ka�dejprzegl�darki WWW.

Wrogo nastawiony u�ytkownik mo�e utworzy� ��danie wygl�daj�ce dok�adnie takjak prawid�owe dane przes�ane z naszego formularza, lecz zawieraj�ce zupe�nie inne,nieoczekiwane przez nas warto�ci. Mo�e mu to zapewni� mo�liwo�� wyboru opcji,która nie powinna by� dla niego dost�pna (na przyk�ad opcji dost�pnej wy��czniedla uprzywilejowanych u�ytkowników), b�d nawet umo�liwi� przeprowadzenieataku SQL injection (wstrzykni�cia kodu SQL). A zatem w przypadkach udost�pnianiaw formularzach HTML istotnych informacji takich jak warto�ci kluczy g�ównych nale�yzachowa� szczególn� ostro�no�� i pami�ta� o tym, �e dane pochodz�ce z formularzawcale nie musz� by� tymi, które zosta�y do niego przes�ane. Wi�cej informacji na tematpisania bezpiecznych aplikacji .NET mo�na znale� na stronie http://msdn.microsoft.com/security/.

Page 28: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

792 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

Rysunek 21.8. Wi�zanie przycisków opcji ze ród�em danych

Dodawanie kontrolek i formularzyWystarczy doda� do naszej przyk�adowej strony kilka kolejnych kontrolek, by utworzy� kom-pletny formularz zapewniaj�cy mo�liwo�� prowadzenia interakcji z u�ytkownikiem. W tymcelu dodamy bardziej odpowiednie powitanie („Witamy w NorthWind”), pole tekstowe pozwa-laj�ce na podanie imienia, dwa nowe przyciski (Zamów oraz Anuluj) i tekst, który umo�liwinam wy�wietlanie komunikatów dla u�ytkownika. Wygl�d strony po wprowadzeniu tych mody-fikacji przedstawili�my na rysunku 21.9.

Ten formularz nie wygra�by �adnej nagrody dla najlepszego projektu, niemniej jednak pozwolinam przedstawi� kilka kluczowych zagadnie zwi�zanych z formularzami Web Forms.

Nigdy nie spotkali�my programisty, który by nie uwa�a�, �e potrafi zaprojektowa�idealny interfejs u�ytkownika. Jednocze�nie nigdy nie uda�o nam si� spotka� takiego,który by to rzeczywi�cie potrafi�. Projektowanie interfejsów u�ytkownika jest jedn� z tychumiej�tno�ci (tak jak nauczanie), które ka�dy w jego w�asnej opinii posiada, jednak którebardzo niewiele naprawd� utalentowanych osób rozwin��o w wystarczaj�cym stopniu.Jako programi�ci doskonale znamy swoje ograniczenia: piszemy kod, a kto� inny roz-mieszcza kontrolki na stronie, zapewniaj�c ich odpowiedni� u�yteczno��. Czytelnikomzainteresowanym tymi zagadnieniami gor�co polecamy ksi��k� Don’t Make me Think:A Common Sense Approach to Web Usibility napisan� przez Steve’a Kruga i wydan� przezwydawnictwo New Riders Press oraz Why Software Sucks... and What You Can Do AboutIt napisan� przez Davida Platta i wydan� przez wydawnictwo Addison-Wesley.

Page 29: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Wi�zanie danych � 793

Rysunek 21.9. Doko�czony formularz z list� firm kurierskich

Listing 21.3 przedstawia kompletny kod pliku aspx.

Listing 21.3. Zawarto�� pliku aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DisplayShippers.aspx.cs" Inherits="ProgrammingCSharpWeb.DisplayShippers" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title></head><body> <form id="form1" runat="server"> <div>Witamy w NorthWind</div> <div> Twoje imi�: <asp:TextBox ID="txtName" runat="server"></asp:TextBox></div> <div>Kurier:</div> <div> <asp:RadioButtonList ID="rblShippers" runat="server" DataSourceID="SqlDataSource1" DataTextField="CompanyName" DataValueField="ShipperID"> </asp:RadioButtonList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [ShipperID], [CompanyName] FROM [Shippers]"> </asp:SqlDataSource> </div> <div> <asp:Button ID="btnOrder" runat="server" Text="Zamów" /> <asp:Button ID="Button2" runat="server" Text="Anuluj" /> </div> <div>

Page 30: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

794 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

<asp:Label id="lblMsg" runat=server></asp:Label> </div></form></body></html>

Kiedy u�ytkownik kliknie przycisk Zamów, odczytamy warto�� wpisan� przez niego w polutekstowym oraz wy�wietlimy komunikat potwierdzaj�cy wybór jednej z firm kurierskich.Trzeba pami�ta�, �e w momencie projektowania formularza nie jest ona znana, gdy� nazwywszystkich dost�pnych firm s� pobierane z bazy danych w trakcie dzia�ania aplikacji, niemniejjednak mo�emy pobra� z kontrolki RadioButtonList wybran� nazw� lub identyfikator.

Aby to zrobi�, nale�y wy�wietli� formularz w widoku projektu i dwukrotnie klikn�� przyciskZamów. W rezultacie Visual Studio wy�wietli plik kodu ukrytego oraz utworzy procedur�obs�ugi zdarze Click przycisku.

Aby upro�ci� kod naszej przyk�adowej aplikacji, nie b�dziemy sprawdza�, czy u�yt-kownik wpisa� swoje imi� w polu tekstowym. Informacje na temat kontrolek, któreznacznie upraszczaj� tak� weryfikacj� poprawno�ci danych, mo�na znale� w ksi��ceASP.NET. Programowanie.

W kodzie obs�uguj�cym zdarzenie okre�lamy tre�� wy�wietlanego komunikatu, umieszczaj�cw niej imi� odczytane z pola tekstowego oraz tekst i warto�� kontrolki RadioButtonList:

protected void btnOrder_Click(object sender, EventArgs e){ lblMsg.Text = "Witaj, " + txtName.Text.Trim() + ". Dzi�kujemy za zamówienie. " + "Wybra�e� firm� kuriersk� " + rblShippers.SelectedItem.Text + " o identyfikatorze " + rblShippers.SelectedValue + ".";}

Po uruchomieniu naszej aplikacji mo�na zauwa�y�, �e pocz�tkowo �aden z przycisków opcjinie jest zaznaczony. Podczas wi�zania listy ze ród�em danych nie okre�lili�my, która z warto-�ci powinna by� traktowana jako domy�lna. Mo�na to zrobi� na kilka ró�nych sposobów,jednak najprostszym z nich jest dodanie jednego wiersza kodu do metody Page_Load automa-tycznie tworzonej przez Visual Studio:

protected void Page_Load(object sender, EventArgs e){ rblShippers.SelectedIndex = 0;}

Zastosowanie powy�szego kodu sprawi, �e zostanie zaznaczony pierwszy przycisk opcjiw kontrolce RadioButtonList. W powy�szym rozwi�zaniu wyst�puje jeden dosy� subtelny pro-blem. Otó� kiedy uruchomimy aplikacj�, zostanie zaznaczony pierwszy przycisk, a je�li nast�p-nie wybierzemy drugi lub trzeci i klikniemy Wy�lij, to oka�e si�, �e po ponownym wy�wie-tleniu strony znowu b�dzie zaznaczony przycisk pierwszy. Mo�e si� zatem wydawa�, �e nie dasi� wybra� �adnej innej opcji poza pierwsz�. Dzieje si� tak dlatego, �e za ka�dym razem, gdystrona jest wy�wietlana, zostaje wykonane zdarzenie OnLoad, a procedura jego obs�ugi zawszezaznacza pierwszy z przycisków opcji w kontrolce RadioButtonList.

Jednak nam chodzi o to, by ten pierwszy przycisk zosta� zaznaczony wy��cznie podczas pierw-szego wy�wietlenia strony, lecz nie podczas kolejnych wy�wietle nast�puj�cych po klikni�ciuprzycisku Wy�lij.

Page 31: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Wi�zanie danych � 795

Aby rozwi�za� ten problem, wystarczy umie�ci� wiersz kodu zaznaczaj�cy pierwszy przyciskkontrolki RadioButtonList wewn�trz instrukcji warunkowej sprawdzaj�cej, czy formularz zosta�przes�any na serwer:

protected void Page_Load(object sender, EventArgs e){ if (!IsPostBack) { rblShippers.SelectedIndex = 0; }}

W momencie wykonywania strony sprawdzana jest warto�� w�a�ciwo�ci IsPostBack. Za pierw-szym razem przyjmie ona warto�� false, zatem pierwsze pole kontrolki zostanie zaznaczone.Kiedy zaznaczymy jaki� przycisk opcji i klikniemy przycisk Wy�lij, strona zostanie przes�ana naserwer w celu jej przetworzenia (co spowoduje wykonanie procedury obs�ugi btnOrder_Click),a nast�pnie zostanie odes�ana do klienta. W tym przypadku w�a�ciwo�� IsPostBack przyjmiewarto�� true, co sprawi, �e kod umieszczony wewn�trz instrukcji if nie zostanie wykonany.Dzi�ki temu, jak pokazano to na rysunku 21.10, po ponownym wy�wietleniu strony b�dzie naniej zaznaczony przycisk wybrany wcze�niej przez u�ytkownika.

Rysunek 21.10. Wybór u�ytkownika zachowany po ponownym wy�wietleniu strony

Listing 21.4 przedstawia kompletny kod ukryty obs�uguj�cy nasz przyk�adowy formularz.

Listing 21.4. Kod ukryty umieszczony w pliku DisplayShippers.aspx.cs

using System;

namespace ProgrammingCSharpWeb{ public partial class DisplayShippers : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack)

Page 32: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

796 � Rozdzia� 21. Tworzenie aplikacji w ASP.NET

{ rblShippers.SelectedIndex = 0; } }

protected void btnOrder_Click(object sender, EventArgs e) { lblMsg.Text = "Witaj, " + txtName.Text.Trim() + ". Dzi�kujemy za zamówienie. " + "Wybra�e� firm� kuriersk� " + rblShippers.SelectedItem.Text + " o identyfikatorze " + rblShippers.SelectedValue + "."; } }}

PodsumowanieW tym rozdziale pokazali�my, jak mo�na utworzy� prost� aplikacj� ASP.NET, korzystaj�cz technologii Web Forms. Powi�zali�my list� przycisków opcji z tabel� bazy danych i dodali�mykod obs�uguj�cy zdarzenia po stronie serwera zapewniaj�cy nam mo�liwo�� reagowania naczynno�ci wykonywane na stronie przez u�ytkownika.

Page 33: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

817

Skorowidz

.NET 4, 16

Aabstrakcyjne klasy bazowe, 138ACL, access control list, 493Adams Matthew, 819ADO.NET, 542

dost�p do danych, 543zbiory danych, 545

ADO.NET EntityClient, 574adres, 491adres bazowy, 492adres IP, 526adres us�ugi, 497adresy IPv4, 526adresy IPv6, 526agregacja, 122, 301, 303AJAX, Asynchronous JavaScript and XML, 476akcesor

get, 82, 260set, 82, 260

aktualizacja encji, 585aktualizacje, 480algorytm

asymetryczny, 445kryptograficzny, 445mieszaj�cy, 604symetryczny, 445

analiza obiektowa, 80animacje, 757anulowanie operacji, 193, 669Any CPU, 719API, 85API HTTP, 482API XML, 456aplikacja konsolowa, 31, 597

ChatHost, 490

aplikacjaNetwork Monitor, 489niepodpisana, 438podpisana, 437Silverlight, 698, 737WWW, 476

APM, Asynchronous Programming Model, 656,658

architektura x86, 717args, 36, 57argumenty opcjonalne, 731argumenty tablicowe, 237ASCII, 369asocjacje, associations, 122, 559ASP.NET, 21, 489, 777asynchroniczne metody, 518asynchroniczne operacje wej�cia-wyj�cia, 430asynchroniczne uzyskiwanie odpowiedzi, 520atak typu SQL injection, 544atak typu zeroday, 505Atom, 517AtomPub, 588atrybut, attribute, 675

[Flags], 99address, 492AttributeUsage, 678baseAddress, 492DefaultParameterValueAttribute, 109DllImport, 721Namespace, 498OptionalAttribute, 109PublicKeyToken, 603XmlIgnoreAttribute, 473

atrybutykonstruowanie, 678mo�liwe cele, 676nazywanie, 678podzespo�ów, 677u�ywanie, 679

Page 34: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

818 � Skorowidz

atrybutyw�asne, 677XML, 460, 740

automatyzacja COM, COM automation, 25, 693,697

automatyzacja programu Word, 693

Bbardziej znacz�cy bajt, 376baza danych, 547, 550bezpieczestwo, 493bezpieczestwo w�tków, 508bia�e znaki, whitespace, 83, 277, 364biblioteka, 37

.NET Framework, 20, 35, 182ChatServerLibrary, 490kernel32.dll, 720mscorlib, 40, 604Task Parallel Library, 623, 625, 660TPL, 667

bibliotekiklas, Class Library, 20, 597kontrolek i XAML, 763typu, type library, 713

bie��cy katalog roboczy, 384BigInteger, 49BlockingCollection, 654blok case, 63blok catch, 222blok finally, 226blokada, 645blokada hierarchiczna, lock leveling, 645blokada referencji this, 643blokada SpinLock, 650blokady odczytu i zapisu, 651b��d BadImageFormatException, 718b��dy

programistyczne, 700sprawdzane jawnie, 216typograficzne, 362wyst�puj�ce najcz��ciej, 200

buforowanie, 428

CC# 4.0, 16camelCase, 83camelCasing, 113cecha, feature, 664chronione klasy wirtualne, 187ciasteczka, cookies, 506, 524CLI, Common Language Infrastructure, 24, 104

CLR, Common Language Runtime, 21, 23COM, Component Object Model, 626, 712, 715CPU, central processing unit, 616CRUD, Create, Read, Update, and Delete, 577Ctrl+Alt+C, 213Ctrl+D, 805Ctrl+F5, 31, 226Ctrl+O, 805Ctrl+Shift+A, 64Ctrl+Shift+N, 29Ctrl+T, 805cykl �ycia strony, 780czas bie��cy, 538czas UTC, 534czas �ycia kontekstu, 586czcionka, font, 324czyszczenie danych, 357

DDDoS, 538debugger, 67, 213debugowanie, 500debugowanie programów wielow�tkowych, 621debugowanie warto�ci zwracanych, 213defekt, bug, 199definicja

EDM, 575interfejsu ISet<T>, 318izolowania, 436operatora Where, 570

definiowanieinterfejsów, 149klas, 35, 81konstruktora, 86kontraktu, 484metod, 112typów, 35w�asnych atrybutów, 678w�asnych znaczników, 456

deklaracja pola, 91deklaracja typu wyliczeniowego, 97deklaracja w�a�ciwo�ci, 182deklarowanie metod statycznych, 115deklarowanie typów delegacji, 167deklarowanie zmiennej tablicowej, 236dekodowanie, 371dekompilator, 734dekompozycja funkcjonalna, 79delegacja, 166, 180

Action, 174anonimowa, 177Check, 175

Page 35: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 819

DocumentProcess, 169EventHandler, 186QuickCheck, 175

delegacje do funkcji, 182delegacje i zmienne, 167delegacje predykatów, 243delegacje we w�a�ciwo�ciach, 180deserializacja XML, 469deszyfracja, 444, 450Dijkstra Edsger, 71dll, dynamic link library, 37DLR, Dynamic Language Runtime, 704d�ugo�� transakcji, 582DNS, Domain Name Service, 526dodawanie

blokowania do klasy, 644elementów, 256encji, 578formularzy, 792komponentu COM, 712kontrolek, 783, 792metody rozszerzenia, 279odwo�ania, 595odwo�ania do us�ugi, 498w�a�ciwo�ci, 82, 87

dokument RFC867, 530dokumentacja biblioteki .NET, 41dokumentacja MSDN, 101, 227, 659DOM, Document Object Model, 456domena aplikacji, appdomain, 231, 609domkni�cie, closure, 184dostawca bazy danych LINQ, 547, 570dost�p do danych, 542, 550dost�p do encji, 574dost�p do klasy, 600dost�p do �acuchów po��cze, 576dost�p do wspó�dzielonych danych, 583Double.NaN, 205Double.NegativeInfinity, 205Double.PositiveInfinity, 205drzewa wyra�e, expression trees, 179, 571dwustronne kontrakty, duplex contracts, 504dwustronny klient, 511dynamiczne wywo�ywanie metody, 688dyrektywa using, 32dyrektywa using System.Linq, 276dyski SSD, Solid State Driver, 629dzia�anie równoleg�e, parallel execution, 611dzieci, child elements, 454dziedziczenie, 124, 132, 565dziedzina aplikacji, 609dziel i rz�d, 77dzielenie ca�kowite, 53

dzielenie �acucha znaków, 354dzielenie przez zero, 204dzielenie zmiennoprzecinkowe, 53

EEDM, Entity Data Model, 552element, 742

behavior, 494ContentPresenter, 767endpoint, 492, 502g�ównt, root element, 454host, 492Image, 756MediaElement, 756Path, 752PostNote, 487przodka, 454serviceDebug, 494w�a�ciwo�ci, property element, 743

elementy, 453formatu, 345graficzne, 752interfejsu, 739potomne, 454XML, 459

encja SalesOrderHeader, 573encje, 553Entity Framework, 541, 551, 570

modele, 551odwzorowywanie, 551

enumeratory, 265ESQL, Entity SQL, 570exe, executable, 37

Ffiltr, 708filtr dynamiczny, 708filtrowanie, 285filtrowanie za pomoc� LINQ, 708finalizacja, 670flaga FileOptions.Asynchronous, 432flaga FileOptions.None, 432format

big-endian, 376daty, 341dziesi�tny, 332JPEG, 757JSON, 588liczbowy, 335liczbowy niestandardowy, 337ogólny, 334

Page 36: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

820 � Skorowidz

formatPNG, 757powrotny, round trip, 336procentowy, 335sta�oprzecinkowy, 334szesnastkowy, 332uniwersalny, 342wyk�adniczy, 333wyk�adniczy bez okre�lonej precyzji, 334

formatowanie, 348formatowanie danych, 330formatowanie warto�ci walutowych, 331formularz, 806formularz z powi�zanymi kontrolkami, 810funkcja, 78, 178

CreateCustomerList, 458CreateFile, 725get_NazwaWlasciwosci, 147MoveFile, 720ReadFile, 726set_NazwaWlasciwosci, 147

funkcjeJavaScript, 699mieszaj�ce, 308MIME, 540

funkcyjne j�zyki programowania, 283

GGAC, global assembly cache, 606garbage collector, 20generator liczb losowych, 446generowanie podpisu cyfrowego, 604globalna przestrze nazw, 34globalny bufor podzespo�ów, 606g�ówny podzespó� wspó�dzia�ania, 27, 716gniazda, 480, 505, 525gniazda dzia�aj�ce w podwójnym trybie, 535gniazda TCP, 530, 533gniazda uk�adu, 747gradient, 754grafika trójwymiarowa, 758Griffiths Ian, 819grupowanie, 289grupowanie znaków w pary, 370gubienie pakietów, 529

Hhash publicznego klucza, 604hermetyzacja metody w obiekcie, 166hierarchia elementów, 453hierarchia katalogów, 394

hierarchia klas, 138, 147hiperprostok�t, orthotope, 251host, 490host us�ugi, 493

IIANA, Internet Assigned Numbers Authority, 530IL, Intermediate Language, 23, 38implementacja

interfejsu, 150, 153interfejsu IClockIn, 156interfejsu IEnumerable<T>, 268operatorów LINQ, 280

importowanie kontrolek, 712indeks, 234indeksator, 349indeksator klasy String, 349indeksator niestandardowy, 257informacje o b��dach, 208, 216informacje o pliku, 381, 385informacje o typie anonimowym, 295informacje o zdarzeniach, 195infrastruktura TLS/SSL, 540inicjalizator obiektu, 108, 110inicjalizator pola, 92inicjalizator tablicy, 236inicjowanie kolekcji, 236inkrementacja, 635instrukcja

fixed, 728for, 67foreach, 65goto, 63if, 58if … else, 61switch oraz case, 62throw, 215try-catch, 221while oraz do, 69yield return, 268, 270

instrukcjeiteracji, 64przypisania, 55sterowania przep�ywem, 56

integracja systemów, 482inteligentny znacznik, smart tag, 784IntelliSense, 180interfejs

IChatService, 498IClockIn, 156ICryptoTransform, 447IDataReader, 542

Page 37: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 821

IDictionary, 316IEnumerable<T>, 265, 268, 317IEnumerator<T>, 265IFormatProvider, 348INamedPerson, 151INotifyPropertyChanged, 772klienta, 504komunikacji zwrotnej, 512

interoperacyjno��, 707IP, Internet Protocol, 526iterowanie dynamicznych w�a�ciwo�ci, 705izolowanie, 436, 439, 440

Jjawna implementacja interfejsu, 153jawne odwo�anie, 113jednow�tkowy kod asynchroniczny, 660j�zyk

C#, 13Eiffel, 215ESQL, 571F#, 22IronPython, 705IronRuby, 705JavaScript, 741kompilowany, 38LINQ, 275maszynowy, 38ML, 22obiektowy, 35, 80po�redni, Intermediate Language, 24, 38UML, 123VB.NET, 20WSDL, 485XAML, 735XHTML, 455XML, 453XPath, 468

JIT, just in time, 717JSON, JavaScript Object Notation, 476

Kkana� alfa, 754karta .NET, 595karta Browse, 596karta COM, 596karta Debug, 58karta Projects, 599kaskadowe operacje usuwania, 579katalog mechanizmu Isolated Storage, 443

katalogikontrola dost�pu, 395prawa dost�pu, 396usuwanie rekurencyjne, 405specjalne, 390testowe, 393

klasa, 80abstrakcyjna, 139Activator, 687Administrator, 142, 146APIFileReader, 725ApplicationException, 231argumentów zdarzenia, 190AutoResetEvent, 653AxHost, 714bazowa, 124, 140bazowa Array, 242BindingList, 813BindingSource, 799CalendarEvent, 243, 292CancelEventArgs, 192CancellationTokenSource, 668ChatServiceClient, 500ChatServiceProxy, 507ConfigurationManager, 576Console, 33, 36, 354ContentControl, 759Control, 742, 765, 801, 802CountdownEvent, 654CredentialCache, 521, 522CryptoStream, 444CultureInfo, 346Customer, 458DataSet, 545DataTable, 545DbException, 230Delegate, 166, 168Directory, 382, 384Dns, 658Document, 159DocumentProcessor, 162, 176, 195Encoding, 372Enumerable, 279Environment, 117, 390Exception, 215ExpandoObject, 705File, 277FileContents, 415, 421FileInfo, 385FileStream, 420, 428FileWebRequest, 518FileWebResponse, 518FireChief, 140

Page 38: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

822 � Skorowidz

klasaFirefighterBase, 142FireStation, 145, 155Foo, 280FrameworkElement, 802FtpWebRequest, 518FtpWebResponse, 518GetFolderPath, 390HashSet<T>, 318HttpListener, 514HttpWebRequest, 518, 521HttpWebResponse, 518Image, 756Interlocked, 633InvalidOperationException, 215IPAddress, 526IsolatedStorageFile, 434, 442LinkList<T>, 320List<T>, 254, 262, 264ManualResetEvent, 653MemoryStream, 444, 448, 450Monitor, 646Mutex, 652NamedPerson, 146NetworkCredential, 522NetworkStream, 533Object, 144ObjectContext, 555Panel, 743Parallel, 671Path, 383pochodna, 124Polyline, 752ProcessEventArgs, 190Queue<T>, 319, 321RecordCache, 317Shape, 752Socket, 531, 537SortedSet<T>, 318SqlConnection, 542Stack<T>, 321Stopwatch, 262Stream, 516StreamReader, 405StreamWriter, 403String, 349StringBuilder, 143, 357, 362StringComparer, 288SynchronizationContext, 626System.Console, 21System.Globalization.CultureInfo, 346System.Math, 32, 686Task, 662

TaskFactory, 667TaskScheduler, 666Thread, 618ToDoEntry, 809TrademarkFilter, 170TraineeFirefighter, 139, 140TransactionScope, 581Turtle, 200, 223TurtleException, 230Type, 682Uri, 515VideoBrush, 757VisualStateManager, 769WaitForIt, 646WebClient, 514, 518WebProxy, 523WebRequest, 518WebResponse, 518XmlReader, 456XmlSerializer, 470XmlWriter, 456zagnie�d�ona, nested class, 174

klasy bazowe ADO.NET, 543klauzula

from, 276, 296group, 277, 290, 386into, 290let, 280ORDER BY, 568orderby, 286select, 277where, 277, 469, 547WHERE, 568

klauzule stra�nicze, guard clauses, 215klawisz F11, 67klawisz F5, 67klawisz F7, 738klawisz skrótu, 805klient .NET, 480klient Silverlight, 478, 491klient WCF, 496klient zewn�trzny, 483klienty aplikacji WWW, 477, 514klucz, 308, 445klucz g�ówny, 589klucz obcy, 558klucz publiczny, 604kod

ASCII, 354, 369kod b��du, 207filtruj�cy, 591funkcyjny, 36, 283generuj�cy zdarzenia, 191

Page 39: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 823

HTML, 778, 789JavaScript, 698modyfikuj�cy informacje, 283niebezpieczny, 726polimorficzny, 264proceduralny, 36synchronizuj�cy, 644ukryty, code behind, 737, 795uzale�niony od interfejsu, 772wielow�tkowy, 637wykonywany na serwerze, 778XAML, 738, 774zarz�dzany, managed code, 23zewn�trzny, 32

kodowanie, 371kodowanie Base64, 449kodowanie Latin-1, 368kodowanie Mac-Roman, 369kodowanie tekstu, 371kodowanie znaków, 368kolejka, 319

FIFO, 321, 664LIFO, 321, 664

kolejkowanie elementów, 625kolejno��

bloków catch, 221elementów tablicy, 244inicjalizatorów pól statycznych, 118parametrów, 105wywo�ywania metod, 135

kolekcja, 264kolekcja BlockingCollection, 654kolekcja ogólna List<T>, 145kolekcja unikalnych warto�ci, 318kolekcje enumerowalne, 266kolumna dyskryminatora, 565kolumna rowguid, 558kombinacja warto�ci, 99komentarz, 43kompilacja, 38kompilator C#, 35kompozycja, composition, 123komunikacja dwukierunkowa, 503komunikacja pomi�dzy programami, 496komunikat o b��dzie, 84, 86, 103, 105, 125, 139,

141, 154, 221, 260, 598konfiguracja

polecenia Select, 790procesora dokumentów, 165proxy, 522serwera, 511

WCF, 490ród�a wi�zania, 800

konflikt nazw, 152konkatenacja, 289, 296konkatenacja �acuchów znaków, 353konkatenacja tablicy, 353konstruktor, 86

bezargumentowy, 109domy�lny, 104, 109klasy StringBuilder, 358statyczny, 117

kontekst obiektu, object context, 555, 574kontekst w�tków, 625kontrakt, contract, 484, 492kontrakt dwustronny, 504kontrakt us�ugi, service contract, 484kontrakty WCF, 484kontrolka

ListBox, 761, 773, 802, 814ListView, 802, 804, 813SplitContainer, 802TreeView, 762

kontrolki, 742, 759, 801ActiveX, 711, 715ASP.NET, 778serwerowe, 785serwerowe ASP.NET, 785sieciowe, web controls, 778u�ytkownika, user controls, 762Windows Forms, 797z wieloma elementami, 760z zawarto�ci�, 759zadokowane, 806zakotwiczone, 807

kontynuacje, 665konwersja, 305konwersja danych na Base64, 450konwersja liczb, 330konwersja �acuchów, 343koordynacja w�tków, 646kopiowanie warto�ci, 101kowariantne argumenty typów, 267kradzie� zada, 665krotno��, multiplicity, 563krój pisma, typeface, 324kryptografia, 445kryterium sortowania, 287krzywa Beziera, 753kszta�ty, 752kwantyfikator egzystencjalny, 301kwantyfikator ogólny, 301

Page 40: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

824 � Skorowidz

LLearning WCF, 488leniwa enumeracja, 273leniwe kolekcje, 270leniwe przetwarzanie, 271Liberty Jesse, 819liczba logicznych procesorów, 629liczba w�tków, 616, 623liczby ca�kowite, 46liczby zmiennoprzecinkowe, 49limit, 452LINQ, Language Integrated Query, 20, 233, 275

generowanie elementów XML, 463przeszukiwanie kodu XML, 464tworzenie kodu XML, 463

LINQ to Entities, 544, 566LINQ to Objects, 275, 383, 547LINQ to SQL, 546, 548, 570LINQ to XML, 456Liskov Barbara, 125lista, 264

ACL, 493bibliotek w projekcie, 40inicjalizatora s�ownika, 309inicjalizatorów, 234, 235kontroli dost�pu, 493metod, 700metod na stosie, 74parametrów, 36plików, 381przycisków, 784szablonów, 483us�ug, 487

listy list, 258listy po��czone, 320litera�, 52litera� �acuchowy, 326litera� znakowy, 327litera�y XML, 23localhost, 528losowa nazwa pliku, 390losowo��, 446LSB, least-significant byte, 376LSP, Liskov Substitution Principle, 125

��adowanie encji dla asocjacji, 561�adowanie jawne, 607�adowanie podzespo�ów, 605�adowanie z bufora GAC, 606�adowanie z folderu aplikacji, 606

�adowanie z pliku Silverlight, 607�acuch formatuj�cy, 345�acuch jako klucz w s�owniku, 350�acuch po��czenia z SQL Serverem, 576�acuch UserAgent, 518�acuch znaków, 72, 324�acuchy URL, 514��czenie, 304��czenie elementów �cie�ek, 393��czenie klienta z serwerem, 496��czenie leniwych enumeracji, 272��czenie �acuchów znakowych, 143, 571��czenie si� z us�ugami, 531

Mmagazyn, store, 434magazyn ciasteczek, 524magazyn u�ytkownika, 440magazyny izolowane, 436ma�y odst�p, thin space, 366MapReduce, 303mechanizm

Hibernate, 548IntelliSense, 701Isolated Storage, 433, 440komunikacji, 491odwzorowywania, 557odzyskiwania pami�ci, 724ORM, 548P/Invoke, 720, 722szereguj�cy, scheduler, 615, 666wymiany metadanych, 512zmiany nazw, 139

media, 756MEF, Managed Extensibility Framework, 608metadane, metadata, 512, 593, 675metoda, 35, 71, 78

AddAnything, 702AddFirst, 320AddLast, 320AddNumbers, 235, 270AddProcess, 175AddRange, 256Aggregate, 303APM, 667Array.Copy, 246Array.Resize, 247, 254Array.Sort, 245Backwards, 279BeginGetRequestStream, 520BeginTransaction, 583BeginWrite, 431

Page 41: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 825

ClockIn, 145, 157CompareBytes, 422CompareFiles, 415CompareTo, 245Compile, 570Configure, 169Connect, 513Console.ReadKey, 374Console.ReadLine, 692Contains, 318ContinueWith, 665Convert.FromBase64String, 450Convert.ToBase64String, 450CopyTo, 246, 425Cos, 687CreateComInstanceFrom, 687CreateEncryptor, 447CreateInstance, 687CreateInstanceFrom, 687CreateTestFiles, 401DateTime.ParseExact, 345Delete, 389Directory.CreateDirectory, 394Directory.EnumerateFiles, 276Directory.GetFile, 412Directory.SetAccessControl, 410Disconnect, 507DisplayMatches, 380, 385, 414, 422Dispose, 587Dns.GetHostEntry, 535double.Parse, 57DownloadData, 514DownloadFile, 514DownloadString, 514, 655Drive, 202DynamicWhere, 710Element, 468Elements, 468Encoding, 324EncryptString, 446End, 658EndGetRequestStream, 520EnlistTransaction, 583Enqueue, 319Equals, 308ExecuteReader, 543ExtinguishFire, 140File, 402File.Create, 431File.CreateText, 435File.EndWrite, 432File.Exists, 406File.OpenRead, 420, 426

File.OpenWrite, 426File.ReadAllBytes, 419File.ReadAllLines, 72File.ReadAllText, 628Find, 244FindAll, 242FindIndex, 244FindLast, 244FindLastIndex, 244First, 299Flush, 429FlushFinalBlock, 448GenerateIV, 445GenerateKey, 445GetAccessControl, 410GetAllFilesInDirectory, 271, 275, 276GetBytes, 372GetCurrentDirectory, 384GetEnumerator, 265GetEventsByDay, 289GetFiles, 383GetFolderPath, 392GetFullPath, 384GetHashCode, 308GetLength, 253GetRandomFileName, 389GetStream, 520GetTempFileName, 388GetType, 470GetValue, 234GetWebRequest, 518GetWebResponse, 518HandleError, 217Include, 561IncreaseQuotaTo, 441IndexOf, 244, 361InspectDirectories, 380, 381, 386Invoke, 168IsNullOrEmpty, 143Join, 620LastIndexOf, 244Listen, 536Load, 561LoadFile, 608Main, 36, 115, 189MakeTestDirectories, 388, 409Monitor.Enter, 642Monitor.Exit, 642myString.Replace, 692odczytuj�ca liczby z pliku, 72OpenReadAsync, 517OpenWrite, 517OpenWriteAsync, 517

Page 42: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

826 � Skorowidz

metodaParallel.For, 671Parallel.ForEach, 673Path.Combine, 394POST, 517PostNote, 503, 509Process, 164, 169QueueUserWorkItem, 624ReadAllBytes, 414ReadAllLines, 414ReadAllText, 414ReadKey, 658ReadNumbersFromFile, 73Refresh, 585, 586RemoveAccessRuleSpecific, 410RemoveFirst, 320RollCall, 145Rotate, 202RunFor, 227SaveChanges, 583SecretKeyAndIV, 445Seek, 424Select, 278SendMessage, 107SetCurrentDirectory, 384SetValue, 234Sort, 244Split, 236String.Concat, 353String.Format, 345String.Join, 354String.Split, 237, 355Substring, 351, 367Task.WaitAll, 663Thread.Sleep, 649ToArray(), 73ToBuffer, 450ToLower, 355ToString, 330, 460ToUpper, 355Trim, 365, 366TrimEnd, 365TrimStart, 365, 367TryGetValue, 313, 315TryParse, 344UploadData, 516UploadFile, 516UploadString, 516WaitUntilReady, 648Where, 278WriteAllLines, 402WriteLine, 36

metodyabstrakcyjne, 138, 139anonimowe, anonymous methods, 177asynchroniczne, 516klasy List<T>, 264klasy Path, 383przeci��one, 106rozszerze, extension methods, 278, 703rozszerze dla klasy String, 352statyczne, 115metody wirtualne, 130metody wytwórcze, factory methods, 108, 110metody zagnie�d�one, 622

mniej znacz�cy bajt, 376mobilny profil, 392model

DOM, 698encji danych, 552jednow�tkowy, 660koncepcyjny, conceptual model, 552MVC, 777programowania asynchronicznego, 520, 656widoku, view model, 775

modelowanie oprogramowania, 123M-odst�p, em space, 366modyfikacja kontraktu, 485modyfikacja nag�ówka, 519modyfikacja procesora dokumentów, 172modyfikacja zmiennych zewn�trznych, 184modyfikator

abstract, 130, 150const, 92dost�pu, 85, 132new, 127out, 214, 267override, 129protected, 132protected internal, 132readonly, 638ref, 214, 730sealed, 136unsafe, 724virtual, 130

modyfikowanie encji, 577monitor, 639MSB, most-significant byte, 376multipleksing, 612muteks, 652

Page 43: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 827

Nnadekspresja, overexpression, 664narz�dzie ildasm, 147narz�dzie SQL Profiler, 567nas�uchiwanie przychodz�cych po��cze TCP, 535na�ladowanie, impersonation, 437nawias klamrowy, 35, 65nawias kwadratowy, 36nazwa Control, 33nazwa podzespo�u, 602nazwa zast�pcza, alias, 48NHibernate, 548niejawna konwersja, 54niezmienno��, 638niezmienno�� �acucha znaków, 349NIST, National Institute of Standards and

Technology, 531N-odst�p, en space, 366no-PIA, 27notatka, 486numer portu, 530numer wersji, 603numerowanie elementów, 297

Oobci��enie procesora, 630obiekt, 80

APIFileReader, 727ASCIIEncoding, 727CalendarEvent, 244CancellationToken, 668COM, 696, 697DirectorySecurity, 410Encoding, 405FileDetails, 381FileInfo, 281FileNameGroup, 381FileSecurity, 429ImageSource, 776INamedPerson, 152IntPtr, 428IsolatedStorageFile, 443List<double>, 73List<T>, 641po�rednicz�cy, proxy, 500SafeFileHandle, 428ServiceHost, 495Socket, 534StreamReader, 451StreamWriter, 435StringBuilder, 378

TrademarkFilter, 171TransactionScope, 581typu Program, 72

obiekty .NET, 699obiekty ExpandoObject, 705obliczanie odleg�o�ci, 115obrazy, 755obs�uga

anulowania, 668b��dów, 211, 413, 669powinowactwa, 626stronicowania, 590wariancji, 267w�tków, 617wyj�tków, 219, 406, 412zdarze, 811, 813

ochrona, 599ochrona wewn�trzna, internal, 600odliczanie, 654odnajdywanie warto�ci, 310odpytywanie, polling, 656odwo�anie, reference, 594odwo�anie do pliku DLL, 596odwo�anie do tablicy, 253odwo�anie do zasobów EDM, 576odwo�ywanie zdarzenia, 192odwzorowywanie, mapping, 551odzwierciedlanie, reflection, 675, 682

badanie metadanych, 681na rzecz typu, 684, 686odkrywanie typów, 681, 683póne wi�zanie, 681, 686tworzenie typów, 681

odzyskiwanie pami�ci, 20ognisko wprowadzania, input focus, 770okno

Add Connection, 789Add New Item, 552Add Reference, 595Add Service Reference, 496, 501Configure Data Source, 787Data Source Configuration Wizard, 787debuggera, 218konsoli, 495Mapping Details, 554Mapping Details, 555Model Browser, 554New Project, 30Solution Explorer, 557wiersza polece, 31

opakowanie obiektu komunikacji zwrotnej, 512opcja Remove and Sort, 34operacja wykonywana bez po��czenia, 545

Page 44: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

828 � Skorowidz

operacjeasynchroniczne, 660na katalogach, 382na plikach, 382na �cie�kach, 383wej�cia-wyj�cia, 407

operator&&, 60/, 52||, 61+=, 93, 634=, 92Aggregate, 302All, 301AND, 99Any, 301as, 157Average, 302Cast, 305Concat, 289, 304Count, 302dekrementacji --, 56Distinct, 304Except, 304First, 299group, 384inkrementacji ++, 56Intersect, 304Last, 299LastOrDefault, 299Max, 302Min, 302new, 108, 118OR, 99porównania, 60rzutowania, 54SelectMany, 297Single, 300Sum, 302Take, 299ToArray, 305ToDictionary LINQ, 317ToList, 305trójargumentowy, 61Union, 304Zip, 298

operatory LINQ, 279, 283, 285opónione wykonanie, deferred execution, 566opró�nianie buforów, 429optymistyczna wspó�bie�no��, optimistic

concurrency, 584ORM, Object Relational Mapper, 548osadzanie us�ugi WCF, 495osie wyszukiwania, 468

Ppakiet, 526pakowanie, boxing, 144pami�� izolowana, isolated storage, 379pami�� podr�czna, 523panel

Canvas, 746DockPanel, 747Grid, 743, 744Properties, 784Solution Explorer, 39, 594, 713StackPanel, 745, 749Toolbox, 712, 783

parametr domy�lny, 107parametry nazwane, 109parametry typów, type parameters, 255PascalCase, 83PascalCasing, 113peer-to-peer, 476pe�na wersja .NET Framework, 733p�tla

do while, 70for, 68foreach, 65while, 69

PIA, primary interop assembly, 27, 716pisanie bibliotek, 597platforma .NET, 13platforma ASP.NET, 33platforma WCF, 483, 505platforma Windows Form, 21plik

App.config, 490, 497, 502, 574AssemblyInfo.cs, 39, 602ChatService.cs, 484Class1.cs, 597DisplayShippers.aspx.cs, 795IChatService.cs, 484MyData.svc, 589Program.cs, 30Reference.cs, 498standardsettings.txt, 443web.config, 495Web.config, 782

plikipobieranie informacji, 385porównywanie zawarto�ci, 414powtarzaj�ce si�, 379tworzenie, 388usuwanie, 389wczytywanie do pami�ci, 414wykrywanie duplikatów, 433zapisywanie, 402

Page 45: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 829

aspx, 778, 793exe, 38dll, 38edmx, 553, 555kodu ukrytego, 782msi, 39testowe, 387tymczasowe, 388XAML, 738, 764xap, 607

PLINQ, równoleg�e LINQ, 673pobieranie

adresów IP, 528ciasteczek, 524danych, 514, 517danych ASCII, 533plików, 382znaków, 351

POCO, Plain Old CLR Object, 556podpis cyfrowy, 603podzespo�y o silnych nazwach, 603podzespo�y wspó�dzia�ania, interop assemblies,

714podzespó�, 437, 593, 683pojedyncza instancja us�ugi, 507pojemno�� obiektu StringBuilder, 360pola bitowe, bit fields, 99pole, field, 90pole logiczne canGo, 646pole statyczne, 116, 508pole tylko do odczytu, 95, 118pole wyboru Create directory for solution, 30polecenie Select, 790polecenie Set as Startup Project, 495polimorfizm, polimorphism, 125, 264po��czenie z baz� danych, 567, 574po��czenie ze ród�em danych, 788pomiar wydajno�ci listy, 262porównywanie, 308porównywanie elementów, 245porównywanie nazw, 707port, 530, 536porz�dkowanie, 286powiadomienia, 645powi�zania, 160powinowactwo do w�tku, thread affinity, 625powrót karetki, carriage return, 354poziom ochrony, 84, 599

internal, 84privat, 84protected, 85protected internal, 85

póne �adowaniea danych, lazy loading, 561

póne wi�zanie, late binding, 687prawa dost�pu, 395prawo Moore’a, 629predykat, predicate, 175prezentacja oddzielona, separated presentation,

775priorytety operatorów, 54proces wdra�ania oprogramowania, 482procesor dokumentów, 164, 171, 173procesor logiczny, 616procesory wielordzeniowe, 616profil podstawowy, basic profile, 477program

Adobe Illustrator, 755Adobe Photoshop, 755charmap.exe, 373Expression Blend, 740storeadm.exe, 441WCF Test Client, 487Wireshark, 489

programowanieasynchroniczne, 612, 655dynamiczne, 26funkcyjne, 20wielow�tkowe, 612

projekcja, projection, 291projekt, 37

bazy danych, 551biblioteki klas, 597ChatClient, 499ChatHost, 495ChatServerLibrary, 490Mono, 25Moonlight, 25, 734

projektowanie wed�ug kontraktu, 215protoko�y TCP/IP, 526protoko�y us�ug sieciowych WS-*, 506protokó�

Daytime Protocol, 530HTTP, 311, 505, 513HTTPS, 540IP, 526kontroli transmisji, 528TCP, 505, 529

proxy, 500, 522przechowywanie danych, 311przechwytywanie b��dów, 213przechwytywanie wyj�tków, 221przeci��anie, 105przekazanie delegacji, 243przekazywanie danych, 695przekszta�cenia afiniczne, affine transformations,

750

Page 46: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

830 � Skorowidz

przekszta�cenie RotateTransform, 752prze�adowanie, 704prze��czenie kontekstu, 623przerwanie dzia�ania p�tli, 71przerwanie operacji, 192przes�anianie udost�pnionych metod, 133przes�anianie w�a�ciwo�ci, 769przestrze kodowa, code space, 370przestrze nazw, namespace, 32, 41

ChatService, 498Reflection, 681System, 33System.Collections.Concurrent, 654System.Collections.Generic, 33, 307System.Collections.Generics, 254System.Data.EntityClient, 574System.Data.SqlClient, 32System.Diagnostics, 262System.Dynamic, 706System.IO, 32, 277System.Linq, 33, 279System.Net, 526System.Net.Mail, 540System.Net.Mime, 540System.Net.NetworkInformation, 540System.Net.PeerToPeer, 540System.Net.Security, 540System.Reflection, 608, 682System.Text, 33System.Threading.Tasks, 661System.Transactions, 581System.Xml.Serialization, 469

przesy�anie danych, 516przetwarzanie dokumentów, 160, 163przetwarzanie �acuchów znaków, 356przycisk Show All Files, 498przyciski z marginesami, 750przypinanie deklaratywne, declarative pinning,

726pula w�tków, thread pool, 624, 625punkt kocowy

adres, address, 491kontrakt, contract, 491wi�zanie, binding, 491

punkt przerwania, breakpoint, 67punkt wej�cia, entry point, 37, 594punkt wstrzymania, 213punkty kodowe, code points, 370pusta referencja, 364pusty �acuchów znaków, 363pusty wiersz, 364

Rrachunek lambda, 178RAD, Rapid Application Development, 777redukowanie, reduce, 303refaktoryzacja, 74, 128referencja, 100, 125, 128referencje do obiektów, 238, 304referencje do referencji do obiektu, 730regu�a dost�pu, 410rejestrowanie komunikatów, 183relacja, 559relacja dziedziczenia, 124relacja rodzic-dziecko, 663, 667relacje pomi�dzy tabelami, 304relacyjna baza danych, 551relacyjny magazyn danych, 549renderowanie obrazów, 479REST, Representational State Transfer, 479RIA, Rich Internet Application, 19, 476, 733rodzaj izolacji, 439rodzestwo, sibling elements, 454rodzic, parent element, 454router, 526rozpakowywanie, 145rozproszona odmowa us�ugi, 538rozszerzenie j�zyka C#, 215równoleg�e LINQ, 673równoleg�o�� danych, 671równowa�no�� typów, type equivalence, 716ró�nica pomi�dzy tablicami i indeksatorami, 261rzadkie tablice, sparse array, 314rzutowanie, cast, 144

Sscenariusz dzia�ania wielow�tkowego, 643schemat przechowywania danych, store schema, 552Schemat XML, XML Schema, 471sekcja References, 40separacja kodu, code separation, 243, 778separator, 237serializacja, serialization, 231serializacja XML, 469, 472Service Pack, 199serwer .NET, 480sesja, 506siatka, 743siatka danych, data grid, 814silna nazwa, strong name, 437, 604Silverlight, 25, 477, 549, 733

dost�p do danych, 549elementy graficzne, 752

Page 47: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 831

gniazda uk�adu, 747typy paneli, 743

sk�adnia C# 4.0, 729sk�adnia indeksatorów, 729sk�adnia zapyta LINQ, 281sk�adowa klasy, 113sk�adowe zdarze, 190s�ownik, dictionary, 195, 307, 416, 508

przegl�danie zawarto�ci, 316rzadka tablica, 314w�a�ciwo�ci dynamiczne, 313

s�ownik Properties, 313s�owo

Callback, 512pop, 74push, 74System, 32

s�owo kluczoweabstract, 139base, 134break, 63, 70catch, 219class, 136, 138, 238do, 70dynamic, 27, 295, 313, 689, 699enum, 96event, 186finally, 219in, 278interface, 150lock, 642, 674namespace, 34new, 127, 293null, 100params, 237partial, 557ref, 694static, 35, 72, 114, 691struct, 103this, 104, 279try, 219using, 32value, 88VALUE, 573var, 691void, 35, 86

SMT, simultanous multithreading, 616solucja, solution, 37sortowanie danych, 245, 287sortowanie przy u�yciu LINQ, 283specyfikacja CDMA, 24specyfikacja Daytime Protocol, 532specyfikacja oprogramowania, 81spinanie, 298

SpinLock, 650sp�aszczanie list, 296sprawdzanie b��dów, 208sprawdzanie pojemno�ci, 359sprawdzanie typów, 157sprawdzanie zakresów, 205SQL Server, 543SQL Server 2008 Express, 550sta�a, 92

Environment.NewLine, 354String.Empty, 362

stan nas�uchu, 537stan statyczny, 116stan widoku, 779standard OCX, 711sterta, 101stopie tablicy, ang. rank, 253stos, 101, 321stos wywo�a, call stack, 74, 214stos wywo�a w�tku, 617stra�nik, guard, 215strefa czasowa GMT, 342strona kodowa, code page, 369strona kodowa Windows-1252, 369strumienie

aktualne po�o�enie, 425buforowanie, 428odczyt, 419porównywanie, 423szyfrowanie, 444zamykanie, 422zapis danych, 425

strumie, stream, 379, 418adaptuj�cy, 447CryptoStream, 447IsolatedStorageFileStream, 436MemoryStream, 448obiektów, 292szyfrowania i deszyfracji, 451szyfruj�cy, 444wyj�ciowy, 448

styl dynamiczny, 693, 696styl funkcyjny, 283styl przycisku, 768styl statyczny, 691style, 767subskrybent, 195subskrypcja zdarze, 188symbol

#, 337, (przecinek), 337. (kropka), 3370, 337

Page 48: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

832 � Skorowidz

symulator robota, 201synchronizacja, 639, 653synchronizacja w�tków, 508system 64-bitowy, 717systemowy mechanizm obs�ugi b��dów, 226szablon, template, 765

ADO.NET Entity Data Model, 552Console Application, 30Empty ASP.NET Web Application, 588WCF Service Library, 484

szablonydanych, 773kontrolek, 765, 769projektów ASP.NET, 781

szybko�� dzia�ania procesorów, 629szyfrowanie, 444szyfrowanie �acucha znaków, 446

��cie�ka, 384�lad stosu, 494�miertelny u�cisk, deadly embrace, 636�rodowisko uruchomieniowe, 23

Ttabela SalesOrderDetail, 578tabela SalesOrderHeader, 557tablica, array, 233tablica bajtów, 448, 776tablica �acuchów znaków, 233tablice

elementy typu referencyjnego, 239elementy typu warto�ciowego, 240kopiowanie elementów, 246odwo�ania do elementów, 253odwo�ania do jednego obiektu, 239okre�lanie typu elementów, 236porz�dkowanie elementów, 244tworzone dynamicznie, 235typ i liczba elementów, 235wyszukiwanie elementów, 242, 264

tablice nieregularne, jagged arrays, 247, 250tablice o zmiennej wielko�ci, 254tablice prostok�tne, 251, 252tablice tablic, 248TCP, Transmission Control Protocol, 528, 529technologia

.NET, 21ActiveX, 626AJAX, 476, 778ASP, 783

ASP.NET, 13Authenticode, 603COM, 626, 711Entity Framework, 546Flash, 733IntelliSense, 715LINQ, 275ODBC, 542RIA, 476Silverlight, 19, 25, 436, 468Silverlight 2, 13Silverlight 3, 698Silverlight 4, 699SMT, 616WCF, 313WCF Data Services, 549Web Forms, 777Windows Forms, 310, 797WPF, 310, 626, 743, 797

tekst jawny, plain text, 445tekst zaszyfrowany, 445test procesu przetwarzania, 174testowanie

aplikacji, 513kodu, 64kolekcji, 300programu, 58robota, 202zapytania, 791

testowy host, 490testowy host us�ugi WCF, 486testowy klient WCF, 486testy us�ugi, 484TPL, Task Parallel Library, 661transakcja niejawna, implicit transaction, 582transakcje, 579transakcje automatyczne, 583tre��, content, 454tryb ConcurrencyMode.Single, 508tryb debugowania, 31tworzenia

interfejsu u�ytkownika, 733aplikacji internetowych, 781aplikacji Silverlight, 735aplikacji w ASP.NET, 777asocjacji, 122delegacji, 172dokumentu XML, 457, 461hierarchii klas, 135interfejsów, 152interfejsu u�ytkownika, 736, 740klucza i wektora pocz�tkowego, 445kodu wielow�tkowego, 634

Page 49: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 833

kodu XML, 463�acuchów znaków, 358niebezpiecznego kontekstu, 726nowego typu, 294nowego wyj�tku, 225obiektu argumentu zdarzenia, 191obiektu Thread, 623programu, 29projektu WCF, 483solucji, 597tablicy, 234, 238tablicy dynamiczne, 235tablicy tablic, 248typów, 681w�tków, 613, 624w�asnych klas wyj�tków, 231w�asnych typów enumerowalnych, 268w�a�ciwo�ci, 90

typ, 32Action<>, 172anonimowy, anonymous type, 293bazowy, governing type, 97BigInteger, 49, 273Boolean, 59Char, 325, 385Control, 33DateTime, 340DateTimeOffset, 340, 341Dictionary, 315dynamic, 694, 701, 707, 731enum, 96FileAccess, 427FileMode, 426FileOptions, 430FileShare, 427Object, 295ogólny, generic type, 172, 255Predicate<T>, 175referencyjny, 619String, 325System.Double, 205TimeSpan, 107var, 696warto�ciowy, 102wygenerowany przez kompilator, 281wyliczeniowy, 96

typyatrybutów, 676liczbowe, 47liczbowe wbudowane, 144obiektów, 697referencyjne, 100, 238

tablic, 236wyj�tków, 228zmiennoprzecinkowe, 49zmiennych, 46

Uudost�pnianie

danych, 588encji, 589metod, 133us�ug, 489

ujednolicone identyfikatory zasobów, 515ujednolicone lokalizatory zasobów, 515ukrywanie metod, 128ukrywanie sk�adowych klasy bazowej, 127UML, Unified Modeling Language, 123Unicode, 369unikatowo�� u�ytkowników, 509uprawnienia, 396, 400

administracyjne, 493czynne, 396do nas�uchiwania komunikatów, 493odbieranie, 398, 409okre�lanie, 411pe�ne do katalogu, 410przydzielanie, 410przywracanie, 410specjalne, 396

uprawnienie ListDirectory, 409URI, Uniform Resource Identifier, 479, 515URL, Uniform Resource Locator, 515uruchamianie debuggera, 217uruchamianie mechanizmu obs�ugi b��dów, 226uruchamianie wielu projektów, 501us�uga

ChatService, 487RESTful, 479Service1, 484WCF, 477, 489WWW, 482WWW .NET, 483

ustanowienie sesji, 507ustawienia kulturowe, 347usuwanie

bia�ych znaków, 365dyrektyw using, 34encji, 579katalogu, 401plików, 389podzespo�u, 608znaków, 366

Page 50: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

834 � Skorowidz

uszkodzenie danych, 641UTF-16, 370, 375UTF-8, 370, 405uwierzytelnianie, 521uwierzytelnianie podstawowe, basic

authentication, 522uwierzytelnianie skrótowe, digest authentication,

522uwierzytelnianie zintegrowane, 521uwi�zienie, livelock, 636

VVBA, Visual Basic for Applications, 693Visual Studio, 29Visual Studio 2010, 25

WW3C, World Wide Web Consortium, 453warstwa, 160warto�ci domy�lne parametrów, 109warto�ci typu FileMode, 427warto�� FileSystemRights, 429warto�� inicjuj�ca, seed, 446warto�� null, 158warto�� SeekOrigin.Current, 425warto�� typu bool, 59w�tek g�ówny, 614, 649w�tki, threads, 613

blokada SpinLock, 650blokowanie, 639izolacja, 637koordynacja, 630, 646liczba, 637monitor, 649niezmienno��, 638synchronizacja, 638uwi�zienie, 636wspó�dzielenie informacji, 637wspó�u�ytkowanie informacji, 633wy�cig, 634zablokowanie, 628zakleszczenie, 636

w�tki programowe, 616WCF, Windows Communication Foundation, 13,

21, 475, 483WCF Data Services, 548, 587WCF Service Host, 486, 490WCF Service Library, 490WCF Test Client, 486, 488Web Forms, 777

cykl �ycia strony, 780

wektor pocz�tkowy, initialization vector, 445wi�zanie, 491

WS-ADDRESSING, 491wsDualHttpBinding, 511wsHttpBinding, 491, 511WS-SECURITY, 491

wi�zanie danych, 771, 786, 808widok zapytania, query view, 558wielko�� pliku, 385wielokrotne dziedziczenie implementacji, 149wielokrotne dziedziczenie interfejsów, 149wielow�tkowo��, 612wielow�tkowo�� wspó�bie�na, simultanous

multithreading, 616wi�zy, 577, 578Win32, 711Win32 API, 720Windows Forms, 797

tworzenie aplikacji, 798witryna MSDN, 83w�asne interfejsy, custom interfaces, 698w�asne szablony, 766w�asny obiekt dynamiczny, 706w�a�ciwo�ci do��czone, attached properties, 744w�a�ciwo�ci dynamiczne, 313w�a�ciwo�ci indeksowane, indexed properties, 729w�a�ciwo�ci kontrolki, 714w�a�ciwo�ci nawigacji, navigation properties, 559w�a�ciwo�ci uk�adów, 747w�a�ciwo��, 82

AddressFamily, 528AutoReverse, 758CachePolicy, 523Capacity, 358CompareTo, 245ConcurrencyMode, 508Content, 767ContentTemplate, 776Count, 47Credentials, 521Direction, 96Exception.Data, 230HeaderTemplate, 776ID, 300includeExceptionDetailInFaults, 494InnerException, 225ItemTemplate, 776LayoutTransform, 751Length, 247, 358LongLength, 247Message, 215Method, 167MyProperty, 729

Page 51: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

Skorowidz � 835

nawigacji, 578Position, 112, 814provider, 575Quota, 441SalesOrderHeaders, 561SessionMode, 505StartTime, 245, 288statyczna, 116stream.Length, 420SystemDirectory, 117Target, 167Template, 765tylko do odczytu, 94typu bool, 95typu wyliczeniowego, 97VisualStateGroups, 770zawieraj�ca delegacj�, 180

w�ókna, fibers, 617WPF, Windows Presentation Foundation, 13, 733,

757WSDL, Web Service Definition Language, 485wskanik do bufora, 724wskaniki, 724, 727wspó�bie�no��, 612, 671wspó�bie�no�� precyzyjna, fine-grained

concurrency, 664wspó�dzia�anie, interoperatibility, 711wspó�dzielenie kontraktów, 499wspó�dzielenie stanu przez w�tki, 618wspó�u�ytkowany stan programu, 622wstrzykni�cie kodu SQL, 791wyj�tek, exception, 214

AddressAlreadyInUseException, 501ArgumentException, 228ArgumentNullException, 229DirectoryNotFoundException, 407DriveNotFoundException, 407FileLoadException, 407FileNotFoundException, 407FormatException, 57IndexOutOfRangeException, 234InvalidCastException, 145InvalidOperationException, 245, 300, 306IOException, 407NotSupportedException, 448, 569NullReferenceException, 245OptimisticConcurrencyException, 585OverflowException, 420PathTooLongException, 407RuntimeBindeException, 703SqlException, 230Unauthorized AccessException, 409UpdateException, 578

wyj�tkiblok catch, 221blok finally, 227generowane przez FileInfo, 413istniej�ce, 230operacji wej�cia-wyj�cia, 406ponowne zg�aszanie, 223przechwytywanie, 221przekazywanie na wy�szy poziom, 226sygnalizowanie b��dów, 214systemu zabezpiecze, 406testowanie, 229typowe, 406typy, 227w�asne, 230zg�aszanie, 224, 228

wykonywanie odroczone, deffered execution, 273,547

wy�adowywanie, 608wy��czenie programu WCF Service Host, 496wyra�enia o postaci instrukcji, 179wyra�enia zapyta, query expressions, 275, 566wyra�enie, 52wyra�enie lambda, 178, 244, 281, 662wyrównanie elementu, 748wysuni�cie wiersza, line feed, 354wyszukiwanie

nazwy ustawienia, 494plików, 379pojedynczego w�z�a, 467tekstu, 361w dokumencie XML, 465

wy�cig, race, 634wy�wietlenie kategorii na li�cie, 773wyw�aszczenie w�tku, 617wywo�ywanie

funkcji Win32 API, 722konstruktora, 104metody Include, 562metod klasy bazowej, 134metody wirtualnej, 131us�ugi sieciowej, 500

wzorzec, 110

XXBAP WPF, 477XBAP, XAML Browser Application, 477XHTML, 455XML, eXtensible Markup Language, 453

Page 52: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary

836 � Skorowidz

Zzachowania, behaviors, 758zadania zwracaj�ce wyniki, 664zadanie, 661zadanie code-based, 670zaginanie, fold, 303zakleszczenie, deadlock, 508, 636zakres adresów, 493zaleg�o�ci, backlog, 536zapis pliku tekstowego, 402zapis tekstu, 403, 435zapora sieciowa, 505zapytania

ESQL, 572LINQ, 276, 317, 591LINQ to Entities, 569LINQ to Objects, 569SQL, 544, 567

zapytaniedefiniuj�ce, defining query, 558grupuj�ce, 290jako wywo�anie metody, 277�acuchowe, 568oparte na �acuchach znakowych, 572orderedOrders, 568zdegenerowane, 292

zarz�dzaniekluczami, 605magazynami, 441sesj�, 512

zast�powanie tekstu, 361zastrzyk SQL, SQL injection, 544zdalne wywo�anie metody, 478zdarzenia, 653

deklaracja, 186kod, 191nazwa, 186odwo�ywanie, 192przechowywanie informacji, 195rejestracja, 188sk�adowe, 190subskrypcja, 188typ delegacji, 186zg�aszanie, 187

zdarzenie, event, 186domy�lne, 813DownloadProgressChanged, 516OpenReadCompleted, 517przesy�ane, postback event, 779Processing, 192

zg�aszanie wyj�tków, 219zg�aszanie zdarze, 187

ziarno, 446zintegrowany j�zyk zapyta, 275z��czenia, 304z�o�enie, assembly, 593zmiana mechanizmu komunikacji, 511zmienna, 45

iteracyjna, 65lokalna, 113lokalna projected, 295lokalna w zapytaniu, 282myDictionary, 307myKey, 350overlaps, 301result, 315this, 114zakresu, range variable, 276

znacznik, tag, 453<param>, 44<returns>, 44<summary>, 44asp, 783elementu pustego, 455, 459

znak&, 805@, 329dwukropka, 343kropki, 37odst�pu, 42odwrotnego uko�nika (\), 327pusty, null character, 327�rednika, 42uko�nika, 343wykrzyknika, 69

znaki /*, 43//, 43specjalne, 327steruj�ce, 328

zwi�zek, 558jeden-do-jednego, 564jeden-do-wielu, 562potrójny, ternary, 563wiele-do-wielu, 564

zwracanie warto�ci, 219

�ród�o danych, 771ród�o wi�zania, binding source, 799

Page 54: Kup książkę • Księgarnia internetowa • Poleć książkę • Oceń książkępdf.ebookpoint.pl/cshpr6/cshpr6.pdf · 2019-05-15 · Popularne zastosowania sowników 309 IDictionary