Praca w środowisku programistycznym
W rozdziale tym zostały opisane podstawowe etapy tworzenia aplikacji, takie jak pisanie, kompilowanie, debugowanie kodu źródłowego, w środowiskach programistycznych Visual Studio oraz .NET Framework SDK.
Visual Studio
Tworzenie projektu
Zadania programistyczne w pakiecie Visual Studio organizowane są w rozwiązania (solution), w których umieszczane są projekty. Każde rozwiązanie musi zawierać przynajmniej jeden projekt.
1. |
Aby utworzyć nowy projekt, w programie Visual Studio należy z menu File wybrać pozycję New, a następnie pozycję Project.
|
2. |
Wyświetlone zostanie okno dialogowe New Project z szablonami projektów. W lewej części okna wybieramy typ projektu — np. Visual C# Projects (projekty w języku C#) lub Visual Basic Projects (projekty w języku Visual Basic). Natomiast w prawej części okna wybieramy konkretny szablon — jeśli chcemy utworzyć aplikację konsolową, powinniśmy wybrać ikonę opisaną Console Application, a jeśli chcemy utworzyć aplikację okienkową — ikonę Windows Application.
|
3. |
W polu Name wpisujemy nazwę projektu, a w polu Location podajemy folder, w którym projekt ma zostać utworzony. Następnie klikamy przycisk OK, aby utworzyć projekt. |
Visual Studio .NET utworzy rozwiązanie, zawierające jeden projekt Visual C#. Na projekt składają się dwa pliki — assemblyinfo.cs oraz class1.cs.
Edytowanie kodu źródłowego
Plik, który chcemy edytować, można otworzyć, klikając dwukrotnie jego nazwę (np. class1.cs) w eksploratorze rozwiązania (okno Solution Explorer). Jeśli eksplorator nie jest widoczny, w menu View należy zaznaczyć opcję Solution Explorer.
Visual Studio na kilka różnych sposobów pomaga programiście w pisaniu kodu. Przede wszystkim funkcja uzupełniania wyrażeń podpowiada nazwy klas, funkcji i zmiennych. Załóżmy, że nasza aplikacja ma wypisać jakiś tekst w oknie konsoli. Powinniśmy użyć funkcji Console.WriteLine. W funkcji main wpisujemy nazwę klasy Console i stawiamy kropkę. W tym momencie powinno zostać wyświetlone pole zawierające nazwy elementów i metod składowych klasy Console (widoczne na ilustracji poniżej). Jeśli podpowiedź nie pojawiła się automatycznie, wystarczy przycisnąć kombinację klawiszy Ctrl+j. Jeśli zamiast Ctrl+j naciśniemy klawisze Alt+→ lub Ctrl+spacja i będzie istniała tylko jedna możliwość uzupełnienia wyrażenia, to uzupełnienie to zostanie dopisane automatycznie. W przeciwnym razie zostanie wyświetlone pole z możliwymi uzupełnieniami wyrażenia.
Pomoc Visual Studio na tym się nie kończy. Gdy napiszemy już nazwę funkcji i otworzymy nawias, pojawi się podpowiedź informująca o typach danych i liczbie przekazywanych do funkcji parametrów. Jeśli istnieje więcej funkcji o tej samej nazwie, korzystając z klawiszy strzałka w górę i strzałka w dół możemy wyświetlać podpowiedzi do kolejnych funkcji. Jeśli podpowiedź nie wyświetli się automatycznie, można ją wywołać przyciskając klawisze Ctrl+Shift+spacja.
Opisane wyżej podpowiedzi są wyświetlane zarówno w przypadku funkcji bibliotecznych, jak i funkcji napisanych przez programistę. Jeśli chcemy rozbudować opis elementu, jaki ma być wyświetlany, bezpośrednio przed jego deklaracją w kodzie należy wstawić specjalny komentarz (tak zwana dokumentacja w kodzie). W języku C# każda linia takiego komentarza musi rozpoczynać się trzema ukośnikami (po wpisaniu /// Visual Studio powinno podpowiedzieć podstawowe pola XML dla tej dokumentacji). W języku Visual Basic także możliwe jest stosowanie tego typu komentarzy, jednak każdą linię komentarza muszą poprzedzać trzy apostrofy ('''). Aby móc stosować komentarze w Visual Basic .NET 2003, konieczne jest zainstalowanie narzędzia VBCommenter (j. ang.). W nowszych wersjach edytorów — także w wersji Express — obsługa komentarzy takiego typu jest już wbudowana.
[C#]
/// <summary>
/// Skrótowy opis klasy Klasa1
/// </summary>
Class Klasa1
{
...
}
Gdy później w kodzie będziemy chcieli użyć utworzonej klasy, zostanie wyświetlona następująca podpowiedź.
Wszystkie niepoprawne wyrażenia w kodzie są podkreślane falistą linią. Po wskazaniu podkreślonego wyrażenia myszą, wyświetlona zostanie podpowiedź sugerująca, jaki błąd mogliśmy popełnić. Umożliwia to wyśledzenie błędów w czasie pisania kodu, jeszcze przed kompilacją.
Jeśli chcemy dowiedzieć się więcej na temat używanych w programie funkcji bibliotecznych, wystarczy zaznaczyć ich nazwę w kodzie i nacisnąć klawisz F1. W zależności od tego, czy dokumentacja została zainstalowana, wyświetlone zostaną informacje z dysku lub zostaniemy skierowani do dokumentacji dostępnej w Internecie.
Kompilacja i uruchamianie
Kod źródłowy programu jest dla komputera tekstem niezrozumiałym, dlatego przed uruchomieniem programu trzeba go skompilować. W tym celu z menu Build należy wybrać pozycję Build.
Błędy i komunikaty kompilatora C# zostaną wyświetlone w oknie Output. Jeśli kompilator nie wykrył żadnych błędów, można uruchomić aplikację, wybierając z menu Debug polecenie Start without Debugging.
Usuwanie błędów
Jeśli nasz program skompilował się bezbłędnie, ale w czasie jego wykonania występują błędy, których nie potrafimy znaleźć lub nie rozumiemy ich, najlepiej jest skorzystać z programu debugującego, który umożliwi szczegółowe prześledzenie działania aplikacji.
Gdy program uruchamiany jest w debugerze, możliwe jest definiowanie punktów wstrzymania, powodujących przerwanie wykonywania programu w danym miejscu i przekazanie programiście kontroli nad debugerem. Aby wstawić punkt wstrzymania, prawym przyciskiem myszy należy kliknąć wiersz kodu, przed wykonaniem którego program ma się zatrzymać, i z kontekstowego menu należy wybrać pozycję Insert Breakpoint. Punkt wstrzymania można usunąć, klikając prawym przyciskiem myszy na wierszu kodu, w którym ten punkt się znajduje i wybierając z kontekstowego menu pozycję Remove Breakpoint.
Po ustawieniu punktu wstrzymania, uruchamiamy program w debugerze. Z menu Debug tym razem należy wybrać polecenie Start (lub nacisnąć klawisz F5). Gdy wykonywanie programu dojdzie do punktu wstrzymania, kontrola nad debugerem zostanie przekazana programiście. Wykonywaną aktualnie linię w programie będzie wskazywała strzałka widoczna na marginesie.
Aby wykonać jedną linię kodu (tak zwane wykonywanie krokowe), z menu Debug należy wybrać Step Over (lub nacisnąć klawisz F10) — kursor przesunie się do następnej linii. Polecenie Debug > Step Into (klawisz F11) umożliwia przejście do wnętrza funkcji wywoływanej w danej linii. Gdy chcemy wznowić wykonywanie programu do napotkania kolejnego punktu wstrzymania lub zakończenia działania programu, z menu Debug wybieramy polecenie Continue (klawisz F5).
Jeśli chcemy monitorować wartość jakiejś zmiennej, wystarczy kliknąć jej nazwę prawym przyciskiem myszy i z kontekstowego menu wybrać pozycję Add Watch. Wyświetlone zostanie okno, w którym można monitorować wartości zmiennych uzyskiwane po wykonaniu kolejnych kroków.
W menu Debug dostępnych jest wiele innych narzędzi debugera. Warto się z nimi zapoznać i korzystać z nich nawet przy prostych programach, ponieważ pomagają zrozumieć kolejność wykonywania operacji i to, jak naprawdę działa nasz program.
.NET Framework SDK
Pliki źródłowe oraz konfiguracyjne dla wszystkich języków mają postać zwykłych plików tekstowych, dlatego można modyfikować je za pomocą dowolnego edytora tekstowego — nawet notatnika.
Aby móc uruchomić program, konieczna jest jego kompilacja. W .NET Framework SDK kompilację można przeprowadzić wyłącznie z wiersza polecenia. Pliki środowiska uruchomieniowego Microsoft .NET Framework 1.1 oraz kompilatory języków C# oraz Visual Basic .NET instalowane są w katalogu
%SystemRoot%\Microsoft.NET\Framework\ v1.1.4322.
Aby nie trzeba było za każdym razem podawać pełnych ścieżek dostępu do plików, przed rozpoczęciem pracy warto ustawić ścieżki wyszukiwania i zmienne środowiskowe, uruchamiając polecenie:
"C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat"
Kompilator języka C# nosi nazwę csc.exe, a kompilator języka Visual Basic — vbc.exe.
Przykład kompilacji programu
1. |
Korzystając notatnika, przygotowujemy kod źródłowy programu, na przykład: [C#] using System; class Przywitanie { static void Main() { Console.WriteLine("Witamy w świecie programowania!"); } }
[Visual Basic] Imports System Module Module1 Sub Main() Console.WriteLine("Witamy w świecie programowania!") End Sub End Module |
2. |
Gotowy kod trzeba zapisać w pliku o odpowiedniej nazwie — na przykład przywitanie.cs dla języka C# albo przywitanie.vb dla języka Visual Basic. |
3. |
Otwieramy okno wiersza polecenia i za pomocą polecenia cd przechodzimy do folderu, w którym znajduje się plik źródłowy, np.: cd "c:\moje projekty\przywitanie\" |
4. |
Przygotowujemy ścieżki wyszukiwania i zmienne środowiskowe, wpisując polecenie: "C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat" |
5. |
Kompilujemy program, używając polecenia: [C#] csc przywitanie.cs
[Visual Basic] vbc przywitanie.vb |
6. |
Kompilator przystąpi do kompilacji kodu źródłowego. Jeśli w kodzie źródłowym nie ma błędów, kompilator zakończy pracę, wyświetlając swój numer wersji. Jeśli kompilator odnajdzie błędy w kodzie źródłowym, poinformuje o nich, wyświetlając numery linii, w których te błędy się znajdują oraz prawdopodobną przyczynę wystąpienia błędu. |
7. |
Jeśli program skompiluje się bez błędów, można go uruchomić: przywitanie.exe |
8. |
Wynik wykonania programu z przykładu: Witamy w świecie programowania! |
Jak widać, proces kompilacji jest żmudny, a usuwanie błędów polega na ciągłych próbach kompilowania programu i poprawianiu kodu źródłowego. O ile jest to dobra metoda do wypróbowania swoich sił w pisaniu najprostszych programów, do dalszej nauki bardzo przydają się zintegrowane środowiska programistyczne, takie jak Visual Studio .NET czy bezpłatne narzędzia programistyczne w wersjach Express.
Możliwa jest też integracja zestawu .NET Framework SDK ze zintegrowanymi środowiskami programowania innych. Szczegółowych informacji na ten temat należy szukać u producentów tych środowisk.