ZAWWW-2st1.2-l10.tresc-1.0

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zaawansowane aplikacje internetowe - laboratorium

Web Services (część 3).

Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest Microsoft .NET Framework 2.0 oraz serwer IIS (Internetowe Usługi Informacyjne, serwer uruchamiany jako usługa „Publikowanie w sieci World Wide Web"). Domyślna witryna sieci Web na serwerze IIS powinna być tak skonfigurowana, aby wykorzystywała wersję 2.0 ASP.NET.

Visual Studio 2005 jest udostępniane studentom w ramach programu MSDN Academic Alliance (http://www.microsoft.com/poland/edukacja/uczelnie/default.mspx). W celu uzyskania pakietu instalacyjnego Microsoft Visual Studio 2005 należy skontaktować się z prowadzącym zajęcia.

Ćwiczenie 1

Celem ćwiczenia jest utworzenie usługi Web Service umożliwiającej obliczenie całkowitego kosztu paliwa dla podanych wartości ceny litra benzyny, długości trasy w km i spalania w litrach na 100 km.

Kroki ćwiczenia:

1. Utworzenie projektu typu ASP.NET Web Service w języku Visual C .

a) Z menu głównego wybierz File->New Web Site. Wybierz szablon ASP.NET Web Service, język Visual C i lokalizację File System. Zmodyfikuj zaproponowaną nazwę katalogu, zmieniając ostatni element ścieżki podkatalogów na „SpalanieWS". (Możesz również zmienić całą ścieżkę prowadzącą do podkatalogu witryny. Może to być konieczne, gdy nie masz prawa zapisu w lokalizacji zaproponowanej przez kreator.) Kliknij przycisk OK.

ZAWWW-2st1 2-l10 tresc-1 0 01.png

b) Wynikiem działania kreatora powinien być plik z rozszerzeniem .asmx reprezentujący Web Service i klasa zawierająca jego kod (w naszym przypadku w języku C - stąd rozszerzenie .cs pliku z kodem źródłowym klasy).

ZAWWW-2st1 2-l10 tresc-1 0 02.png

2. Implementacja serwisu obliczającego spalanie.

a) Zmień nazwę przestrzeni nazw serwisu na „http://elearning.pl/ZAWWW/".

[<font color="#008080">WebService(Namespace = <font color="#800000">"http://elearning.pl/ZAWWW/")]

b) Zastąp wygenerowaną przez kreator metodę usługową HelloWorld() poniższą metodą obliczającą spalanie:

    [<font color="#008080">WebMethod]
    <font color="#0000FF">public <font color="#0000FF">double koszt(<font color="#0000FF">double cena, <font color="#0000FF">double odleglosc, <font color="#0000FF">double spalanie) {
        <font color="#0000FF">return cena * odleglosc * spalanie / 100.0;
    }

c) Zapisz wszystkie zmiany (np. File->Save All).

d) Uruchom Web Service wybierając z menu kontekstowego dla pliku .asmx w panelu Solution Explorer opcję View in Browser.

ZAWWW-2st1 2-l10 tresc-1 0 03.png

ZAWWW-2st1 2-l10 tresc-1 0 04.png

e) Obejrzyj zawartość wygenerowanego automatycznie pliku WSDL opisującego Web Service klikając link „Service Description".

f) Wróć do strony głównej serwisu i przetestuj działanie metody usługowej koszt() klikając link „koszt".

g) Na stronie do testowania metody usługowej wprowadź wartości trzech parametrów i kliknij przycisk „Invoke". (Uwaga: Jako separatora części dziesiętnej wartości parametrów użyj kropki).

3. Instalacja komponentu Web Service na serwerze IIS. (Uwaga: Poniższy opis zakłada wykorzystanie serwera IIS na komputerze lokalnym. Serwer jest uruchamiany jako usługa systemu Windows o nazwie „Publikowanie w sieci World Wide Web".)

a) Wybierz z menu opcję Build->Publish Web Site.

b) Wywołaj okno dialogowe do wyboru docelowego serwera klikając przycisk ... dla pola Target Location.

ZAWWW-2st1 2-l10 tresc-1 0 05.png

c) Wybierz typ miejsca przeznaczenia Local IIS. Następnie wybierz w drzewie Local Web Servers węzeł Domyślna witryna sieci Web i kliknij ikonkę do tworzenia nowej aplikacji.

ZAWWW-2st1 2-l10 tresc-1 0 06.png

d) Nazwij nową aplikację „Spalanie". Następnie wybierz nowo utworzoną aplikację i kliknij przycisk Open.

ZAWWW-2st1 2-l10 tresc-1 0 07.png

e) Po powrocie do okna Publish Web Site wartością Target Location powinno być „http://localhost/Spalanie". Kliknij przycisk OK.

