C#, .NET i środowisko pracy

Zanim napiszesz pierwszą linijkę kodu, warto wiedzieć, czego właściwie się uczysz i czym. W tej lekcji poznasz język C#, platformę .NET oraz narzędzia, w których będziemy pracować przez cały kurs. Na koniec utworzysz i uruchomisz swój pierwszy projekt.

C# .NET Visual Studio 30 min
CEL LEKCJI

Czego się dziś nauczysz

  • Wyjaśnisz różnicę między językiem C# a platformą .NET
  • Wymienisz co najmniej cztery rodzaje programów pisanych w C#
  • Wskażesz, czym różni się .NET Framework od współczesnego .NET
  • Zainstalujesz środowisko i utworzysz projekt konsolowy
  • Uruchomisz program i znajdziesz plik wynikowy na dysku
TEORIA

Czym jest C#

C# (czytamy „si szarp”) to język programowania stworzony w firmie Microsoft. Język zaprezentowano w 2000 roku, a C# 1.0 wydano w 2002 roku, a jego głównym projektantem jest Anders Hejlsberg — ten sam, który wcześniej zaprojektował Turbo Pascala i Delphi, a później TypeScript.

Nazwa pochodzi od muzycznego krzyżyka ♯, który podwyższa dźwięk o pół tonu. Miała sugerować, że C# to „podwyższone C” — język wywodzący się z rodziny C, ale nowocześniejszy.

Cechy, które będą dla ciebie ważne

CechaCo to dla ciebie oznacza w praktyce
Typowanie statyczne Każda zmienna ma z góry określony typ, a kompilator sprawdza go jeszcze przed uruchomieniem programu. Dzięki temu wiele błędów wychodzi już w edytorze, a nie dopiero u użytkownika.
Obiektowość Program budujesz z klas i obiektów, które odwzorowują rzeczy ze świata rzeczywistego — ucznia, konto bankowe, samochód. To temat bloku 7 tego kursu.
Automatyczne zarządzanie pamięcią Nie musisz ręcznie zwalniać pamięci, jak w C czy C++. Robi to za ciebie garbage collector — mechanizm, który usuwa obiekty, gdy przestają być potrzebne.
Wieloplatformowość Ten sam kod uruchomisz na Windowsie, Linuksie i macOS. Nie było tak zawsze — wróć do tego przy tabeli z historią .NET.
Składnia z rodziny C Klamry { }, średniki, if, for. Jeśli poznasz C#, dużo łatwiej wejdziesz potem w Javę, JavaScript czy Kotlina.

Język żyje i zmienia się co roku

Nowa wersja C# wychodzi mniej więcej co roku w listopadzie, razem z nową wersją .NET. Co druga wersja .NET jest oznaczana jako LTS (ang. long-term support) i jest wspierana trzy lata — wybór wersji zależy od planowanego okresu utrzymania projektu.

Nie ucz się numerów na pamięć. Ważniejsze jest, żebyś umiał sprawdzić, której wersji używasz — pokażemy to w zadaniu 3.

TEORIA

Czym jest .NET i czym różni się od C#

To rozróżnienie myli wiele osób na starcie, więc warto je ustawić od razu.

C# to język

Zbiór reguł: jak zapisać pętlę, jak zadeklarować zmienną, gdzie postawić średnik. Sam w sobie nic nie potrafi — to gramatyka.

.NET to platforma

Gotowe klocki i silnik: biblioteka tysięcy gotowych klas (obsługa plików, tekstu, sieci, dat) plus środowisko, które uruchamia twój program.

Analogia: C# jest jak język polski, a .NET jak biblioteka wraz z całą infrastrukturą wydawniczą. Znajomość gramatyki pozwala budować zdania, ale to biblioteka daje ci gotowe książki, z których korzystasz, żeby nie pisać wszystkiego od zera.

Kiedy piszesz Console.WriteLine("Cześć"), to Console nie jest częścią języka C# — to gotowa klasa z biblioteki .NET. Językiem są tylko nawiasy, kropka i średnik.

Skąd wzięły się różne „.NET-y”

NazwaLataCo warto wiedzieć
.NET Framework2002 → Pierwsza wersja, tylko Windows. Nowsze wydanie tej linii to 4.8.1. Nadal działa w starych firmowych aplikacjach, ale nowych projektów się w niej nie zaczyna.
.NET Core2016–2019 Napisany od nowa, otwartoźródłowy i wieloplatformowy. Wersje 1.0–3.1.
.NET 5 i nowsze2020 → Kontynuacja .NET Core pod krótszą nazwą; .NET Framework pozostaje osobną linią. Z nazwy zniknęło słowo „Core”, a numer 4 pominięto, żeby nie mylił się z Frameworkiem 4.8. Kolejne wersje wychodzą co roku.

Uwaga przy szukaniu w internecie

