Seit Silverlight 2.0 gibt es die Möglichkeit auch Cross Domain aufrufe durchzuführen. Damitg kann man aus einer SL Anwendung auch Websites aufrufen die auf einer anderen Domain liegen, z.B. den RSS Feed des ASP.NET professional Magazines unter der url www.aspnet-professional.de
Dafür haben wir auf der Domain im Root Verzeichnis die Datei crossdomain.xml mit folgenden Inhalt angelegt
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Damit sollten nn auch andere Cross Domain Calls z.B. aus Flash möglich sein.
Im .NET Code verwende ich einfach die WebClient Klasse
Dim req As WebClient = New WebClient()
AddHandler req.DownloadStringCompleted, AddressOf rssCallback
req.DownloadStringAsync(New Uri(“http://www.aspnet-professional.de/newsrss.aspx”, UriKind.Absolute))
In der Callback Funktion werden dann die empfangenen Daten einfach einer Silverlight Textbox zugewiesen.
Private Sub rssCallback(ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs)
If e.Error Is Nothing Then
feedContent.Text = e.Result
Else
feedContent.Text = e.Error.InnerException.Message
End If
End Sub
Zugegebenermaßen noch stark verbesserungswürdig, aber zu Datenbindung komme ich im nächsten Blog posting.