BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











Pierwsze kroki z VS.NET

20-10-2003 18:57 | User 107543

Zaczynamy

Najwygodniej zapoznać się z jakimś środowiskiem próbując coś w nim zrobić. Po uruchomieniu VS.NET, na ekranie pojawia się okno w którym można wybrać typ projektu. (Jeżeli takie okno jest niewidoczne, to należy wejść w File New – Project). W oknie dostępne są różne typy projektów. W .NET możemy swobodnie wybrać w jakim języku piszemy program. Od razu po zainstalowaniu dostepne są 2 – VB.NET oraz C#. Ze tron Microsoft można ściągnąć język Java (J#). Również wiele innych kompilatorów (np. Perl.NET) integruje się ze środowiskiem VS. Wtedy – programista może z tego okna wybrać odpowiedni typ projektu.

W tym przypadku należy wybrać Visual Basic Project i Windows Application. Nazwa oraz pozostałe parametry niech zostaną takie same, jaką proponuje VS.NET. Po uruchomieniu projektu, otwierane jest główne okno projektanta

Okno środowiska IDE VS.NET

Na ekranie, po lewej stronie widoczny jest toolbox z kontrolkami – w tym przypadku Windows Forms. Można dodawać własna zakładki do tego paska, czy umieszczać na nim dodatkowe kontrolki (zarówno .NET jak i ActiveX). Na dole paska znajduje się dodatkowa zakładka – Server Explorer. Jest to nowy element w VS.NET, który pozwala na łatwy dostęp do „zasobów serwerowych”. Tam można np. zarządzać serwerem SQL, czy np. przeciągać jakieś informacje z Event Log bezpośrednio do projektu. Na środku znajduje się obszar projektanta – w tym przypadku definiujemy układ formatki Windows Form. Aby przenieść się do kodu, trzeba albo wybrać w menu kontekstowym „View Code” albo po prostu dwukrotnie kliknąć na jakiś element na formatce (wtedy, tak jak w VB6, od razu zostanie dodana odpowiednia procedura obsługi domyślnego zdarzenia).

Po prawej stronie znajdują się 2 okna – Solution Explorer, czyli przeglądarka rozwiązania (która pokazuje wszystkie pliki które wchodzą w skład danego projektu). Poniżej znajduje się okno właściwości, gdzie, jak w VB6 czy Visual InterDev można ustalać cechy obiektu wybranego aktualnie w IDE. Można zdecydować, że zamiast Solution Explorer pokazany będzie Class View – czyli przeglądarka klas. Wtedy, będzie widać wszystkie klasy, czy metody które wchodzą w skład danego projektu. Warto dodać, że przeglądarka klas jest aktualizowana na bieżąco – w miarę jak powstają kolejne fragmenty kodu.

Jeżeli zostanie wybrany projekt w C#, to w menu kontekstowym w przeglądarce klas są dostępne polecenia typu „dodaj” nową metodę, czy – przesłoń daną metodę z klasy bazowej. W przypadku VB6 – analogiczną rolę pełni listwa na górze ekranu tekstowego (elementy wybiera się w taki sam sposób co w VB6.

Warto zajrzeć do menu View – tam są wszystkie polecenia związane z pokazywaniem bądź ukrywaniem poszczególnych elementów środowiska.

Inną przeglądarką jest Object Browser (CTRL-ALT-J). Pozwala podejrzeć przestrzeń wszystkich klas i ich metod które są widoczne w danym rozwiązaniu. Każdy z elementów jest krótko opisany co sprawia że ta przeglądarka pozwala łatwo zorientować się w hierarchii obiektów .NET.

Aby uruchomić program – wystarczy wybrać DebugStart lub nacisnąć F5.

Poszczególne klasy tworzące .NET Framework pogrupowane są w tzw. przestrzenie nazw. Są to umowne kontenery, które zawierają np. wszystkie klasy obsługujące Windows Forms, czy klasy związane z obliczeniami matematycznymi.

Do poszczególnych klas można albo odwoływać się poprzedzając je odpowiednimi przedrostkami przestrzeni nazw, albo instruując kompilator, że pewne przestrzenie będą wykorzystywane w tym pliku źródłowym i ma w nich szukać definicji klas podczas kompilacji.

Na przykład, chcąc skorzystać z kolekcji, należy napisać (VB.NET):

Imports System.Collections

[...]

Dim tbl As Hashtable

Można też po prostu napisać pełną nazwę: Dim tbl As System.Collections.Hashtable

Analogicznie jest w C#, jednak tam wykorzystywane jest słowo kluczowe using:

using System.Collections;

Każda z przestrzeni nazw znajduje się w pewnej bibliotece .NET – aby móc skorzystać z danej przestrzeni, najpierw należy dodać referencję.

Projekt i rozwiązanie

Wszystkie projekty w VS.NET muszą znajdować się w pewnym „rozwiazaniu” -  Solution. Poszczególne pliki są przypisywane do danego projektu. Na poziomie projektu ustawiane są opcje kompilacji, czy określane jest, co powstaje w momencie kompilowania programu – biblioteka, czy zwykły program.

Zwykle zdarza się tak, że nawet proste „rozwiązania” mają często wiele projektów – chociażby dlatego, że chyba każdy z programistów ma własną bibliotekę „przydatnych” klas czy funkcji.

W związku z tym, rozpoczynać pracę jest najwygodniej od utworzenia w wybranym katalogu „pustego” rozwiązania. Wtedy, można w poszczególnych podkatalogach dodawać projekty – co automatycznie ułatwia pracę z SourceSafe i upraszcza zachowanie porządku.

Do każdego projektu mogą być dodawane referencje (wskazywane są dodatkowe biblioteki z których korzysta program). W tym celu po kliknięciu prawym przyciskiem na projekcie w Solution Explorer należy wybrać Add Reference. Można dodawać zarówno biblioteki .NET jak i zwykłe obiekty COM. Jeżeli dane rozwiązanie zawiera więcej niż jeden projekt, na trzeciej zakładce (Projects) można wybrać do których projektów generujących biblioteki dodawana jest referencja (automatycznie narzuca to określoną kolejność kompilacji – jednak tym się zajmuje samo VS.NET).

Do projektu można także dodać referencję do usługi Web – Add Web Reference. Po wybraniu tej opcji z menu kontekstowego, otwierane jest okno, gdzie można albo wyszukać konkretną usługę Web w katalogu UDDI albo też wpisać adres do pliku WSDL. Z punktu widzenia aplikacji usługa Web bardzo przypomina normalną procedurę. Całą otoczką związaną z prawidłowym przekazywaniem parametrów i komunikacją SOAP zajmuje się .NET Framework i specjalnie wygenerowane klasy pośredniczące.

Jednym z narzędzi towarzyszących VS.NET jest SourceSafe. Jeżeli projekt znajduje się „pod kontrolą” SourceSafe, można zapisywać kolejne wersje dokumentów tworzących projekt. W ten sposób można cofnąć zmiany (nawet po zapisaniu pliku), czy dokładnie zobaczyć, co się zmieniło w czasie pisania programu. Często zachodzi potrzeba by cofnąć się do pewnej wersji, gdzie była zaimplementowana pewna funkcjonalność, która potem zniknęła – wtedy SourceSafe jest bardzo przydatnym narzędziem. Równocześnie na bieżąco wykonywana jest kopia źródeł programu – co też jest nie do pogardzenia.

W moemencie, gdy nad projektem pracuje więcej niż jedna osoba, SourceSafe potrafi półautoamtycznie łączyć zmiany (nawet w jednym pliku) ew. pytając o decyzje w przypadku konfliktów. Podstawowe operacje SourceSafe są dostępne spod prawego przycisku po kliknięciu na element w Solution Explorer:

Check-In Now– aktualizuje zmiany w repozytorium SourceSafe

Check Out Now – pobiera plik z repozytorium tak by można go było zmieniać w projekcie

Get Latest Version – pobiera ostatnią wersję pliku (ew. zastępuje wersje zmienione lokalnie)

Add Solution to Source Control – dodaje rozwiązanie do SourceSafe (tworzy nowe repozytorium dla całego rozwiązania; potem można dodawać poszczególne projekty);

Uruchamianie przykładowych projektów z CD

Przykładowe programy załączone na CD towarzyszącym numerowi Chip Special wystarczy skopiować na dysk i otworzyć odpowiednie rozwiązanie (nie zapominając by najpierw zdjąć atrybut tylko do odczytu).

W przypadku projektów ASP.NET bądź usług Web konieczne jest także skonfigurowanie odpowiedniego katalogu jako „aplikacji” IIS (oczywiście – Internet Information Server musi być zainstalowany na tym samym komputerze co VS.NET). Zwykle, w tym celu wystarczy kliknąć prawym przyciskiem na danym folderze, wejść w opcję Properties (Właściwości),  po czym wybrać zakładkę Web Sharing (Udostępnianie w sieci Web) po czym zaznaczyć Share This Folder (Udostępnij ten folder).

Część projektów ma także programy instalacyjne – wtedy proszę zapoznać się z odpowiednim plikiem czytaj.txt

Przy użyciu Notepada

Do pisania prostych programów w .NET wystarczy w zasadzie dowolny edytor tekstowy oraz .NET Framework, który zawiera wszystkie niezbędne biblioteki oraz kompilatory VB.NET i C#.

Aby skompilować przykład w VB.NET należy napisać:

vbc test.vb

w przypadku kodu w C#,

csc test.cs

Oba kompilatory mają podobne opcje; ważniejsze zostały omówione poniżej:

/target:exe             Tworzona jest aplikacja konsolowa

/target:winexe          Tworzona jest aplikacja Windows Forms

/target:library         Tworzona jest biblioteka (np. – z klasą)

/reference:<lista plików >  dodaje referencję do danego pliku bibiotecznego

/optimize[+|-]          włącza/wyłącza optymalizację.

/debug          dodaje informacje dla debuggera

@<plik>                 pobiera opcje kompilacji z danego pliku

Należy pamiętać, że aby skorzystać z narzędzi z poziomu linii poleceń, muszą być zainicjowane odpowiednie zmienne środowiskowe w Windows. Podczas instalacji VS.NET tworzony jest odpowiedni skrót – proszę uruchomić Start – Programs – Microsoft Visual Studio .NET – Visual Studio .NET Tools - Visual Studio .NET Command Prompt.

