Facebook - konwersja
  • promocja

C# 8.0. Programowanie. Tworzenie aplikacji Windows, internetowych oraz biurowych - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
30 października 2020
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

C# 8.0. Programowanie. Tworzenie aplikacji Windows, internetowych oraz biurowych - ebook

Język C# wciąż cechuje prostota, przy czym jego możliwości rosną z każdą wersją. Od początku jest rozwijany z konsekwencją, a każda nowa funkcjonalność idealnie integruje się z resztą języka. W efekcie C# jest dojrzały, nowoczesny, wszechstronny i bezpieczny. Stanowi integralną część platformy Microsoft .NET Framework. Profesjonalni programiści, którzy dbają o wysoką jakość tworzonego kodu, uważają C# i .NET za swoje ulubione narzędzie pracy. Wersja 8.0 tego języka sprawia, że programowanie staje się jeszcze bardziej efektywne i satysfakcjonujące. Pełne wykorzystanie tych imponujących możliwości wymaga jednak mistrzowskiego opanowania subtelności poszczególnych narzędzi i niuansów samego języka.

Ta książka została napisana z myślą o doświadczonych programistach. Podstawowe zagadnienia, takie jak klasy, polimorfizm i kolekcje, znalazły się w kilku pierwszych rozdziałach, jednak zrozumienie treści całej publikacji wymaga umiejętności technicznych. Została poświęcona ważnym koncepcjom C# i tajnikom tego języka, które rzadko kiedy są opisywane w literaturze. Dokładnie omówiono tu typy ogólne, LINQ oraz techniki programowania asynchronicznego. Przedstawiono najnowsze możliwości platformy .NET Core i języka C# 8.0, takie jak strumienie asynchroniczne, referencje akceptujące wartości puste, dopasowywanie wzorców, domyślne implementacje interfejsów, zakresy, a także nową składnię indeksowania oraz zmiany w narzędziach platformy .NET. Liczne rozbudowane przykłady stanowią świetne uzupełnienie prezentowanych treści.

W tej książce między innymi:

  • możliwości języka C#: klasy, typy niestandardowe, kolekcje, obsługa błędów
  • optymalizacja kodu pod kątem wykorzystania pamięci
  • praca na strumieniach danych za pomocą technologii LINQ
  • platforma .NET i programowanie wielowątkowe
  • programowanie asynchroniczne a skalowalność aplikacji

Dla profesjonalistów najlepszy jest C#!

Spis treści

 

Wstęp 15

 

1. Prezentacja C# 19

  • Dlaczego C#? 20
  • Najważniejsze cechy C# 21
    • Kod zarządzany i CLR 22
    • Ogólność jest preferowana względem specjalizacji 24
  • Standardy oraz implementacje języka C# 25
    • Kilka .NET-ów (chwilowo) 26
    • Użycie .NET Standard w celu tworzenia projektów działających w różnych wersjach .NET 28
  • Visual Studio oraz Visual Studio Code 30
  • Anatomia prostego programu 33
    • Dodawanie projektu do istniejącego rozwiązania 36
    • Odwołania do innych projektów 37
    • Odwołania do bibliotek zewnętrznych 37
    • Pisanie testu jednostkowego 40
    • Przestrzenie nazw 43
    • Klasy 47
    • Punkt wejścia do programu 48
    • Testy jednostkowe 49
  • Podsumowanie 50

2. Podstawy stosowania języka C# 51

  • Zmienne lokalne 52
    • Zakres 57
  • Instrukcje i wyrażenia 61
    • Instrukcje 61
    • Wyrażenia 63
  • Komentarze i białe znaki 68
  • Dyrektywy preprocesora 70
    • Symbole kompilacji 70
    • Dyrektywy #error oraz #warning 72
    • Dyrektywa #line 72
    • Dyrektywa #pragma 73
    • Dyrektywa #nullable 74
    • Dyrektywy #region i #endregion 74
  • Podstawowe typy danych 75
    • Typy liczbowe 75
    • Wartości logiczne 86
    • Znaki i łańcuchy znaków 86
    • Krotki 92
    • Dynamic 95
    • Object 96
  • Operatory 96
  • Sterowanie przepływem 102
    • Decyzje logiczne przy użyciu instrukcji if 102
    • Wielokrotny wybór przy użyciu instrukcji switch 104
    • Pętle: while oraz do 106
    • Pętle znane z języka C 107
    • Przeglądanie kolekcji przy użyciu pętli foreach 109
  • Wzorce 110
    • Uzyskiwanie większej dokładności dzięki użyciu when 114
    • Wzorce w wyrażeniach 115
  • Podsumowanie 117

