# EssentialCSharp

Projekt zawiera kod do książki **C# 7.0. Kompletny przewodnik dla praktyków**, autor Mark Michaelis (Addison-Wesley/Helion).

## Wskazówki dotyczące przykładowego kodu

Upewnij się, że zainstalowana jest najnowsza wersja jednej z następujących platform.

* [.NET Framework](https://www.microsoft.com/net/targeting) (Windows)
* [.NET Core](https://www.microsoft.com/net/core) (wszystkie systemy)

[Visual Studio 2017](https://www.visualstudio.com) zawiera środowisko uruchomieniowe .NET Framework, a także umożliwia instalację .NET Core. Nie wspominając nawet, że jest to świetne IDE ułatwiające rozpoczęcie pracy.

### Pobieranie kodu

#### Kopia lokalna

Otwórz konsolę i zmień katalog roboczy na docelową lokalizację projektu. 
```
$ git clone --recursive https://github.com/IntelliTect/EssentialCSharp.git
$ cd ./EssentialCSharp/
```

**Uwaga:** opcja `--recursive` pozwala pobrać podmoduły, a przede wszystkim `IntelliTect.TestTools` (obejmujący platformę testową dla aplikacji konsolowych na platformę .NET).

Kod z gałęzi `master` dotyczy najnowszego wydania książki. Jest to gałąź domyślna w instrukcji clone. Możesz jednak wybrać inną gałąź, np. v6.0, używając polecenia:
```
$ git checkout v6.0
```

Spolszczona wersja jest dostępna w witrynie wydawnictwa Helion.

### Kompilacja

**EssentialCSharp.sln** to główne rozwiązanie projektu. Otwórz je w Visual Studio i wybierz opcję Kompiluj rozwiązanie.
 
 Jeśli używasz wiersza poleceń, zbuduj wszystkie projekty z katalogu /EssentialCSharp/ za pomocą poleceń:
```
$ dotnet restore EssentialCSharp.sln
$ dotnet build EssentialCSharp.sln
```
### Uruchamianie

Przejdź do projektu w katalogu /EssentialCSharp/src/(projekt)/ i uruchom kod. 
Ten przykład dotyczy rozdziału 1., a użytkownik wpisuje 1.1, aby uruchomić wybrany listing.

```
$ cd ./src/Chapter01/
$ dotnet run
Podaj numer listingu do wykonania (np. dla listingu 18.1 wpisz "18.1"): 1.1

____________________________

Witaj. Nazywam się Inigo Montoya.

____________________________
Koniec listingu 01_01
Wciśnij dowolny klawisz, aby kontynuować.
$
```

Dokumentację narzędzi z rodziny .NET CLI znajdziesz tu: 

https://docs.microsoft.com/en-us/dotnet/core/tools/


## Testowanie wsadowe

Użyj jednego z poniższych skryptów, aby uruchomić testy wsadowe wszystkich projektów.

* /EssentialCSharp/RunTests.ps1 **(Windows)**
* /EssentialCSharp/RunTests.sh **(Linux/Mac)**

Jeśli używasz Linuksa, możliwe, że musisz nadać skryptom uprawnienia do wykonywania. W katalogu /EssentialCSharp/ wykonaj polecenia:
```
$ chmod +x ./RunTests.sh
$ ./RunTests.sh
```
