Wiki


Wiki Table of Contents

Tags

Page Details

Published by:
This page has not yet been rated

Silverlight Tip of the Day #42: How to Create a Web Service for your Silverlight App

Filed under: [Edit Tags]

Web services ( Những dịch vụ web) đa phần là những API’s (Application programming interface: giao diện lập trình ứng dụng) mà có thể được truy cập trên một mạng như là Internet. Do vấn đề bảo mật Silverlight hạn chế nhiều tính năng  quan trọng như là lưu vào đĩa. Tuy nhiện, bạn có thể lấy được những tính năng hạn chế này bằng cách thực hiện gọi web services thay vì thực hiện những tính năng này.

Bài Tip of the Day  này  sẽ hướng dẫn bạn thông qua  từng bước bằng cách nào tạo một  web service trong trang web của bạn và tôi sẽ hiển thị cho bạn thấy làm cách nào để tham khảo và thực hiện gọi  API’s  trong các  web service đó.

Bước 1. Tạo một ứng dụng Silverlight Application Project sử dụng Visual Studio 2008. (Hãy xem  Tip of the Day #2 để xem chi tiết).

Bước 2. Thêm một Web Service vào Web Site của bạn.

  • Trong cửa sổ  Solution Explorer của bạn , click chuột phải lên nút  Web Site , chọn  Add-> New Item…
  • Có 3 mẫu  cung cấp các chức năng cho  Web Service :
    • Silverlight-enabled WCF Service.
    • WCF Service
    • Web Service.

Chọn “Silverlight-enabled WCF Service”  vì nó hỗ trợ cụ thể cho Silverlight mà chúng ta sẽ khảo sát trong Tip of the Day tiếp theo của chúng ta.

  • Thay đổi tên cho giống như “MyService.asmx” và click vào nút  “Add”.

 

image

Bước 3. Thêm một  Service Reference

  • Rebuild lại  Solution của bạn (Ctrl+Shift+B). Nếu bạn chuyển sang bước kế tiếp mà không rebuild  bạn sẽ gặp hộp thoại sau:

image

  • Trong cửa sổ solution explorer, click chuột phải lên nút Silverlight Application và chọn  “Add Service Reference…”.
  • Tiếp ngay sau sẽ xuất hiện hộp thoại là “Add Service Reference”. Click vào nút  “Discover” để tìm web service của bạn.
  • Thay đổi Namespace thành bất cứ gì bạn muốn cho reference này và click vào nút “OK”.

image

Vào lúc này , bạn đã thiết lập được web service của mình được tham khảo một cách thích đáng từ ứng dụng Silverlight  của bạn.

Bước  4.  Thực hiện gọi từ ứng dụng Silverlight của bạn vào  web service của bạn.

  • Trong cửa sổ  Solution Explorer , từ trang web của bạn mở ra MyService1.svc. Mặc định sẽ có một phương thức được gọi là DoWork(). Điều này chưa làm nhiều, vì vậy hãy thêm một hàm mới gọi là HelloWorld() mà nó sẽ trả về một chuỗi kí tự (string). Thực hiện chắc chắn bao gồm  thuộc tính  [OperationContract] để cho phương thức này được hiển thị:
[OperationContract]
public string HelloWorld()
{
    // Add your operation implementation here
    return "Hello World";
}
  • Trong ứng dụng  Silverlight application project  của bạn phía dưới Service References, click chuột phải lên ServiceReference1 và chọn  “Update Service Reference”.

image

  • Tiếp theo, hãy thực hiện gọi từ ứng dụng  Silverlight của chúng ta đến hàm HelloWorld() này. Đoạn code sau nằm trong trang Page.xaml.cs hiển thị cho bạn thấy bằng cách nào tạo một cuộc gọi bất đồng bộ đến HelloWorld().
public partial class Page : UserControl
{
    public Page()
    {
        InitializeComponent();
 
        ServiceReference1.MyService1Client client = new SilverlightApplication9.ServiceReference1.MyService1Client();
 
        client.HelloWorldCompleted += new EventHandler<SilverlightApplication9.ServiceReference1.HelloWorldCompletedEventArgs>(client_HelloWorldCompleted);
 
        client.HelloWorldAsync();
        
    }
 
    void client_HelloWorldCompleted(object sender, SilverlightApplication9.ServiceReference1.HelloWorldCompletedEventArgs e)
    {
        string message = e.Result;
    }
}

Lưu ý là tất cả các phương thức gọi web service đều được thực hiện một cách bất đồng bộ.

Thank you,
--Mike Snow

Recent Comments

Leave the first comment for this page.