3. Typy 119

  • Klasy 119
    • Składowe statyczne 123
    • Klasy statyczne 124
    • Typy referencyjne 125
  • Struktury 136
    • Kiedy tworzyć typy wartościowe? 140
    • Gwarantowanie niezmienności 145
  • Składowe 147
    • Pola 147
    • Konstruktory 149
    • Dekonstruktory 159
    • Metody 160
    • Właściwości 177
    • Indeksatory 183
    • Składnia inicjalizatorów 185
    • Operatory 186
    • Zdarzenia 189
    • Typy zagnieżdżone 189
  • Interfejsy 190
    • Domyślne implementacje metod w interfejsach 192
  • Typy wyliczeniowe 194
  • Inne typy 197
    • Typy anonimowe 198
  • Typy i metody częściowe 200
  • Podsumowanie 202

4. Typy ogólne 203

  • Typy ogólne 204
  • Ograniczenia 206
    • Ograniczenia typu 207
    • Ograniczenia typu referencyjnego 209
    • Ograniczenia typu wartościowego 212
    • Wszystkie typy w hierarchii wartościowe dzięki ograniczeniu unmanaged 212
    • Ograniczenie notnull 213
    • Inne specjalne ograniczenia typów 213
    • Stosowanie wielu ograniczeń 213
  • Wartości przypominające zero 214
  • Metody ogólne 215
    • Wnioskowanie typu 216
  • Typy ogólne i krotki 217
  • Tajniki typów ogólnych 218
  • Podsumowanie 220

5. Kolekcje 221

  • Tablice 221
    • Inicjalizacja tablic 224
    • Przeszukiwanie i sortowanie 226
    • Tablice wielowymiarowe 233
    • Kopiowanie i zmiana wielkości 236
  • List 237
  • Interfejsy list i sekwencji 240
  • Implementacja list i sekwencji 246
    • Implementacja IEnumerable przy użyciu iteratorów 246
    • Klasa Collection 251
    • Klasa ReadOnlyCollection 252
  • Odwołania do elementów z użyciem indeksów i zakresów 253
    • System.Index 253
    • System.Range 256
    • Obsługa indeksów i zakresów we własnych typach danych 258
  • Słowniki 260
    • Słowniki posortowane 263
  • Zbiory 265
  • Kolejki i stosy 266
  • Listy połączone 267
  • Kolekcje współbieżne 268
  • Kolekcje niezmienne 269
    • Klasa ImutableArray 271
  • Podsumowanie 272

6. Dziedziczenie 273

  • Dziedziczenie i konwersje 274
  • Dziedziczenie interfejsów 278
  • Typy ogólne 279
    • Kowariancja i kontrawariancja 280
  • System.Object 285
    • Wszechobecne metody typu System.Object 285
  • Dostępność i dziedziczenie 287
  • Metody wirtualne 288
    • Metody abstrakcyjne 290
    • Dziedziczenie i wersje bibliotek 291
  • Metody i klasy ostateczne 297
  • Dostęp do składowych klas bazowych 299
  • Dziedziczenie i tworzenie obiektów 299
  • Specjalne typy bazowe 303
  • Podsumowanie 305

7. Cykl życia obiektów 307

  • Mechanizm odzyskiwania pamięci 308
    • Określanie osiągalności danych 310
    • Przypadkowe problemy mechanizmu odzyskiwania pamięci 312
    • Słabe referencje 315
    • Odzyskiwanie pamięci 318
    • Tryby odzyskiwania pamięci 324
    • Tymczasowe zawieszanie odzyskiwania pamięci 328
    • Przypadkowe utrudnianie scalania 329
    • Wymuszanie odzyskiwania pamięci 332
  • Destruktory i finalizacja 333
  • Interfejs IDisposable 337
    • Zwalnianie opcjonalne 343
  • Pakowanie 344
    • Pakowanie danych typu Nullable 349
  • Podsumowanie 350

8. Wyjątki 351

  • Źródła wyjątków 353
    • Wyjątki zgłaszane przez API 354
    • Błędy wykrywane przez środowisko uruchomieniowe 356
  • Obsługa wyjątków 357
    • Obiekty wyjątków 358
    • Wiele bloków catch 360
    • Filtry wyjątków 361
    • Zagnieżdżone bloki try 362
    • Bloki finally 364
  • Zgłaszanie wyjątków 365
    • Powtórne zgłaszanie wyjątków 366
    • Sposób na szybkie zakończenie aplikacji 370
  • Typy wyjątków 370
    • Wyjątki niestandardowe 373
  • Wyjątki nieobsługiwane 375
  • Podsumowanie 377

