Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00343 005092 19015107 na godz. na dobę w sumie
C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych - książka
C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych - książka
Autor: Liczba stron: 672
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-4450-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> asp
Porównaj ceny (książka, ebook (-35%), audiobook).

Powszechnie uważa się, że C# jest świetnym językiem ogólnego zastosowania, który nadaje się do tworzenia każdego rodzaju oprogramowania - od serwisów internetowych poprzez aplikacje biznesowe aż po gry. Oprogramowanie takie działa na komputerach biurkowych, serwerach, urządzeniach mobilnych, a także na specjalizowanych systemach do gier. Z kolei .NET Core pozwala na tworzenie rozwiązań serwerowych w chmurze oraz na pracę z urządzeniami wirtualnej lub rozszerzonej rzeczywistości. To wszystko sprawia, że technologie C# i .NET Core umożliwiają tworzenie nowoczesnych systemów, które będą wydajnie działać na wielu różnych platformach.

Ta książka jest znakomitym, spójnym i bardzo praktycznym podręcznikiem do nauki języka C#. Pokazuje również najlepsze praktyki stosowane na platformie .NET Core. Z publikacji skorzysta każdy, kto pragnie zdobyć dobre przygotowanie do pracy z językiem i platformą. Znalazły się tu przystępnie wyłożone podstawy języka C#, a także sposoby debugowania kodu i zasady programowania obiektowego. Nie zabrakło informacji o najnowszych elementach języka C# 7.1, takich jak domyślne literały, krotki, dopasowywanie wzorców, zmienne typu out i inne. Dokładnie opisano biblioteki klas .NET Standard 2.0. Zaprezentowano najważniejsze rodzaje aplikacji, takie jak witryny i aplikacje internetowe, serwisy sieciowe, aplikacje UWP oraz aplikacje mobilne.

W tej książce między innymi:

Wieloplatformowa aplikacja - profesjonalny deweloper!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: C# 7.1 and .NET Core 2.0 - Modern Cross-Platform Development Tłumaczenie: Wojciech Moch ISBN: 978-83-283-4450-1 Copyright © Packt Publishing 2017. First published in the English language under the title ‘C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development – (9781788398077)’ Polish edition copyright © 2018 by Helion SA All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz HELION SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. HELION SA ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/c71nc2.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/c71nc2 Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści O autorze O recenzentach Wstęp Rozdział 1. Cześć, C#! Witaj, .NET Core Konfigurowanie środowiska programistycznego Używanie innych IDE dla języka C# Instalowanie na wielu platformach Instalowanie Microsoft Visual Studio 2017 Instalowanie Microsoft Visual Studio Code Instalowanie Visual Studio for Mac Poznawanie .NET Poznawanie .NET Framework Poznawanie projektów Mono i Xamarin Poznawanie .NET Core Poznawanie .NET Standard Poznawanie .NET Native Porównanie technologii .NET Pisanie i kompilowanie kodu przy użyciu narzędzi wiersza poleceń z .NET Core Pisanie kodu za pomocą prostego edytora tekstu Tworzenie i kompilowanie aplikacji za pomocą narzędzi wiersza poleceń .NET Core Naprawianie błędów kompilacji Poznawanie języka pośredniego Pisanie i kompilowanie kodu za pomocą Visual Studio 2017 Pisanie kodu w Visual Studio 2017 Kompilowanie kodu za pomocą Visual Studio 2017 18 20 21 27 28 29 30 30 33 37 38 39 39 40 42 43 43 44 44 46 48 49 49 50 53 Poleć książkęKup książkę Spis treści Poprawianie pomyłek z listy błędów Dodawanie istniejących projektów do Visual Studio 2017 Automatyczne formatowanie kodu Eksperymentowanie z interaktywnym C# Inne przydatne okna Pisanie i kompilowanie kodu w Visual Studio Code Pisanie kodu w Visual Studio Code Kompilowanie kodu w Visual Studio Code Automatyczne formatowanie kodu Pisanie i kompilowanie kodu za pomocą Visual Studio for Mac Następne kroki Zarządzanie kodem źródłowym przy użyciu platformy GitHub Używanie systemu Git w Visual Studio 2017 Używanie systemu Git w Visual Studio Code Praktyka i ćwiczenia Ćwiczenie 1.1 — sprawdź swoją wiedzę Ćwiczenie 1.2 — ćwicz C# gdzie się da Ćwiczenie 1.3 — dalsza lektura Podsumowanie Część I. C# 7.1 Rozdział 2. Mówimy w C# Poznawanie podstaw języka C# Używanie Visual Studio 2017 Używanie Visual Studio Code w systemach macOS, Linux i Windows Gramatyka języka C# Słownictwo języka C# Pomoc przy pisaniu kodu Czasowniki jako metody Rzeczowniki to typy, pola i zmienne Ujawnienie wielkości słownika języka C# Deklarowanie zmiennych Nazywanie zmiennych Literały Przechowywanie tekstu Przechowywanie liczb Przechowywanie wartości logicznych Typ object Typ dynamic Zmienne lokalne Zapisywanie wartości null w typach wartości Poznawanie typów referencyjnych z wartością null Zapisywanie wielu wartości w tablicy 4 54 55 56 57 59 60 60 61 62 62 65 65 66 68 69 69 70 70 70 71 73 73 74 76 78 79 81 82 83 84 86 87 87 88 88 93 93 94 94 96 96 98 Poleć książkęKup książkę Dokładniejsze poznawanie aplikacji konsoli Wyświetlanie informacji dla użytkownika Pobieranie danych od użytkownika Importowanie przestrzeni nazw Uproszczone korzystanie z konsoli Odczytywanie parametrów i praca z tablicami Działania na zmiennych Eksperymenty z operatorami jednoargumentowymi Eksperymentowanie z operatorami arytmetycznymi Porównania i operatory logiczne Praktyka i ćwiczenia Ćwiczenie 2.1 — sprawdź swoją wiedzę Ćwiczenie 2.2 — poznaj wielkości i zakresy liczb Ćwiczenie 2.3 — dalsza lektura Podsumowanie Rozdział 3. Sterowanie przepływem i konwertowanie typów Instrukcje wyboru Visual Studio 2017 Visual Studio Code w systemach macOS, Linux i Windows Instrukcja if Instrukcja switch Instrukcje iteracji Instrukcja while Instrukcja do Instrukcja for Instrukcja foreach Rzutowanie i konwertowanie między typami Rzutowanie z liczby na liczbę Używanie typu Convert Zaokrąglanie liczb Konwersja z dowolnego typu na ciąg znaków Konwertowanie obiektu binarnego na ciąg znaków Parsowanie ciągów znaków z liczbami, datami i czasem Obsługa wyjątków podczas konwertowania typów Instrukcja try Przechwytywanie wszystkich wyjątków Przechwytywanie wybranych wyjątków Wykrywanie przepełnień Instrukcja checked Instrukcja unchecked Gdzie znaleźć pomoc Microsoft Docs i MSDN Przejdź do definicji Stack Overflow Google Spis treści 99 99 100 100 101 102 106 107 108 109 109 109 109 110 111 113 113 113 114 114 115 118 118 119 119 120 121 121 123 123 124 124 126 127 127 128 129 130 130 131 132 133 133 134 134 5 Poleć książkęKup książkę Spis treści Subskrybowanie blogów Wzorce projektowe Praktyka i ćwiczenia Ćwiczenie 3.1 — sprawdź swoją wiedzę Ćwiczenie 3.2 — pętle i przepełnienia Ćwiczenie 3.3 — pętle i operatory Ćwiczenie 3.4 — obsługa wyjątków Ćwiczenie 3.5 — dalsza lektura Podsumowanie Rozdział 4. Pisanie, debugowanie i testowanie funkcji Tworzenie funkcji Tworzenie funkcji wypisującej sekwencję mnożenia Pisanie funkcji zwracającej wartość Pisanie funkcji matematycznych Debugowanie tworzonego programu Tworzenie aplikacji z celowym błędem Tworzenie punktu przerwania Pasek narzędzi debugowania Okna debugowania Krokowe wykonywanie kodu Dostosowywanie punktów przerwania Protokołowanie błędów Używanie typów Debug i Trace Przełączanie poziomów śledzenia Testy jednostkowe Tworzenie biblioteki klas wymagającej testowania w Visual Studio 2017 Tworzenie projektu testów jednostkowych w Visual Studio 2017 Tworzenie biblioteki klas wymagającej testowania w Visual Studio Code Tworzenie testów jednostkowych Uruchamianie testów jednostkowych w Visual Studio 2017 Uruchamianie testów jednostkowych w Visual Studio Code Praktyka i ćwiczenia Ćwiczenie 4.1 — sprawdź swoją wiedzę Ćwiczenie 4.2 — tworzenie funkcji z wykorzystaniem debugowania i testów jednostkowych Ćwiczenie 4.3 — dalsza lektura Podsumowanie Rozdział 5. Tworzenie własnych typów w programowaniu obiektowym Rozmowy o programowaniu obiektowym Tworzenie bibliotek klas Tworzenie biblioteki klas w Visual Studio 2017 Tworzenie biblioteki klas w Visual Studio Code Definiowanie klasy Tworzenie obiektów 6 136 136 138 138 138 139 139 140 140 141 141 142 144 146 149 149 150 151 152 154 155 156 157 160 162 162 163 164 166 167 168 170 170 170 171 171 173 174 174 175 175 176 177 Poleć książkęKup książkę Zarządzanie wieloma projektami w Visual Studio Code Dziedziczenie po System.Object Przechowywanie danych w polach Definiowanie pól Zapisywanie wartości za pomocą słowa kluczowego enum Zapisywanie wielu wartości za pomocą kolekcji Tworzenie pól statycznych Tworzenie stałych pól Tworzenie pól tylko do odczytu Inicjowanie pól w konstruktorach Nadawanie polom domyślnego literału Tworzenie i wywoływanie metod Łączenie wielu wartości za pomocą krotki Sterowanie przekazywaniem parametrów Przeciążanie metod Parametry opcjonalne i nazywane Sposoby przekazywania parametrów Dzielenie klas na części Kontrola dostępu za pomocą właściwości i indekserów Definiowanie właściwości tylko do odczytu Definiowanie właściwości z możliwością przypisania Definiowanie indekserów Praktyka i ćwiczenia Ćwiczenie 5.1 — sprawdź swoją wiedzę Ćwiczenie 5.2 — dalsza lektura Podsumowanie Rozdział 6. Implementowanie interfejsów i dziedziczenie klas Konfigurowanie biblioteki klas i aplikacji konsoli Visual Studio 2017 Visual Studio Code Definiowanie klas Upraszczanie metod za pomocą operatorów Implementowanie działań w metodzie Implementowanie działań za pomocą operatora Definiowanie funkcji lokalnych Wywoływanie i obsługa zdarzeń Wywoływanie metod za pomocą delegatów Definiowanie zdarzeń Implementowanie interfejsów Typowe interfejsy Porównywanie obiektów podczas sortowania Wykorzystywanie typów generycznych Tworzenie typu generycznego Tworzenie generycznej metody Spis treści 180 181 182 182 184 187 188 189 190 190 191 193 194 197 198 198 200 202 203 203 204 205 206 206 207 207 209 210 210 210 212 213 213 214 216 217 217 218 220 220 221 225 225 227 7 Poleć książkęKup książkę Spis treści Zarządzanie pamięcią za pomocą typów referencyjnych i typów wartości Definiowanie typu kategorii struct Zwalnianie niezarządzanych zasobów Wymuszanie wywołania metody Dispose Dziedziczenie klas Rozbudowywanie klasy Ukrywanie elementów Pokrywanie elementów klasy Blokowanie dziedziczenia i pokrywania Polimorfizm Rzutowanie w ramach hierarchii dziedziczenia Rzutowanie niejawne Rzutowanie jawne Obsługa wyjątków rzutowania Dziedziczenie i rozbudowywanie typów .NET Dziedziczenie po wyjątku Rozszerzanie typów, po których nie można dziedziczyć Praktyka i ćwiczenia Ćwiczenie 6.1 — sprawdź swoją wiedzę Ćwiczenie 6.2 — tworzenie hierarchii dziedziczenia Ćwiczenie 6.3 — dalsza lektura Podsumowanie 228 229 230 232 233 233 234 235 236 237 238 238 238 239 240 240 241 244 244 244 244 245 Część II. .NET Core 2.0 i .NET Standard 2.0 247 Rozdział 7. Poznawanie typów .NET Standard Zestawy i przestrzenie nazw Bazowe biblioteki klas i CoreFX Poznawanie zależnych zestawów Związki między zestawami i przestrzeniami nazw Związki słów kluczowych języka C# z typami .NET Wieloplatformowe współdzielenie kodu z bibliotekami klas .NET Standard Tworzenie biblioteki klas .NET Standard 2.0 Pakiety NuGet Metapakiety Czym są frameworki? Stabilizowanie zależności Publikowanie własnych aplikacji Tworzenie aplikacji konsoli do publikacji Publikowanie za pomocą Visual Studio 2017 w systemie Windows Publikowanie za pomocą Visual Studio Code w macOS Przygotowywanie własnych pakietów NuGet Poznawanie poleceń narzędzia dotnet Dodawanie odwołania do pakietu 8 249 249 250 251 252 257 258 259 260 261 263 263 265 265 266 269 270 270 271 Poleć książkęKup książkę Tworzenie pakietu dla NuGet Testowanie pakietu Przenoszenie kodu z .NET Framework do .NET Core Co można przenieść? Co należy przenieść? Różnice między .NET Framework i .NET Core Korzystanie z programu .NET Portability Analyzer Używanie bibliotek spoza .NET Praktyka i ćwiczenia Ćwiczenie 7.1 — sprawdź swoją wiedzę Ćwiczenie 7.2 — dalsza lektura Podsumowanie Rozdział 8. Używanie typów biblioteki .NET Standard Praca z liczbami Praca z wielkimi liczbami całkowitymi Praca z liczbami zespolonymi Praca z tekstem Odczytywanie długości ciągu znaków Odczytywanie znaków z ciągu Dzielenie ciągu znaków Pobieranie części ciągu znaków Poszukiwanie tekstu w ciągu Inne elementy klasy string Wydajne tworzenie ciągów znaków Dopasowywanie wzorców za pomocą wyrażeń regularnych Praca z kolekcjami Wspólne funkcje wszystkich kolekcji Poznawanie kolekcji Praca z listami Praca ze słownikami Sortowanie kolekcji Używanie specjalizowanych kolekcji Używanie kolekcji niezmiennych Praca z zasobami sieciowymi Praca z adresami URI, serwerami DNS i adresami IP Pingowanie serwera Praca z typami i atrybutami Numery wersji zestawów Odczytywanie metadanych zestawu Tworzenie własnych atrybutów Inne możliwości refleksji Internacjonalizacja kodu Globalizacja aplikacji Spis treści 273 277 278 279 279 280 280 280 282 282 282 283 285 285 286 286 287 287 288 288 288 289 289 290 291 293 294 295 297 298 299 300 300 301 301 302 303 304 304 306 308 308 308 9 Poleć książkęKup książkę Spis treści Praktyka i ćwiczenia Ćwiczenie 8.1 — sprawdź swoją wiedzę Ćwiczenie 8.2 — wyrażenia regularne Ćwiczenie 8.3 — metody rozszerzające Ćwiczenie 8.4 — dalsza lektura Podsumowanie Rozdział 9. Praca z plikami, strumieniami i serializacją Praca z systemem plików Obsługa środowisk i systemów plików na wielu platformach Obsługa napędów Praca z katalogami Praca z plikami Praca ze ścieżkami Odczytywanie informacji o pliku Zarządzanie plikami Odczytywanie i zapisywanie w strumieniach Zapisywanie do strumieni tekstowych i XML Zwalnianie zasobów plików Kompresowanie strumieni Kodowanie tekstu Kodowanie ciągu znaków jako tablicy bajtów Kodowanie i dekodowanie tekstu w plikach Serializacja obiektów Serializacja do formatu XML Deserializacja danych z formatu XML Dostosowywanie formatu XML Serializowanie do formatu JSON Serializowanie w innych formatach Praktyka i ćwiczenia Ćwiczenie 9.1 — sprawdź swoją wiedzę Ćwiczenie 9.2 — serializowanie do formatu XML Ćwiczenie 9.3 — dalsza lektura Podsumowanie Rozdział 10. Ochrona danych i aplikacji Poznawanie słownictwa związanego z ochroną Klucze i wielkości kluczy Wektor inicjujący i wielkość bloku Sól Generowanie kluczy i wektorów inicjujących Szyfrowanie i rozszyfrowywanie danych Szyfrowanie symetryczne algorytmem AES Funkcje skrótu Obliczanie skrótu za pomocą algorytmu SHA256 10 310 310 311 311 311 312 313 313 314 316 318 320 321 322 323 324 327 329 331 333 333 336 337 337 340 340 341 342 342 342 343 344 344 345 345 346 347 347 348 349 350 354 356 Poleć książkęKup książkę Spis treści Podpisywanie danych Podpisywanie za pomocą SHA256 i RSA Testowanie i kontrolowanie podpisów Generowanie liczb losowych Generowanie liczb losowych na potrzeby gier Generowanie liczb losowych dla kryptografii Testowanie generatora losowego klucza lub wektora inicjującego Uwierzytelnianie i autoryzacja użytkowników Implementowanie uwierzytelniania i autoryzacji Testowanie autoryzacji i uwierzytelniania Ochrona funkcji aplikacji Praktyka i ćwiczenia Ćwiczenie 10.1 — sprawdź swoją wiedzę Ćwiczenie 10.2 — ochrona danych za pomocą szyfrowania i funkcji skrótu Ćwiczenie 10.3 — ochrona danych przez rozszyfrowywanie Ćwiczenie 10.4 — dalsza lektura Podsumowanie Rozdział 11. Praca z bazami danych przy użyciu Entity Framework Core Nowoczesne bazy danych Używanie przykładowej relacyjnej bazy danych Microsoft SQL Server SQLite Konfigurowanie EF Core Wybieranie dostawcy danych EF Core Łączenie z bazą danych Definiowanie modeli EF Core Konwencje w EF Core Atrybuty EF Core Płynne API EF Core Tworzenie modelu w EF Core Zapytania do modelu EF Core Protokołowanie w EF Core Dopasowywanie wzorców za pomocą instrukcji Like Definiowanie globalnych filtrów Wzorce ładowania w EF Core Manipulowanie danymi w EF Core Wstawianie encji Aktualizowanie encji Usuwanie encji Grupowanie kontekstów baz danych Transakcje Jawne definiowanie transakcji 358 359 360 361 362 363 363 364 366 367 369 370 370 370 371 371 371 373 373 374 375 379 383 383 384 387 387 387 388 388 393 395 399 400 401 404 404 405 406 407 407 408 11 Poleć książkęKup książkę Spis treści Praktyka i ćwiczenia Ćwiczenie 11.1 — sprawdź swoją wiedzę Ćwiczenie 11.2 — eksportowanie danych z wykorzystaniem różnych formatów serializacji Ćwiczenie 11.3 — przeglądanie dokumentacji EF Core Podsumowanie Rozdział 12. Odczytywanie danych i manipulowanie nimi za pomocą LINQ Tworzenie zapytań LINQ Rozbudowa sekwencji za pomocą klas wyliczeniowych Filtrowanie encji za pomocą metody Where Sortowanie encji Filtrowanie według typu Praca ze zbiorami Używanie LINQ z EF Core Projekcje encji w metodzie Select Tworzenie modelu danych EF Core Łączenie i grupowanie Agregowanie sekwencji Upiększanie składni Używanie wielu wątków w równoległych zapytaniach LINQ Tworzenie własnych metod rozszerzających dla LINQ Praca z LINQ to XML Generowanie danych XML za pomocą LINQ to XML Odczytywanie danych XML za pomocą LINQ to XML Praktyka i ćwiczenia Ćwiczenie 12.1 — sprawdź swoją wiedzę Ćwiczenie 12.2 — zapytania LINQ Ćwiczenie 12.3 — dalsza lektura Podsumowanie Rozdział 13. Poprawianie wydajności i skalowalności za pomocą wielozadaniowości Monitorowanie wydajności i wykorzystania zasobów Ocena wydajności typów Monitorowanie wydajności i zużycia pamięci Procesy, wątki i zadania Asynchroniczne uruchamianie zadań Synchroniczne uruchamianie wielu operacji Asynchroniczne uruchamianie wielu operacji z wykorzystaniem zadań Oczekiwanie na zadania Kontynuowanie pracy w innym zadaniu Zadania zagnieżdżone i potomne 12 409 409 410 410 410 411 411 412 412 417 418 420 421 422 422 425 428 429 430 433 436 437 437 438 438 439 439 440 441 442 442 443 448 449 450 451 453 454 455 Poleć książkęKup książkę Spis treści Synchronizowanie dostępu do wspólnych zasobów Używanie wspólnego zasobu w wielu wątkach Nakładanie na zasoby wzajemnie wykluczającej blokady Jak działa instrukcja lock Tworzenie operacji atomowych Stosowanie innych rodzajów synchronizacji Słowa kluczowe async i await Poprawianie reakcji aplikacji konsoli Poprawianie reakcji aplikacji z interfejsem graficznym Poprawianie skalowalności aplikacji i serwisów WWW Często używane typy pozwalające na pracę wielowątkową Instrukcja await w bloku catch Praktyka i ćwiczenia Ćwiczenie 13.1 — sprawdź swoją wiedzę Ćwiczenie 13.2 — dalsza lektura Podsumowanie Część III. Modele aplikacji Rozdział 14. Tworzenie witryn WWW przy użyciu ASP.NET Core Razor Pages Tworzenie w sieci WWW Protokół HTTP Tworzenie oprogramowania dla sieci WWW po stronie klienta ASP.NET Core Klasyczna ASP.NET kontra ASP.NET Core Tworzenie projektu ASP.NET Core w Visual Studio 2017 Tworzenie projektu ASP.NET Core w Visual Studio Code Przeglądanie pustego szablonu projektu ASP.NET Core Testowanie pustej witryny Włączanie plików statycznych Włączanie plików domyślnych Technologia Razor Pages Włączanie technologii Razor Pages Definiowanie strony Razor Używanie wspólnego układu w wielu stronach Razor Używanie plików code-behind w stronach Razor Używanie Entity Framework Core z ASP.NET Core Tworzenie modelu encji dla firmy Northwind Tworzenie bazy danych Northwind dla witryny Konfigurowanie Entity Framework Core jako serwisu Manipulowanie danymi Praktyka i ćwiczenia Ćwiczenie 14.1 — tworzenie witryny obsługującej dane Ćwiczenie 14.2 — dalsza lektura Podsumowanie 456 457 459 459 461 462 462 463 464 465 465 465 466 466 466 467 469 473 473 473 477 478 479 480 480 480 483 484 487 487 487 488 489 492 494 494 502 502 504 507 507 507 507 13 Poleć książkęKup książkę Spis treści Rozdział 15. Tworzenie aplikacji WWW przy użyciu ASP.NET Core MVC Konfigurowanie witryny ASP.NET Core MVC Tworzenie witryny ASP.NET Core MVC Przegląd szablonu projektu ASP.NET Core MVC Migrowanie bazy danych Testowanie witryny ASP.NET Core MVC Mechanizm uwierzytelniania systemu ASP.NET Identity Poznawanie mechanizmów ASP.NET Core MVC Rozruch ASP.NET Core Czym jest domyślna ścieżka Kontrolery ASP.NET Core MVC Modele ASP.NET Core MVC Widoki ASP.NET Core MVC Przekazywanie parametrów przy użyciu wartości ścieżki Przekazywanie parametrów za pomocą ciągu znaków zapytania Praktyka i ćwiczenia Ćwiczenie 15.1 — poprawianie skalowalności przez poznawanie i implementowanie asynchronicznych metod akcji Ćwiczenie 15.2 — dalsza lektura Podsumowanie Rozdział 16. Tworzenie usług i aplikacji WWW przy użyciu ASP.NET Core Tworzenie serwisów w technologii ASP.NET Core Web API Kontrolery ASP.NET Core Tworzenie projektu ASP.NET Core Web API Tworzenie serwisu internetowego dla bazy danych Northwind Tworzenie repozytorium danych dla encji Dokumentowanie i testowanie serwisów przy użyciu narzędzia Swagger Testowanie żądań GET za pomocą przeglądarki Testowanie żądań POST, PUT i DELETE w narzędziu Swagger Instalowanie pakietu Swagger Testowanie żądań GET w narzędziu Swagger Testowanie żądań POST za pomocą narzędzia Swagger Tworzenie aplikacji SPA przy użyciu biblioteki Angular Szablon projektu Angular Wywoływanie serwisu Northwind Testowanie wywołań serwisu z komponentu Angular Używanie innych szablonów projektów Instalowanie dodatkowych pakietów z szablonami Praktyka i ćwiczenia Ćwiczenie 16.1 — aplikacje React i Redux Ćwiczenie 16.2 — dalsza lektura Podsumowanie 14 509 509 510 513 515 517 519 520 520 522 522 523 525 532 534 536 536 537 538 539 539 540 540 544 545 551 551 553 553 554 557 561 561 565 568 569 570 570 571 572 573 Poleć książkęKup książkę Spis treści Rozdział 17. Tworzenie aplikacji dla Windowsa przy użyciu XAML i Fluent Design Poznawanie nowoczesnej platformy Windows Universal Windows Platform System Fluent Design XAML Standard 1.0 Tworzenie nowoczesnej aplikacji dla Windowsa Włączanie trybu dewelopera Tworzenie projektu UWP Przeglądanie typowych kontrolek i akrylowych pędzli Oświetlenie ujawniające Instalowanie dodatkowych kontrolek Używanie zasobów i szablonów Współdzielenie zasobów Zmiana szablonu kontrolki Wiązanie danych Wiązanie do elementów Wiązanie do źródła danych Tworzenie aplikacji przy użyciu Windows Template Studio Instalowanie Windows Template Studio Wybieranie typu projektu, frameworka, stron i funkcji Poprawianie ustawień projektu Poprawianie wybranych widoków Testowanie działania aplikacji Praktyka i ćwiczenia Ćwiczenie 17.1 — dalsza lektura Podsumowanie Rozdział 18. Tworzenie aplikacji mobilnych przy użyciu XAML i Xamarin.Forms Xamarin i Xamarin.Forms W jaki sposób Xamarin.Forms rozbudowuje platformę Xamarin Najpierw mobilne, najpierw chmura Tworzenie aplikacji mobilnej za pomocą Xamarin.Forms Dodawanie SDK systemu Android Tworzenie rozwiązania Xamarin.Forms Tworzenie modelu Tworzenie interfejsu do wybierania numerów telefonów Tworzenie widoków listy klientów i szczegółowych danych klienta Testowanie aplikacji mobilnej w systemie iOS Dodawanie pakietów NuGet w celu wywołania serwisu REST Pobieranie listy klientów z serwisu Praktyka i ćwiczenia Ćwiczenie 18.1 — dalsza lektura Podsumowanie Podsumowanie Powodzenia! 575 576 576 577 578 579 580 580 584 586 589 590 591 592 594 594 595 606 606 607 610 610 612 613 613 614 615 615 616 616 617 617 618 620 624 627 632 637 638 640 640 640 641 641 15 Poleć książkęKup książkę Spis treści Dodatek A. Odpowiedzi na pytania z testów Rozdział 1. Cześć, C#! Witaj, .NET Core! Rozdział 2. Mówimy w C# Rozdział 3. Sterowanie przepływem i konwertowanie typów Rozdział 4. Pisanie, debugowanie i testowanie funkcji Rozdział 5. Tworzenie własnych typów w programowaniu obiektowym Rozdział 6. Implementowanie interfejsów i dziedziczenie klas Rozdział 7. Poznawanie typów .NET Standard Rozdział 8. Używanie typów biblioteki .NET Standard Rozdział 9. Praca z plikami, strumieniami i serializacją Rozdział 10. Ochrona danych i aplikacji Rozdział 11. Praca z bazami danych przy użyciu Entity Framework Core Rozdział 12. Odczytywanie danych i manipulowanie nimi za pomocą LINQ Rozdział 13. Poprawianie wydajności i skalowalności za pomocą wielozadaniowości Skorowidz 643 643 644 645 647 648 650 651 652 654 655 656 658 659 661 16 Poleć książkęKup książkę 1 Cześć, C#! Witaj, .NET Core W tym rozdziale zajmiemy się przygotowaniem środowiska programistycznego i przedstawimy podobieństwa i różnice pomiędzy .NET Core, .NET Framework, .NET Standard i .NET Native. Spróbujemy też użyć najróżniejszych narzędzi, żeby przygotować bardzo prostą aplikację z wyko- rzystaniem C# i .NET Core. Większość ludzi uczy się złożonych rzeczy przez powtarzanie widzianych już akcji, a nie przez czytanie wyczerpujących opisów teoretycznych. Dlatego nie będę tu objaśniał każdego użytego słowa kluczowego i kroku. Chodzi o to, żeby nauczyć Cię pisania kodu, budowania aplikacji i uruchamiania jej. Na razie nie musisz znać każdego szczegółu ani wiedzieć dokładnie, jak to wszystko działa. Przywołując słowa Samuela Johnsona, autora słownika języka angielskiego z 1755 r., najpewniej popełniłem tu „kilka błędów oraz sporych absurdów, od których nie jest wolna żadna praca tej wielkości”. Biorę na siebie pełną odpowiedzialność za te błędy, mając nadzieję, że docenisz moje starania podczas pisania książki o platformie .NET Core i związanych z nią narzędziach już w czasie jej narodzin w latach 2016 i 2017. W rozdziale zostaną omówione następujące zagadnienia:  konfigurowanie środowiska programistycznego,  poznawanie .NET,  pisanie i kompilowanie kodu za pomocą narzędzi wiersza poleceń z .NET Core,  pisanie i kompilowanie kodu za pomocą Visual Studio 2017,  pisanie i kompilowanie kodu za pomocą Visual Studio Core,  pisanie i kompilowanie kodu za pomocą Visual Studio for Mac,  obsługa kodu źródłowego z wykorzystaniem platformy GitHub. Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Konfigurowanie środowiska programistycznego Zanim zaczniemy programować, trzeba wybrać zintegrowane środowisko programistyczne (ang. Integrated Development Environment — IDE), którego częścią jest edytor kodu dla języka C#. Microsoft udostępnia małą rodzinę takich środowisk:  Visual Studio 2017,  Visual Studio for Mac,  Visual Studio Code. Najbardziej rozbudowanym wariantem, oferującym najwięcej funkcji, jest Microsoft Visual Studio 2017, ale działa on jedynie w systemach operacyjnych Windows. Najnowocześniejsze i najlżejsze IDE, jakie mamy do wyboru, i jedyne, które w rodzinie Micro- softu jest wieloplatformowe, to Microsoft Visual Studio Code. Działa ono w wielu różnych systemach operacyjnych, takich jak Windows, macOS, oraz w wielu wariantach Linuksa, np. Red Hat Enterprise Linux (RHEL) albo Ubuntu. W podjęciu decyzji, czy Visual Studio Code jest dla Ciebie właściwym wyborem, z pewnością pomoże obejrzenie wideo Beginner s Guide to VS Code: Up and Running in Ten Minutes: https://channel9.msdn. com/Blogs/raw-tech/Beginners-Guide-to-VS-Code. IDE najlepiej dostosowane do rozwijania programów dla urządzeń mobilnych to Visual Studio for Mac. Aby tworzyć oprogramowanie dla systemów iOS (dla iPhone’a i iPada), tvOS, macOS i watchOS, trzeba mieć dostępny system macOS i środowisko Xcode. Co prawda można też skorzystać z Visual Studio 2017 z rozszerzeniem Xamarin do napisania wieloplatformowej aplika- cji mobilnej, ale do jej skompilowania niezbędne będą macOS i Xcode. W poniższej tabeli można sprawdzić, które IDE i który system operacyjny będziemy wykorzysty- wali w poszczególnych rozdziałach tej książki. IDE Visual Studio 2017 Visual Studio Code Visual Studio for Mac Visual Studio 2017 Visual Studio for Mac Systemy operacyjne Windows 7 SP1 lub nowszy Windows, macOS, Linux macOS Windows 10 macOS Rozdziały od 1. do 16. od 1. do 16. od 1. do 16. 17. 18. 28 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Dobra praktyka Jeżeli masz taką możliwość, to zachęcam do wykonania wszystkich ćwiczeń w środowiskach Visual Studio 2017 dla Windowsa, Visual Studio Code w systemach macOS, Linux i Windows oraz Visual Studio for Mac. Dzięki temu zyskasz doświadczenie w pracy z językiem C# i platformą .NET Core w różnych systemach operacyjnych i z wykorzystaniem różnych narzędzi. Pisząc trzecie wydanie tej książki, używałem oprogramowania wymienionego poniżej, przedsta- wionego na poniższym rysunku:  Visual Studio 2017 w systemie Windows 10 w maszynie wirtualnej,  Visual Studio for Mac w systemie macOS,  Visual Studio Code w systemie macOS,  Visual Studio Code w systemie RHEL (niewidoczne na rysunku). Używanie innych IDE dla języka C# Istnieją też inne IDE dla języka C#, np. Mono Develop albo JetBrains Rider. Możesz zainstalo- wać dowolne z nich, korzystając z poniższych adresów URL:  Środowisko MonoDevelop znajdziesz pod adresem http://www.monodevelop.com/.  JetBrains Rider dostępne jest pod adresem https://www.jetbrains.com/rider/. 29 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Instalowanie na wielu platformach Wybór IDE i systemu operacyjnego na potrzeby tworzenia oprogramowania nie ogranicza nam możliwości instalowania go na innych platformach. .NET Core 2.0 pozwala zainstalować opro- gramowanie na następujących platformach:  Windows 7 SP1 i nowsze,  Windows Server 2008 R2 SP1 i nowsze,  Windows IoT 10 i nowsze,  macOS Sierra (wersja 10.12) i nowsze,  RHEL 7.3 i nowsze,  Ubuntu 14.04 i nowsze,  Fedora 25 i nowsze,  Debian 8.7 i nowsze,  openSUSE 42.2 i nowsze,  Tizen 4 i nowsze. Systemy linuksowe są bardzo popularne na platformach hostujących usługi serwerowe ze względu na ich lekkość i możliwość tańszego skalowania w porównaniu do takich platform jak Windows lub macOS. W następnym podrozdziale zainstalujemy Visual Studio 2017 w systemie Windows. Jeżeli wolisz używać Visual Studio Code, to możesz od razu przejść do podrozdziału „Instalowanie Microsoft Visual Studio Code” dla systemu Windows, macOS lub Linux. Jeżeli chcesz korzystać z Microsoft Visual Studio for Mac, to przejdź do podrozdziału „Instalowanie Visual Studio for Mac”. Instalowanie Microsoft Visual Studio 2017 Do wykonania zadań z większości rozdziałów tej książki wystarczy system Windows 7 SP1, ale znacznie lepszym rozwiązaniem jest zastosowanie systemu Windows 10 Fall Creators Update. W październiku 2014 r. Microsoft udostępnił za darmo doskonale wyposażoną wersję Visual Studio, która otrzymała nazwę Community Edition. Korzystając z poniższego adresu, możesz pobrać i zainstalować Microsoft Visual Studio 2017 w wersji 15.4 lub nowszej: https://www.visualstudio.com/downloads/. Żeby móc skorzystać z platformy .NET Core dla UWP, musisz zainstalować Visual Studio 2017 w wersji 15.4 albo nowszej. Wersja 15.3 lub nowsza wymagana jest do pracy z platformą .NET Core 2.0. Starsze wersje Visual Studio 2017 pozwalają jedynie na obsługę .NET Core 1.0 i 1.1. 30 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Wybieranie pakietów Na karcie Pakiety robocze zaznacz poniższe elementy, które są też częściowo widoczne na po- niższym rysunku:  Opracowanie zawartości dla platformy uniwersalnej systemu Windows,  Programowanie aplikacji klasycznych dla platformy .NET,  Opracowywanie zawartości dla platformy ASP.NET i sieci Web,  Programowanie na platformie Azure,  Programowanie za pomocą oprogramowania Node.js,  Programowanie dla wielu platform w środowisku .NET Core. Wybieranie dodatkowych komponentów Na karcie Individual components zaznacz jeszcze poniższe komponenty:  Class Designer,  GitHub extension for Visual Studio,  PowerShell tools. Kliknij przycisk Install i czekaj, aż instalator pobierze wybrane pakiety i je zainstaluje. Po zakoń- czeniu instalacji kliknij przycisk Launch. Czekając na zainstalowanie Visual Studio 2017, możesz zajrzeć do podrozdziału „Poznawanie .NET” w dalszej części tego rozdziału. 31 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Przy pierwszym uruchomieniu Visual Studio 2017 pojawi się prośba o zalogowanie. Jeżeli masz konto Microsoftu, to użyj go do zalogowania się. Jeżeli nie masz jeszcze konta, to możesz utworzyć nowe, korzystając z poniższego adresu: http://signup.live.com/. Uruchamiając pierwszy raz Visual Studio 2017, zobaczysz ekran zachęcający do skonfigurowania środowiska. W sekcji Ustawienia zaznacz opcję Visual C#. Jeżeli chodzi o motyw kolorów, to sam wybieram niebieski, ale tutaj każdy może zdecydować według własnego uznania. Później zobaczysz interfejs użytkownika Microsoft Visual Studio ze Stroną początkową otwartą w środkowej części. Podobnie jak w większości aplikacji dla systemu Windows, Visual Studio ma własny pasek menu, pasek narzędzi z najważniejszymi poleceniami oraz pasek stanu na dole. Po prawej znajduje się Eksplorator rozwiązań, który zawiera listę otwartych projektów: Jeśli chcesz mieć w przyszłości szybki dostęp do Visual Studio, możesz kliknąć prawym przyciskiem myszy jego ikonę na pasku zadań systemu Windows i wybrać opcję Przypnij do paska zadań. Do prac z rozdziałów 14., 15. i 16. konieczne będzie zainstalowanie pakietów Node.js oraz NPM. Instalator pakietu Node.js dla systemu Windows możesz pobrać z poniższego adresu: https://nodejs.org/en/download/. 32 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Po uruchomieniu instalatora zastosuj ustawienia jak na poniższym rysunku: Instalowanie Microsoft Visual Studio Code Pomiędzy czerwcem 2015 r. a wrześniem 2017 r. Microsoft niemal co miesiąc wydawał nową wersję Visual Studio Code. Pakiet ten rozwija się bardzo szybko i jego popularność chyba trochę zaskoczyła Microsoft. Nawet jeżeli planujesz korzystać z Visual Studio 2017 lub Visual Studio for Mac jako głównego narzędzia do pracy, to i tak zalecam zapoznanie się również z Visual Studio Code i narzędziami wiersza poleceń .NET Core. Visual Studio Code możesz pobrać z poniższego adresu: https://code.visualstudio.com/. O planach rozwoju Visual Studio Code w 2018 r. możesz poczytać pod tym adresem: https://github.com/ Microsoft/vscode/wiki/Roadmap. Instalowanie Microsoft Visual Studio Code for macOS W książce przedstawię przykłady i zrzuty ekranów pochodzących z Visual Studio Code w wersji dla macOS. Kroki niezbędne do wykonania tych samych operacji w systemach Windows i Linux są bardzo podobne, dlatego nie będę powtarzał tu instrukcji dla każdego z tych systemów z osobna. 33 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Po pobraniu pakietu Visual Studio for macOS musisz przeciągnąć go i upuścić na folder Programy, tak jak pokazano na poniższym rysunku: Teraz musisz jeszcze zainstalować .NET Code SDK for macOS. Dokładne instrukcje instalacji, wraz z filmem instruktażowym, są dostępne pod poniższym adresem, a w tej książce zawarłem jeszcze proste kroki wykonania tej instalacji: https://www.microsoft.com/net/core#macos. W pierwszym kroku należy zainstalować Homebrew (o ile nie jest już zainstalowane). Następnie musisz uruchomić aplikację Terminal, a po pojawieniu się wiersza poleceń wpisać w nim: /usr/bin/ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) Aplikacja Terminala poprosi o wciśnięcie klawisza Enter, a następnie zapyta o hasło użytkownika. Jeżeli używasz .NET Core w wersji 1.0 lub 1.1, to na tym etapie skorzystaj z Homebrew do zainstalowania pakietu OpenSSL, który jest wymagany przez wcześniejsze wersje .NET Core for macOS. Instalowanie .NET Core SDK for macOS W kolejnym kroku musisz pobrać instalator pakietu .NET Core SDK w wersji dla macOS (x64). Skorzystaj z poniższego adresu: https://www.microsoft.com/net/download/core. Uruchom instalator pakietu dotnet-sdk-2.0.0-sdk-osx-x64.pkg, tak jak pokazałem na rysunku na następnej stronie. Kliknij przycisk Dalej, zaakceptuj umowę licencyjną, a potem kliknij przycisk Install. Po zakoń- czeniu instalacji pozostaje już tylko kliknąć przycisk Close. 34 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Instalowanie menedżera pakietów Node dla macOS Do prac prowadzonych w rozdziałach 14., 15. i 16. konieczne będzie zainstalowanie pakietów Node.js oraz NPM. W Terminalu wprowadź polecenia instalujące pakiety Node.js i NPM, a następnie skontroluj ich wersje. W czasie gdy pisałem tę książkę, Node.js był dostępny w wersji 8.4, a NPM w wersji 5.3, co potwierdza pierwszy rysunek na następnej stronie. brew install node node -v npm -v Instalowanie rozszerzenia C# for Visual Studio Code Rozszerzenie C# for Visual Studio Code nie jest elementem wymaganym, ale umożliwia skorzy- stanie z funkcji IntelliSense w czasie pisania kodu, co jest wyjątkowo użyteczne. Uruchom Visual Studio Code, a następnie kliknij ikonę Extensions albo wybierz z menu pozycję View/Extensions, albo naciśnij klawisze Cmd+Shift+X. C# jest bardzo popularnym rozszerzeniem, dlatego powinno znaleźć się na samym szczycie listy, tak jak na drugim rysunku na następnej stronie. 35 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Kliknij tu przycisk Install, a następnie przycisk Reload, żeby ponownie załadować zawartość okna i aktywować rozszerzenie. 36 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Instalowanie Visual Studio for Mac W listopadzie 2016 r. Microsoft udostępnił wstępną wersję środowiska Visual Studio for Mac. Początkowo pozwalało ono na tworzenie wyłącznie aplikacji mobilnych Xamarin, ponieważ była to specjalna wersja produktu Xamarin Studio. W ostatecznym wydaniu, które pojawiło się w maju 2017 r., dodana została możliwość tworzenia bibliotek klas .NET Standard 2.0, aplikacji ASP.NET Core oraz serwisów i aplikacji konsolowych. Oznacza to, że można go użyć do wyko- nania (prawie) wszystkich ćwiczeń z tej książki. Co prawda Visual Studio 2017 dla Windowsa można wykorzystać do tworzenia aplikacji mobil- nych dla systemów iOS i Android, ale do skompilowania wersji dla iOS potrzeba narzędzi Xcode działających w systemie macOS. Moim zdaniem można swobodnie skorzystać ze środowiska Visual Studio for Mac do tworzenia aplikacji mobilnych. Instalowanie Xcode Jeżeli jeszcze nie masz zainstalowanego Xcode na swoim komputerze mac, to skorzystaj z App Store, żeby je zainstalować. Z menu Apple wybierz pozycję App Store… W oknie App Store wpisz w polu wyszukiwania xcode, a jednym z pierwszych wyników będzie aplikacja Xcode, tak jak pokazano na poniższym rysunku: Kliknij przycisk Get i poczekaj na zakończenie instalacji. Pobieranie i instalowanie Visual Studio for Mac Visual Studio for Mac możesz pobrać z poniższego adresu URL: https://www.visualstudio.com/vs/visual-studio-mac/. 37 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Po uruchomieniu instalatora Visual Studio for Mac trzeba zaakceptować warunki licencji i infor- macje o zachowaniu prywatności, a następnie wybrać komponenty do zainstalowania, tak jak pokazano na poniższym rysunku. Na zakończenie kliknij jeszcze przycisk Kontynuuj. W kolejnym oknie kliknij przycisk Kontynuuj, a w następnym — Zainstaluj. Pozostaje jeszcze zaakceptować warunki licencji poszczególnych instalowanych komponentów, np. SDK systemu Android, kliknąć przycisk Kontynuuj i poczekać na zakończenie instalacji Visual Studio for Mac. Po uruchomieniu Visual Studio for Mac zobaczysz stronę Strona powitalna, taką jak na rysunku na następnej stronie. Jeżeli pojawi się prośba o aktualizację, zaakceptuj ją. Skoro masz już zainstalowane i skonfigurowane środowisko programistyczne, możemy przystąpić do poznawania środowiska .NET i rozpocząć pisanie kodu. Poznawanie .NET .NET Framework, .NET Core, .NET Standard i .NET Native są powiązanymi ze sobą platfor- mami programistycznymi, których programiści mogą używać do tworzenia aplikacji i usług. 38 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Poznawanie .NET Framework .NET Framework jest platformą programistyczną, w skład której wchodzi środowisko wyko- nawcze CLR (ang. Common Language Runtime) zajmujące się wykonywaniem kodu programów i udostępniające im bogatą bibliotekę klas. Microsoft zaprojektował .NET Framework w taki sposób, żeby zachować możliwość pracy wielo- platformowej, ale jednocześnie całość swoich prac prowadził tak, żeby ta platforma najlepiej dzia- łała w systemie Windows. To oznacza, że .NET Framework jest platformą wyłącznie dla Windowsa i jako taka jest powoli porzucana. Poznawanie projektów Mono i Xamarin Powstała też niezależna implementacja platformy .NET, o której możesz przeczytać pod poniż- szym adresem: http://www.mono-project.com/. 39 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Mono jest implementacją wieloplatformową, ale pozostaje daleko w tyle za oficjalną implementa- cją platformy .NET Framework. Znalazła swoją niszę, stając się bazą dla platformy mobilnej Xamarin. Microsoft wykupił platformę Xamarin w 2016 r. i teraz rozpowszechnia to, co było bardzo drogim pakietem, jako bezpłatny dodatek do Visual Studio 2017. Istniejące wcześniej Xamarin Studio Microsoft przemianował na Visual Studio for Mac i dodał do niego możliwość tworzenia serwisów ASP.NET Core dla sieci WWW. Pierwotnie platforma Xamarin specjalizowała się w tworzeniu aplikacji dla urządzeń mobilnych oraz budowaniu usług współdziałających z tymi aplikacjami. Poznawanie .NET Core Żyjemy w świecie realizującym ideę wieloplatformowości. Nowoczesne metody tworzenia oprogramowania dla urządzeń mobilnych i dla chmury sprawiły, że Windows stracił na znaczeniu jako system operacyjny. W związku z tym Microsoft intensywnie pracuje nad tym, żeby polu- zować związki łączące platformę .NET z systemami Windows. Podczas ponownego projektowania środowiska .NET w sposób rzeczywiście wieloplatformowy Microsoft skorzystał z tej okazji, żeby przebudować platformę, usuwając z niej te ważne elementy, które dzisiaj nie są już uznawane za podstawowe (ang. core). Nowy produkt otrzymał nazwę .NET Core, a jego podstawami stały się wieloplatformowa imple- mentacja środowiska CLR o nazwie CoreCLR oraz odchudzona biblioteka klas, która otrzymała nazwę CoreFX. Scott Hunter — odpowiedzialny za platformę .NET menedżer programu Microsoft Partner Director — powiedział: „Czterdzieści procent naszych klientów .NET Core to programiści wdra- żający się dopiero w platformę. Tego właśnie tutaj chcemy. Chcemy pozyskać nowych ludzi”. W poniższej tabeli podaję, kiedy zostały udostępnione poszczególne wersje .NET Core oraz plan Microsoftu opisujący przyszłe wydania platformy: Wersja .NET Core RC1 .NET Core 1.0 .NET Core 1.1 .NET Core 1.0.4 i .NET Core 1.1.1 .NET Core 2.0 .NET Core for UWP jako część aktualizacji Windows 10 Fall Creators Update .NET Core 2.1 Data wydania listopad 2015 czerwiec 2016 listopad 2016 marzec 2017 sierpień 2017 październik 2017 pierwszy kwartał 2018 40 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Jeżeli musisz pracować z .NET Core 1.0 i .NET Core 1.1, to proponuję przeczytać ogłoszenie związane z .NET Core 1.1, ponieważ informacje zawarte pod poniższym adresem URL są przydatne dla każdego programisty używającego .NET Core: https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-net-core-1-1/. .NET Core jest znacznie mniejsza od aktualnej wersji .NET Framework, ponieważ zostało z niej usuniętych wiele różnych elementów. Na przykład biblioteki Windows Forms oraz Windows Presentation Foundation (WPF) można wykorzystać do tworzenia aplikacji z graficznym interfejsem użytkownika (GUI), ale obie są ściśle związane z systemem Windows i dlatego nie znalazły miejsca w .NET Core. Najnowsza tech- nologia do tworzenia aplikacji dla systemu Windows to Universal Windows Platform (UWP), zbudowana na specjalnej wersji .NET Core. Więcej informacji na jej temat znajdziesz w roz- dziale 17. „Tworzenie aplikacji dla Windowsa przy użyciu XAML i Fluent Design”. Biblioteki ASP.NET Web Forms i Windows Communication Foundation (WCF) to stare tech- nologie tworzenia aplikacji WWW i serwisów, których dzisiaj używa już coraz mniej programi- stów, dlatego obie zostały usunięte z .NET Core. Programiści znacznie chętniej używają bibliotek ASP.NET MVC i ASP.NET Web API, dlatego obie zostały przebudowane i połączone w jeden produkt działający w ramach .NET Core pod nazwą ASP.NET Core. Więcej informacji na temat biblioteki ASP.NET Core MVC znajdziesz w rozdziale 15., „Tworzenie aplikacji WWW przy użyciu ASP.NET Core MVC”. Rozdział 14., „Tworzenie witryn WWW przy użyciu ASP.NET Core Razor Pages”, został poświęcony technologii ASP.NET Core Razor Pages. Z kolei technologie ASP.NET Core Web API i Single Page Applications (SPAs) będę opisywać w rozdziale 16., „Tworzenie usług i aplikacji WWW przy użyciu ASP.NET Core”. Entity Framework 6 (EF) to technologia mapowania relacji obiektów, współpracująca z relacyj- nymi bazami danych, takimi jak Oracle albo Microsoft SQL Server. Przez lata nazbierała wiele obciążeń, dlatego jej nowa, wieloplatformowa wersja została odchudzona i otrzymała nazwę Entity Framework Core. Więcej informacji na ten temat znajdziesz w rozdziale 11., „Praca z bazami danych przy użyciu Entity Framework Core”. Po usunięciu sporych elementów .NET Framework w celu utworzenia .NET Core Microsoft po- dzielił całość na komponenty i stworzył z nich pakiety NuGet. Powstały zatem małe wycinki z funkcjami, które można wykorzystywać niezależnie od siebie. Ostatecznym celem Microsoftu nie jest zmniejszenie .NET Core względem .NET Framework. Jego celem jest podzielenie .NET Core na komponenty, które pozwalałyby na obsługę nowoczesnych technologii i tworze- nie mniejszej liczby zależności. Dzięki temu instalowanie aplikacji wymagać będzie skopiowania tylko tych pakietów, z których faktycznie korzystają programiści. 41 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Poznawanie .NET Standard Obecnie platforma .NET została podzielona na trzy osobne platformy, a każda z nich jest kontro- lowana przez Microsoft:  .NET Framework,  .NET Core,  Xamarin. Każdy z tych wariantów ma swoje mocne i słabe strony, ponieważ były one projektowane dla róż- nych zastosowań. W związku z tym każdy programista ma problem, ponieważ musi się uczyć zasad działania trzech platform i poznawać związane z każdą z nich ograniczenia. W związku z tym Microsoft zdefiniował specyfikację .NET Standard 2.0, która jest zbiorem różnych API, jakie musi implementować każda platforma .NET. Nie da się nigdzie zainstalo- wać.NET Standard 2.0, podobnie jak nie da się zainstalować HTML5. Aby skorzystać z HTML5, musisz zainstalować przeglądarkę, która będzie implementowała specyfikację HTML5. Podobnie aby użyć .NET Standard 2.0, musisz zainstalować platformę .NET, która będzie implementowała specyfikację .NET Standard 2.0. Specyfikacja .NET Standard 2.0 implementowana jest przez najnowsze wersje .NET Frame- work, .NET Core i Xamarin. Dzięki tej specyfikacji programiści znacznie łatwiej mogą przenosić kod pomiędzy poszczególnymi wariantami platformy .NET. W przypadku .NET Core 2.0 spowodowało to dodanie wielu brakujących API, które programiści mogą wykorzystać do przenoszenia kodu przygotowanego dla .NET Framework na wieloplatfor- mowy wariant .NET Core. Niestety, część z tych API została co prawda zaimplementowana, ale i tak rzuca wyjątki informujące programistę, że nie powinien z nich korzystać! Zazwyczaj wynika to z różnic w systemie operacyjnym, na którym uruchamiana jest .NET Core. W roz- dziale 2., „Mówimy w C#”, dowiesz się, jak obsługiwać takie wyjątki. Na poniższym rysunku widać, w jaki sposób wszystkie trzy warianty platformy .NET (cza- sami nazywane też modelami aplikacji) współdzielą ze sobą specyfikację .NET Standard 2.0 oraz całą infrastrukturę — zobacz rysunek na następnej stronie. W pierwszym wydaniu tej książki koncentrowałem się na .NET Core, ale używałem też .NET Framework w przypadku, gdy ważne lub przydatne funkcje nie zostały jeszcze zaimplementowane w .NET Core. W większości przypadków używałem Visual Studio 2015, a Visual Studio Code prezentowałem jedynie pobieżnie. W drugim wydaniu niemal całkowicie usunąłem wszystkie przykłady kodu dla .NET Framework. 42 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Trzecie wydanie jest dopełnieniem całości. Większość książki została napisana od nowa, dzięki czemu całość kodu jest przystosowana do .NET Core i może być pisana w Visual Studio 2017, Visual Studio for Mac albo Visual Studio Code, i to niezależnie od systemu operacyjnego. Jedy- nymi wyjątkami są dwa ostatnie rozdziały. W rozdziale 17., „Tworzenie aplikacji dla Windowsa przy użyciu XAML i Fluent Design”, skorzystamy z .NET Core for UWP, co wymusi zastosowanie Visual Studio 2017 działającego w systemie Windows 10. Z kolei w rozdziale 18., „Tworzenie aplikacji mobilnych przy użyciu XAML i Xamarin.Forms”, zamiast .NET Core użyjemy wa- riantu Xamarin. Poznawanie .NET Native Inną inicjatywą rozwijania platformy .NET jest .NET Native. Pozwala ona na skompilowanie kodu języka C# bezpośrednio do postaci instrukcji procesora, a nie do instrukcji języka pośred- niego (ang. Intermediate Language — IL), które dopiero w czasie wykonywania przekładane są przez środowisko wykonawcze CLR na kod procesora. .NET Native poprawia czasy wykonania kodu i zmniejsza zapotrzebowanie na pamięć aplikacji. Pozwala obsłużyć następujące technologie:  aplikacje UWP dla Windows 10, Windows 10 Mobile, Xbox One, HoloLens oraz urządzeń internetu rzeczy, takich jak Raspberry Pi;  aplikacje WWW po stronie serwera przy użyciu ASP.NET Core;  aplikacje konsolowe używane w wierszu poleceń. Porównanie technologii .NET Poniższa tabela podsumowuje informacje o poszczególnych technologiach .NET: 43 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Technologia Zbiór funkcji Kompilowane do Systemy operacyjne .NET Framework Xamarin .NET Core .NET Native nowoczesne i tradycyjne wyłącznie mobilne wyłącznie nowoczesne wyłącznie nowoczesne kod IL kod IL kod IL kod procesora tylko Windows iOS, Android, Windows Mobile Windows, macOS, Linux Windows, macOS, Linux Pisanie i kompilowanie kodu przy użyciu narzędzi wiersza poleceń z .NET Core Po zainstalowaniu Visual Studio 2017, Visual Studio for Mac albo .NET Core SDK dostępne jest narzędzie wiersza poleceń o nazwie dotnet oraz środowisko wykonawcze .NET Core. Zanim jednak skorzystamy z takich narzędzi jak dotnet, musimy napisać choć trochę kodu! Pisanie kodu za pomocą prostego edytora tekstu Jeżeli używasz systemu Windows, uruchom Notatnik. Jeżeli używasz systemu macOS, uruchom TextEdit. W menu wybierz pozycję TextEdit/Preferencje, usuń zaznaczenie opcji Cudzysłowy inteligentne, a następnie zamknij okno dialogowe. W menu wybierz pozycję Format/Zamień na tekst zwykły. Oczywiście zawsze możesz skorzystać ze swojego ulubionego edytora tekstu. Wpisz poniższy kod: class MyApp { static void Main() { System.Console.WriteLine( Witaj, C#! ); } } Język C# rozróżnia wielkości liter, a to oznacza, że wielkie i małe litery musisz wpisać dokładnie tak, jak podałem w poprzednim przykładowym kodzie. Z drugiej strony, języka C# nie interesują znaki białe, a to oznacza, że nie ma znaczenia, czy użyjesz spacji, tabulacji czy znaków końca wiersza, żeby wprowadzić do kodu strukturę. Całość kodu możesz wpisać do jednego wiersza albo rozdzielić go na kilka wierszy, każdemu z nich nadając odpowiednie wcięcie. Na przykład poniższy kod tak samo będzie można skompilo- wać i da te same wyniki co poprzedni: class MojaAplikacja { 44 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core static void Main (){System. Console. WriteLine( Witaj, C#! ); } } Oczywiście najlepiej jest tak pisać kod, żeby każdy inny programista (również Ty) mógł nawet po miesiącach lub latach bez problemu go odczytać! Notatnik Windows W Notatniku wybierz z menu pozycję Plik/Zapisz jako… W oknie dialogowym Zapisz jako przejdź na dysk C: (albo dowolny inny, na którym chcesz zapi- sywać swoje projekty), kliknij przycisk Nowy folder i nadaj utworzonemu folderowi nazwę Kod. Otwórz utworzony właśnie folder i ponownie kliknij przycisk Nowy folder, a utworzonemu folderowi nadaj nazwę Rozdzial01. Otwórz ten folder, jeszcze raz kliknij przycisk Nowy folder i nazwij utworzony folder WitajCS. Na zakończenie otwórz folder WitajCS. Z listy rozwijanej Zapisz jako typ wybierz opcję Wszystkie pliki, aby uniknąć dodania rozszerze- nia .txt do tworzonego pliku. Wprowadź nazwę pliku MojaAplikacja.cs, tak jak pokazałem na po- niższym rysunku: Kod zapisany w Notatniku powinien wyglądać tak jak na poniższym rysunku: 45 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Edytor TextEdit w systemie macOS W edytorze TextEdit wybierz z menu Plik/Zachowaj albo naciśnij klawisze Cmd+S. W oknie dialogowym Zachowaj przejdź do folderu użytkownika (mój nazywa się markprice) albo dowolnego innego, w którym chcesz zapisywać swoje projekty. Kliknij przycisk Nowy katalog i nadaj utworzonemu folderowi nazwę Kod. Otwórz utworzony właśnie folder i ponownie kliknij przycisk Nowy katalog, a utworzonemu folderowi nadaj nazwę Rozdzial01. Otwórz ten folder, jeszcze raz kliknij przycisk Nowy katalog i nazwij utworzony folder WitajCS. Na zakończenie otwórz folder WitajCS. W polu Kodowanie tekstu zwykłego wybierz z listy rozwijanej pozycję Unicode (UTF-8) i usuń za- znaczenie z opcji W przypadku braku rozszerzenia, użyj .txt , aby uniknąć dodania rozszerzenia .txt do tworzonego pliku. Wpisz nazwę pliku MyApp.cs i kliknij przycisk Zachowaj. Tworzenie i kompilowanie aplikacji za pomocą narzędzi wiersza poleceń .NET Core Jeżeli używasz systemu Windows, uruchom Wiersz poleceń. Jeżeli używasz systemu macOS, uruchom Terminal. W otwartym oknie wpisz polecenie dotnet i przyjrzyj się tekstom wypisanym na ekranie, pokaza- nym na poniższym rysunku: Tekst wyświetlany przez polecenie dotnet będzie taki sam w systemach Windows, macOS i Linux. Tworzenie aplikacji konsolowej z wiersza poleceń W wierszu poleceń wpisz poniższe polecenia, aby wykonać następujące operacje:  Przejść do folderu z projektem.  Utworzyć w tym folderze nową aplikację konsolową. 46 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core  Wypisać pliki, jakie utworzyło polecenie dotnet. Jeżeli używasz systemu Windows, to w Wierszu poleceń wpisz następujące polecenia: cd C:\Kod\Rozdzial01\WitajCS dotnet new console dir Jeżeli używasz systemu macOS, to w Terminalu wprowadź następujące polecenia: cd Kod/Rozdzial01/WitajCS dotnet new console ls Polecenie dotnet powinno utworzyć dwa nowe pliki, takie jak widoczne na rysunku ze zrzutem ekranu z systemu Windows:  Program.cs — kod źródłowy prostej aplikacji konsolowej.  WitajCS.csproj — plik projektu zawierający listę zależności różnych ustawień samego projektu. W tym przykładzie musimy usunąć plik o nazwie Program.cs, ponieważ już wcześniej utworzyli- śmy własny plik o nazwie MojaAplikacja.cs. Jeżeli używasz systemu Windows, to w Wierszu poleceń wpisz następujące polecenie: del Program.cs Jeżeli używasz systemu macOS, to w Terminalu wpisz następujące polecenie: rm Program.cs 47 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych We wszystkich kolejnych przykładach zamiast tworzyć własne pliki z kodem, będziemy korzystać z pliku Program.cs tworzonego przez polecenie dotnet. Odtwarzanie pakietów, kompilowanie kodu i uruchamianie aplikacji W wierszu poleceń wpisz polecenie dotnet run. Po kilku sekundach wszystkie pakiety wymagane przez nasz kod zostaną pobrane, kod źródłowy zostanie skompilowany, a sama aplikacja zostanie uruchomiona. Wszystko to można zobaczyć na poniższym rysunku: Nasz kod źródłowy, czyli plik MojaAplikacja.cs, został skompilowany do pliku o nazwie WitajCS.dll, który umieszczany jest w podkatalogu bin/Debug/netcoreapp2.0. (Jeżeli masz ochotę, możesz przejrzeć zawartość struktury katalogów. Ja tutaj poczekam, aż skończysz). Na razie taki plik może zostać uruchomiony wyłącznie przez polecenie dotnet run. W rozdziale 7., „Poznawanie typów .NET Standard”, dowiesz się więcej na temat przygotowywania skompilowa- nego kodu do wykonania w dowolnym systemie operacyjnym współpracującym z .NET Core. Naprawianie błędów kompilacji Jeżeli kompilator wyświetli jakiekolwiek błędy, to dokładnie przeczytaj ich treść, a następnie popraw je w edytorze tekstu. Zapisz wprowadzone zmiany i spróbuj ponownie. W wierszu poleceń możesz skorzystać ze strzałek w górę i w dół, żeby przywoływać poprzednio wprowadzone polecenia. Często występującymi błędami jest wpisanie litery o niewłaściwej wielkości, pominięcie średnika na końcu instrukcji albo niedopasowanie do siebie nawiasów klamrowych. Na przykład jeżeli zdarzy Ci się wpisać małą literę m w nazwie metody Main(), to zobaczysz poniższy komuni- kat o błędzie: error CS5001: Program nie zawiera statycznej metody Main odpowiedniej jako punkt wejścia 48 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Poznawanie języka pośredniego Kompilator języka C# (nazywany Roslyn) używany przez polecenie dotnet zajmuje się prze- kształcaniem kodu źródłowego C# na kod języka pośredniego (IL), który jest zapisywany w pliku o rozszerzeniu .dll lub .exe. Polecenia języka IL przypominają instrukcje języka asemblera, ale są wykonywane przez maszynę wirtualną .NET Core, nazywaną CoreCLR. W czasie pracy CoreCLR ładuje kod IL z pliku wykonywalnego, a następnie kompiluje go do po- staci instrukcji procesora, na którym działa. Dopiero te instrukcje przekazywane są procesorowi do wykonania. Zaletą takiej dwuetapowej kompilacji jest to, że Microsoft może przygotować maszyny wirtualne CLR nie tylko dla systemów Windows, ale i dla Linuksa oraz systemu macOS. Ten sam kod IL może działać wszędzie, ponieważ dopiero drugi etap kompilacji generuje kod właściwy dla danego systemu operacyjnego i procesora. Niezależnie od tego, w jakim języku napisany jest kod źródłowy (czy będzie to C#, czy też F#), wszystkie aplikacje działające w środowisku .NET mają zapisane w plikach wykonywalnych instrukcje języka IL. Microsoft i inni producenci udostępniają deasemblery, które odczytują pliki wykonywalne i podają zawarty w nich kod IL. Tak naprawdę nie wszystkie aplikacje .NET używają kodu IL! Niektóre z nich używają kompilatora .NET Native, który generuje bezpośrednio kod procesora, a nie kod IL. Poprawia to wydajność aplikacji i zmniejsza zapotrzebowanie na pamięć, ale za cenę przenośności kodu. Pisanie i kompilowanie kodu za pomocą Visual Studio 2017 Przygotujemy teraz podobną aplikację, wykorzystując Visual Studio 2017. Nawet jeżeli wolisz używać Visual Studio for Mac albo Visual Studio Code, to i tak zachęcam do przejrzenia tego pod- rozdziału i zapoznania się z rysunkami, ponieważ oba warianty środowiska programistycznego mają bardzo podobne, choć nie aż tak rozbudowane funkcje. Od ponad dekady nauczam ludzi stosowania Visual Studio przy pracy i nadal zaskakuje mnie, że programiści nie umieją wykorzystać potencjału tego narzędzia. Na kolejnych stronach nauczę Cię wprowadzania kodu wiersz po wierszu. Może się to wydawać niepotrzebne, ale z pewnością warto się dowiedzieć, jaką pomoc i jakie informacje udostępnia 49 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych nam Visual Studio w czasie, gdy wprowadzamy kod. Jeżeli chcesz się nauczyć szybko i bezbłędnie wprowadzać swój kod, to bardzo wiele zyskasz, pozwalając Visual Studio na samodzielne napisanie większości kodu. Pisanie kodu w Visual Studio 2017 Uruchom Visual Studio 2017. Wybierz z menu pozycję Plik/Nowy/Projekt… albo naciśnij klawisze Ctrl+Shift+N. Ze znajdującej się po lewej stronie listy Zainstalowane rozwiń pozycję Visual C# i wybierz opcję .NET Core. Z listy na środku wybierz opcję Aplikacja konsoli (.NET Core). Wprowadź nazwę projektu — WitajDotNetCore, jako lokalizację wybierz folder C:\Kod, a jako nazwę rozwią- zania wpisz Rozdzial01. Na zakończenie kliknij przycisk OK albo naciśnij klawisz Enter, tak jak na poniższym rysunku: W edytorze kodu usuń znajdującą się w wierszu 9. instrukcję o treści: Console.WriteLine( Witaj, świecie! );. W metodzie Main wpisz litery sy, tak jak na rysunku na następnej stronie i zwróć uwagę na to, że pojawi się okienko usługi IntelliSense: Usługa IntelliSense wyświetla filtrowaną listę słów kluczowych, przestrzeni nazw oraz typów, które zawierają litery sy, i wyróżnia na niej pozycję zaczynającą się od tych liter. W tym przypadku jest to przestrzeń nazw, której poszukujemy — System. 50 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Wpisz kropkę. IntelliSense automatycznie uzupełni w kodzie słowo System, wprowadzi kropkę i wyświetli listę typów, takich jak AggregateException lub Action, które są dostępne w przestrzeni nazw System, tak jak na poniższym rysunku: Wpisz litery con, a IntelliSense wyświetli listę pasujących typów i przestrzeni nazw, tak jak na pierwszym rysunku na następnej stronie. Poszukujemy tu słowa Console. Wciśnij na klawiaturze strzałkę w dół, żeby je wybrać. Po zazna- czeniu na liście słowa Console wpisz kropkę. IntelliSense wyświetli teraz listę elementów klasy Console, taką jak na drugim rysunku na na- stępnej stronie. 51 Poleć książkęKup książkę C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych Elementami klasy są właściwości (atrybuty obiektu, takie jak BackgroundColor), metody (akcje, jakie może wykonać obiekt, takie jak Beep), zdarzenia i inne. Wpisz litery wl. IntelliSense wyświetli teraz pasujące elementy klasy, czyli takie, w których nazwie słowa zaczynają się od podanych liter. W tym przypadku będą to WindowsLeft i WriteLine, co można zobaczyć na rysunku na następnej stronie. 52 Poleć książkęKup książkę Rozdział 1. • Cześć, C#! Witaj, .NET Core Użyj strzałki w dół, żeby zaznaczyć na liście pozycję WriteLine, i wprowadź nawias otwierający ((). IntelliSense samodzielnie wpisze nazwę metody WriteLine i doda za nią nawiasy okrągłe. Pojawi się też pole wskazówki informujące, że metoda WriteLine ma 18 różnych wariantów, takie jak na poniższym rysunku: Wprowadź znak cudzysłowu ( ). IntelliSense wpisze do programu dwa takie znaki i umieści kursor pomiędzy nimi. Wpisz tekst Witaj, .NET Core!, tak jak na rysunku na następnej stronie. Czerwone podkreślenie na końcu wiersza oznacza błąd, ponieważ w języku C# każda instrukcja musi zostać zakończona znakiem średnika. Przenieś kursor na koniec wiersza i wpisz znak śred- nika, żeby naprawić ten błąd. Kompilowanie kodu za pomocą Visual Stu
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: