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

From Studia Informatyczne

Spis treści

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.

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).

Image: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/".

[WebService(Namespace = "http://elearning.pl/ZAWWW/")]

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

    [WebMethod]
    public double koszt(double cena, double odleglosc, double spalanie) {
        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.

Image:ZAWWW-2st1_2-l10_tresc-1_0_03.png

Image: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.

Image: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.

Image:ZAWWW-2st1_2-l10_tresc-1_0_06.png

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

Image: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.

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.

Image:ZAWWW-2st1_2-l10_tresc-1_0_09.png

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

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

.

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

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.

Image: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.Service service = new spalanie.Service();
        WynikLabel.Text = "Obliczony koszt paliwa to " +
        service.koszt(Double.Parse(CenaTextBox.Text),
                      Double.Parse(OdlegloscTextBox.Text),
                      Double.Parse(SpalanieTextBox.Text)) + ".";

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.)