Wiele poradników i odpowiedzi na forach pochodzi jeszcze z czasów .NET Framework. Kod stamtąd zwykle zadziała, ale bywa niepotrzebnie długi albo zawiera rozwiązania, które dziś robi się prościej. Zapis z using System; i klasą Program jest nadal poprawny. Sam wygląd punktu wejścia nie pozwala ustalić wieku kodu. Sprawdź platformę docelową w pliku projektu i datę dokumentacji.

TEORIA

Gdzie naprawdę używa się C#

Aplikacje okienkowe

Programy z oknami na Windowsa: WPF, WinForms, WinUI. To kierunek, w którym pójdziemy po tym kursie.

Aplikacje internetowe

ASP.NET Core — strony, sklepy i API, czyli usługi, z których korzystają aplikacje mobilne.

Gry

Silnik Unity używa C# jako języka skryptowego. Powstały w nim m.in. Cuphead, Hollow Knight i Among Us.

Aplikacje mobilne

.NET MAUI — jeden kod na Androida i iOS. Następca technologii Xamarin.

Programy narzędziowe

Aplikacje konsolowe: skrypty, konwertery, narzędzia administracyjne. Od nich zaczniemy.

Chmura i usługi

Programy działające na serwerach, w tym w chmurze Microsoft Azure.

Dlaczego cały kurs w konsoli?

Bo aplikacja konsolowa nie rozprasza. Nie ma przycisków, okien ani układu graficznego — jest tylko twój kod i wynik. Wszystkiego, czego się tu nauczysz, użyjesz później w aplikacjach okienkowych; okno to tylko inny sposób pokazania tego samego wyniku.

NARZĘDZIA

W czym będziemy pracować

Visual Studio Community

To pełne środowisko programistyczne (ang. IDE — Integrated Development Environment) i główne narzędzie tego kursu. Wersja Community jest darmowa dla uczniów, studentów, projektów otwartoźródłowych i małych firm.

Podczas instalacji instalator zapyta, jakie obciążenia (ang. workloads) chcesz zainstalować. Na nasze potrzeby wystarczy jedno:

Zaznacz przy instalacji

„Programowanie na komputery klasyczne za pomocą platformy .NET” (ang. .NET desktop development). Zawiera kompilator, biblioteki, debuger i szablony projektów konsolowych oraz WPF — czyli wszystko, czego potrzebujesz na ten kurs i na następny.

Reszty na razie nie zaznaczaj — każde obciążenie to kilka gigabajtów na dysku.

Czego jeszcze możesz spotkać

NarzędzieDo czego służy
Visual Studio CodeLekki edytor, wieloplatformowy. Do C# wymaga rozszerzenia C# Dev Kit. Wygodny na Linuksie i macOS, ale ma mniej ułatwień niż pełne Visual Studio.
JetBrains RiderIDE z różnymi wariantami licencji; aktualne warunki sprawdź na stronie producenta. Bardzo dobre, ale zacznij od Visual Studio — na egzaminie i w szkole często spotkasz je w pracowni; środowisko egzaminacyjne sprawdź w wymaganiach konkretnego zadania.
.NET SDKSam zestaw narzędzi bez środowiska graficznego: kompilator i polecenie dotnet. Visual Studio instaluje go automatycznie.
NuGetMenedżer pakietów — pozwala dodać do projektu gotową bibliotekę napisaną przez kogoś innego. Wbudowany w Visual Studio.
PRZYKŁAD Z OMÓWIENIEM

Pierwszy projekt krok po kroku

Tworzenie projektu w Visual Studio

  • Uruchom Visual Studio i wybierz Utwórz nowy projekt
  • W polu wyszukiwania wpisz konsol i wybierz Aplikacja konsolowa z etykietą C#
  • Nazwij projekt PierwszyProgram i wskaż folder, w którym go zapiszesz
  • W polu Struktura zostaw najnowszą wersję oznaczoną LTS
  • Kliknij Utwórz

Uważaj na dwie pułapki na tym ekranie

Nie wybierz szablonu z dopiskiem (.NET Framework) — to ta stara, windowsowa wersja z tabeli wyżej. Szablon bez dopisku jest tym właściwym.

Sprawdź język. Obok nazwy szablonu widnieje etykieta języka. Istnieje identycznie nazwany szablon dla Visual Basica — kod z tego kursu w nim nie zadziała.

Co zobaczysz

Visual Studio otworzy plik Program.cs z takim kodem:

Program.cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Zmieńmy to na coś swojego:

Program.cs
Console.WriteLine("Witaj w kursie C#!");
Console.WriteLine("Nazywam się Grzegorz.");
Console.WriteLine("To mój pierwszy program.");
wynik w konsoli
Witaj w kursie C#!
Nazywam się Grzegorz.
To mój pierwszy program.

Omówienie

