| By Kevin Hoffman | Article Rating: |
|
| September 5, 2007 09:15 PM EDT | Reads: |
18,455 |
Kevin Hoffman's BlogI realize that it might be a little early to evaluate the overall experience of doing something like this on a piece of Alpha software, but, I figure if Microsoft is going to assault the developer community with so many betas, alphas, gammas, zetas, and whatever else they can find - its my right as a developer to try out every last one of those products, alpha or otherwise.
First off, it might be worth it to note that there is a Silverlight "Quick Start" for performing this task. The problem is that the Quick Start sucks. It actually tells you to go off and follow the directions for creating a basic ASP.NET Web Service - which is wrong. In order to do this, you need to create a POX service using Orcas, not a WSDL-spewing bloat machine like the default ASP.NET .asmx services.
The key to creating a POX service with Orcas are a couple of attributes that I only wish were available right now in non-Orcas web services. First, you need to decorate your code-behind Web Service class as such:
[System.Web.Script.
Services.
ScriptService]
Secondly, for each method that you want to be accessible to scripts, you need to configure that method appropriate. It needs the standard WebMethod attribute, but it can also take another one:
[ScriptMethod(UseHttpGet=true)]
This allows your method to be accessed by scripts (no envelopes, just POX), and also informs the web service factory handler that this method is available through HTTP GET requests. At this point, you're probably thinking, "Yay! I've got a POX service!" ... well, almost. Something else that I didn't find in the Quick Starts is that the HTTP POST and HTTP GET protocols are not enabled by ASP.NET web services by default, you have to enable them in your web.config file with the following XML:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
Now you actually have a POX service that is capable of returning some useful data to your AJAX scripts or, more currently, to your Silverlight Application.
I'll spare you the gorey details of creating the Silverlight application, and creating the ASP.NET "Silverlight link" that will copy the output files of your Silverlight app into your ASP.NET app for building, and just show you the code that I used to consume a simple POX data service method that returns a string. The output of the string is, in typical 'hello world' fashion, used to modify the contents of a TextBlock control:
public void HandleClick(object o, EventArgs e)
{
BrowserHttpWebRequest req = new Browser
HttpWebRequest(new Uri(
"http://localhost/silverdata/dataservice.
asmx/GetData?input=test"));
HttpWebResponse response = req.GetResponse();
StreamReader responseReader = new
StreamReader(response.GetResponseStream());
string rawResponse = responseReader.
ReadToEnd();
Debug.WriteLine(rawResponse);
XmlReader xr = XmlReader.Create(new
StringReader(rawResponse));
xr.ReadToFollowing("string");
xr.Read();
labelText.Text = xr.Value;
}
So with all this in place, you can now create your XAML and have something like MouseLeftButtonUp (remember that you don't have Click (yet) in Silverlight..) invoke the POX service, get the data, and then repopulate data elements dynamically at runtime.
The next step here is to obviously do the call to the web service asynchronously (which is entirely possible, and actually pretty easy). I think the next thing I'm going to do as an experiment is to have the code in the Silverlight app modify an HTML element so that it changes to indicate that a data connection is being made in the background. Once the data is retrieved, the HTML element will be set back to normal and the data from the service will be used to populate some controls on the page. We'll see how that turns out :)
tags: orcas silverlight pox services wcf
links: digg this del.icio.us technorati reddit
Published September 5, 2007 Reads 18,455
Copyright © 2007 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Kevin Hoffman
Kevin Hoffman, editor-in-chief of SYS-CON's iPhone Developer's Journal, has been programming since he was 10 and has written everything from DOS shareware to n-tier, enterprise web applications in VB, C++, Delphi, and C. Hoffman is coauthor of Professional .NET Framework (Wrox Press) and co-author with Robert Foster of Microsoft SharePoint 2007 Development Unleashed. He authors The .NET Addict's Blog at .NET Developer's Journal.
![]() |
.NET News 06/04/07 12:42:10 PM EDT | |||
First off, it might be worth it to note that there is a Silverlight 'Quick Start' for performing this task. The problem is that the Quick Start sucks. It actually tells you to go off and follow the directions for creating a basic ASP.NET Web Service - which is wrong. In order to do this, you need to create a POX service using Orcas, not a WSDL-spewing bloat machine like the default ASP.NET .asmx services. |
||||
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- Confessions of a Ulitzer Addict
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Moving Your RIA Apps into the Cloud: Seven Challenges
- Adobe’s Aiming ColdFusion at Multiple Clouds
- Windows 7 – Microsoft’s First Step to the Cloud
- Ulitzer Provides a Powerful Social Journalism Platform
- Jill Tummler Singer, Deputy CIO of CIA, Keynotes at GovIT Expo
- Open Source Mobile Cloud Sync and Push Email
- Practical Approaches for Optimizing Website Performance
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- US Post Office Hops a Ride on NetSuite’s Cloud
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- WPF Controls by DevExpress
- Moving Your RIA Apps into the Cloud: Seven Challenges
- Building a Drag-and-Drop Shopping Cart with AJAX
- What Is AJAX?
- Google Maps! AJAX-Style Web Development Using ASP.NET
- Flashback to January 2006: Exclusive SYS-CON.TV Interviews on "OpenAjax Alliance" Announcement
- AJAXWorld Conference & Expo to Take Place October 2-4, 2006, at the Santa Clara Convention Center, California
- AJAX Sponsor Webcasts Are Now Available at AJAXWorld Website
- How and Why AJAX, Not Java, Became the Favored Technology for Rich Internet Applications
- "Real-World AJAX" One-Day Seminar Arrives in Silicon Valley
- AJAXWorld University Announces AJAX Developer Bootcamp
- AJAX Support In JadeLiquid WebRenderer v3.1
- Where Are RIA Technologies Headed in 2008?
- Struts Validations Framework Using AJAX






































