Tworzenie usług WCF w technologii AJAX na platformie ASP.NET

Platforma Microsoft ASP.NET AJAX umożliwia szybkie tworzenie stron sieci Web zawierających rozbudowane środowisko użytkownika z dynamicznymi i znanymi elementami interfejsu użytkownika. ASP.NET AJAX udostępnia biblioteki skryptów klienta, które zawierają między przeglądarkami technologie ECMAScript (JavaScript) i dynamiczne technologie HTML (DHTML) oraz integrują je z platformą deweloperów opartą na serwerze ASP.NET 2.0. Korzystając z ASP.NET AJAX, możesz poprawić środowisko użytkownika i wydajność aplikacji internetowych.

ASP.NET AJAX składa się z bibliotek skryptów klienta i składników serwera, które są zintegrowane w celu zapewnienia niezawodnej struktury programistycznej. Aby uzyskać dostęp do usługi ze strony ASP.NET: po dodaniu adresu URL usługi do kontrolki ASP.NET Script Manager na stronie operacje usługi mogą być wywoływane przy użyciu kodu JavaScript, który wygląda dokładnie tak jak zwykłe wywołanie funkcji JavaScript.

Większość usług Windows Communication Foundation (WCF) może być uwidoczniona jako usługa zgodna z ASP.NET AJAX przez dodanie odpowiedniego punktu końcowego AJAX ASP.NET.

Jeśli używasz programu Visual Studio, możesz użyć wstępnie utworzonego szablonu dla usług WCF z obsługą technologii AJAX, dostępnego w oknie dialogowym Dodawanie nowego elementu podczas pracy z witrynami sieci Web lub aplikacjami internetowymi ASP.NET.

Jeśli nie używasz szablonów programu Visual Studio, istnieją dwa sposoby tworzenia punktu końcowego ASP.NET AJAX:

Model programowania sieci Web opisany w artykule Omówienie modelu programowania HTTP sieci Web WCF może być używany z usługami ASP.NET AJAX. Szczególnie:

  • Możesz użyć WebGetAttribute atrybutów i WebInvokeAttribute , aby wybrać między czasownikami HTTP GET i HTTP POST. W przypadku poprawnego użycia może to znacząco poprawić wydajność aplikacji. Aby uzyskać więcej informacji, zobacz How to: Choose between HTTP POST and HTTP GET requests for ASP.NET AJAX Endpoints (Instrukcje: wybieranie między żądaniami HTTP POST i HTTP GET dla punktów końcowych AJAX ASP.NET).

  • Właściwości i ResponseFormat umożliwiają ResponseFormat usłudze zwracanie danych XML zamiast domyślnej notacji obiektów JavaScript (JSON). Wykonanie tej czynności za pomocą platformy ASP.NET AJAX powoduje, że klient JavaScript odbiera obiekt DOM XML.

    Ostrzeżenie

    Operacja musi ustawić typ zawartości na tekst/xml, aby to działało. W przeciwnym razie klient JavaScript otrzyma ciąg zawierający kod XML zamiast obiektu DOM XML.

    Poniżej przedstawiono przykład operacji, która odpowiednio zwraca dane XML z ustawionym typem zawartości:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • Nie można zmienić żadnych innych właściwości WebGetAttribute atrybutów i WebInvokeAttribute , jeśli wymagana jest zgodność z ASP.NET AJAX. Inne aspekty modelu programowania sieci Web mogą być używane, o ile konwencje wywoływania AJAX ASP.NET nie są naruszane.

Bardziej zaawansowane scenariusze wymagają zrozumienia dodatkowych szczegółów obsługi AJAX w programie WCF:

  • Aby dowiedzieć się, jak dane są przesyłane między klientem strony AJAX i usługą WCF przy użyciu języka JavaScript, oraz aby uzyskać szczegółowe informacje na temat sposobu mapowania typów programu .NET Framework na typy języka JavaScript, zobacz Obsługa formatu JSON i innych formatów transferu danych.

  • Aby korzystać z funkcji ASP.NET, na przykład uwierzytelniania opartego na adresach URL i uzyskiwania dostępu do informacji o sesji ASP.NET, możesz włączyć tryb zgodności ASP.NET za pomocą konfiguracji.

Punkty końcowe AJAX w programie WCF mogą być nawet używane bez platformy ASP.NET AJAX. Wymaga to zrozumienia architektury obsługi technologii AJAX w programie WCF. Aby zapoznać się z omówieniem tej architektury, zobacz WCF Web HTTP Programming Object Model (Model obiektów programowania HTTP w sieci Web WCF). Aby zapoznać się z przykładem kodu demonstrującymi to podejście, zobacz usługę AJAX z kodami JSON i XML.

Zobacz też