• Język: Polski Polski
  • Waluta: PLN
  • Kraj dostawy: Polska
  • Zmień

Język:

Waluta:

Kraj dostawy:

Koszyk

Dodano produkt do koszyka

Język C# 6.0 i platforma .NET 4.6

ebook

Język C# 6.0 i platforma .NET 4.6

Andrew Troelsen, Phiplip Japikse

Materiał do nowego, siódmego wydania książki, został całkowicie poprawiony i napisany tak, aby uwzględnić ostatnie zmiany w specyfikacji języka C#, a także nowości na platformie .NET.
W książce tej znajdziesz omówienie wszystkich nowych funkcji, które sprawiają, że .NET 4.6 jest obecnie wersją najbardziej kompletną.

Celem książki jest udostępnienie czytelnikowi kompleksowego, dogłębnego omówienia podstaw języka programowania C# oraz kluczowych aspektów platformy .NET, jak również przeglądu technologii opartych na C# i .NET (ADO.NET i Entity Framework, WCF [Windows Communication Foundation], WPF [Windows Presentation Foundation] i ASP.NET [WebForms, MVC, WebAPI]).
Opinie: Wystaw opinię
Opinie, recenzje, testy:

Ten produkt nie ma jeszcze opinii

Twoja opinia

aby wystawić opinię.

Cena: 0  brutto

Dlaczego kupują u nas inni ? :
1.  Chroń drzewa! używane i elektroniczne książki są dobre
2.  Możliwość zamówienia emailem wieszcz.pl@wieszcz.pl
3.  Możliwość złożenia zamówienia SMSem 537-472-622
4.  Dobra opinia Google zobowiązuje 4.5/5 Sprawdź>>>
5.  Upominek gratis do każdego zamówienia fizycznego
6.  Możliwość zwrotu zamówienia fizycznego do 30 dni
7.  Ubezpieczenie każdego zakupu do 300zł
8.  Najtańsza wysyłka już od 1,99 zł !
9.  Dobrze zabezpieczona przesyłka
10.Masz zbędne książki? Sprawdź>>>
11. Kontakt 24h Sprawdź>>>

Sprawdź nasze opinie 4.5/5 Sprawdź>>>

Produkt aktualnie niedostępny

Gwarantujemy szybkie i bezpieczne zakupy:

Formy

Koszty dostawy:
  • Przesyłka email dla e-book 0.00 zł brutto
Zapytaj o produkt

Wszystkie pola są wymagane

Opis produktu

Tytuł
Język C# 6.0 i platforma .NET 4.6
Autorzy
Andrew Troelsen, Phiplip Japikse
Język
polski
Wydawnictwo
Wydawnictwo Naukowe PWN
ISBN
978-83-01-19832-9
Rok wydania
2017 Warszawa
Wydanie
1
Liczba stron
1412
Format
mobi, epub
Spis treści
Ogólny spis treści V Spis treści VII O autorach XXXV O recenzencie technicznym XXXVII Podziękowania XXXIX Wprowadzenie XLI Część I Wprowadzenie do C# i platformy .NET 1 Rozdział 1 Filozofia .NET 3 Pierwsze spojrzenie na platformę .NET 3 Wybór kluczowych zalet platformy .NET 4 Wprowadzenie do części składowych platformy .NET (CLR, CTS i CLS) 4 Rola bibliotek klas bazowych 5 Co nowego wnosi C#? 5 Kod zarządzany a kod niezarządzany 7 Dodatkowe języki programowania na platformie .NET 8 Życie w świecie wielojęzycznym 8 Przegląd pakietów .NET 9 Rola języka CIL 10 Zalety CIL 12 Kompilowanie CIL do instrukcji na konkretną platformę 12 Rola metadanych typów .NET 12 Rola manifestu pakietu 13 Wspólny system typów (CTS) 14 Klasy CTS 14 Interfejsy CTS 15 Struktury CTS 15 Wyliczenia CTS 15 Delegaty CTS 16 Składowe typów CTS 16 Wbudowane typy danych CTS 16 Specyfikacja wspólnego języka (CLS) 17 Zapewnianie zgodności z CLS 19 Wspólne środowisko uruchomieniowe (CLR) 19 Różnica między pakietem, przestrzenią nazw i typem 20 Rola głównej przestrzeni nazw Microsoft 23 Dostęp do przestrzeni nazw w kodzie programu 23 Odwołania do pakietów zewnętrznych 24 Analiza pakietu w programie ildasm.exe 25 Przeglądanie kodu CIL 26 Przeglądanie metadanych typu 27 Przeglądanie metadanych pakietu (manifestu) 27 Niezależność .NET od platformy systemowej 28 Projekt Mono 29 Microsoft .NET Core 29 Podsumowanie 30 Rozdział 2 Tworzenie aplikacji w języku C# 31 Tworzenie aplikacji C# w systemie operacyjnym Windows 31 Rodzina IDE: Visual Studio Express 32 Środowisko Visual Studio Community Edition 39 Projektant klas – Class Designer 39 Środowisko Visual Studio 2015 Professional 43 System dokumentacji .NET Framework 44 Tworzenie aplikacji .NET w innych systemach operacyjnych 45 Xamarin Studio 46 Podsumowanie 48 Część II Podstawy programowania w języku C# 49 Rozdział 3 Podstawowe konstrukcje programistyczne języka C#, część 1 51 Anatomia prostego programu C# 51 Warianty metody Main( ) 53 Określanie kodu błędu aplikacji 53 Przetwarzanie argumentów z wiersza poleceń 55 Podawanie argumentów wiersza poleceń w Visual Studio 56 Ciekawostka: kilka kolejnych składowych klasy System.Environment 57 Klasa System.Console 58 Podstawowe operacje we/wy z klasą Console 58 Formatowanie wyników na konsoli 60 Formatowanie danych liczbowych 60 Formatowanie danych liczbowych poza aplikacjami konsolowymi 61 Systemowe typy danych i odpowiadające im słowa kluczowe C# 62 Deklarowanie i inicjalizowanie zmiennych 63 Wbudowane typy danych i operator new 64 Hierarchia klas typów danych 65 Składowe liczbowych typów danych 66 Składowe typu System.Boolean 67 Składowe typu System.Char 67 Analiza składniowa (parsing) wartości z danych łańcuchowych 67 Typy System.DateTime i System.TimeSpan 68 Pakiet System.Numerics.dll 68 Używanie danych łańcuchowych 70 Podstawowe operacje na łańcuchach 70 Konkatenacja łańcuchów 71 Znaki ucieczki 72 Definiowanie łańcuchów dosłownych 72 Porównywanie łańcuchów 73 Łańcuchów nie można modyfikować 73 Typ System Text StringBuilder 75 Interpolacja łańcuchów 76 Zawężające i rozszerzające konwersje typów danych 77 Słowo kluczowe checked 79 Ustawianie sprawdzania nadmiaru w całym projekcie 81 Słowo kluczowe unchecked 82 Zmienne lokalne z typizacją niejawną 82 Ograniczenia niejawnej typizacji zmiennych 83 Dane z niejawną typizacją to dane z silną typizacją 84 Przydatność zmiennych lokalnych z niejawną typizacją 85 Konstrukcje iteracyjne w języku C# 86 Pętla for 86 Pętla foreach 87 Stosowanie niejawnej typizacji w konstrukcjach foreach 87 Pętle while i do/while 88 Konstrukcje decyzyjne i operatory porównania/równości 88 Instrukcja if/else 88 Operatory równości i relacyjne 89 Operatory warunkowe 89 Instrukcja switch 90 Podsumowanie 92 Rozdział 4 Podstawowe konstrukcje programistyczne języka C#, część 2 93 Metody i modyfikatory parametrów 93 Domyślne przekazywanie parametrów – przez wartość 94 Modyfikator out 95 Modyfikator ref 96 Modyfikator params 97 Definiowanie parametrów opcjonalnych 98 Wywoływanie metod za pomocą parametrów nazwanych 100 Przeciążanie metod 101 Tablice w języku C# 103 Składnia inicjalizacji tablic w języku C# 104 Tablice lokalne z typizacją niejawną 105 Definiowanie tablicy obiektów 105 Tablice wielowymiarowe 106 Tablice jako argumenty lub wartości zwracane 107 Klasa bazowa System.Array 108 Wyliczenia 110 Określanie typu bazowego 111 Deklarowanie zmiennych typu wyliczeniowego 111 Typ System.Enum 112 Dynamiczne wykrywanie par nazwa/wartość wyliczenia 113 Struktury (typy wartościowe) 115 Tworzenie zmiennych strukturalnych 116 Typy wartościowe a typy referencyjne 117 Typy wartościowe, typy referencyjne i operator przypisania 118 Typy wartościowe zawierające typy referencyjne 120 Przekazywanie typów referencyjnych przez wartość 121 Przekazywanie typów referencyjnych przez referencję 122 Ostatnie słowo na temat typów wartościowych i typów referencyjnych 123 Typy dopuszczające wartości null 124 Używanie typów dopuszczających wartości null 125 Operator scalający wartości null 126 Operator warunkowy dla wartości null 127 Podsumowanie 128 Część III Programowanie obiektowe w języku C# 129 Rozdział 5 Hermetyzacja 131 Wprowadzenie do klas w języku C# 131 Alokowanie obiektów za pomocą słowa kluczowego new 133 Konstruktory 134 Rola konstruktora domyślnego 134 Definiowanie konstruktorów niestandardowych 135 Konstruktor domyślny raz jeszcze 136 Rola słowa kluczowego this 137 Szeregowanie wywołań konstruktorów z użyciem słowa kluczowego this 139 Obserwacja przepływu konstruktorów 141 Argumenty opcjonalne raz jeszcze 143 Słowo kluczowe static 144 Definiowanie statycznych pól danych 145 Definiowanie statycznych metod 146 Definiowanie statycznych konstruktorów 147 Definiowanie statycznych klas 150 Importowanie statycznych składowych za pomocą słowa kluczowego using 150 Filary programowania obiektowego 151 Znaczenie hermetyzacji 152 Znaczenie dziedziczenia 152 Znaczenie polimorfizmu 154 Modyfikatory dostępu w języku C# 155 Domyślne modyfikatory dostępu 156 Modyfikatory dostępu a typy zagnieżdżone 156 Pierwszy filar: usługi hermetyzacji C# 157 Hermetyzacja z użyciem tradycyjnych metod pobierającej i ustawiającej 158 Hermetyzacja za pomocą właściwości .NET 160 Używanie właściwości w definicji klasy 163 Właściwości tylko do odczytu i tylko do zapisu 164 Słowo kluczowe static raz jeszcze: definiowanie właściwości statycznych 165 Właściwości automatyczne 165 Używanie właściwości automatycznych 167 Właściwości automatyczne i wartości domyślne 167 Inicjalizacja właściwości automatycznych 169 Składnia inicjalizacji obiektów 170 Wywoływanie niestandardowych konstruktorów za pomocą składni inicjalizacji 171 Inicjalizacja danych z użyciem składni inicjalizacji 172 Używanie stałych pól danych 173 Pola tylko do odczytu 175 Statyczne pola tylko do odczytu 175 Klasy częściowe 176 Kiedy używać klas częściowych? 177 Podsumowanie 177 Rozdział 6 Dziedziczenie i polimorfizm 179 Podstawowe zasady dziedziczenia 179 Określanie klasy nadrzędnej dla klasy istniejącej 180 Słowo kluczowe sealed 182 Diagramy klas w Visual Studio raz jeszcze 183 Drugi filar programowania obiektowego: szczegóły na temat dziedziczenia 185 Tworzenie klas bazowych pod kontrolą – słowo kluczowe base 186 Co w rodzinie, to nie zginie: słowo kluczowe protected 188 Dodawanie klasy zapieczętowanej 189 Programowanie na zasadzie zawierania/delegacji 190 Definiowanie typów zagnieżdżonych 191 Trzeci filar programowania obiektowego: polimorfizm 193 Słowa kluczowe virtual i override 194 Nadpisywanie wirtualnych składowych w Visual Studio 196 Pieczętowanie wirtualnych składowych 197 Klasy abstrakcyjne 198 Interfejs polimorficzny 199 Przesłanianie składowych 203 Zasady rzutowania klasa bazowa/klasa pochodna 205 Słowo kluczowe as 206 Słowo kluczowe is 208 Najważniejsza klasa nadrzędna: System.Object 208 Nadpisywanie metody System.Object.ToString() 211 Nadpisywanie metody System.Object.Equals() 212 Nadpisywanie metody System.Object.GetHashCode() 213 Testowanie zmodyfikowanej klasy Person 214 Statyczne składowe klasy System.Object 215 Podsumowanie 215 Rozdział 7 Strukturalna obsługa wyjątków 217 Oda do błędów i wyjątków 217 Rola obsługi wyjątków .NET 218 Kluczowe elementy obsługi wyjątków na platformie .NET 219 Klasa bazowa System.Exception 219 Przykład najprostszy z możliwych 220 Zgłaszanie ogólnego wyjątku 222 Przechwytywanie wyjątków 224 Konfigurowanie stanu wyjątku 225 Właściwość TargetSite 225 Właściwość StackTrace 226 Właściwość HelpLink 226 Właściwość Data 227 Wyjątki systemowe (System.SystemException) 229 Wyjątki na poziomie aplikacji (System.ApplicationException) 230 Tworzenie wyjątków niestandardowych, odsłona 1 230 Tworzenie wyjątków niestandardowych, odsłona 2 232 Tworzenie wyjątków niestandardowych, odsłona 3 233 Przetwarzanie wielu wyjątków 234 Ogólne instrukcje catch 236 Ponowne zgłaszanie wyjątków 237 Wyjątki wewnętrzne 237 Blok finally 238 Filtrowanie wyjątków 239 Debugowanie nieobsłużonych wyjątków w Visual Studio 240 Podsumowanie 241 Rozdział 8 Interfejsy 243 Interfejsy 243 Interfejsy a abstrakcyjne klasy bazowe 244 Definiowanie niestandardowych interfejsów 246 Implementowanie interfejsu 248 Wywoływanie składowych interfejsu na poziomie obiektu 250 Uzyskiwanie referencji do interfejsu: słowo kluczowe as 251 Uzyskiwanie referencji do interfejsu: słowo kluczowe is 251 Interfejsy jako parametry 252 Interfejsy jako wartości zwracane 254 Tablice interfejsów 255 Implementowanie interfejsów w Visual Studio 256 Jawna implementacja interfejsu 257 Projektowanie hierarchii interfejsów 259 Dziedziczenie wielokrotne a interfejsy 261 Interfejsy IEnumerable i IEnumerator 263 Tworzenie iteratorów za pomocą słowa kluczowego yield 265 Tworzenie nazwanego iteratora 266 Interfejs ICloneable 267 Bardziej złożony przykład klonowania 269 Interfejs IComparable 272 Określanie wielu porządków sortowania za pomocą interfejsu IComparer 275 Niestandardowe właściwości i typy sortowania 276 Podsumowanie 276 Część IV Zaawansowane programowanie w języku C# 277 Rozdział 9 Kolekcje i typy generyczne 279 Uzasadnienie używania klas kontenerowych 279 Przestrzeń nazw System.Collections 281 Przegląd przestrzeni nazw System.Collections.Specialized 282 Problemy z kolekcjami niegenerycznymi 283 Problem z wydajnością 283 Problem z bezpieczeństwem typów 287 Kolekcje generyczne – pierwsze spotkanie 289 Generyczne parametry określające typ 290 Określanie parametrów typu dla generycznych klas/struktur 291 Określanie parametrów typu dla generycznych składowych 293 Określanie parametrów typu dla generycznych interfejsów 293 Przestrzeń nazw System.Collections.Generic 294 Składnia inicjalizacji kolekcji 295 Używanie klasy List 297 Używanie klasy Stack 298 Używanie klasy Queue 299 Używanie klasy SortedSet 300 Używanie klasy Dictionary 302 Przestrzeń nazw System.Collections.ObjectModel 303 Używanie klasy ObservableCollection 303 Tworzenie niestandardowych metod generycznych 305 Inferencja parametrów określających typ 307 Tworzenie niestandardowych generycznych struktur i klas 309 Słowo kluczowe default w generycznym kodzie 310 Ograniczenia stosowania parametrów określających typ 311 Przykłady ze słowem kluczowym where 312 Brak operatorów w ograniczeniach 313 Podsumowanie 314 Rozdział 10 Delegaty, zdarzenia i wyrażenia lambda 315 Delegaty na platformie .NET 315 Definiowanie delegatów w języku C# 316 Klasy bazowe System.MulticastDelegate i System.Delegate 318 Najprostszy z możliwych przykładowy delegat 319 Analiza obiektu delegatu 321 Wysyłanie powiadomień o stanie obiektu za pomocą delegatów 322 Możliwość multiemisji 325 Usuwanie celów z listy wywołań delegatu 326 Technika grupowej konwersji metod 327 Delegaty generyczne 329 Generyczne delegaty Action<> i Func<> 330 Zdarzenia w języku C# 332 Słowo kluczowe event w języku C# 333 Zdarzenia pod maską 335 Nasłuchiwanie nadchodzących zdarzeń 336 Upraszczanie rejestracji zdarzeń za pomocą Visual Studio 337 Oczyszczanie wywoływania zdarzeń za pomocą operatora warunkowego dla wartości null języka C# w wersji 6.0 338 Tworzenie niestandardowych argumentów zdarzeń 339 Generyczny delegat EventHandler 340 Anonimowe metody C# 341 Dostęp do zmiennych lokalnych 343 Wyrażenia lambda 344 Analiza wyrażenia lambda 347 Przetwarzanie argumentów w wielu instrukcjach 348 Wyrażenia lambda z wieloma parametrami (i bez parametrów) 349 Wyposażanie przykładu CarEvents w wyrażenia lambda 350 Wyrażenie lambda i implementacje składowych w jednej instrukcji 350 Podsumowanie 351 Rozdział 11 Zaawansowane elementy języka C# 353 Indeksery 353 Indeksowanie danych za pomocą wartości łańcuchowych 355 Przeciążanie indekserów 356 Indeksery z wieloma wymiarami 357 Definiowanie indekserów w interfejsach 358 Przeciążanie operatorów 358 Przeciążanie operatorów dwuargumentowych 359 A co z operatorami += i –+? 361 Przeciążanie operatorów jednoargumentowych 362 Przeciążanie operatorów równości 362 Przeciążanie operatorów porównania 363 Ostatnie uwagi na temat przeciążania operatorów 364 Konwersje niestandardowych typów 365 Powtórka: konwersje liczbowe 365 Powtórka: konwersje między spokrewnionymi klasami 365 Tworzenie niestandardowych procedur konwersji 366 Dodatkowe jawne konwersje dla typu Square 368 Definiowanie procedur niejawnej konwersji 369 Metody rozszerzające 371 Definiowanie metod rozszerzających 371 Wywoływanie metod rozszerzających 372 Importowanie metod rozszerzających 373 IntelliSense dla metod rozszerzających 373 Rozszerzanie typów, w których zaimplementowano konkretne interfejsy 374 Typy anonimowe 375 Definiowanie typu anonimowego 376 Wewnętrzna reprezentacja typów anonimowych 377 Implementacja metod ToString() i GetHashCode() 378 Semantyka równości dla typów anonimowych 378 Typy anonimowe zawierające typy anonimowe 380 Używanie typów wskaźnikowych 381 Słowo kluczowe unsafe 382 Używanie operatorów * i & 384 Nienadzorowana (i nadzorowana) funkcja wymiany 384 Dostęp do pól za pomocą wskaźników (operator ->) 385 Słowo kluczowe stackalloc 386 Przypinanie typu za pomocą słowa kluczowego fixed 386 Słowo kluczowe sizeof 387 Podsumowanie 388 Rozdział 12 LINQ to Objects 389 Konstrukcje programistyczne związane z zapytaniami LINQ 389 Niejawna typizacja zmiennych lokalnych 390 Składnia inicjalizacji obiektów i kolekcji 390 Wyrażenia lambda 391 Metody rozszerzające 392 Typy anonimowe 392 Rola zapytań LINQ 393 Wyrażenia LINQ mają silną typizację 394 Najważniejsze pakiety LINQ 394 Używanie zapytań LINQ z prostymi tablicami 395 To samo raz jeszcze, ale bez LINQ 396 Refleksja na zbiorze wyników LINQ 397 LINQ a zmienne lokalne z typizacją niejawną 397 LINQ a metody rozszerzające 398 Rola odroczonego wykonywania 399 Rola wykonywania natychmiastowego 400 Zwracanie wyników zapytania LINQ 401 Zwracanie wyników LINQ za pomocą natychmiastowego wykonania 402 Stosowanie zapytań LINQ do obiektów kontenerowych 403 Dostęp do podobiektów 404 Używanie zapytań LINQ z kolekcjami niegenerycznymi 404 Filtrowanie danych za pomocą OfType( ) 405 Omówienie operatorów do zapytań LINQ 406 Składnia podstawowego wybierania 407 Uzyskiwanie podzbiorów danych 408 Projekcja nowych typów danych 409 Uzyskiwanie liczników za pomocą Enumerable 410 Odwracanie kolejności elementów w zbiorze wyników 410 Sortowanie wyrażeń 410 LINQ jako ulepszone narzędzie do tworzenia diagramów Venna 411 Usuwanie duplikatów 412 Działania agregacyjne LINQ 413 Wewnętrzna reprezentacja instrukcji z zapytaniami LINQ 413 Konstruowanie wyrażeń z zapytaniami za pomocą operatorów (powtórka) 414 Konstruowanie wyrażeń z zapytaniami za pomocą typu Enumerable i wyrażeń lambda 415 Konstruowanie wyrażeń z zapytaniami za pomocą typu Enumerable i metod anonimowych 416 Konstruowanie wyrażeń z zapytaniem za pomocą typu Enumerable i bezpośrednio delegatów 417 Podsumowanie 418 Rozdział 13 Czas życia obiektu 419 Klasy, obiekty i referencje 419 Podstawowe informacje o czasie życia obiektów 420 Kod CIL słowa kluczowego new 421 Ustawianie referencji do obiektów na null 422 Korzenie aplikacji 423 Generacje obiektów 424 Współbieżne odzyskiwanie pamięci przed .NET 4.0 425 Drugoplanowe odzyskiwanie pamięci od wersji .NET 4.0 wzwyż 426 Typ System.GC 426 Wymuszanie odzyskiwania pamięci 427 Tworzenie obiektów do sfinalizowania 430 Nadpisywanie metody System.Object.Finalize() 431 Szczegóły na temat procesu finalizacji 432 Tworzenie obiektów usuwalnych 433 Wielokrotne użycie słowa kluczowego using 435 Tworzenie typów finalizowalnych i usuwalnych 436 Formalny schemat usuwania 437 Leniwe tworzenie instancji obiektów 439 Dostosowywanie tworzenia leniwych danych 442 Podsumowanie 443 Część V Programowanie z wykorzystaniem pakietów .NET 445 Rozdział 14 Tworzenie i konfiguracja bibliotek klas 447 Definiowanie niestandardowych przestrzeni nazw 447 Rozwiązywanie konfliktów nazw za pomocą pełnych nazw jednoznacznych 449 Rozwiązywanie konfliktów nazw za pomocą aliasów 450 Tworzenie zagnieżdżonych przestrzeni nazw 452 Domyślna przestrzeń nazw w Visual Studio 453 Rola pakietów .NET 453 Pakiety sprzyjają tworzeniu kodu wielokrotnego użytku 453 Pakiety wyznaczają granice typu 454 Pakiety to jednostki z numerami wersji 454 Pakiety zawierają własny opis 454 Pakiety można konfigurować 455 Format pakietu .NET 455 Nagłówek pliku Windows 455 Nagłówek pliku CLR 456 Kod CIL, metadane typu i manifest pakietu 457 Opcjonalne zasoby pakietu 457 Tworzenie i używanie niestandardowej biblioteki z klasą 458 Analiza manifestu 460 Analiza kodu CIL 463 Analiza metadanych typu 463 Tworzenie aplikacji klienckiej w języku C# 464 Tworzenie aplikacji klienckiej w języku Visual Basic 466 Dziedziczenie wielojęzyczne w działaniu 467 Pakiety prywatne 467 Tożsamość pakietu prywatnego 468 Proces sondowania 468 Konfigurowanie pakietów prywatnych 469 Rola pliku App.Config 470 Pakiety współdzielone 472 Globalny katalog pakietów (GAC) 472 Silne nazwy 474 Generowanie silnych nazw w wierszu poleceń 475 Generowanie silnych nazw w Visual Studio 477 Instalowanie pakietów z silnymi nazwami w GAC 478 Używanie współdzielonego pakietu 479 Analiza manifestu SharedCarLibClient 480 Konfigurowanie pakietów współdzielonych 481 Zamrażanie bieżącego pakietu współdzielonego 481 Tworzenie współdzielonego pakietu wersja 2.0.0.0 481 Dynamiczne przekierowywanie do konkretnych wersji współdzielonego pakietu 484 Pakiety z zasadami wydawcy 485 Wyłączanie zasad wydawcy 486 Element 486 Przestrzeń nazw System.Configuration 488 Dokumentacja na temat schematu pliku konfiguracyjnego 489 Podsumowanie 490 Rozdział 15 Refleksja typów, późne wiązanie i programowanie z wykorzystaniem atrybutów 491 Zapotrzebowanie na metadane typów 491 Przeglądanie (fragmentu) metadanych dla wyliczenia EngineState 492 Przeglądanie (fragmentu) metadanych typu Car 493 Omówienie TypeRef 494 Informacje o bieżącym pakiecie 494 Informacje o używanych pakietach zewnętrznych 495 Informacje o literałach łańcuchowych 495 Refleksja 496 Klasa System.Type 496 Uzyskiwanie referencji do typu za pomocą System.Object.GetType() 497 Uzyskiwanie referencji do typu za pomocą typeof() 497 Uzyskiwanie referencji do typu za pomocą System.Type.GetType() 498 Tworzenie niestandardowej przeglądarki metadanych 498 Refleksja na metodach 498 Refleksja na polach i właściwościach 499 Refleksja na zaimplementowanych interfejsach 500 Wyświetlanie różnych mniej istotnych informacji 500 Implementacja metody Main() 500 Refleksja na typach generycznych 502 Refleksja na parametrach i wartościach zwracanych 502 Dynamiczne wczytywanie pakietów 504 Refleksja na pakietach współdzielonych 506 Późne dowiązywanie 508 Klasa System.Activator 508 Wywoływanie metod bez parametrów 510 Wywoływanie metod z parametrami 511 Rola atrybutów .NET 512 Użytkownicy atrybutów 512 Stosowanie atrybutów w języku C# 513 Skrótowy zapis atrybutów C# 514 Podawanie parametrów konstrukcyjnych dla atrybutów 514 Atrybut [Obsolete] w działaniu 515 Tworzenie niestandardowych atrybutów 516 Stosowanie atrybutów niestandardowych 516 Składnia nazwanych właściwości 517 Ograniczanie stosowania atrybutów 517 Atrybuty na poziomie pakietu 518 Plik AssemblyInfo cs w Visual Studio 519 Refleksja na atrybutach z użyciem wczesnego dowiązywania 519 Refleksja na atrybutach z użyciem późnego dowiązywania 521 Refleksja, późne dowiązywanie i niestandardowe atrybuty z lotu ptaka 522 Tworzenie rozszerzalnej aplikacji 523 Tworzenie pakietu CommonSnappableTypes dll 523 Tworzenie wtyczki w języku C# 524 Tworzenie wtyczki w języku Visual Basic 525 Tworzenie rozszerzalnej aplikacji Windows Forms 525 Podsumowanie 529 Rozdział 16 Typy dynamiczne i środowisko DLR 531 Rola słowa kluczowego dynamic 531 Wywoływanie składowych względem dynamicznie zadeklarowanych danych 533 Rola pakietu Microsoft.CSharp.dll 534 Zasięg słowa kluczowego dynamic 535 Ograniczenia słowa kluczowego dynamic 536 Praktyczne zastosowania słowa kluczowego dynamic 536 Rola środowiska DLR 537 Drzewa wyrażeń 537 Przestrzeń nazw System.Dynamic 538 Dynamiczne wyszukiwanie drzew wyrażeń 538 Upraszczanie wywołań z późnym dowiązywaniem za pomocą typów dynamicznych 539 Używanie słowa kluczowego dynamic do przekazania argumentów 540 Upraszczanie współpracy z COM za pomocą danych dynamicznych 542 Podstawowe pakiety współdziałania 543 Osadzanie metadanych współdziałania 544 Najczęściej występujące problemy ze współpracą z kodem COM 544 Współpraca z COM z użyciem dynamicznych danych C# 545 Współpraca z COM bez danych dynamicznych 549 Podsumowanie 550 Rozdział 17 Procesy, domeny aplikacji i konteksty obiektów 551 Rola procesów Windows 551 Rola wątków 552 Komunikacja z procesami na platformie .NET 553 Wyliczanie uruchomionych procesów 554 Analiza konkretnego procesu 556 Analiza zbioru wątków procesu 557 Analiza zbioru modułów procesu 558 Rozpoczynanie i zatrzymywanie procesów w kodzie programu 560 Kontrolowanie rozpoczynania procesów za pomocą klasy ProcessStartInfo 561 Domeny aplikacji .NET 562 Klasa System AppDomain 562 Komunikacja z domyślną domeną aplikacji 563 Wyliczanie załadowanych pakietów 564 Odbiór powiadomień o załadowaniu pakietu 566 Tworzenie nowych domen aplikacji 566 Wczytywanie pakietów do niestandardowych domen aplikacji 568 Usuwanie domen aplikacji w kodzie programu 569 Granice kontekstowe obiektów 570 Typy niezwiązane i związane kontekstem 571 Definiowanie obiektu kontekstowego 572 Analiza kontekstu obiektu 572 Podsumowanie procesów, domen aplikacji i kontekstów 574 Podsumowanie 574 Rozdział 18 CIL i rola pakietów dynamicznych 575 Motywacja do nauki gramatyki CIL 575 Analiza dyrektyw, atrybutów i kodów operacyjnych CIL 576 Dyrektywy CIL 576 Atrybuty CIL 577 Kody operacyjne CIL 577 Różnica między kodami operacyjnymi a mnemonikami 577 Wrzucanie i zrzucanie: znaczenie stosu w języku CIL 578 Inżynieria wahadłowa 579 Etykiety kodu CIL 582 Komunikacja z kodem CIL: modyfikowanie pliku *.il 583 Kompilowanie kodu CIL w programie ilasm.exe 584 Rola programu peverify.exe 585 Dyrektywy i atrybuty CIL 585 Podawanie wymaganych pakietów zewnętrznych w CIL 586 Definiowanie bieżącego pakietu w CIL 586 Definiowanie przestrzeni nazw w CIL 587 Definiowanie klas w CIL 587 Definiowanie i implementowanie interfejsów w CIL 588 Definiowanie struktur w CIL 589 Definiowanie wyliczeń w CIL 589 Definiowanie typów generycznych w kodzie CIL 590 Kompilowanie pliku CILTypes.il 590 Związek między bazowymi bibliotekami klas, językiem C# i typami danych CIL 591 Definiowanie składowych w CIL 591 Definiowanie pól z danymi w CIL 592 Definiowanie konstruktorów w CIL 592 Definiowanie właściwości w CIL 593 Definiowanie parametrów składowych 593 Kody operacyjne CIL 594 Dyrektywa .maxstack 596 Deklarowanie zmiennych lokalnych w CIL 596 Odwzorowywanie parametrów na zmienne lokalne w CIL 597 Ukryta referencja this 597 Reprezentacja konstrukcji iteracyjnych w CIL 598 Tworzenie pakietu .NET w CIL 599 Tworzenie pakietu CILCars.dll 599 Tworzenie pakietu CILCarClient.exe 602 Pakiety dynamiczne 603 Analiza przestrzeni nazw System.Reflection.Emit 604 Typ System Reflection Emit.ILGenerator 605 Generowanie pakietu dynamicznego 605 Generowanie pakietu i zbioru modułów 607 Znaczenie typu ModuleBuilder 608 Generowanie typu HelloClass i łańcuchowej zmiennej składowej 609 Generowanie konstruktorów 609 Generowanie metody SayHello() 610 Używanie dynamicznie wygenerowanego pakietu 611 Podsumowanie 612 Część VI Wprowadzenie do bibliotek klas bazowych .NET 613 Rozdział 19 Programowanie wielowątkowe, równoległe i asynchroniczne 615 Relacja między procesami, domenami aplikacji, kontekstem i wątkami 615 Problem współbieżności 616 Synchronizacja wątków 617 Krótka powtórka z delegatów .NET 617 Asynchroniczna natura delegatów 619 Metody BeginInvoke() i EndInvoke() 619 Interfejs System.IAsyncResult 620 Asynchroniczne wywoływanie metod 620 Synchronizacja wątku wywołującego 621 Delegat AsyncCallback 623 Klasa AsyncResult 624 Przekazywanie i odbieranie niestandardowych danych o stanie 625 Przestrzeń nazw System.Threading 626 Klasa System.Threading.Thread 627 Uzyskiwanie statystyk dotyczących bieżącego wątku wykonywania 628 Właściwość Name 628 Właściwość Priority 629 Ręczne tworzenie wątków podrzędnych 629 Używanie delegatu ThreadStart 630 Używanie delegatu ParameterizedThreadStart 632 Klasa AutoResetEvent 633 Wątki pierwszo- i drugoplanowe 634 Problem współbieżności 635 Synchronizacja za pomocą słowa kluczowego lock 637 Synchronizacja za pomocą typu System.Threading.Monitor 639 Synchronizacja za pomocą typu System.Threading.Interlocked 640 Synchronizacja za pomocą atrybutu [Synchronization] 641 Programowanie z użyciem delegatu TimerCallback 641 Pula wątków CLR 643 Programowanie równoległe z wykorzystaniem TPL (Task Parallel Library) 644 Przestrzeń nazw System.Threading.Tasks 645 Rola klasy Parallel 645 Równoległość danych i klasa Parallel 646 Dostęp do elementów IU z wątków podrzędnych 648 Klasa Task 649 Obsługa żądań anulowania 649 Równoległość zadań a klasa Parallel 651 Równoległe zapytania LINQ (PLINQ) 654 Wybór zapytania PLINQ 655 Anulowanie zapytania PLINQ 655 Wywołania asynchroniczne z użyciem słowa kluczowego async 656 Pierwsze spojrzenie na słowa kluczowe async i await 657 Konwencja nazewnicza metod asynchronicznych 658 Metody asynchroniczne zwracające void 659 Metody asynchroniczne z wieloma słowami kluczowymi await 660 Przeróbka przykładu AddWithThreads ze słowami kluczowymi async/await 661 Podsumowanie 662 Rozdział 20 Plikowe operacje we/wy oraz serializacja obiektów 663 Przestrzeń nazw System.IO 663 Typy Directory(Info) i File(Info) 664 Abstrakcyjna klasa bazowa FileSystemInfo 665 Używanie typu DirectoryInfo 665 Wyliczanie plików za pomocą typu DirectoryInfo 667 Tworzenie podkatalogów za pomocą typu DirectoryInfo 667 Używanie typu Directory 669 Używanie klasy DriveInfo 669 Używanie klasy FileInfo 670 The FileInfo Create() Method 671 Metoda FileInfo Open() 672 Metody FileInfo OpenRead() i FileInfo OpenWrite() 673 Metoda FileInfo OpenText() 673 Metody FileInfo CreateText() i FileInfo AppendText() 674 Używanie typu File 674 Inne składowe typu File 675 Abstrakcyjna klasa Stream 676 Używanie klasy FileStream 677 Używanie klas StreamWriter i StreamReader 678 Zapisywanie do pliku tekstowego 679 Odczytywanie z pliku tekstowego 680 Bezpośrednie tworzenie obiektów StreamWriter/StreamReader 680 Używanie klas StringWriter i StringReader 681 Używanie klas BinaryWriter i BinaryReader 682 Programistyczne monitorowanie plików 684 Serializacja obiektów 686 Rola grafów obiektów 687 Konfiguracja obiektów do serializacji 688 Definiowanie serializowalnych typów 688 Pola publiczne, pola prywatne i właściwości publiczne 689 Wybór typu z kategorii Formatter do serializacji 690 Interfejsy IFormatter i IRemotingFormatter 691 Jak różne formatery utrwalają typy 692 Serializacja obiektów za pomocą typu BinaryFormatter 692 Deserializacja obiektów za pomocą typu BinaryFormatter 694 Serializacja obiektów za pomocą typu SoapFormatter 694 Serializacja obiektów za pomocą typu XmlSerializer 695 Kontrola nad generowanymi danymi XML 696 Serializacja kolekcji obiektów 698 Dostosowywanie serializacji SOAP/binarnej 699 Serializacja obiektów pod lupą 699 Dostosowywanie serializacji za pomocą interfejsu ISerializable 700 Dostosowywanie serializacji za pomocą atrybutów 703 Podsumowanie 704 Rozdział 21 ADO.NET – część 1: warstwa połączeniowa 705 Ogólna definicja ADO.NET 705 Trzy oblicza ADO.NET 707 Dostawcy danych ADO.NET 707 Dostawcy danych ADO.NET od Microsoftu 709 Słowo o pakiecie System Data OracleClient.dll 710 Uzyskiwanie dostawców danych ADO.NET od innych producentów 710 Dodatkowe przestrzenie nazw ADO.NET 710 Typy z przestrzeni nazw System.Data 711 Interfejs IDbConnection 712 Interfejs IDbTransaction 712 Interfejs IDbCommand 712 Interfejsy IDbDataParameter i IDataParameter 713 Interfejsy IDbDataAdapter i IDataAdapter 713 Interfejsy IDataReader i IDataRecord 714 Ukrywanie dostawców danych za pomocą interfejsów 715 Zwiększanie elastyczności za pomocą plików konfiguracyjnych aplikacji 717 Tworzenie bazy danych AutoLot 718 Tworzenie tabeli Inventory 719 Dodawanie do tabeli Inventory rekordów testowych 721 Tworzenie składowanej procedury GetPetName() 721 Tworzenie tabel Customers i Orders 722 Tworzenie relacji między tabelami w Visual Studio 724 Model fabryki dostawcy danych ADO.NET 725 Pełny przykład z fabryką dostawcy danych 726 Potencjalna wada modelu fabryki dostawcy danych 729 Element 730 Warstwa połączeniowa ADO.NET 731 Używanie obiektów połączenia 732 Używanie obiektów ConnectionStringBuilder 734 Używanie obiektów polecenia 735 Używanie typów DataReader 736 Uzyskiwanie wielu zbioru wyników za pomocą czytnika danych 737 Tworzenie biblioteki dostępu do danych wielokrotnego użytku 738 Dodawanie kodu połączenia 739 Dodawanie kodu wstawiania 740 Dodawanie kodu usuwania 741 Dodawanie kodu aktualizacji 741 Dodawanie kodu wybierania 742 Używanie sparametryzowanych obiektów polecenia 743 Podawanie parametrów za pomocą typu DbParameter 743 Wywoływanie procedury składowanej 745 Tworzenie nakładki na aplikację konsolową 746 Implementowanie metody Main() 747 Implementowanie metody ShowInstructions() 749 Implementowanie metody ListInventory() 749 Implementowanie metody DeleteCar() 750 Implementowanie metody InsertNewCar() 750 Implementowanie metody UpdateCarPetName() 751 Implementowanie metody LookUpPetName() 751 Transakcje bazodanowe 752 Najważniejsze składowe obiektu transakcji ADO.NET 753 Dodawanie tabeli CreditRisks do bazy danych AutoLot 754 Dodawanie metody transakcyjnej do bazy danych InventoryDAL 754 Testowanie transakcji bazodanowej 756 Podsumowanie 757 Rozdział 22 ADO NET – część 2: warstwa bezpołączeniowa 759 Warstwa bezpołączeniowa ADO NET 759 Rola typu DataSet 760 Najważniejsze właściwości typu DataSet 761 Najważniejsze metody typu DataSet 762 Tworzenie obiektu DataSet 762 Używanie typu DataColumn 763 Tworzenie typu DataColumn 764 Włączanie automatycznej inkrementacji w polach 764 Dodawanie obiektów DataColumn do DataTable 765 Używanie typu DataRow 765 Właściwość RowState 767 Właściwość DataRowVersion 768 Używanie typu DataTable 769 Wstawianie obiektów DataTable do obiektów DataSet 769 Uzyskiwanie danych z obiektu DataSet 770 Przetwarzanie danych DataTable za pomocą obiektów DataTableReader 771 Serializacja obiektów DataTable/DataSet w formacie XML 772 Serializacja obiektów DataTable/DataSet w formacie binarnym 773 Dowiązywanie obiektów DataTable do GUI Windows Forms 774 Wyodrębnianie obiektu DataTable z generycznego List 775 Usuwanie wierszy z obiektu DataTable 777 Wybieranie wierszy na podstawie kryteriów filtrowania 779 Aktualizacja wierszy w obiekcie DataTable 781 Używanie typu DataView 782 Używanie adapterów danych 783 Prosty przykład z adapterem danych 784 Odwzorowanie nazw bazodanowych na nazwy przyjazne 786 Dodawanie funkcjonalności bezpołączeniowej do pakietu AutoLotDAL.dll 787 Definiowanie początkowej klasy 787 Konfiguracja adaptera danych za pomocą typu SqlCommandBuilder 787 Implementacja metody GetAllInventory() 789 Implementacja metody UpdateInventory() 789 Ustawianie numeru wersji 789 Testowanie funkcji bezpołączeniowych 789 Obiekty DataSet z wieloma tabelami i relacjami danych 791 Przygotowanie adapterów danych 792 Tworzenie relacji między tabelami 793 Modyfikacja tabel w bazie danych 794 Nawigacja między powiązanymi ze sobą tabelami 794 Narzędzia do projektowania baz danych Windows Forms 796 Projektowanie kontrolki DataGridView w trybie graficznym 796 Wygenerowany plik App config 800 Analiza obiektów DataSet z silną typizacją 801 Analiza obiektów DataTable z silną typizacją 802 Analiza obiektów DataRow z silną typizacją 803 Analiza adaptera danych z silną typizacją 804 Kończenie aplikacji Windows Forms 805 Wyodrębnianie kodu bazy danych z silną typizacją do biblioteki klasy 806 Przeglądanie wygenerowanego kodu 806 Wybieranie danych za pomocą wygenerowanego kodu 807 Wstawianie danych za pomocą wygenerowanego kodu 809 Usuwanie danych za pomocą wygenerowanego kodu 810 Wywoływanie składowanej procedury za pomocą wygenerowanego kodu 810 Programowanie z wykorzystaniem technologii LINQ to DataSet 811 Biblioteka DataSetExtensions 813 Uzyskiwanie obiektu DataTable kompatybilnego z LINQ 813 Metoda rozszerzająca DataRowExtensions Field() 815 Wypełnianie nowych obiektów DataTable na podstawie zapytań LINQ 815 Podsumowanie 816 Rozdział 23 ADO NET – część 3: Entity Framework 817 Rola Entity Framework 817 Rola encji 819 Bloki budulcowe Entity Framework 821 Code First z istniejącej bazy danych 825 Generowanie modelu 825 I co się wydarzyło? 827 Zmiana domyślnego mapowania 830 Dodawanie do wygenerowanych klas modeli 831 Używanie klas modeli w kodzie 832 Wstawianie rekordów 832 Wybieranie rekordów 833 Rola właściwości nawigacyjnych 836 Usuwanie rekordów 838 Aktualizacja rekordów 840 Obsługa zmian w bazie danych 840 AutoLotDAL wersja 4 840 Adnotacje w Entity Framework 841 Dodawanie lub aktualizacja klas modeli 842 Dodawanie klasy wywodzącej się z DbContext 847 Dodawanie repozytoriów 849 Inicjalizacja bazy danych 857 Testowanie AutoLotDAL 858 Wyświetlanie wszystkich rekordów z repozytorium Inventory 859 Dodawanie nowych rekordów do Inventory 859 Edytowanie rekordów 860 Używanie właściwości nawigacyjnych 861 Działania na wielu tabelach/transakcje niejawne 862 Migracje Entity Framework 863 Aktualizowanie modelu 864 Testowanie aplikacji 866 Wprowadzenie do migracji EF 866 Tworzenie migracji linii bazowej 866 Ustawienie początkowych wartości bazy danych 870 Testowanie transakcji raz jeszcze 871 Współbieżność 872 Korygowanie repozytoriów 873 Testowanie współbieżności 873 Przechwytywanie 874 Interfejs IDbCommandInterceptor 874 Dodawanie przechwytywania do AutoLotDAL 875 Rejestrowanie interceptorów 876 Dodawanie interceptora DatabaseLogger 876 Zdarzenia ObjectMaterialized i SavingChanges 877 Dostęp do kontekstu obiektu 877 ObjectMaterialized 877 SavingChanges 877 Wdrażanie na SQL Server 878 Podsumowanie 879 Rozdział 24 Wprowadzenie do LINQ to XML 881 Opowieść o dwóch API XML 881 LINQ to XML jako ulepszony model DOM 883 Składnia literałów VB jako ulepszony LINQ to XML 883 Składowe przestrzeni nazw System Xml Linq 885 Metody osiowe LINQ to XML 886 Osobliwość XName (i XNamespace) 888 Używanie typów XElement i XDocument 888 Generowanie dokumentów z tablic i kontenerów 890 Wczytywanie i analiza zawartości XML 892 Operacje na dokumentach XML znajdujących się w pamięci 892 Tworzenie interfejsu użytkownika aplikacji LINQ to XML 892 Importowanie pliku Inventory xml 893 Definiowanie klasy pomocniczej LINQ to XML 893 Dołączanie interfejsu użytkownika do klasy pomocniczej 895 Podsumowanie 896 Rozdział 25 Wprowadzenie do WCF (Windows Communication Foundation) 897 Potpourri rozproszonych API 897 Rola modelu DCOM 898 Rola COM+/Enterprise Services 898 Rola MSMQ 899 Warstwa zdalnego dostępu .NET 900 Rola usług sieciowych XML 900 Standardy usług sieciowych 900 Znaczenie WCF 901 Przegląd własności WCF 902 Przegląd architektury usługowej 902 Dogmat 1: Granice są jasno sprecyzowane 903 Dogmat 2: Usługi są autonomiczne 903 Dogmat 3: Usługi komunikują się na podstawie kontraktu, a nie implementacji 903 Dogmat 4: Kompatybilność usług opiera się na zasadach 903 WCF: Podsumowanie 903 Analiza najważniejszych pakietów WCF 904 Szablony projektów WCF w Visual Studio 904 Szablon projektu witryny internetowej usługi WCF 905 Podstawowa budowa aplikacji WCF 906 ABC usług WCF 907 Kontrakty WCF 908 Dowiązania WCF 909 Dowiązania HTTP 909 Dowiązania TCP 910 Dowiązania MSMQ 911 Adresy WCF 911 Tworzenie usługi WCF 912 Atrybut [ServiceContract] 913 Atrybut [OperationContract] 914 Typy usługowe jako kontrakty operacyjne 914 Hostowanie usługi WCF 915 Ustalanie ABC w pliku App.config 916 Kod dla typu ServiceHost 916 Podawanie adresów bazowych 917 Typ ServiceHost pod lupą 918 Element pod lupą 920 Umożliwianie wymiany metadanych 921 Tworzenie klienckiej aplikacji WCF 923 Generowanie kodu proxy za pomocą svcutil exe 923 Generowanie kodu proxy w Visual Studio 924 Konfigurowanie dowiązania TCP 926 Upraszczanie ustawień konfiguracyjnych 927 Wykorzystywanie domyślnych punktów końcowych 927 Udostępnianie jednej usługi WCF z użyciem wielu dowiązań 929 Zmiana ustawień dowiązania WCF 930 Wykorzystywanie domyślnej konfiguracji działania MEX 931 Odświeżanie klienckiego proxy i wybór dowiązania 932 Używanie szablonu projektu WCF Service Library 934 Tworzenie prostej usługi matematycznej 934 Testowanie usługi WCF za pomocą WcfTestClient.exe 934 Modyfikowanie plików konfiguracyjnych w programie SvcConfigEditor.exe 936 Hostowanie usługi WCF w usłudze Windows 936 Określanie ABC w kodzie 937 Włączanie MEX 939 Tworzenie instalatora usługi Windows 939 Instalowanie usługi Windows 940 Asynchroniczne wywoływanie usługi przez klienta 941 Projektowanie kontraktów WCF 943 Używanie sieciowego szablonu projektu usługi WCF 944 Implementowanie kontraktu usługi 945 Rola pliku *.svc 947 Analiza pliku Web config 947 Testowanie usługi 947 Podsumowanie 948 Część VII Windows Presentation Foundation 949 Rozdział 26 Wprowadzenie do WPF (Windows Presentation Foundation) i XAML 951 Po co jest WPF? 951 Unifikacja różnych API 952 Podział zadań za pomocą języka XAML 952 Optymalny model renderowania 953 Uproszczenie programowania skomplikowanych interfejsów użytkownika 953 Różne odmiany WPF 954 Tradycyjne aplikacje okienkowe 954 Nawigacyjne aplikacje WPF 956 Aplikacje XBAP 956 Związek między WPF a Silverlight 958 Analiza pakietów WPF 958 Klasa Application 959 Konstruowanie klasy Application 960 Wyliczanie kolekcji Windows 960 Klasa Window 961 Tworzenie aplikacji WPF bez XAML 964 Tworzenie klasy Window z silną typizacją 966 Tworzenie prostego interfejsu użytkownika 967 Używanie danych na poziomie aplikacji 968 Obsługa zamykania obiektu Window 969 Przechwytywanie zdarzeń myszy 971 Przechwytywanie zdarzeń klawiatury 971 Tworzenie aplikacji WPF jedynie przy użyciu XAML 972 Definiowanie obiektu Window w XAML 974 Definiowanie obiektu Application w XAML 975 Przetwarzanie plików XAML za pomocą msbuild exe 976 Przekształcanie znaczników na pakiet NET 977 Odwzorowanie znakowania XAML dla Window w kodzie C# 977 Rola BAML 979 Odwzorowanie znakowania XAML aplikacji na kod C# 980 Podsumowanie procesu przekształcania XAML na pakiet 980 Składnia XAML WPF 981 Wprowadzenie do Kaxaml 981 Przestrzenie nazw i „słowa kluczowe” XAML 982 Określanie widoczności klas i zmiennych składowych 984 Elementy i atrybuty XAML oraz konwertery typów 985 Składnia właściwość-element w XAML 986 Załączane właściwości XAML 987 Rozszerzenia znakowania XAML 988 Tworzenie aplikacji WPF z użyciem plików code-behind 989 Dodawanie pliku z kodem dla klasy MainWindow 990 Dodawanie pliku z kodem dla klasy MyApp 991 Przetwarzanie plików z kodem w programie msbuild exe 991 Tworzenie aplikacji WPF w Visual Studio 992 Szablony projektów WPF 992 Przybornik i projektant/edytor XAML 994 Ustawianie właściwości w oknie Properties 995 Obsługa zdarzeń w oknie Properties 996 Obsługa zdarzeń w edytorze XAML 997 Okno Document Outline 997 Przeglądanie automatycznie wygenerowanych plików z kodem 998 Tworzenie niestandardowego edytora XAML w Visual Studio 999 Projektowanie graficznego interfejsu użytkownika obiektu Window 999 Implementacja zdarzenia Loaded 1000 Implementacja zdarzenia Click przycisku 1001 Implementacja zdarzenia Closed 1002 Testowanie aplikacji 1003 Poznawanie dokumentacji WPF 1004 Podsumowanie 1004 Rozdział 27 Programowanie z wykorzystaniem kontrolek WPF 1005 Przegląd podstawowych kontrolek WPF 1005 Kontrolki WPF Ink 1005 Kontrolki dokumentów WPF 1006 Najpopularniejsze okna dialogowe WPF 1006 Szczegóły są w dokumentacji 1007 Krótkie omówienie projektanta WPF w Visual Studio 1007 Używanie kontrolek WPF w Visual Studio 1008 Używanie edytora Document Outline 1009 Kontrolowanie rozmieszczenia zawartości za pomocą paneli 1010 Pozycjonowanie zawartości za pomocą paneli Canvas 1012 Pozycjonowanie zawartości za pomocą paneli WrapPanel 1013 Pozycjonowanie zawartości za pomocą paneli StackPanel 1015 Pozycjonowanie zawartości za pomocą paneli Grid 1016 Siatki z typami GridSplitter 1017 Pozycjonowanie zawartości za pomocą paneli DockPanel 1018 Włączanie przewijania dla typów Panel 1019 Konfigurowanie paneli w projektantach Visual Studio 1020 Tworzenie ramki okna za pomocą zagnieżdżonych paneli 1023 Tworzenie systemu menu 1024 Tworzenie menu w trybie graficznym 1025 Tworzenie paska narzędzi 1027 Tworzenie paska stanu 1027 Wykończenie projektu interfejsu użytkownika 1027 Implementacja obsługi zdarzeń MouseEnter/MouseLeave 1028 Implementacja kodu do sprawdzania pisowni 1029 Omówienie poleceń WPF 1030 Wbudowane obiekty Command 1030 Łączenie poleceń z właściwością Command 1031 Łączenie poleceń z arbitralnymi działaniami 1032 Używanie poleceń Open i Save 1034 Zdarzenia trasowane 1036 Wstępujące zdarzenia trasowane 1037 Kontynuowanie lub zatrzymywanie wstępowania 1037 Zstępujące zdarzenia trasowane 1038 API i kontrolki WPF pod lupą 1040 Używanie typu TabControl 1040 Tworzenie karty Ink API 1041 Projektowanie paska narzędzi 1043 Kontrolka RadioButton 1045 Obsługa zdarzeń na karcie API Ink 1046 Kontrolka InkCanvas 1046 Kontrolka ComboBox 1049 Zapisywanie, wczytywanie i sprzątanie danych InkCanvas 1050 Wprowadzenie do API Documents 1051 Elementy blokowe i elementy wierszowe 1052 Menedżery rozplanowania dokumentu 1052 Tworzenie karty Documents 1053 Wypełnianie FlowDocument za pomocą kodu 1054 Włączanie adnotacji i przyklejanych karteczek 1055 Zapisywanie i wczytywanie FlowDocument 1057 Wprowadzenie do modelu dowiązywania danych WPF 1058 Tworzenie karty z dowiązywaniem danych 1059 Określanie dowiązań danych za pomocą Visual Studio 1059 Właściwość DataContext 1061 Konwersja danych za pomocą IValueConverter 1062 Określanie dowiązań danych w kodzie 1063 Tworzenie karty DataGrid 1064 Rola właściwości zależnych 1065 Analiza istniejącej właściwości zależnej 1067 Kilka ważnych faktów dotyczących osłon właściwości CLR 1069 Tworzenie niestandardowej właściwości zależnej 1070 Dodawanie kodu sprawdzania prawidłowości danych 1074 Reagowanie na zmianę właściwości 1074 Podsumowanie 1075 Rozdział 28 Usługi przetwarzania grafiki WPF 1077 Graficzne usługi renderowania WPF 1077 Opcje renderowania grafiki WPF 1078 Renderowanie danych graficznych za pomocą kształtów 1079 Wstawianie prostokątów, elips i linii na płótno 1081 Usuwanie prostokątów, elips i linii z płótna 1083 Używanie klas Polyline i Polygon 1085 Używanie klasy Path 1085 Pędzle i pióra WPF 1088 Konfiguracja pędzli w Visual Studio 1089 Konfiguracja pędzli w kodzie 1091 Konfiguracja piór 1092 Stosowanie przekształceń graficznych 1092 Pierwsze spojrzenie na przekształcenia 1093 Przekształcanie danych na płótnie 1094 Używanie edytora przekształceń w Visual Studio 1096 Tworzenie początkowego rozmieszczenia 1096 Stosowanie przekształceń w fazie projektowania 1098 Przekształcanie płótna w kodzie 1099 Renderowanie danych graficznych za pomocą rysunków i geometrii 1100 Tworzenie obiektów DrawingBrush za pomocą geometrii 1101 Malowanie z użyciem DrawingBrush 1102 Zawieranie typów Drawing w DrawingImage 1103 Używanie obrazów wektorowych 1103 Konwersja przykładowego pliku z grafiką wektorową na XAML 1104 Importowanie danych graficznych do projektu WPF 1106 Komunikacja ze znakiem 1106 Renderowanie danych graficznych za pomocą warstwy wizualizacji 1108 Bazowa klasa Visual i jej klasy potomne 1108 Pierwsze kroki w używaniu klasy DrawingVisual 1109 Renderowanie danych wizualnych w niestandardowym menedżerze rozplanowania 1111 Odpowiadanie na testowanie trafień 1113 Podsumowanie 1114 Rozdział 29 Zasoby, animacje, style i szablony WPF 1115 System zasobów WPF 1115 Używanie zasobów binarnych 1115 Używanie zasobów obiektowych (logicznych) 1120 Właściwość Resources 1121 Definiowanie zasobów dla całego okna 1121 Rozszerzenie {StaticResource} 1124 Rozszerzenie {DynamicResource} 1125 Zasoby dla całej aplikacji 1125 Definiowanie łączonych słowników zasobów 1126 Definiowanie pakietu zawierającego wyłącznie zasoby 1128 Usługi animacji WPF 1130 Rola klas z rodziny Animation 1130 Właściwości To, From i By 1131 Rola klasy bazowej Timeline 1131 Tworzenie animacji w kodzie C# 1132 Kontrolowanie tempa animacji 1133 Odtwarzanie animacji od tyłu i zapętlanie 1134 Tworzenie animacji w XAML 1135 Rola scenopisów 1136 Rola wyzwalaczy zdarzeń 1136 Animacja z użyciem nieciągłych ramek kluczowych 1137 Rola stylów WPF 1138 Definiowanie i stosowanie stylu 1138 Nadpisywanie ustawień stylu 1139 Ograniczanie stosowania stylu za pomocą TargetType 1139 Automatycznie stosowanie stylu za pomocą TargetType 1140 Wyprowadzanie podklas z istniejących stylów 1141 Definiowanie stylów za pomocą wyzwalaczy 1141 Definiowanie stylów z wieloma wyzwalaczami 1142 Style animowane 1143 Przypisywanie stylów programistycznie 1143 Drzewa logiczne, drzewa wizualne i szablony domyślne 1144 Analiza drzewa logicznego w kodzie programu 1145 Analiza drzewa wizualnego w kodzie programu 1147 Analiza domyślnego szablonu kontrolki w kodzie programu 1148 Tworzenie szablonu kontrolki za pomocą platformy wyzwalaczy 1151 Szablony jako zasoby 1152 Wstawianie wizualnych wskazówek za pomocą wyzwalaczy 1154 Rola rozszerzenia {TemplateBinding} 1155 Klasa ContentPresenter 1156 Wstawianie szablonów do stylów 1157 Podsumowanie 1158 Rozdział 30 Powiadomienia, polecenia, sprawdzanie prawidłowości danych i MVVM 1159 Wprowadzenie do wzorca MVVM (Model-View-ViewModel) 1160 Model 1160 View 1160 ViewModel 1160 Anemic Model czy Anemic ViewModel 1160 System dowiązywania powiadomień WPF 1161 Obserwowane modele i kolekcje 1161 Dodawanie dowiązań i danych 1163 Zmienianie danych samochodu w kodzie programu 1164 Obserwowane modele 1165 Obserwowane kolekcje 1168 Walidacja 1176 Modyfikacja przykładu na potrzeby walidacji 1176 Klasa Validation 1178 Opcje walidacji 1178 Używanie adnotacji danych 1190 Dodawanie adnotacji 1190 Sprawdzanie błędów walidacyjnych na podstawie adnotacji 1191 Dostosowywanie ErrorTemplate 1193 Tworzenie niestandardowych poleceń 1194 Implementowanie interfejsu ICommand 1194 Modyfikacja pliku MainWindow.xaml.cs 1195 Modyfikacja pliku MainWindow.xaml 1196 Załączanie polecenia do CommandManager 1196 Testowanie aplikacji 1197 Dodawanie pozostałych poleceń 1198 Pełna implementacja MVVM 1200 Usuwanie źródła danych z widoku 1200 Przenoszenie poleceń do klasy ViewModel 1201 Modyfikacja AutoLotDAL pod kątem MVVM 1202 Modyfikacja modeli AutoLotDAL 1202 Pełny przykład MVVM 1204 Używanie ObjectMaterialized z Entity Framework 1206 Podsumowanie 1206 Część VIII ASP.NET 1207 Rozdział 31 Wprowadzenie do ASP.NET Web Forms 1209 Rola HTTP 1209 Cykl żądania/odpowiedzi HTTP 1209 HTTP to protokół bezstanowy 1210 Aplikacje internetowe i serwery www 1210 Rola wirtualnych katalogów IIS 1211 IIS Express 1211 Rola HTML 1212 Struktura dokumentu HTML 1212 Rola formularza HTML 1213 Narzędzia do projektowania HTML w Visual Studio 1214 Tworzenie formularza HTML 1216 Rola skryptów po stronie klienta 1217 Przykładowy skrypt po stronie klienta 1218 Odesłania na serwer www 1219 Odesłania w Web Forms 1220 Przegląd API Web Forms 1220 Najważniejsze funkcje Web Forms 2.0 i wyższych wersji 1222 Najważniejsze funkcje Web Forms 3.5 (i NET 3.5 SP1) i wyższych wersji 1222 Najważniejsze funkcje Web Forms 4.0 1223 Najważniejsze funkcje Web Forms 4.5 i 4.6 1223 Tworzenie jednoplikowej internetowej aplikacji Web Forms 1224 Odwołanie do AutoLotDAL.dll 1226 Projektowanie interfejsu użytkownika 1227 Dodawanie kodu dostępu do danych 1228 Dyrektywy ASP.NET 1230 Analiza bloku ze „skryptem” 1231 Analiza deklaracji kontrolek ASP.NET 1231 Tworzenie internetowej strony ASP.NET za pomocą plików z kodem 1232 Odwołanie do projektu AutoLotDAL 1233 Modyfikacja pliku z kodem 1234 Debugowanie i śledzenie stron ASP.NET 1235 Witryny i aplikacje internetowe ASP.NET 1236 Włączanie C# 6 dla internetowych witryn ASP.NET 1237 Struktura katalogów witryny internetowej ASP.NET 1237 Odwołania do pakietów 1238 Rola folderu App_Code 1238 Łańcuch dziedziczenia typu Page 1239 Komunikacja z wchodzącym żądaniem HTTP 1240 Uzyskiwanie statystyk przeglądarki 1241 Dostęp do przychodzących danych z formularza 1243 Właściwość IsPostBack 1244 Komunikacja z wychodzącą odpowiedzią HTTP 1244 Wysyłanie zawartości HTML 1245 Przekierowywanie użytkowników 1245 Cykl życiowy internetowej strony ASP.NET 1246 Rola atrybutu AutoEventWireup 1247 Zdarzenie Error 1248 Rola pliku Web.config 1249 Program narzędziowy do zarządzania internetową witryną ASP.NET 1250 Podsumowanie 1250 Rozdział 32 Kontrolki internetowe, strony wzorcowe i motywy ASP.NET 1251 Omówienie roli kontrolek internetowych 1251 Obsługa zdarzeń po stronie serwera 1252 Właściwość AutoPostBack 1252 Bazowe klasy Control i WebControl 1253 Wyliczanie zawieranych kontrolek 1254 Dynamiczne dodawanie i usuwanie kontrolek 1256 Komunikacja z utworzonymi dynamicznie kontrolkami 1257 Funkcjonalność bazowej klasy WebControl 1258 Najważniejsze kategorie kontrolek Web Forms 1258 Kilka słów na temat System.Web.UI.HtmlControls 1261 Dokumentacja kontrolek www 1261 Tworzenie internetowej witryny Web Forms o nazwie Cars 1262 Używanie stron wzorcowych Web Forms 1262 Konfiguracja nawigacji po witrynie za pomocą kontrolki TreeView 1264 Nawigacja okruszkowa z wykorzystaniem typu SiteMapPath 1267 Konfiguracja kontrolki AdRotator 1267 Definiowanie niestandardowej strony z zawartością 1268 Projektowanie strony z zawartością Inventory 1270 Dodawanie AutoLotDAL i Entity Framework do AspNetCarsSite 1270 Wypełnianie kontrolki GridView danymi 1270 Włączanie edycji na miejscu 1272 Włączanie sortowania i stronicowania 1274 Włączanie filtrowania 1274 Projektowanie strony z zawartością Build-a-Car 1276 Rola kontrolek walidacyjnych 1278 Włączanie obsługi walidacji JavaScript po stronie klienta 1280 Kontrolka RequiredFieldValidator 1280 Kontrolka RegularExpressionValidator 1280 Kontrolka RangeValidator 1281 Kontrolka CompareValidator 1281 Tworzenie podsumowania walidacji 1282 Definiowanie grup walidacji 1283 Walidacja z adnotacjami danych 1284 Używanie motywów 1289 Omówienie plików * skin 1289 Stosowanie motywów na całą witrynę 1291 Stosowanie motywów na poziomie strony 1292 Właściwość SkinID 1292 Przypisywanie motywów programistycznie 1292 Podsumowanie 1294 Rozdział 33 Techniki zarządzania stanem ASP.NET 1295 Kwestia stanu 1295 Techniki zarządzania stanem ASP.NET 1297 Rola stanu widoku ASP.NET 1298 Przykład ze stanem widoku 1298 Dodawanie niestandardowych danych stanu widoku 1299 Znaczenie pliku Global asax 1300 Globalna procedura ostatniej szansy obsługi wyjątku 1302 Bazowa klasa HttpApplication 1302 Różnica między aplikacją i sesją 1302 Zarządzanie danymi o stanie na poziomie aplikacji 1303 Modyfikowanie danych aplikacji 1305 Obsługa zamykania aplikacji internetowej 1306 Używanie bufora aplikacji 1307 Przykład z buforowaniem danych 1307 Modyfikowanie pliku * aspx 1309 Zarządzanie danymi sesji 1311 Dodatkowe składowe HttpSessionState 1314 Omówienie plików cookie 1315 Tworzenie plików cookie 1315 Wczytywanie wejściowych danych cookie 1316 Rola elementu 1317 Zapisywanie danych sesji w serwerze stanu sesji ASP.NET 1317 Zapisywanie danych sesji w dedykowanej bazie danych 1318 Wprowadzenie do API ASP.NET Profile 1319 Baza danych ASPNETDB mdf 1319 Definiowanie profilu użytkownika w pliku web config 1320 Programistyczny dostęp do danych profilu 1321 Grupowanie danych profili i utrwalanie obiektów niestandardowych 1323 Podsumowanie 1325 Rozdział 34 ASP.NET MVC i API Web 1327 Wprowadzenie do wzorca MVC 1327 Model 1327 Widok 1328 Kontroler 1328 Dlaczego MVC? 1328 Pojawia się ASP.NET MVC 1329 Tworzenie pierwszej aplikacji ASP.NET MVC 1329 Kreator nowego projektu 1329 Komponenty bazowego projektu MVC 1332 Aktualizacja pakietów NuGet do bieżących wersji 1337 Testowanie witryny 1337 Trasowanie 1339 Wzorce URL 1339 Tworzenie tras dla stron Contact i About 1340 Przekierowywanie użytkowników za pomocą trasowania 1340 Dodawanie AutoLotDAL 1341 Kontrolery i akcje 1342 Dodawanie kontrolera Inventory 1342 Omówienie „rusztowań” widoków 1344 Kontrolery MVC 1345 Widoki MVC 1353 Silnik widoków Razor 1353 Rozmieszczenia 1355 Widoki częściowe 1357 Wysyłanie danych do widoku 1358 Widok Index 1359 Widok Details 1362 Widok Create 1363 Widok Delete 1365 Widok Edit 1367 Walidacja 1368 Wykańczanie interfejsu użytkownika 1370 Ostatnie słowo na temat ASP.NET MVC 1372 Wprowadzenie do API ASP.NET Web 1373 Dodawanie projektu API Web 1373 Analiza projektu API Web 1375 Konfiguracja projektu 1375 Słowo na temat JSON 1376 Dodawanie kontrolera 1377 Modyfikacja CarLotMVC, aby używać CarLotWebAPI 1383 Podsumowanie 1389 Indeks 1391
Prezentacja wideo produktu: Język C# 6.0 i platforma .NET 4.6

Pobierz fragment