Vytváření služeb WCF pro ASP.NET AJAX

Microsoft ASP.NET AJAX umožňuje rychle vytvářet webové stránky, které obsahují bohaté uživatelské prostředí s responzivními a známými prvky uživatelského rozhraní. ASP.NET AJAX poskytuje knihovny klientských skriptů, které zahrnují technologie ECMAScript (JavaScript) pro různé prohlížeče a dynamické technologie HTML (DHTML) a integruje je se serverovou vývojovou platformou založenou na ASP.NET 2.0. Pomocí ASP.NET AJAX můžete zlepšit uživatelské prostředí a efektivitu webových aplikací.

ASP.NET AJAX se skládá z knihoven klientských skriptů a součástí serveru, které jsou integrované, aby poskytovaly robustní vývojovou architekturu. Přístup ke službě ze stránky ASP.NET: Jakmile je adresa URL služby přidána do ovládacího prvku správce skriptů ASP.NET na stránce, může se operace služby vyvolat pomocí kódu JavaScriptu, který vypadá přesně jako běžné volání funkce JavaScriptu.

Většina služeb WCF (Windows Communication Foundation) může být zpřístupněna jako služba kompatibilní se službou ASP.NET AJAX přidáním příslušného koncového bodu ASP.NET AJAX.

Pokud používáte Visual Studio, můžete použít předem vytvořenou šablonu pro služby WCF s podporou AJAX, která je k dispozici v dialogovém okně Přidat novou položku při práci s weby ASP.NET nebo webovými aplikacemi.

Pokud nepoužíváte šablony sady Visual Studio, můžete vytvořit koncový bod ASP.NET AJAX dvěma způsoby:

Webový programovací model popsaný v přehledu programovacího modelu WEBOVÉHO PROTOKOLU HTTP WCF lze použít se službami ASP.NET AJAX. Konkrétně:

  • WebGetAttribute Pomocí atributů můžete WebInvokeAttribute vybrat mezi příkazy HTTP GET a HTTP POST. Pokud se používá správně, může to výrazně zlepšit výkon vaší aplikace. Další informace najdete v tématu Postupy: Volba mezi požadavky HTTP POST a HTTP GET pro koncové body jazyka AJAX ASP.NET.

  • Pomocí vlastností ResponseFormat a ResponseFormat vlastností můžete službě místo výchozího formátu JSON (JavaScript Object Notation) vrátit data XML. To provedete s architekturou ASP.NET AJAX, což způsobí, že javascriptový klient obdrží objekt XML DOM.

    Upozorňující

    Aby tato operace fungovala, musí být typ obsahu nastaven na text/xml. Jinak javascriptový klient obdrží řetězec obsahující XML místo objektu XML DOM.

    Následuje příklad operace, která vrací data XML s nastaveným typem obsahu odpovídajícím způsobem:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • Pokud je vyžadována kompatibilita se službou ASP.NET AJAX, nelze u atributů WebGetAttribute měnit WebInvokeAttribute žádné další vlastnosti. Další aspekty webového programovacího modelu lze použít, pokud nejsou porušeny ASP.NET konvence volání AJAX.

Pokročilejší scénáře vyžadují několik dalších podrobností o podpoře AJAX ve WCF:

  • Pokud chcete zjistit, jak se data přenášejí mezi klientem stránky AJAX a službou WCF pomocí JavaScriptu, a podrobnosti o tom, jak se typy rozhraní .NET Framework mapují na typy JavaScriptu, najdete v tématu Podpora formátu JSON a jiných formátů přenosu dat.

  • Pokud chcete využívat ASP.NET funkce, například ověřování na základě adresy URL a přístup k informacím o ASP.NET relaci, můžete prostřednictvím konfigurace povolit režim kompatibility ASP.NET.

Koncové body AJAX ve WCF mohou být dokonce využity bez ASP.NET architektury AJAX. To vyžaduje pochopení architektury podpory jazyka AJAX ve WCF. Diskuzi o této architektuře naleznete v tématu WCF Web HTTP Programming Object Model. Vzorový kód demonstrující tento přístup najdete ve službě AJAX s kódem JSON a XML.

Viz také