XBAP + WebService .NET 2.0
Par Thierry Thoua,
mercredi, octobre 17 2007.
Lien permanent
WPF
Xbap est magique. Il permet de lancer une application sur le poste client sans installer l'application. Je dirais que c'est un clone de l'applet Java mais en WPF. J'étais donc plein de rêves, envies,... Certes, l'application s'exécute dans une sandbox (on accède donc pas au contenu fichier du pc sur lequel on lance l'application)... Mais cela ne me dérangeait pas pour les applications qui pouvaient reposer sur ce modèle. En effet, je me disais qu'il était possible de faire passer beaucoup de choses via WCF. Et la ce fut le clash ..... En effet, XBAP ne supporte pas le wcf ... Mais ma déception ne s'arrête pas la ... En effet, il impossible de lancer une application XBAP dans firefox ... RE déception !!!!. Mais ... la bonne nouvelle ! Microsoft prévoit d'implémenter une partie de WCF (BasicHttpBinding) et le support de Firefox dans .Net 3.5. (un peu tard et pas suffisant a mon goût ;-). Mais ce post n'est pas là pour vous dire XBAP .... C'est nul etc ... Nous loin de la ... Si on fait abstraction de tous ces problèmes, XBAP est réellement sympa. Ce post explique comment supporter les webservices .NET 2.0 dans xbap !
En effet, il suffit simplement de créer un bon vieux web service SOAP en .net 2.0. Nous créons une librairie .net 2.0 pour faire facade et nous pouvons l'attaquer dans notre application XBAP.
[csharp]
internal static class FacadeWebService
{
public static localhost.Service Instance
{
get
{
if (null == m_instance)
{
m_instance = new DaoFacade.localhost.Service();
m_instance.CookieContainer = new CookieContainer();
}
return m_instance;
}
}
private static localhost.Service m_instance;
}
public class TestClass
{
public string Text
{
get
{
try
{
localhost.Service service = FacadeWebService.Instance;
return service.HelloWorld();
}
catch (Exception ex)
{
return null;
}
}
}
}
Mais cela ne suffit pas. En effet, il faut modifier les permissions et ajouter "Unrestricted" à "True" pour que l'application XBAP ne provoque plus d'exceptions lorsque l'on accèdera au webservice.
[xml]
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true"/>
</applicationRequestMinimum>
2 réactions
1 De onesolo - 03/02/2008, 17:32
Salut, je suis développeur dotnet en c# et je m'intéresse au couple XBAP + WCF,
J’ai suivie les conseils de l'article et ajouter "Unrestricted" à "True», lorsque j'exécute mon application XBAP depuis VS2008 l'accès au service se fait bien mais lorsque je publie l'application sur IIS et que je l’appel depuis IE alors j'ai une exception sur « System.Net.WebPermission » aurais tu une idée sur le pourquoi du comment de cette erreur ?
merci
PS:j'aime bien ton blog ,je l'ai ajouté à mes favories :-)
2 De MR_X - 25/03/2008, 09:52
Bonjour,
petite remarque concernant le XBAP que j'ai pu tester pour mon entreprise. Je suis désolé de te dire ca, mais si tu n'a pas besoin de d'installer l'application xbap sur le client, néamoins tu dois installer le framework dot net sur celui-ci. Deplus comme l'execution est du coté client, l'application est donc télécharger chez le client. Je trouve le XBAP un peu lourd un peu trop limité, en bref pas professionnel. Il convient trés bien pour des site web de particuliers, ou dans le but de montré sur le net les capacités de WPF en termes d'IHM.
Voila, a bientot.