HappyNet v1.2 description
Superbe projet réalisé en Silverlight 5.0 sous Visual Studio 2010 avec une architecture MVVM utilisant Prism. Je peux le dire maintenant, c'est un véritable joyaux que je vais tenter de mettre en oeuvre sur ma machine et tenter de voir de quoi il retourne.Requirements :
Au moment ou je tente d'explorer ce projet j'ai installé sur ma machine de dev :
Visual Studio 2010
Sivlerlight 5
Prims 4.1.0
Ce projet et ses sources se trouvent dans le Codeplex à l'adresse suivante :
http://happynet.codeplex.com/releases
http://happynet.codeplex.com/releases/view/96450
Démonstration en ligne :
http://silverlight.soat.fr/#Demonstrations
J'ai trouvé d'autre version de ce projet dans AllInOnSamples, trop ancienne Silverlight 3.0
Je suis donc assez content que l'auteur Cyril Cathala est réalisé un update de son magnifique projet.
Est-il facile à installer, à utiliser ?
On télécharge les sources dans une répertoire de travail et là au moment de cliquer sur la solution c'est la catastrophe !
Problèmes rencontrés dès le départ
Dans :\\HappyNet v1.2 - SL5 ref\HappyNet-SL5\_Install
Le fichier :
Install.txt parle de procédures stockées dans un répertoire : _Documentation qui n'existe pas dans la release ! et pourtant dans ce répertoire on a bien deux procédures stockées. Ce n'est donc pas encore perdu.
Il existe deux ensemble de librairies Prism dans :
\\HappyNet v1.2 - SL5 ref\HappyNet-SL5\_Assemblies\Prism
Et dans :
\\HappyNet v1.2 - SL5 ref\HappyNet-SL5\packages\Prism.4.1.0.0\lib\SL5
Prims aurait été installé comme NuGetPackage
Directives Using
Les directives using utilisent : Prism.composite ...using Microsoft.Practices.Composite.UnityExtensions;
using Microsoft.Practices.Composite.Modularity;
using Microsoft.Practices.Composite.Regions;using Microsoft.Practices.Composite.Presentation.Regions;
using Microsoft.Practices.Composite.Events;
On va les remplacer dans tout le projet par :
using Microsoft.Practices.Prism.UnityExtensions;
using Microsoft.Practices.Prism.Modularity;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.Events;
Les "XML Name Space" xmlns: dans les fichiers .xaml
Je trouve que bien souvent c'est le plus dur et que malgré l'intellisence modifier les names spaces dans les fichiers xaml c'est toujours délicat.Donc voici ce que j'ai fais :
Dans \\HappyNet v1.2 - SL5\HappyNet-SL5\ButtonStyles.xaml
Je remplace :
xmlns:Regions="clr-namespace:Microsoft.Practices.Composite.Presentation.Regions;assembly=Microsoft.Practices.Composite.Presentation"
xmlns:cal="clr-namespace:Microsoft.Practices.Composite.Presentation.Commands;assembly=Microsoft.Practices.Composite.Presentation"
Par :
xmlns:Regions="clr-namespace:Microsoft.Practices.Prism.Regions;assembly=Microsoft.Practices.Prism"
xmlns:cal="clr-namespace:Microsoft.Practices.Prism.Commands;assembly=Microsoft.Practices.Prism"
Certains projets utilisent encore Silverlight 4.0
Dans le fichier :
\\HappyNet v1.2 - SL5 ref\HappyNet-SL5\Client\Core\Soat.HappyNet.Silverlight.DataContract\Soat.HappyNet.Silverlight.DataContract.csproj
On trouve :
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Que l'on va remplacer par :
<TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
Lancer l'exécution du projet HappyNet v1.2
On arrive maintenant à compiler, on se dit que cela y est et on lance une exécution et bien sûr c'est la catastrophe ! Il reste deux ou trois petite chose avant de lancer une exécution ...
Configuration du serveur IIS
Il me semble que j'ai créé un répertoire virtuel ... ?
Propriétés du projet \\HappyNet v1.2 - SL5\HappyNet-SL5\Web\Soat.HappyNet.WebSite\Soat.HappyNet.WebSite |
Il me semble bien avoir cliqué sur le bouton "Create Virtual Directory" ...
L'application Web qui Host le Silverlight ne charge pas le .xap
Encore une autre erreur : le site Web c'est à dire l'application web qui host le silverlight :\\HappyNet v1.2 - SL5\HappyNet-SL5\Web\Soat.HappyNet.WebSite\ClientBinSoat.HappyNet.Silverlight.xap
N'est pas foutue de charger le .xap ...
Solution :
Démarrer->Tous les programmes->Outils d'administration->Gestionnaire des services Internet (IIS) :
Répertoire vituel host de l'application Silverlight : HappyNet |
Cochez la case Authentification Windows intégrée ... |
Soat.HappyNet.Silverlight.xap se charge dans l'internet explorer
CommunicationException publier un fichier de stratégie |
De quoi s'agit-il ? Avec Silverlight on aura pris l'habitude de découvrir le fameux fichier :
C:\Inetpub\wwwroot\clientaccesspolicy.xml
Et son contenu :
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Sans quoi rien ne fonctionne ...
Enfin la fenêtre principale de l'application apparaît
file:///E:/HappyNet%20v1.2%20-%20SL5/HappyNet-SL5/Client/Core/Soat.HappyNet.Silverlight/Bin/Debug/TestPage.html#homeExécution en mode debug de l'application Silverlight Hostée par une appilcation Web : HappyNet v1.2 |
HappyNet v1.2 onglet Boutique |
Détail de cette Exception Générale :
Et oui ! Je n'ai pas encore installé la SQL Server DataBase AdventureWorks for SQL Server 2008 que l'on peut d'ailleurs trouver ici :
http://msftdbprodsamples.codeplex.com/releases/view/37109
Tout n'est pas encore gagné ...
Conclusion
Trouvez-vous que Silverlight for Web c'est vraiment Happy ?Maintenant que je suis rassuré par l'exécution de ce projet, je souhaite le découvrir plus avant le code source mais certaines choses m'étonnent ...
Et je le crois, m'étonneront toujours. Notamment tout le code source présent dans le projet Soat.HappyNet.Silverlight :
Par exemple :
\\HappyNet v1.2 - SL5\HappyNet-SL5\Client\Core\Soat.HappyNet.Silverlight.Library\Commands\DelegateCommand.cs
Ou bien dans :
E:\HappyNet v1.2 - SL5\HappyNet-SL5\Client\Core\Soat.HappyNet.Silverlight.Library\Behaviors\DataStateBehavior.cs
Avec son entête :
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Permissive License.
// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
// All other rights reserved.
// http://expressionblend.codeplex.com/
Mais son name space :
namespace Soat.HappyNet.Silverlight.Library.Behaviors
A t-on vraiment besoin de tout ce code pour faire fonctionner une simple application Silverlight ?
HappyNet v1.2 Silverlight with Prism Mais qu'est ce que c'est que tout ce code ? |
http://www.microsoft.com/en-us/sharedsource/default.aspx
Il semble bien que certaines choses et certains mystères de Silverlight soit réservés à ceux qui sont initiés ...
Aucun commentaire:
Enregistrer un commentaire
Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.