ASP.NET AJAX için WCF Hizmetleri Oluşturma
Microsoft ASP.NET AJAX, hızlı yanıt veren ve tanıdık kullanıcı arabirimi öğeleriyle zengin bir kullanıcı deneyimi içeren Web sayfalarını hızla oluşturmanıza olanak tanır. ASP.NET AJAX, tarayıcılar arası ECMAScript (JavaScript) ve dinamik HTML (DHTML) teknolojilerini içeren istemci betik kitaplıkları sağlar ve bunları ASP.NET 2.0 sunucu tabanlı geliştirme platformuyla tümleştirir. ASP.NET AJAX kullanarak, web uygulamalarınızın kullanıcı deneyimini ve verimliliğini geliştirebilirsiniz.
ASP.NET AJAX, sağlam bir geliştirme çerçevesi sağlamak için tümleştirilmiş istemci betik kitaplıklarından ve sunucu bileşenlerinden oluşur. ASP.NET sayfasından bir hizmete erişmek için: Hizmet URL'si sayfadaki ASP.NET Betik Yöneticisi denetimine eklendikten sonra, hizmet işlemleri normal bir JavaScript işlev çağrısına benzeyen JavaScript kodu kullanılarak çağrılabilir.
Çoğu Windows Communication Foundation (WCF) hizmeti, uygun bir ASP.NET AJAX uç noktası eklenerek ASP.NET AJAX ile uyumlu bir hizmet olarak kullanıma sunılabilir.
Visual Studio kullanıyorsanız, ASP.NET Web Siteleri veya Web Uygulamaları ile çalışırken Yeni Öğe Ekle iletişim kutusunda bulunan AJAX özellikli WCF hizmetleri için önceden oluşturulmuş bir şablon kullanabilirsiniz.
Visual Studio şablonlarını kullanmıyorsanız, ASP.NET AJAX uç noktası oluşturmanın iki yolu vardır:
Herhangi bir yapılandırma kullanmadan dinamik ana bilgisayar etkinleştirmesini kullanarak uç noktayı oluşturun. WCF yapılandırma sistemini bilmiyorsanız bu en temel yaklaşımdır. Daha fazla bilgi için bkz . Nasıl yapılır: Yapılandırma Kullanmadan ASP.NET AJAX Uç Noktası Ekleme.
Yapılandırmayı kullanarak WCF hizmetine AJAX özellikli bir uç nokta ekleyin. Daha fazla bilgi için bkz . Nasıl yapılır: ASP.NET AJAX Uç Noktası Eklemek için Yapılandırmayı Kullanma.
WCF Web HTTP Programlama Modeline Genel Bakış bölümünde açıklanan Web Programlama Modeli, ASP.NET AJAX hizmetleriyle kullanılabilir. Özellikle:
HTTP GET ve HTTP POST fiilleri arasında seçim yapmak için ve WebInvokeAttribute özniteliklerini kullanabilirsinizWebGetAttribute. Doğru kullanıldığında, bu durum uygulamanızın performansını önemli ölçüde artırabilir. Daha fazla bilgi için bkz . Nasıl yapılır: ASP.NET AJAX Uç Noktaları için HTTP POST ve HTTP GET istekleri arasında seçim yapma.
ve ResponseFormat özelliklerini kullanarak ResponseFormat hizmetinizin varsayılan JavaScript Nesne Gösterimi (JSON) yerine XML verilerini döndürmesine neden olabilirsiniz. Bunu ASP.NET AJAX çerçevesiyle yapmak JavaScript istemcisinin bir XML DOM nesnesi almasına neden olur.
Uyarı
bunun çalışması için işleminizin içerik türünü text/xml olarak ayarlaması gerekir. Aksi takdirde, JavaScript istemcisi XML DOM nesnesi yerine XML içeren bir dize alır.
aşağıda, içerik türü uygun şekilde ayarlanmış XML verilerini döndüren bir işlem örneği verilmiştir:
[OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)] public XElement GetData() { XElement x; //Get some data here... WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"; return x; }
ASP.NET AJAX ile uyumluluk gerekiyorsa ve WebInvokeAttribute özniteliklerindeki başka hiçbir özellik WebGetAttribute değiştirilemez. ASP.NET AJAX çağrı kuralları ihlal edilmediği sürece Web Programlama Modeli'nin diğer yönleri kullanılabilir.
Daha gelişmiş senaryolar için WCF'deki AJAX desteğinin bazı ek ayrıntılarının anlaşılması gerekir:
JavaScript kullanarak AJAX sayfa istemcisi ile WCF hizmeti arasında verilerin nasıl aktarıldığını anlamak ve .NET Framework türlerinin JavaScript türleriyle nasıl eşlendiğinden ayrıntılı bilgi için bkz . JSON ve Diğer Veri Aktarım Biçimleri desteği.
URL tabanlı kimlik doğrulaması ve ASP.NET oturum bilgilerine erişme gibi ASP.NET özelliklerden yararlanmak için yapılandırma aracılığıyla ASP.NET Uyumluluk Modu'nu etkinleştirmek isteyebilirsiniz.
WCF'deki AJAX uç noktaları, ASP.NET AJAX çerçevesi olmadan bile kullanılabilir. Bunu yapmak için WCF'de AJAX desteğinin destek mimarisinin anlaşılması gerekir. Bu mimarinin bir tartışması için bkz . WCF Web HTTP Programlama Nesne Modeli. Bu yaklaşımı gösteren bir kod örneği için bkz . JSON ve XML ile AJAX Hizmeti.