FragmentCo robi
ConsoleGotowa klasa z biblioteki .NET, która reprezentuje okno konsoli. To nie jest część języka C#, tylko element platformy.
.Kropka oznacza „sięgnij do środka”. Czytaj: „z klasy Console weź WriteLine„.
WriteLineMetoda, czyli gotowe polecenie. Wypisuje tekst i przechodzi do nowej linii. Istnieje też Write, które zostaje w tej samej linii.
("…")W nawiasie podajemy dane dla metody. Tekst zapisujemy w cudzysłowie prostym ", nie w polskim „ „.
;Średnik kończy instrukcję. Bez niego kompilator zgłosi błąd CS1002.

Uruchamianie

SposóbKiedy używać
Ctrl + F5
Uruchom bez debugowania
Domyślnie tego używaj. Okno konsoli zostaje otwarte po zakończeniu programu i czeka na klawisz — zdążysz przeczytać wynik.
F5
Uruchom z debugowaniem
Gdy chcesz zatrzymać program w wybranym miejscu i podejrzeć wartości zmiennych. Zachowanie okna po zakończeniu zależy od ustawień Visual Studio i terminala.

Znikające okno konsoli

Jeśli okno mignęło i zniknęło, prawie na pewno uruchomiłeś program klawiszem F5. Program po prostu się skończył, a okno zamknęło się razem z nim — to nie jest błąd. Użyj Ctrl + F5.

CZĘSTE PROBLEMY

Co zwykle idzie nie tak na starcie

ObjawPrzyczyna i rozwiązanie
Okno konsoli znika natychmiast Uruchomienie klawiszem F5 zamiast Ctrl + F5.
Polskie znaki wyświetlają się jako krzaki Konsola używa starszego kodowania. W nowszych wersjach Windowsa problem zwykle nie występuje; jeśli wystąpi, wróć do tego po lekcji o kodowaniu plików — tam wyjaśniamy, skąd się bierze.
Kompilator nie widzi klasy Console Prawdopodobnie utworzyłeś projekt w Visual Basicu albo wybrałeś szablon biblioteki zamiast aplikacji konsolowej. Załóż projekt od nowa, pilnując etykiety języka.
Program się nie uruchamia, a na dole jest lista błędów Kliknij dwukrotnie pierwszy błąd na liście — Visual Studio przeniesie kursor w miejsce problemu. Zawsze poprawiaj od pierwszego: kolejne często są jego skutkiem i znikną same.
Cudzysłów podkreślony na czerwono Wpisany polski cudzysłów „ ” zamiast prostego ". Zdarza się przy kopiowaniu tekstu z dokumentu Word albo ze strony internetowej.
ZADANIA

Zadania

ZAD 1Środowisko gotowe do pracy★☆☆

Zainstaluj Visual Studio Community z obciążeniem „Programowanie na komputery klasyczne za pomocą platformy .NET”. Utwórz projekt konsolowy o nazwie PierwszyProgram i uruchom go klawiszami Ctrl + F5.

ZAD 2Wizytówka★☆☆

Zmień kod tak, aby program wypisał cztery linie: twoje imię, klasę, szkołę i powód, dla którego uczysz się programować. Ostatnią linię wypisz dwiema instrukcjami zamiast jedną.

ZAD 3Jakiej wersji używasz?★★☆

Sprawdź, na jakiej wersji .NET działa twój projekt. Zrób to na dwa sposoby: przez okno właściwości projektu w Visual Studio oraz przez wiersz poleceń.

ZAD 4Gdzie mieszka twój program★★☆

Odszukaj na dysku folder swojego projektu. Znajdź w nim podfolder bin, a w środku plik wykonywalny. Uruchom go dwukrotnym kliknięciem — poza Visual Studio. Zanotuj pełną ścieżkę.

ZAD 5Rozpoznaj technologię★★☆

Wybierz trzy programy, z których korzystasz — mogą to być gry, aplikacje na telefonie albo programy na komputerze. Spróbuj ustalić, w czym zostały napisane, i zapisz źródło informacji. Do której z technologii wymienionych w sekcji „Gdzie naprawdę używa się C#” pasuje każdy z nich?

PODSUMOWANIE

Co trzeba zapamiętać

  • C# określa reguły języka. .NET dostarcza biblioteki i środowisko uruchomieniowe.
  • Console jest klasą biblioteki .NET. WriteLine wyświetla dane i kończy wiersz.
  • .NET Framework 4.x i współczesny .NET są osobnymi liniami. W kursie używamy współczesnego projektu konsolowego.
  • Przenośność zależy także od bibliotek i funkcji systemowych użytych przez program.
  • SDK to narzędzia programisty. Platformę docelową określa TargetFramework w pliku projektu, a nie samo dotnet –version.
  • Uruchomienie z debugowaniem pozwala zatrzymywać program i oglądać jego stan. Zachowanie okna po zakończeniu zależy od ustawień.
  • Ścieżki względne odnoszą się do katalogu roboczego procesu, nie automatycznie do folderu Program.cs.