9. Delegaty, wyrażenia lambda i zdarzenia 379

  • Typy delegatów 380
    • Tworzenie delegatów 381
    • MulticastDelegate - delegaty zbiorowe 384
    • Wywoływanie delegatów 386
    • Popularne typy delegatów 388
    • Zgodność typów 390
    • Więcej niż składnia 393
  • Funkcje anonimowe 395
    • Przechwytywane zmienne 398
    • Wyrażenia lambda oraz drzewa wyrażeń 405
  • Zdarzenia 407
    • Standardowy wzorzec delegatów zdarzeń 409
    • Niestandardowe metody dodające i usuwające zdarzenia 410
    • Zdarzenia i mechanizm odzyskiwania pamięci 413
    • Zdarzenia a delegaty 415
  • Delegaty a interfejsy 416
  • Podsumowanie 416

10. LINQ 419

  • Wyrażenia zapytań 420
    • Jak są rozwijane wyrażenia zapytań 423
    • Obsługa wyrażeń zapytań 425
  • Przetwarzanie opóźnione 429
  • LINQ, typy ogólne oraz interfejs IQueryable 432
  • Standardowe operatory LINQ 434
    • Filtrowanie 436
    • Selekcja 438
    • Operator SelectMany 441
    • Określanie porządku 444
    • Testy zawierania 446
    • Konkretne elementy i podzakresy 448
    • Agregacja 452
    • Operacje na zbiorach 457
    • Operatory działające na całych sekwencjach z zachowaniem kolejności 458
    • Grupowanie 459
    • Złączenia 464
    • Konwersje 467
  • Generowanie sekwencji 471
  • Inne implementacje LINQ 472
    • Entity Framework 472
    • Parallel LINQ (PLINQ) 473
    • LINQ to XML 473
    • Reactive Extensions 473
    • Tx (LINQ to Logs and Traces) 473
  • Podsumowanie 474

11. Reactive Extensions 475

  • Podstawowe interfejsy 477
    • Interfejs IObserver 478
    • Interfejs IObservable 479
  • Publikowanie i subskrypcja z wykorzystaniem delegatów 486
    • Tworzenie źródła przy wykorzystaniu delegatów 486
    • Subskrybowanie obserwowalnych źródeł przy użyciu delegatów 489
  • Generator sekwencji 491
    • Empty 491
    • Never 491
    • Return 492
    • Throw 492
    • Range 492
    • Repeat 492
    • Generate 492
  • Zapytania LINQ 493
    • Operatory grupowania 496
    • Operatory Join 497
    • Operator SelectMany 503
    • Agregacja oraz inne operatory zwracające jedną wartość 503
    • Operator Concat 504
  • Operatory biblioteki Rx 505
    • Merge 505
    • Operatory Buffer i Window 507
    • Operator Scan 514
    • Operator Amb 515
    • DistinctUntilChanged 516
  • Mechanizmy szeregujące 516
    • Określanie mechanizmów szeregujących 517
    • Wbudowane mechanizmy szeregujące 519
  • Tematy 520
    • Subject 521
    • BehaviorSubject 522
    • ReplaySubject 523
    • AsyncSubject 523
  • Dostosowanie 524
    • IEnumerableoraz IAsyncEnumerable 524
    • Zdarzenia .NET 526
    • API asynchroniczne 528
  • Operacje z uzależnieniami czasowymi 530
    • Interval 530
    • Timer 531
    • Timestamp 532
    • TimeInterval 533
    • Throttle 533
    • Sample 534
    • Timeout 534
    • Operatory okien czasowych 534
    • Delay 535
    • DelaySubscription 536
  • Podsumowanie 536

12. Podzespoły 537

  • Anatomia podzespołu 538
    • Metadane .NET 539
    • Zasoby 539
    • Podzespoły składające się z wielu plików 539
    • Inne możliwości formatu PE 540
  • Tożsamość typu 542
  • Wczytywanie podzespołów 545
    • Określanie podzespołów 546
    • Jawne wczytywanie podzespołów 550
    • Izolacja i obsługa wtyczek z użyciem typu AssemblyLoadContext 551
  • Nazwy podzespołów 553
    • Silne nazwy 553
    • Numer wersji 556
    • Identyfikator kulturowy 559
  • Zabezpieczenia 563
  • Podsumowanie 563

13. Odzwierciedlanie 565

  • Typy odzwierciedlania 566
    • Assembly 567
    • Module 570
    • MemberInfo 572
    • Type oraz TypeInfo 574
    • MethodBase, ConstructorInfo oraz MethodInfo 580
    • ParameterInfo 581
    • FieldInfo 581
    • PropertyInfo 582
    • EventInfo 582
  • Konteksty odzwierciedlania 583
  • Podsumowanie 585

14. Atrybuty 587

  • Stosowanie atrybutów 587
    • Cele atrybutów 589
    • Atrybuty obsługiwane przez kompilator 591
    • Atrybuty obsługiwane przez CLR 596
  • Definiowanie i stosowanie atrybutów niestandardowych 603
    • Typ atrybutu 604
    • Pobieranie atrybutów 606
  • Podsumowanie 609

15. Pliki i strumienie 611

  • Klasa Stream 612
    • Położenie i poruszanie się w strumieniu 614
    • Opróżnianie strumienia 615
    • Kopiowanie 616
    • Length 616
    • Zwalnianie strumieni 617
    • Operacje asynchroniczne 618
    • Konkretne typy strumieni 619
    • Jeden typ, wiele zachowań 620
  • Typy operujące na tekstach 622
    • TextReader oraz TextWriter 622
    • Konkretne typy do odczytu i zapisu łańcuchów znaków 624
    • Kodowanie 627
  • Pliki i katalogi 631
    • Klasa FileStream 631
    • Klasa File 634
    • Klasa Directory 638
    • Klasa Path 639
    • Klasy FileInfo, DirectoryInfo oraz FileSystemInfo 641
    • Znane katalogi 642
  • Serializacja 643
    • Klasy BinaryReader oraz BinaryWriter 644
    • Serializacja CLR 645
    • JSON.NET 647
  • Podsumowanie 652

16. Wielowątkowość 653

  • Wątki 653
    • Wątki, zmienne i wspólny stan 655
    • Klasa Thread 661
    • Pula wątków 663
    • Powinowactwo do wątku oraz klasa SynchronizationContext 666
  • Synchronizacja 670
    • Monitory oraz słowo kluczowe lock 671
    • Klasa SpinLock 677
    • Blokady odczytu i zapisu 680
    • Obiekty zdarzeń 681
    • Klasa Barrier 684
    • Klasa CountdownEvent 685
    • Semafory 685
    • Muteksy 686
    • Klasa Interlocked 686
    • Leniwa inicjalizacja 689
    • Pozostałe klasy obsługujące działania współbieżne 691
  • Zadania 693
    • Klasy Task oraz Task 693
    • Kontynuacje 699
    • Mechanizmy szeregujące 701
    • Obsługa błędów 703
    • Niestandardowe zadania bezwątkowe 703
    • Związki zadanie nadrzędne - zadanie podrzędne 705
    • Zadania złożone 705
  • Inne wzorce asynchroniczne 706
  • Anulowanie 707
  • Równoległość 708
    • Klasa Parallel 708
    • Parallel LINQ 709
    • TPL Dataflow 710
  • Podsumowanie 710

17. Asynchroniczne cechy języka 711

  • Nowe słowa kluczowe: async oraz await 712
    • Konteksty wykonania i synchronizacji 716
    • Wykonywanie wielu operacji i pętli 718
    • Zwracanie obiektu Task 724
    • Stosowanie async w metodach zagnieżdżonych 726
  • Wzorzec słowa kluczowego await 726
  • Obsługa błędów 731
    • Weryfikacja poprawności argumentów 733
    • Wyjątki pojedyncze oraz grupy wyjątków 735
    • Operacje równoległe i nieobsłużone wyjątki 736
  • Podsumowanie 738

18. Wydajne użytkowanie pamięci 739

  • (Nie) kopiować! 740
  • Reprezentacja elementów sekwencyjnych przy użyciu Span 744
    • Metody pomocnicze 747
    • Tylko na stosie 747
  • Reprezentacja elementów sekwencyjnych przy użyciu Memory 748
  • ReadOnlySequence 748
  • Przetwarzanie strumieni danych przy użyciu potoków 749
    • Przetwarzanie danych JSON w ASP.NET Core 751
  • Podsumowanie 757
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-6740-1
Rozmiar pliku: 6,2 MB

BESTSELLERY

Kategorie: