Stručný obsah O autorech Úvod
31 35
Část I: Jazyk C# Kapitola 1: Architektura .NET Kapitola 2: Základy jazyka C# Kapitola 3: Objekty a typy Kapitola 4: Dědění Kapitola 5: Operátory a přetypování Kapitola 6: Delegáty a události Kapitola 7: Správa paměti a ukazatele Kapitola 8: Řetězce a regulární výrazy Kapitola 9: Kolekce Kapitola 10: Genericita Kapitola 11: Reflexe Kapitola 12: Chyby a výjimky Kapitola 13: Podprocesy
53 79 133 161 185 223 245 277 299 325 361 381 403
3
Obsah
Část II: Prostředí .NET Kapitola 14: Visual Studio 2005 Kapitola 15: Sestavení Kapitola 16: Zabezpečení v .NET Kapitola 17: Lokalizace Kapitola 18: Nasazení aplikace
427 467 519 569 607
Část III: Data Kapitola 19: Přístup k datům v .NET Kapitola 20: Programování pro .NET s SQL Serverem 2005 Kapitola 21: Manipulace s XML Kapitola 22: Práce se službou Active Directory
637 691 717 771
Část IV: Aplikace pro systém Windows Kapitola 23: Formuláře ve Windows Kapitola 24: Zobrazování dat v .NET Kapitola 25: Grafika s GDI+
809 861 901
Část V: Webové aplikace Kapitola 26: Stránky ASP.NET Kapitola 27: Vývoj v prostředí ASP.NET
965 1007
Čát VI: Komunikace Kapitola 28: Webové služby Kapitola 29: .NET Remoting Kapitola 30: Enterprise Services Kapitola 31: Fronty zpráv Kapitola 32: Budoucnost distribuovaného programování
1045 1071 1129 1159 1187
Část VII: Interoperabilita Kapitola 33: Interoperabilita s COM
1213
Část VIII: Základní služby Windows Kapitola 34: Práce se soubory a systémovým registrem Kapitola 35: Přístup k Internetu Kapitola 36: Služby systému Windows Stručný slovník pojmů Rejstřík
4
1251 1303 1335 1379 1383
Obsah O autorech Christian Nagel Bill Evjen Jay Glynn Karli Watson Morgan Skinner Allen Jones
Úvod Důležitost technologie .NET a jazyka C# Výhody technologie .NET Co je nového v platformě .NET Framework 2.0 Integrace s SQL Serverem 64bitová podpora Genericita Anonymní metody Nulovatelné typy Iterátory áste:né tdídy Porovnání jazyka C# s jinými jazyky Požadavky na psaní a spouštění kódu v jazyce C# Témata popsaná v této knize ást I: Jazyk C# ást II: Prostdedí .NET ást III: Data ást IV: Okenní aplikace ást V: Webové aplikace ást VI: Komunikace
31 31 31 32 32 32 32
35 36 37 38 38 39 40 41 41 42 43 43 45 45 45 46 46 46 46 46
5
Obsah ást VII: Spolupráce ást VIII: Základní služby Windows ást IX: Dodatky (pouze na webu) Konvence Zdrojový kód Errata p2p.wrox.com
46 46 47 47 48 48 48
Část I: Jazyk C# Kapitola 1: Architektura .NET
53
Vztah jazyka C# k technologii .NET Modul CLR Výhody dízeného kódu
53 54 54
Nezávislost na platform? Zvýšení výkonu Spolupráce mezi jazyky
Podrobná analýza jazyka IL Podpora objektové orientace a rozhraní Odlišné hodnotové a referen:ní typy Silná typová kontrola dat Význam silné typové kontroly dat pro spolupráci jazykS Automatická správa pam?ti Zabezpe:ení Aplika:ní domény
Ošetdení chyb pomocí výjimek Použití atributS Sestavení Soukromá sestavení Sdílená sestavení Reflexe Třídy platformy .NET Framework Jmenné prostory Tvorba aplikací .NET pomocí jazyka C# Tvorba aplikací ASP.NET Možnosti technologie ASP.NET Webové formuláde Webové služby založené na XML
Tvorba formuládS pro Windows Ovládací prvky pro Windows Služby Windows Nástroje jazyka C# v podnikové architektuře .NET Souhrn
54 55 55
58 58 59 59 60 63 64 64
66 67 67 68 69 69 70 71 72 72 72 73 74
74 75 75 75 77
Kapitola 2: Základy jazyka C#
79
Úvodní informace Váš první program v C# Kód Kompilace a spušt?ní programu
79 80 80 81
6
Obsah Bližší pohled Proměnné Inicializace prom?nných Obor prom?nné Konflikty oborS lokálních prom?nných Konflikty oborS datových složek a lokálních prom?nných
Konstanty Předdefinované datové typy Hodnotové a referen:ní typy Typy systému CTS Pdeddefinované hodnotové typy Celo:íselné typy Typy s plovoucí dádovou :árkou Typ decimal Logický typ Znakový typ
Pdeddefinované referen:ní typy Typ object Typ string
81 83 84 85 86 87
88 89 89 90 91 91 92 93 93 93
94 95 95
Řízení běhu programu Podmínkové pdíkazy
97 97
Pdíkaz if Pdíkaz switch
97 99
Cykly Cyklus for Cyklus while Cyklus do…while Cyklus foreach
Pdíkazy skoku Pdíkaz goto Pdíkaz break Pdíkaz continue Pdíkaz return
Výčty Pole Jmenné prostory Pdíkaz using Aliasy jmenných prostorS Metoda Main() Více metod Main() Pdedání argumentS funkci Main() Další informace o kompilaci souborů C# Konzolový vstup a výstup Použití komentářů Interní komentáde ve zdrojových souborech Dokumentace XML Direktivy preprocesoru C# #define a #undef #if, #elif, #else a #endif #warning a #error #region a #endregion #line #pragma
101 101 103 104 104
105 105 105 106 106
106 108 109 110 111 112 112 113 114 115 117 118 118 120 121 121 122 123 123 123
7
Obsah Doporučené zásady programování v C# Pravidla pro identifikátory Konvence používání Konvence názvS Použití vlastností a metod Použití datových složek
Souhrn
Kapitola 3: Objekty a typy Třídy a struktury Členy tříd Datové :leny Funk:ní :leny Metody Vlastnosti Konstruktory
Datové složky pouze pro :tení Struktury Struktury jsou hodnotové typy Struktury a d?d?ní Konstruktory struktur Částečné třídy Statické třídy Třída Object Metody tdídy System.Object Metoda ToString() Souhrn
Kapitola 4: Dědění Typy dědičnosti D?d?ní implementace versus d?d?ní rozhraní Vícenásobná d?di:nost Struktury a tdídy Dědění implementace Virtuální metody ZastiGování metod Volání funkcí ze základní tdídy Abstraktní tdídy a funkce Zape:et?né tdídy a metody Konstruktory odvozených tdíd Pdidáváme do hierarchie konstruktor bez parametrS Pdidáváme do hierarchie konstruktor s parametry
Modifikátory Modifikátory viditelnosti Jiné modifikátory Rozhraní Definování a implementace rozhraní Odvozená rozhraní Souhrn
8
124 124 125 126 130 131
131
133 134 135 135 135 136 143 145
150 151 153 154 154 155 156 157 157 159 160
161 161 161 162 162 163 164 165 166 167 167 169 170 172
174 174 175 176 177 181 183
Obsah
Kapitola 5: Operátory a přetypování Operátory Složené operátory Ternární operátor Operátory checked a unchecked Operátor is Operátor as Operátor sizeof Operátor typeof Nulovatelné typy a operátory Operátor nulového sjednocení Priorita operátorS Typová bezpečnost Pdevody typS Implicitní pdevody Explicitní pdevody
Automatické zabalování a vybalování Zjišťování rovnosti objektů ZjišPování rovnosti referen:ních typS Metoda ReferenceEquals() Virtuální metoda Equals() Statická metoda Equals() Operátor rovnosti (==)
185 185 187 188 188 189 190 190 190 191 191 192 192 193 193 194
196 197 198 198 198 198 199
Rovnost hodnotových typS Přetěžování operátorů Fungování operátorS Pdíklad pdet?žování operátorS: Struktura Vector
199 199 201 202
Pdidání dalších pdetížených operátorS Pdet?žování rela:ních operátorS (porovnání)
204 207
Které operátory lze pdetížit? Uživatelsky definovaná přetypování Implementace uživatelsky definovaných pdetypování
209 209 211
Pdetypování mezi tdídami Pdetypování mezi základními a odvozenými tdídami Automatické zabalení a vybalení pdetypování
214 216 217
Vícenásobné pdetypování Souhrn
Kapitola 6. Delegáty a události Delegáty Deklarování delegátS v C# Použití delegátS v C# Anonymní metody Pdíklad SimpleDelegate Pdíklad BubbleSorter Vícenásobné delegáty Události Události z pohledu pdíjemce Vyvolávání událostí Souhrn
218 222
223 223 225 226 228 229 232 235 237 238 240 244
9
Obsah
Kapitola 7: Správa paměti a ukazatele
245
Technické principy správy paměti Hodnotové datové typy Referen:ní datové typy Úklid Uvolňování neřízených prostředků Destruktory Rozhraní IDisposable Implementace rozhraní IDisposable a destruktoru Nebezpečný kód Ukazatele
245 246 248 250 251 251 253 254 256 256
Psaní nebezpe:ného kódu Syntaxe ukazatelS Pdetypování ukazatelS na celo:íselné typy Pdetypování mezi typy ukazatelS Ukazatele typu void Aritmetika ukazatelS Operátor sizeof Ukazatele na struktury: operátor nepdímého pdístupu ke složkám Ukazatele na složky tdídy
Pdíklad ukazatele: PointerPlayaround Optimalizace výkonu pomocí ukazatelS
266 271
Vytvodení polí fungujících v zásobníku Pdíklad QuickArray
271 274
Souhrn
Kapitola 8: Řetězce a regulární výrazy System.String Vytvádení det?zcS leny tdídy StringBuilder Formátovací det?zce Princip formátování det?zce Pdíklad: StringBuilder
Regulární výrazy Úvod do regulárních výrazS Pdíklad RegularExpressionsPlayaround Zobrazení výsledkS Shody, skupiny a záchyty Souhrn
Kapitola 9: Kolekce Zkoumání skupiny objektů Kolekce Co to je kolekce? Dopln?ní podpory kolekcí do struktury Vector
10
257 259 261 261 262 262 263 264 265
275
277 278 279 282 283 285 287
289 290 291 294 296 298
299 299 300 300 302
Tdída ArrayList Zásobník (tdída Stack) Fronta (tdída Queue) Tdída SortedList Slovníky a hešové tabulky
304 308 310 312 313
Slovníky v život? Slovníky v platform? .NET
314 315
Obsah Princip fungování slovníku Pdíklad MortimerPhonesEmployees
Genericita Souhrn
Kapitola 10: Genericita Přehled Výkon Typová bezpe:nost Opakované použití binárního kódu Zv?tšování kódu Doporu:ení pdi pojmenování Generické třídy kolekcí Pdehled generických kolekcí Použití tdídy List
Hledání prvkS Provád?ní ur:itých akcí Tdíd?ní (dazení) Pdevod typS
Použití tdídy Queue Použití tdídy LinkedList Vytváření vlastních generických tříd Výchozí hodnoty Omezení Generické metody Generické delegáty Další generické typy v .NET Nullable EventHandler ArraySegment Souhrn
316 318
324 324
325 326 326 327 328 328 328 329 329 332 334 335 335 337
338 341 347 349 349 351 354 355 356 357 358 359
Kapitola 11: Reflexe
361
Vlastní atributy Psaní vlastních atributS
362 362
Atribut AttributeUsage Parametry atributu Volitelné parametry atributu
Pdíklad vlastního atributu: WhatsNewAttributes Sestavení knihovny WhatsNewAttributes Sestavení VectorClass
Reflexe Tdída System.Type Vlastnosti tdídy Type Metody
Pdíklad TypeView Tdída Assembly Zjišt?ní informací o typech definovaných v sestavení Zjišt?ní informací o vlastních atributech
Dokon:ení pdíkladu WhatsNewAttributes Souhrn
363 365 365
366 366 368
369 370 370 371
372 375 375 375
376 380
11
Obsah
Kapitola 12: Chyby a výjimky Principy obsluhy chyb a výjimek Tdídy výjimek Základní tdídy výjimek
Zachycení výjimek N?kolik blokS catch Zachycení výjimek z jiného kódu Vlastnosti tdídy System.Exception Co se stane, když výjimka není obsloužena? Vnodené bloky try
Uživatelsky definované tdídy výjimek Zachycení uživatelsky definovaných výjimek Vyvolání uživatelsky definovaných výjimek Definice tdíd výjimek
Souhrn
Kapitola 13: Podprocesy Podprocesy Aplikace s několika podprocesy Manipulace s podprocesy Pdíklad ThreadPlayaround Priority podprocesS Synchronizace Co to je synchronizace? Problémy synchronizace
Vytváření podprocesů pomocí třídy ThreadPool Souhrn
381 381 382 382
384 386 390 391 392 392
394 395 397 400
402
403 403 405 405 409 412 414 414 415
419 422
Část II: Prostředí .NET Kapitola 14: Visual Studio 2005 Práce v prostředí Visual Studio 2005 Vytvodení projektu Výb?r typu projektu Nov? vytvodený konzolový projekt Další vytvodené soubory
ešení a projekty Pdidání dalšího projektu do dešení Nastavení spoušt?cího projektu
Kód aplikace s grafickým uživatelským rozhraním Na:tení projektS Visual Studia 6 Procházení projektu a vytvádení kódu Editor s možností sbalování Další okna Tla:ítka pro pdichycení
Vytvodení projektu Vytvodení, pdeklad a sestavení Ladicí a finální sestavení Výb?r konfigurace Úpravy konfigurací
Lad?ní
12
427 427 432 433 436 437
438 440 441
442 442 443 443 446 454
454 454 455 457 457
458
Obsah Zarážky Sledované výrazy Výjimky
Refaktoring Souhrn
Kapitola 15: Sestavení Co to jsou sestavení? Odpov?< na peklo dynamických knihoven Vlastnosti sestavení Aplika:ní domény a sestavení Struktura sestavení Manifesty sestavení Jmenné prostory, sestavení a komponenty Soukromá a sdílená sestavení Prohlížení sestavení Symboly nástroje ildasm
Vytvádení sestavení Vytvádení modulS a sestavení Tvorba sestavení v prostdedí Visual Studio
Podpora více jazyků Systém CTS a specifikace CLS Jazyková nezávislost v praxi
459 460 461
463 465
467 467 468 469 470 473 474 475 475 476 476
477 477 479
481 481 483
Psaní tdídy v C++/CLI Psaní tdídy ve Visual Basicu Psaní tdídy v C#
483 487 490
Požadavky specifikace CLS
492
Atribut CLSCompliant Pravidla specifikace CLS
493 493
Globální úložiště sestavení Generátor nativních obrazS Nástroj Global Assembly Cache Viewer Nástroj Global Assembly Cache Utility (gacutil.exe) Vytvoření sdílených sestavení Názvy sdílených sestavení Kryptografie s vedejným klí:em Integrita založená na silných názvech
Vytvodení sdíleného sestavení Vytvodení silného názvu Instalace sdíleného sestavení Použití sdíleného sestavení Odložený podpis sestavení Odkazy
Konfigurace Kategorie konfigurace Správa verzí ísla verzí Programové zjišt?ní verze Konfigura:ní soubory aplikace Soubory zásad vydavatele Verze b?hového systému
494 494 495 496 497 497 498 498
499 500 501 502 503 504
505 505 506 507 507 508 511 513
13
Obsah Konfigurace adresádS <probing>
Souhrn
Kapitola 16: Zabezpečení v .NET Zabezpečení přístupu ke kódu Kódové skupiny
515 516
517
519 520 521
Nástroj Code Access Security Policy (caspol.exe) Zobrazení kódových skupin sestavení
522 525
Oprávn?ní pdístupu ke kódu a sady oprávn?ní
527
Výpis oprávn?ní pro sestavení
Úrovn? zásad: po:íta:, uživatel a podnik Podpora zabezpečení na platformě .NET Framework Požadujeme oprávn?ní Vhodná oprávn?ní Implicitní oprávn?ní Odepdení oprávn?ní Uplatn?ní oprávn?ní Vytvodení oprávn?ní pdístupu ke kódu Deklarativní zabezpe:ení Správa zásad zabezpečení Konfigura:ní soubor zabezpe:ení Správa kódových skupin a oprávn?ní Zapnutí a vypnutí zabezpe:ení Obnovení zásad zabezpe:ení Vytvodení kódové skupiny Odstran?ní kódové skupiny Zm?na oprávn?ní kódové skupiny Vytvodení a použití sad oprávn?ní Distribuce kódu se silným názvem Distribuce kódu pomocí certifikátS Správa zón Zabezpečení založené na rolích Principál Principál ve Windows Role Deklarativní zabezpe:ení založené na rolích Souhrn
Kapitola 17: Lokalizace Jmenný prostor System.Globalization Problematika kódování Unicode Kultury a regiony Specifické, neutrální a kulturn? nezávislé jazykové verze CurrentCulture a CurrentUICulture Formátování :ísel Formátování kalendádního data
Jazykové verze v praxi Abecední dazení
14
515
530
532 534 535 536 540 541 542 543 544 545 545 548 549 549 549 550 550 551 553 555 560 562 563 564 565 565 567
569 569 570 571 571 572 573 575
576 580
Obsah Prostředky Vytvádení souborS prostdedkS Nástroj Resource File Generator Tdída ResourceWriter Použití souborS prostdedkS Jmenný prostor System.Resources Příklad lokalizace ve Visual Studiu Programová zm?na jazykové verze Použití vlastních zpráv jako prostdedkS Automatické použití standardních prostdedkS Zadání pdekladS tdetí firm? Lokalizace aplikací ASP.NET Vlastní nástroj pro čtení prostředků Vytvodení tdídy DatabaseResourceReader Vytvodení tdídy DatabaseResourceSet Vytvodení tdídy DatabaseResourceManager Klientská aplikace pro tdídu DatabaseResourceReader Vytváření vlastních jazykových verzí Souhrn
Kapitola 18: Nasazení aplikace
582 582 583 583 584 589 590 595 597 598 598 599 601 601 603 604 604 605 606
607
Návrh s ohledem na nasazování Možnosti nasazování Xcopy Nástroj Copy Web Publikování webS Projekty nasazování Technologie ClickOnce Požadavky na nasazení Jednoduché nasazování Xcopy Nasazování xcopy a webové aplikace Nástroj Copy Web Publikování webového serveru Projekty služby Installer Co to je služba Windows Installer? Vytvádení instala:ních balí:kS
607 608 608 608 608 608 608 609 609 610 611 611 611 612 612 613
Jednoduchá klientská aplikace Jednoduchá webová aplikace Klient z webového serveru
613 620 622
Technologie ClickOnce Princip technologie ClickOnce Publikování aplikace Nastavení ClickOnce Aplika:ní úložišt? Zabezpe:ení Pokro:ilé možnosti
624 624 625 625 626 626 627
Editor File System Editor registru Editor File Types Editor User Interface
627 627 628 628
15
Obsah Editor Custom Actions Editor Launch Conditions
Souhrn
630 632
633
Část III: Data Kapitola 19: Přístup k datům v .NET Přehled technologie ADO.NET Jmenné prostory Sdílené tdídy Tdídy specifické pro rSzné databáze Použití databázových připojení Správa pdipojovacích det?zcS Efektivní práce s pdipojeními První možnost: try…catch…finally Druhá možnost: pdíkaz using
Transakce Příkazy Spoušt?ní pdíkazS ExecuteNonQuery() ExecuteReader() ExecuteScalar() ExecuteXmlReader() (pouze poskytovatel SqlClient)
Volání uložených procedur Volání uložené procedury, která nic nevrací Volání uložené procedury, která vrací výstupní parametry
Rychlý přístup k datům: DataReader Správa dat a relací: třída DataSet Datové tabulky Datové sloupce Datové dádky Generování schématu
Datové relace Datová omezení Nastavení primárního klí:e Nastavení cizího klí:e Nastavení omezení aktualizace a odstran?ní
Schémata XML Generování kódu pomocí nástroje XSD Zaplnění datové sady Zapln?ní datové sady pomocí datového adaptéru Použití uložené procedury v datovém adaptéru
Zapln?ní objektu DataSet ze souboru XML Trvalé změny datové sady Aktualizace pomocí datových adaptérS
16
637 638 638 639 639 640 642 643 644 644
646 647 648 648 649 650 651
652 652 654
655 658 658 660 661 663
666 667 667 668 669
670 671 677 677 677
678 679 679
Vložení nového dádku Aktualizace existujícího dádku Odstran?ní dádku
679 681 681
Zápis výstupu do XML Práce s technologií ADO.NET Vývoj vrstev
682 683 683
Obsah Generování klí:S pomocí SQL Serveru Konvence názvS
685 687
Konvence pro databázové tabulky Konvence pro databázové sloupce Konvence pro omezení Uložené procedury
687 688 688 688
Souhrn
Kapitola 20: Programování pro .NET s SQL Serverem 2005 Hostitel běhového systému .NET Microsoft.SqlServer.Server Uživatelsky definované typy Vytvodení typS UDT Použití typS UDT Použití typS UDT z kódu na stran? klienta Uživatelsky definované agregáty Vytvádení uživatelsky definovaných agregátS Použití uživatelsky definovaných agregátS Uložené procedury Vytvádení uložených procedur Použití uložených procedur Uživatelsky definované funkce Vytvádení uživatelsky definovaných funkcí Použití uživatelsky definovaných funkcí Spouště Vytvádení spouští Použití spouští Datový typ XML Tabulky s daty XML Dotaz na data Jazyk XML DML Indexy XML XML se silnou typovou kontrolou Souhrn
Kapitola 21: Manipulace s XML Podpora standardů XML na platformě .NET Představujeme jmenný prostor System.Xml Použití MSXML na platformě .NET Použití tříd System.Xml Čtení a zápis datových proudů XML Použití tdídy XmlReader Metody pro :tení Na:tení dat atributS
Ov?dování pomocí tdídy XmlReader Použití tdídy XmlWriter Použití modelu DOM na platformě .NET Použití tdídy XmlDocument Vkládání uzlS
689
691 691 693 693 694 700 701 701 702 703 703 704 705 706 706 706 707 707 709 709 709 712 713 714 714 716
717 718 718 719 722 722 723 723 726
727 729 730 733 734
17
Obsah Použití objektů typu XPathNavigator Jmenný prostor System.Xml.XPath
737 737
XPathDocument XPathNavigator XPathNodeIterator Použití tdíd ze jmenného prostoru XPath
738 738 739 739
Jmenný prostor System.Xml.Xsl Transformace XML
XML a ADO.NET Pdevod databázových dat pomocí ADO.NET do XML Pdevod rela:ních dat
Pdevod XML na databázová data tení a zápis dokumentu DiffGram Serializace objektů v XML Serializace bez pdístupu ke zdrojovému kódu Souhrn
Kapitola 22: Práce se službou Active Directory
743
748 748 753
755 758 760 767 770
771
Architektura služby Active Directory Funkce Koncepce služby Active Directory
772 772 773
Objekty Schéma Konfigurace Doména služby Active Directory adi: domény Místní síP Strom domén Doménová struktura (les) Globální katalog Replikace
773 773 774 774 775 775 775 775 775 776
Vlastnosti dat služby Active Directory Schéma Nástroje pro správu služby Active Directory Uživatelé a po:íta:e služby Active Directory ADSI Edit Programování služby Active Directory Tdídy ve jmenném prostoru System.DirectoryServices Vazba
777 777 779 779 780 780 782 782
Protokol Název serveru íslo portu Rozlišující název Uživatelské jméno Ov?dování Vazba se tdídou DirectoryEntry
783 784 784 784 786 786 787
Získání položek adresáde Kolekce objektS Mezipam?P Vytvádení nových objektS Aktualizace položek adresáde Pdístup k nativním objektSm ADSI Hledání ve služb? Active Directory
787 789 790 790 791 792 793
SearchRoot
18
743
793
Obsah Filter PropertiesToLoad SearchScope Omezení hledání
Hledání objektů typu User Uživatelské rozhraní Získání názvového kontextu schématu Získání názvS vlastností tdídy User Hledání objektS typu User DSML Tdídy ve jmenném prostoru System.DirectoryServices.Protocols Hledání objektS služby Active Directory pomocí služby DSML Souhrn
794 794 794 794
797 797 798 799 800 802 803 803 805
Část IV: Aplikace pro systém Windows Kapitola 23: Formuláře ve Windows Vytváření formulářových aplikací Hierarchie tdíd Třída Control Velikost a umíst?ní Vzhled Interakce s uživatelem Funkce systému Windows RSzné funkce Standardní ovládací prvky a komponenty Button CheckBox RadioButton ComboBox, ListBox a CheckedListBox DateTimePicker ErrorProvider HelpProvider ImageList Label ListView PictureBox ProgressBar TextBox, RichTextBox a MaskedTextBox Panel FlowLayoutPanel a TableLayoutPanel SplitContainer TabControl a TabPages ToolStrip MenuStrip ContextMenuStrip ToolStripMenuItem ToolStripManager ToolStripContainer
809 810 816 816 816 818 818 820 820 821 821 822 823 823 826 826 827 828 828 829 831 831 832 833 834 834 835 835 839 839 839 840 840
19
Obsah Formuláře Tdída Form Vytvodení a zrušení instance formuláde Vzhled
Rozhraní MDI (Multiple Document Interface) Vlastní ovládací prvky Atributy ovládacího prvku Vlastní ovládací prvek založený na tdíd? TreeView Uživatelský ovládací prvek
Souhrn
Kapitola 24: Zobrazování dat v .NET Ovládací prvek DataGridView Zobrazení tabulkových dat Zdroje dat Zobrazení dat z pole DataTable Zobrazení dat z objektu typu DataView Zobrazení dat z datové sady Rozhraní IListSource a IList Zobrazení generických kolekcí
Hierarchie tříd souvisejících s DataGridView Datová vazba Jednoduchá vazba Objekty datové vazby BindingContext Binding CurrencyManager a PropertyManager
Visual Studio .NET a přístup k datům Vytvodení pdipojení Výb?r dat Aktualizace zdroje dat Vytvodení schématu Pdidání prvku Generovaná tdída DataTable Generovaná tdída DataRow Generovaná tdída EventArgs
Další b?žné požadavky Zpracované tabulky a dádky Použití atributu Distribuce metod Získání vybraného dádku
Souhrn
Kapitola 25: Grafika s GDI+ Seznámení s principy kreslení GDI a GDI+ Jmenné prostory GDI+ Kontexty zadízení a tdída Graphics
Kreslení tvarS Kreslení tvarS pomocí metody OnPaint() Použití oblasti odíznutí
20
840 840 841 844
846 847 848 848 855
860
861 861 862 863 864 865 866 869 871 871
873 876 876 877 878 879 879
882 882 885 886 887 889 889 891 892
892 896 897 897 898
900
901 902 902 903 903
904 907 908
Obsah Měření souřadnic a oblastí Point a PointF Size a SizeF Rectangle a RectangleF Region Poznámka o ladění Kreslení oken s posuvníky Globální a stránkové souřadnice a souřadnice zařízení Barvy Hodnoty RGB (Red-Green-Blue) Pojmenované barvy Grafické režimy zobrazení a bezpe:ná paleta Bezpe:ná paleta Pera a štětce Št?tce Pera Kreslení tvarů a čar Zobrazení obrázků Problematika manipulace s obrázky Kreslení textu Jednoduchý příklad práce s textem Písma a skupiny písem Příklad: vytvoření výčtu skupin písem Úpravy textového dokumentu: ukázka CapsEditor Metoda Invalidate() Výpo:et velikosti položek a dokumentu OnPaint() Transformace soudadnic Reakce na vstup uživatele Tisk Implementace tisku a náhledu tisku Souhrn
910 911 912 914 915 915 917 923 924 924 925 925 926 926 927 928 928 931 934 934 935 936 938 940 945 946 948 949 951 954 956 959
Část V: Webové aplikace Kapitola 26: Stránky ASP.NET
965
Úvod do ASP.NET Správa stavS v ASP.NET Webové formuláře ASP.NET Model kódu ASP.NET Serverové dídicí prvky ASP.NET
966 967 967 971 972
Paleta dídicích prvkS Pdíklad použití serverových dídicích prvkS
ADO.NET a datová vazba Rozšídení rezerva:ní aplikace Databáze Vazba na databázi Úpravy dídicího prvku kalendád
976 983
988 989 989 990 991
21
Obsah Vkládání akcí do databáze
Více o datových vazbách Zobrazování dat pomocí šablon Používání šablon
Konfigurace aplikace Shrnutí
Kapitola 27: Vývoj v prostředí ASP.NET Vlastní řídicí prvky Uživatelské dídicí prvky Jednoduchý uživatelský dídicí prvek
Uživatelské dídicí prvky v aplikaci PCSDemoSite Vlastní dídicí prvky Pdíklad vlastního dídicího prvku
Vzorové stránky Vzorové stránky v aplikaci PCSDemoSite Navigace ve webové aplikaci Navigace v aplikaci PCSDemoSite Zabezpečení Vložení autentizace formuládem pomocí prSvodce bezpe:ností Implementace systému pdihlašování uživatelS Pdihlašovací dídicí prvky webového serveru Zabezpe:ení složek Bezpe:nost v aplikaci PCSDemoSite Motivy Pdidazení motivS stránkám Definování motivS Motivy v aplikaci PCSDemoSite Shrnutí
994
996 998 999
1002 1004
1007 1008 1008 1009
1015 1016 1017
1020 1022 1024 1026 1027 1028 1031 1032 1033 1034 1037 1037 1038 1038 1042
Část VI: Komunikace Kapitola 28: Webové služby SOAP WSDL Webové služby Poskytování webových služeb Typy dostupné pro webové služby
Odb?r webových služeb Rozšíření příkladu rezervace zasedací místnosti Rezervace zasedací místnosti jako webová služba Klient rezervace zasedací místnosti Výměna dat pomocí záhlaví SOAP Shrnutí
22
1045 1046 1047 1049 1049 1052
1053 1055 1055 1060 1064 1070
Obsah
Kapitola 29: .NET Remoting Co je .NET Remoting Typy aplikací a protokoly Vzdálená komunikace objektS CLR Stručný přehled technologie .NET Remoting Kontexty Aktivace Atributy a vlastnosti Komunikace mezi kontexty Vzdálené objekty, klienti a servery Vzdálené objekty Jednoduchý server Jednoduchý klient Architektura .NET Remoting Kanály Nastavování vlastností kanálu Vym?nitelnost kanálu
Formátova:e Tdídy ChannelServices a RemotingConfiguration Server známých objektS Server klientem aktivovaných objektS
Aktivace objektu Adresa URL aplikace Aktivace známých objektS Aktivace klientem aktivovaných objektS Objekty proxy Zprávy
Pdíjemci zpráv Zplnomocn?ný pdíjemce (envoy sink) Pdíjemce v kontextu serveru Objektový pdíjemce
Pdedávání objektS vzdáleným metodám Bezpe:nost a serializované objekty Sm?rové atributy
Správa životního cyklu
1071 1072 1072 1073 1073 1076 1077 1077 1078 1078 1078 1080 1081 1082 1082 1085 1086
1087 1087 1088 1089
1089 1089 1089 1090 1091 1092
1092 1093 1093 1093
1094 1097 1098
1098
Obnova zapSj:ení Konfigura:ní hodnoty zapSj:ení Tdídy správy životního cyklu Pdíklad získávání informací o zapSj:ení Zm?na implicitní konfigurace zapSj:ení
1099 1099 1100 1100 1101
Další možnosti technologie .NET Remoting Konfigura:ní soubory
1102 1102
Pdeddefinované kanály Serverová konfigurace známých objektS Klientská konfigurace známých objektS Serverová konfigurace klientem aktivovaných objektS Klientská konfigurace klientem aktivovaných objektS Serverový kód používající konfigura:ní soubory Klientský kód používající konfigura:ní soubory Zpožd?né na:tení klientských kanálS Ladicí konfigurace Služby životního cyklu v konfigura:ních souborech Poskytovatelé formátova:S Konfigura:ní nástroj platformy .NET Framework
1104 1105 1105 1106 1107 1107 1108 1108 1109 1110 1110 1111
23
Obsah Vystavování serverS v ASP.NET Tdídy, rozhraní a nástroj Soapsuds Rozhraní Nástroj Soapsuds
Vzdálená asynchronní komunikace Používání delegátS v technologii .NET Remoting Atribut OneWay
Zabezpe:ení v technologii .NET Remoting Vzdálená komunikace a události Vzdálený objekt Argumenty události Server Pdíjemce události Klient Spušt?ní programS
Kontexty volání Shrnutí
Kapitola 30: Enterprise Services Stručný přehled Historie Kde využijete technologii Enterprise Services Kontexty Automatické transakce Distribuované transakce Sdílení objektS (object pooling)
Bezpe:nost založená na rolích Fronty komponent Voln? vázané události Služby bez komponent Jednoduchá aplikace technologie COM+ Tdída ServicedComponent Podpis sestavení Atributy sestavení Vytvádení komponenty Nasazení Automatické nasazení Ru:ní nasazení Vytvodení instala:ního balí:ku Průzkumník služeb komponent Klientská aplikace Transakce Co je to ACID Atributy transakce Výsledky transakcí Vzorová aplikace Tdídy entit Komponenta OrderControl Komponenta OrderData Komponenta OrderLineData Klientská aplikace
24
1113 1114 1114 1115
1116 1116 1117
1117 1119 1119 1121 1122 1123 1123 1125
1125 1127
1129 1129 1130 1130 1131 1131 1132 1132
1132 1132 1133 1133 1133 1134 1134 1134 1135 1137 1137 1137 1137 1138 1141 1141 1142 1142 1143 1144 1145 1148 1149 1151 1153
Obsah Služby bez komponent Shrnutí
Kapitola 31: Fronty zpráv Stručný přehled Kdy využijete fronty zpráv Vlastnosti front zpráv Produkty front zpráv Architektura front zpráv Zprávy Fronta zpráv Nástroje správy Řízení front zpráv Vytvádení front zpráv Vlastnosti front zpráv Programování front zpráv Vytvodení fronty zpráv Hledání fronty Otevdení známé fronty Jméno s cestou Formátované jméno
Odeslání zprávy Formátova: zpráv Odesílání složit?jších zpráv
Pdíjem zpráv Vý:et zpráv Asynchronní na:ítání
Aplikace objednání kurzu Knihovna tdíd objednání kurzu Odesílatel zpráv o objednání kurzu Odesílání prioritních a obnovitelných zpráv Pdíjemce zpráv o objednání kurzu Příjem výsledků Potvrzující fronty Odpov?dní fronty Transakční fronty Instalace front zpráv Shrnutí
Kapitola 32: Budoucnost distribuovaného programování Současné problémy Webové služby Bezpe:nost Spolehlivost Transakce Výkon Stručný přehled WCF Programování s WCF Kontrakty Kontrakty o službách Kontrakty o datech
1154 1157
1159 1159 1160 1161 1162 1162 1162 1163 1164 1164 1165 1166 1166 1167 1168 1168 1169
1170 1171 1172
1173 1173 1174
1175 1175 1178 1178 1179 1184 1184 1184 1185 1186 1186
1187 1188 1188 1190 1191 1193 1195 1197 1199 1199 1200 1200
25
Obsah Kontrakty o zprávách
Implementace služeb Vazby Hostování Klienti Příprava na WCF .NET Remoting Webové služby ASP.NET Služby technologie Enterprise Services Fronty zpráv Shrnutí
1201
1201 1203 1205 1206 1207 1207 1208 1208 1209 1210
Část VII: Interoperabilita Kapitola 33: Interoperabilita s COM .NET a COM Metadata UvolGování pam?ti Rozhraní Uživatelská rozhraní Odesílací rozhraní Duální rozhraní Pdetypování a QueryInterface
Vazby metod Datové typy Registrace Vlákna Jednovláknový apartment Vícevláknový apartment Zpracování chyb Zpracování událostí
Převod dat (Marshaling) Využití komponenty COM klientem v .NET Vytvodení komponenty COM Vytvodení volatelné obálky Primární interoperabilní sestavení
Problémy s vlákny Pdidání pdípojných bodS ídicí prvky ActiveX ve formuládích Windows
26
1213 1214 1214 1215 1215 1215 1215 1216 1217
1217 1217 1217 1218 1218 1218 1220 1220
1221 1221 1221 1225 1228
1228 1228 1231
Import dídicího prvku ActiveX Vytvodení okenní aplikace
1231 1231
Objekty COM v ASP.NET Komponenty .NET v klientech COM Volatelná obálka COM Vytvodení komponenty v .NET Vytvodení typové knihovny Atributy interoperability COM Registrace COM Vytvodení klienta COM Pdidání pdípojných bodS
1234 1234 1234 1235 1236 1238 1242 1242 1244
Obsah Vytvodení klienta s objektem pdíjemce ídicí prvky formuládS Windows v Internet Exploreru Shrnutí
1245 1246 1247
Část VIII: Základní služby Windows Kapitola 34: Práce se soubory a systémovým registrem Správa souborového systému Tdídy .NET reprezentující soubory a složky Tdída Path Pdíklad: prohlíže: souborS Přesouvání, kopírování a odstraňování souborů Pdíklad: FilePropertiesAndMovement Kód pdíkladu FilePropertiesAndMovement
Čtení ze souborů a zápis do nich tení souboru Zápis do souboru Proudy Proudy s vyrovnávací pam?tí tení a zápis binárních souborS pomocí tdídy FileStream Tdída FileStream Pdíklad: BinaryFileReader
tení a zápis textových souborS Tdída StreamReader Tdída StreamWriter Pdíklad: ReadWriteText
Čtení informací o jednotkách Zabezpečení souborů tení seznamS pro dízení pdístupu k souboru tení seznamS dízení pdístupu ke složce Pdidávání a vyjímání seznamS dízení pdístupu k souboru Práce se systémovým registrem Systémový registr Tdídy .NET pro práci s registrem Pdíklad: SelfPlacingWindow Shrnutí
Kapitola 35: Přístup k Internetu Třída WebClient Stahování souborS Pdíklad jednoduchého webového klienta Odesílání souborS Třídy WebRequest a WebResponse Další funk:nost tdíd WebRequest a WebResponse Informace v záhlaví HTTP Autentizace Asynchronní požadavky na stránky
1251 1252 1252 1255 1256 1261 1261 1262
1265 1265 1268 1269 1271 1271 1271 1273
1276 1277 1279 1280
1283 1286 1286 1288 1289 1291 1291 1293 1296 1302
1303 1304 1304 1304 1306 1306 1307 1307 1309 1309
27
Obsah Zobrazení výsledku ve tvaru stránky HTML Jednoduché prohlížení webu z vašich aplikací Spoušt?ní instancí aplikace Internet Explorer Pdidání další možností prohlíže:e IE do vašich aplikací Zobrazování dokumentS dídicím prvkem WebBrowser Tisk dídicím prvkem WebBrowser Výpis kódu požadované stránky Hierarchie tdíd WebRequest a WebResponse Pomocné třídy Tdídy URI Adresy IP a názvy DNS Tdídy .NET pro práci s adresami IP Pdíklad DnsLookup
Protokoly nižší úrovně Tdídy nižší úrovn? Využití tdíd TCP Pdíklady TcpSend a TcpReceive TCP versus UDP Tdída UdpClient
Tdída Socket Shrnutí
Kapitola 36: Služby systému Windows Co je to služba systému Windows? Architektura služeb systému Windows Program služby Správce dízení služeb Hlavní funkce, hlavní funkce služby a obslužné funkce
Program dízení služby Program konfigurace služby Jmenný prostor System.ServiceProcess Vytváření služby systému Windows Knihovna tdíd používající sokety Pdíklad použití tdídy TcpClient Projekt služby systému Windows
1323 1324
1326 1327 1327 1327 1330 1331
1332 1332
1335 1335 1336 1337 1337 1338
1339 1339 1339 1339 1340 1343 1345
Tdída ServiceBase Hlavní funkce Spušt?ní služby Obslužné metody
1347 1348 1349 1349
Vlákna a služby Instalace služby Instala:ní program
1350 1351 1351
Tdída Installer Tdídy ServiceProcessInstaller a ServiceInstaller Tdída ServiceInstallerDialog Nástroj installutil Klient
Sledování a řízení služby Správa po:íta:e prostdednictvím konzoly MMC Pomocný program net.exe Pomocný program sc.exe PrSzkumník serverS Visual Studia
28
1310 1310 1312 1312 1318 1319 1320 1321 1322 1322 1323
1352 1353 1355 1356 1356
1356 1357 1358 1358 1359
Obsah Tdída ServiceController
1359
Sledování služby ízení služby
1360 1363
Odstraňování problémů Interaktivní služby Protokolování událostí
1365 1366 1366
Architektura protokolování událostí Tdídy protokolování událostí Pdidání protokolování událostí Pdidání protokolování událostí do jiných typS aplikací Pdidání protokolování událostí serveru QuoteServer Trasování Vytvodení poslucha:e protokolu událostí
Sledování výkonu Tdídy sledování výkonu Vytvádení :íta:S pro sledování výkonu Pdidání komponent PerformanceCounter Aplikace perfmon.exe
Události napájení Shrnutí
1368 1369 1369 1369 1370 1371 1371
1372 1373 1373 1374 1376
1377 1378
Stručný slovník pojmů
1379
Rejstřík
1383
29