f) Uruchom przeglądarkę internetową. Wprowadź adres URL: „http://localhost/Spalanie/Service.asmx".

g) Przetestuj działanie serwisu opublikowanego na serwerze IIS.

h) Wróć do środowiska Visual Studio. Zamknij projekt wybierając z menu opcję File->Close Project.

Ćwiczenie 2

Celem ćwiczenia jest utworzenie klienta serwisu utworzonego w Ćwiczeniu 1. Aplikacja kliencka będzie miała postać strony ASP.NET.

Kroki ćwiczenia:

1. Utworzenie nowej witryny (Web Site).

a) Z menu głównego wybierz File->New Web Site. Wybierz szablon ASP.NET Web Site, język Visual C i lokalizację File System. Zmodyfikuj zaproponowaną nazwę katalogu, zmieniając ostatni element ścieżki podkatalogów na „SpalanieKlient". (Możesz również zmienić całą ścieżkę prowadzącą do podkatalogu witryny. Może to być konieczne, gdy nie masz prawa zapisu w lokalizacji zaproponowanej przez kreator.) Kliknij przycisk OK.

ZAWWW-2st1 2-l10 tresc-1 0 08.png

2. Dodanie do projektu referencji do komponentu Web Service opublikowanego na lokalnym serwerze IIS.

a) W panelu Solution Explorer z menu kontekstowego dla węzła projektu wybierz opcję Add Web Reference.

ZAWWW-2st1 2-l10 tresc-1 0 09.png

b) W oknie Add Web Reference kliknij link Web services on the local machine.

ZAWWW-2st1 2-l10 tresc-1 0 10.png

c) Na liście znalezionych Web Services kliknij link reprezentujący serwis utworzony w Ćwiczeniu 1.

ZAWWW-2st1 2-l10 tresc-1 0 11.png

.

d) Zmień nazwę referencji (Web reference name) na „spalanie" i kliknij przycisk Add Reference.

ZAWWW-2st1 2-l10 tresc-1 0 12.png

Poprzez utworzoną w tym kroku referencję dostępna będzie automatycznie generowana klasa proxy, poprzez którą tworzona strona ASP.NET będzie odwoływać się do komponentu Web Service.

3. Utworzenie formularza do wprowadzania wartości parametrów dla metody serwisu obliczającej całkowity koszt paliwa.

a) Przejdź do edycji utworzonej wraz z projektem strony Default.aspx w trybie Design.

b) Techniką drag-and-drop umieść na stronie trzy kontrolki TextBox, jedną kontrolkę Button i jedną kontrolkę Label.

c) Korzystając z palety właściwości zmień identyfikatory (ID) kontrolek umieszczonych na stronie na „CenaTextBox", „OdlegloscTextBox", „SpalanieTextBox", „ObliczButton" i „WynikLabel". Zmień etykietę (Text) przycisku ObliczButton na „Oblicz". Wyczyść treść (Text) dla kontrolki WynikLabel.

d) Rozmieść kontrolki jedną pod drugą wprowadzając między nimi znaki przejścia do nowej linii i dodaj opisy pól tekstowych do wprowadzania wartości parametrów.

ZAWWW-2st1 2-l10 tresc-1 0 13.png

e) Klikając dwukrotnie na kontrolce przycisku przejdź do edycji metody obsługującej zdarzenie jego naciśnięcia (kliknięcia).

f) Jako ciało metody obsługującej zdarzenie naciśnięcia przycisku wprowadź poniższy kod:

        spalanie.<font color="#008080">Service service = <font color="#0000FF">new spalanie.<font color="#008080">Service();
        WynikLabel.Text = <font color="#800000">"Obliczony koszt paliwa to " +
        service.koszt(<font color="#008080">Double.Parse(CenaTextBox.Text),
                      <font color="#008080">Double.Parse(OdlegloscTextBox.Text),
                      <font color="#008080">Double.Parse(SpalanieTextBox.Text)) + <font color="#800000">".";

Powyższy kod tworzy obiekt klasy proxy, a następnie za jego pośrednictwem wywołuje metodę komponentu Web Service, przekazując jej jako wartości parametrów wartości wprowadzone przez użytkownika do formularza. Wynik działania metody, poprzedzony tekstowym opisem, jest umieszczany w kontrolce typu Label na stronie.

g) Zapisz wszystkie zmiany (np. File->Save All).

h) Uruchom stronę wybierając z menu kontekstowego dla pliku Default.aspx w panelu Solution Explorer opcję View in Browser.

i) Przetestuj działanie aplikacji podając różne wartości parametrów. (Uwaga: Jako separatora części dziesiętnej wartości parametrów użyj separatora wybranego w ustawieniach regionalnych systemu Windows. W Polsce domyślnym jest przecinek.)