ASP.NET Web Matrix - przewodnik
-
- PCWorld,
- 01.05.2005
Metoda internetowa z dostępem do danych
W tym przykładzie utworzymy metodę internetową, która zwraca zbiór danych DataSet, zawierający wszystkie rekordy tabeli Zamowienia.
1. Otwórz plik mojPierwszyWebService.asmx w widoku Code.
2. Z przybornika wybierz kontrolkę generatora kodu SELECT Data Method i przeciągnij ją na stronę usługi XML Web Service.
Pojawi się okno dialogowe kreatora SELECT Data Code Wizard.
3. Kliknij listę rozwijaną Select a database. Środowisko ASP.NET Web Matrix połączy się z wybranym źródłem danych i umieści na liście rozwijanej nazwy dostępnych baz danych. Wybierz przygotowaną we wcześniejszym przykładzie bazę danych Zamowienia.
4. Kliknij przycisk Next.
Pojawi się kolejne okno kreatora - Construct a SELECT Query.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
6. W sekcji Columns zaznacz pole wyboru obok pozycji *.
7. Kliknij przycisk Next.
Pojawi się kolejne okno kreatora o nazwie Query Preview.
8. Kliknij przycisk Test Query.
Jako wynik testowego zapytania do bazy wyświetlone zostaną wszystkie rekordy tabeli Zamowienia.
9. Kliknij przycisk Next.
Na ekranie pojawi się kolejne okno dialogowe kreatora.
10. W pole nazwy metody wpisz PobierzZamowienia.
11. Zaznacz opcję DataSet (wartość domyślna).
12. Kliknij przycisk Finish.
Okno kreatora zniknie, a na stronie w widoku Code pojawi się funkcja PobierzZamowienia. Funkcja nie przyjmuje żadnych parametrów wejściowych, a w wyniku działania zwraca zestaw danych DataSet. Zestaw danych DataSet zawiera wszystkie zamówienia znajdujące się w tabeli Zamowienia.
13. Do funkcji PobierzZamowienia dodaj atrybut WebMethod. Metoda PobierzZamowienia nie pobiera argumentów wejściowych i jako wynik zwraca zestaw danych DataSet, który zawiera wszystkie rekordy tabeli Zamowienia.
<WebMethod> Function PobierzZamowienia() _
As System.Data.DataSet
Dim connectionString As String = _
"server='(local)'; trusted_connection=true; " & _
"database='Zamowienia'"
Dim dbConnection As System.Data.IDbConnection = _
New System.Data.SqlClient. ř
SqlConnection(connectionString)
Dim queryString As String = _
"SELECT [Zamowienia].* FROM [Zamowienia]"
Dim dbCommand As System.Data.IDbCommand = _
New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dataAdapter As System.Data.IDbDataAdapter = _
New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = _
New System.Data.DataSet
dataAdapter.Fill(dataSet)
Return dataSet
End Function
14. Zapisz i uruchom usługę XML Web Service.
W nowym oknie przeglądarki zostanie automatycznie wyświetlona dynamicznie utworzona strona, opisująca usługę XML Web Service.
Zobaczysz plik HTML, opisujący usługę XML Web Service. Na stronie pokazane będą wszystkie metody udostępniane przez usługę XML Web Service.
15. Kliknij na górze strony łącze PobierzZamowienia.
16. Kliknij przycisk Invoke (Wywołaj).
Usługa Web Service zwróci wynik w postaci kodu XML, w którym zapisane są wszystkie rekordy tabeli Zamowienia. Kod ten zostanie wyświetlony w nowym oknie przeglądarki.
17. Zamknij okno przeglądarki internetowej.
Tworzenie klienta usługi Web Service
W tym przykładzie przygotujemy klasę pośredniczącą (proxy), wywołującą przygotowaną w poprzednim przykładzie usługę XML Web Service, i umieścimy ją na stronie ASP.NET. Usługa XML Web Service może działać na dowolnym zdalnym serwerze - dzięki temu dane i kod można w prosty sposób rozmieścić w sieci komputerowej.
![]() |
![]() |
![]() |
![]() |
![]() |
2. W panelu Templates wybierz pozycję (General).
3. Zaznacz szablon ASP.NET Page.
4. W pole Location wpisz ścieżkę dostępu do pliku.
5. W pole Filename wpisz nazwę pliku mojPierwszyKlientWS.aspx.
6. Z listy rozwijanej Language wybierz pozycję Visual Basic.
7. Kliknij przycisk OK. Strona mojPierwszyKlientWS.aspx otworzy się w widoku Design.
8. Z przybornika z palety Web Controls przeciągnij kontrolki Button i DataGrid na obszar strony. Po przeciągnięciu każdej kontrolki naciśnij klawisz [Enter].
9. Włącz widok Code.
10. Z menu Tools wybierz polecenie WebService Proxy Generator.
Pojawi się okno dialogowe XML Web Service Proxy Generator.
11. W pole WSDL URL wpisz pełny adres URL usługi Web Service przygotowanej w poprzednim przykładzie, np.:http://localhost:8080/mojPierwszyWebService.asmx
Uwaga - WSDL to skrót nazwy Web Services Description Language (język opisu usług Web Service). Język WSDL określa sposób działania usługi XML Web Service i powiadamia klientów, w jaki sposób mogą współpracować z usługą. Dostęp do opisu WSDL można uzyskać, dodając do adresu URL usługi Web Service łańcuch zapytania WSDL, np.:http://localhost:8080/mojPierwszyWebService.asmx?WSDL
12. W pole Namespace wpisz MatrixDemo.
13. Z listy rozwijanej Language wybierz pozycję Visual Basic.
14. W pole Output Directory wpisz ścieżkę dostępu do pliku.
Ważna informacja - środowisko ASP.NET Web Matrix wymaga, aby pliki klasy proxy znajdowały się w tej samej lokalizacji, co pliki wywołującej usługę strony ASP.NET.
Nie zmieniaj domyślnych wartości w polach Source File i Generate Assembly.
15. Kliknij przycisk Generate.
Wyświetli się komunikat potwierdzający utworzenie klasy proxy dla usługi Web Service.
16. Kliknij przycisk OK.
17. Kliknij przycisk Cancel, aby zamknąć okno dialogowe XML Web Service Proxy Generator.
18. Wyświetl stronę w widoku Design i dwukrotnie kliknij kontrolkę Button. Środowisko ASP.NET Web Matrix automatycznie powiąże funkcję obsługi zdarzenia kliknięcia z kontrolką Button, a następnie włączy widok Code.
19. Do funkcji obsługi zdarzenia Button1_Click dodaj kod, który wywoła obiekt proxy dla usługi Web Service, a następnie powiąże wyniki wywołania metody internetowej PobierzZamowienia z kontrolką DataGrid:
Sub Button1_Click(sender As Object, e As EventArgs)
'Sposób deklaracji:
'Dim NazwaZmiennej As New PrzestrzenNazw.Klasa
Dim wsProxy As New MatrixDemo.Przyklad()
DataGrid1.DataSource = wsProxy.PobierzZamowienia()
DataGrid1.DataBind()
End Sub
20. Zapisz stronę, a następnie uruchom ją.
Strona zostanie automatycznie wyświetlona w nowym oknie przeglądarki internetowej.
21. Kliknij przycisk Button.
Kontrolka DataGrid wyświetli wszystkie rekordy tabeli Zamowienia.
22. Zamknij okno przeglądarki internetowej.