Poniżej przedstawiony jest bardzo prosty przykład kompilacji z linii poleceń. Tworzone są dwa pliki tekstowe – biblioteczny (w C#) mylib.cs, zawierającego jedną klasę CSTest z metodą Do() oraz „klienta” w VB.NET, który korzysta z tej klasy,

Plik mylib.cs:

using System;

public class CSTest

{

 public void Do() {

   Console.Write("CSTest - DO");

 }

}

Plik test.vb:

imports System

Module Test

 Sub Main()

   Console.WriteLine("Hello World")

   dim c as new MyLib.CSTest()

   c.Do()

 End Sub

End Module

Najpierw trzeba skompilować bibliotekę. Koniecznie należy określić typ projektu – inaczej kompilator zgłosi błąd (domyślnie przyjmuje, że tworzony jest plik EXE):

csc /target:library mylib.cs

Kompilując kod w VB.NET należy pamiętać o jawnym wskazaniu referencji do bibiliteki, by kompilator mógł znaleźć odpowiednie metadane:

vbc /reference:mylib.dll test.vb

Można także skompilować projekt z informacją dla debuggera. Wtedy, można będzie krokowo wykonywać ten przykładowy program. Po dodaniu do obu linii opcji /debug, można uruchomić debugger.

Samo .NET Framework zawiera 2 typy debuggera. Pierwszy, jest debuggerem testowym. Można go uruchomić pisząc

cordbg test.exe

Potem, wydając polecenie n można krok po kroku wykonywać program.

Innym, znacznie wygodniejszym debuggerem jest DbgClr.exe. Po zainstalowaniu .NET Framework, znajduje się on w podkatalogu GuiDebug; jeżeli jest zainstalowane VS.NET jest to n. folder "C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\GuiDebug\".

Po jego uruchomieniu, można wejść w menu Debug – Program To Debug i wybrać skompilowany właśnie program test.exe.

Debugger z .NET Framework bardzo przypomina wyglądem ten z VS.NET. Jednak może śledzić tylko kod CLR.

Można także podejrzeć kod MSIL który został wygenerowany przez kompilator. ildasm.exe to deasembler, który pozwala zarówno podejrzeć tzw. maniferst oraz metainformacje, jak i kod MSIL (wraz z odpowiednim kodem źródłowym). Przy użyciu tego narzędzia można zobaczyć, jak dane konstrukcje językowe przekładane są na kod MSIL (debugger w VS.NET pozwala nawet podejrzeć dalszy krok – jak kod MSIL jest kompilowany do assemblera 80x86).

Podgląd kodu MSIL

Miłe cechy edytora tekstowego w IDE

Jedną z bardziej ciekawych funkcji edytora VS.NET jest mechanizm tworzenia sekcji w kodzie źródłowym, które pozwala tworzyć wydzielone fragmenty plików. Jeżeli w kodzie (w dowolnym języku) zostanie umieszczony np:

#Region " Funkcje pomocnicze "

[tu dowolny kod]

#End Region

wtedy funkcje pomocnicze będą mogły być „zwinięte” – tak by w edytorze były widoczna była tylko nazwa regionu. Analogicznie można zwijać całe klasy czy implementację poszczególnych metod. Środowisko IDE zapamiętuje, które elementy zostały zwinięte.

W menu EditOutlining znajdują się wszystkie polecenia związane ze zwijaniem kodu (oraz ich skróty klawiszowe).

Należy pamiętać, że w kodzie C# rozróżniane są duże i małe litery. Innymi słowy – zmienna tmpi oraz TMPI to dwie różne zmienne. W VB.NET jest to obojętne. IDE VS.NET samodzielnie „pilnuje” by litery miały odpowiednią wielkosc w kodzie VB.NET – jednak ma to znaczenie tylko estetyczne.

Drugą, bardzo pożyteczną cechą edytora jest mechanizm tworzenia tzw „code snippets” – czyli dowolnych fragmentów kodu gotowych do ponownego wykorzystania. Mogą to być często stosowane deklaracje zmiennych tymczasowych, standardowe pętle czy cokolwiek innego. W edytorze można zaznaczyć dowolny fragment kodu. Po skopiowaniu go do schowka każdy element jest umieszczany w specjalnej zakładze Toolbox o nazwie Clipboard Ring. Taki element (jak każdy inny) można przeciągnąć na inną zakładkę w Toolbox – np. o nazwie – Moje fragmenty kodu. Można także – zamiast kopiować element do schowka – od razu po zaznaczeniu przeciągnąć go na docelową zakładkę w Toolbox.

Pracując w IDE warto też wiedzieć o dwu mechanizmach – uzupełnianiu składni oraz oknie dynamicznej podpowiedzi. Uzupełnianie składni może nie działać prawidłowo, jeżeli w kodzie poprzedzającym to miejsce, gdzie znajduje się kursor, jest błąd składniowy. Standardowo, aby wymusić wyświetlenie uzupełnienia dla danej składni, należy nacisnąć CTRL-J.

Okno dynamicznych podpowiedzi jest doskonałym narzędziem, które pozwala szybko zapoznać się ze środowiskiem. W zależności od kontekstu, wyświetlane są odsyłacze do odpowiednich elementów pomocy -  jednak cały mechanizm spowalnia pracę IDE. Gdy programista już pozna choć trochę VS.NET i samo .NET Framework, to warto zamknąć to okienko.

IDE potrafi samodzielnie formatować kod – ale warto od razu po uruchomieniu środowiska w Tools – Options ustawić np. jak mają być tworzone wcięcia. Ustawienia mogą dotyczyć albo wszystkich języków programowania, albo też tylko wybranego. Aby wymusić sformatowanie kodu, należy zaznaczyć odpowiedni fragment i nacisnąć CTRL K i potem CTRL-F (w wielu miejscach VS.NET dostępne są „dwuczłonowe” skróty klawiszowe.)

Automatyczne komentowanie w C#

W C#, jeżeli nad linią zawierającą początek definicji klasy, metody czy właściwości, zostaną wstawione 3 znaki /, to IDE automatycznie wygeneruje specjalny szkielet komentarza – gromadząc tam wszystkie parametry itp. Programista może wstawić opis każdego z elementów:

[...]

/// <summary>

/// Funkcja jest przeznaczona do sortowania elementów DataGrid

/// </summary>

/// <param name="source">obiekt, który zgłasza zdarzenia</param>

/// <param name="e">parametry zdarzenia</param>

private void SortMe(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) {

[...]

Po skomentowaniu całego kodu, można z menu Tools wybrać Build Comments web pages..., co spowoduje wygenerowanie (lub aktualizację) stron HTML, które zawierają dokumentację projektu. Łączy ona informacje o typach, klasach, metodach itp z tym, co zostało wprowadzone w specjalnych komentarzach. Warto, by programiści używający C# tworzyli (a co ważniejsze – na bieżąco aktualizowali) te komentarze –niewielki wysiłek, ale za to można automatycznie wygenerować aktualną i kompletną dokumentację projektu.

Komentarze 0

pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.