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.
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
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
| Cecha | Co 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.
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”
| Nazwa | Lata | Co warto wiedzieć |
|---|---|---|
| .NET Framework | 2002 → | 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 Core | 2016–2019 | Napisany od nowa, otwartoźródłowy i wieloplatformowy. Wersje 1.0–3.1. |
| .NET 5 i nowsze | 2020 → | 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.
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.
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ędzie | Do czego służy |
|---|---|
| Visual Studio Code | Lekki 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 Rider | IDE 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 SDK | Sam zestaw narzędzi bez środowiska graficznego: kompilator i polecenie dotnet. Visual Studio instaluje go automatycznie. |
| NuGet | Menedżer pakietów — pozwala dodać do projektu gotową bibliotekę napisaną przez kogoś innego. Wbudowany w Visual Studio. |
Pierwszy projekt krok po kroku
Tworzenie projektu w Visual Studio
- Uruchom Visual Studio i wybierz Utwórz nowy projekt
- W polu wyszukiwania wpisz
konsoli wybierz Aplikacja konsolowa z etykietą C# - Nazwij projekt
PierwszyProgrami 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:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Zmieńmy to na coś swojego:
Console.WriteLine("Witaj w kursie C#!");
Console.WriteLine("Nazywam się Grzegorz.");
Console.WriteLine("To mój pierwszy program.");
Witaj w kursie C#!
Nazywam się Grzegorz.
To mój pierwszy program.
Omówienie
| Fragment | Co robi |
|---|---|
Console | Gotowa 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„. |
WriteLine | Metoda, 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ób | Kiedy 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.
Co zwykle idzie nie tak na starcie
| Objaw | Przyczyna 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
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.
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ą.
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ń.
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ę.
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?
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.