SlideShare une entreprise Scribd logo
1  sur  43
2
Industrialiser le
développement avec
Silverlight 4 et RIA Services
Mercredi 9 Février
Jean-Luc Boucho
Architecte Solutions
Winwise
Arnaud Auroux
Consultant
Access it IDF
3
L’expert de référence !
Société d’expertise sur les technologies Microsoft
Partenaire historique et stratégique de Microsoft
Plus de 90 collaborateurs certifiés interviennent sur des missions à forte valeur
ajoutée :
Missions d’expertise
Conseil & Audit
Réalisation de projets à engagement de résultats
Une offre couvrant l’ensemble du cycle de vie des applications :
Travail collaboratif, portail d’entreprise et Workflow
Business Intelligence & Data Management
Interfaces utilisateurs, Rich Internet Application & desktop application
Architecture d’entreprise et Architecture Life cycle Management
Infrastructure, Sécurité et Réseaux
Centre de formation et de Certification Microsoft
WINWISE est le pôle d’expertise MICROSOFT du Groupe ALTEN et bénéficie de
la puissance financière d’un leader incontesté
WINWISE 130/136 Rue de Silly 92100 Boulogne-Billancourt www.winwise.com
4
Access It IdF en quelques mots…
• Société de services, conseil / expertise, et formation,
exclusivement sur les technologies Microsoft
• 20+ collaborateurs spécialisés sur les techno MS, dont 11 MVP
• Interventions en mode :
 Conseil, expertise, coaching et formation
 Réalisation, au forfait ou en Assistance Technique
.NET Plateforme Applicative
Framework et langages
.Net, AZURE, Silverlight,
WPF/Surface, VS/TFS,
Windows Phone 7,…
SQL Server (SSIS, SQL,
SSAS, SSRS), PowerPivot,
SharePoint & on-line,
Office 365,…
.NET Collab.
BI
5
Agenda
Présentation
WCF RIA Services
Développement rapide d’applications
Industrialisation
Patterns
Persistance, Domaine, Opérations
Approche MVVM
Authentification et autorisation
Testabilité
6
Problématiques RIA
Couche de
présentation
Couche métier
Application cliente Service
Couche métier
Couche
d’accès aux
données
Base de
données
Coût de mise en place important
Autorisations
Accès concurrentiels
Duplication de la logique métier
7
Couche de
présentation
RIA
Couche métier
Couche d’accès
aux données
Base de
données
Simplifier la communication afin que le métier devienne le centre d’intérêt.
WCF RIA Services
Côté client
Contrôles spécifiques
Contexte de donnée
« Tracking » d’objets
Côté serveur
WCF
Validations
Accès aux données
Sécurité
Notion de domaine : opérations + entités + validations
8
Démo
WCF RIA Services
9
Serveur Création du
modèle d’entité
Création du
Domain Service
Création des
requêtes
Ajout des
métadonnées
Client Utilisation du
DomainContext
Utilisation des
requêtes
générées
DataBinding SubmitChanges
Développement rapide
d’applications
Dépendance à la technologie de persistance des données
Rigidité de la structure
10
Séparer les responsabilités
« Déployer des pratiques pour améliorer la productivité et la
robustesse des applications tout en restant dans des délais et
des coûts maîtrisés »
Industrialisation
11
Patterns d’industrialisation
Repository
Unit Of Work
Dependency Injection
MVVM (Model View View-Model)
Unit Testing
…et aussi : AOP (Aspect-Oriented Programming)
12
Industrialiser la persistance
Principes
Isoler la persistance dans un repository pour la découpler du service de
domaine
Accès au repository via une interface IRepository
Générique, supportant les opérations CRUD standards pour
accélérer le développement
Extensible, pour définir des opérations spécifiques supplémentaires
Un repository : LinqToEntitiesRepository<TContext> pour supporter
EntityFramework (TContext correspond au modèle)
Implémentation
de la persistance
(LinqToEntities…)
IRepositoryDomaine
Entité
Métier
Data
Source
Industrialiser la persistance
new LinqToEntitiesRepository<NorthwindEntities>();
IRepository, LinqToEntitiesRepository<TContext>
14
Démo
Industrialiser la persistance
15
Industrialiser le domaine
Principes
Définir une classe de base : RepositoryDomainService pour
Accéder au IRepository depuis le domaine
Bénéficier des opérations standard (CRUD)
Valider les lots de modifications (Transaction)
Redéfinir si nécessaire les opérations dans le domaine
RepositoryDomaine
Entité
Métier
Présentation
Entité
Métier
Industrialiser le domaine
RepositoryDomainService
Industrialiser le domaine
[EnableClientAccess()]
[EntityDomainServiceDescriptionProvider(typeof(NorthwindEntities))]
[EntityDomain(typeof(Customers), EntityDomainOperations.All)]
[EntityDomain(typeof(Regions), EntityDomainOperations.Query)]
...
public class NorthwindService : RepositoryDomainService
{
public void DeleteCustomers(Customers customer)
{
base.Repository.Delete<Customers>(customer);
}
}
NorthwindService
EntityDomainServiceDescriptionProvider : description du modèle
EntityDomain : opérations CRUD autorisées pour chaque entité
IRepository : persistance du modèle
18
Industrialiser le domaine
Instanciation du service de domaine
Par défaut, le service est instanciée par RIA Services
C’est insuffisant : il faut configurer le repository à utiliser
Solution :
Extensibilité du DomainServiceFactory
Unity pour injecter le service de domaine dans RIA Services
Industrialiser le domaine
DomainServiceFactory
public class DomainServiceFactory : IDomainServiceFactory
{
public DomainService CreateDomainService(
Type domainServiceType, DomainServiceContext context)
{
DomainService domainService = UnityHelper.UnityContainer
.Resolve(domainServiceType) as DomainService;
domainService.Initialize(context);
return domainService;
}
Application Web Northwind (Global.asax.cs)
protected void Application_Start(object sender, EventArgs e)
{
UnityHelper.UnityContainer.RegisterType<NorthwindService>(
new InjectionProperty("Repository",
typeof(LinqToEntitiesRepository<NorthwindEntities>)));
DomainService.Factory = new DomainServiceFactory();
}
20
Démo
Industrialiser le domaine
Gestion des opérations
Gestion des opérations
Implémentation
EntityFramework
23
Démo
Gestion des opérations
24
Du service vers le client
Génération du contexte client
…
public sealed partial class
NorthwindContext : DomainContext
{
…
}
…
DomainService
DescriptionProvider
GetDescription
…
Invocation des opérations
DomaineContext.Load(EntityQuery)
DomaineContext.SubmitChanges
DomainService
Description
GetInvokeOperation
…
25
Approche MVVM
VIEW
Controls
Layout
Actions
Triggers
DataBindings
VIEWMODEL
Commandes
Opérations
Propriétés
MODEL
Données
Règles métier
26
Approche MVVM
VIEW
Controls
Layout
Actions
Triggers
DataBindings
VIEWMODEL
Commandes
Opérations
MODEL
Entités
Validateurs
Proxy généré
DomainContext
EntitySets
RIA Services 1.0
DOMAINSERVICE
DomainOperations
27
Approche MVVM
VIEW
Controls
Layout
Actions
Triggers
DataBindings
VIEWMODEL
Commandes
Opérations
Propriétés
MODEL
Entités
Validateurs
Proxy généré
SP1 beta
DataService
GetData
PersitData
EntityList
DomainContext
EntitySets
DOMAIN
SERVICE
28
Démo
Approche MVVM
29
Sécurité - Serveur
Classe AuthenticationBase et attribut
RequireAuthentication
Attribut RequireRole
Infrastructure ASP.NET
Intégration au processus « Query / Submit »
Sécurité - Serveur
RIA Services fournit un service remplissant toutes les
fonctionnalités d’authentification
Le paramétrage de la sécurité s’effectue de manière
classique dans le fichier Web.config
<roleManager enabled="true" />
<authentication mode="Forms" >
<forms name=".SimpleRIA_ASPXAUTH" />
</authentication>
...
[EnableClientAccess]
public class AuthenticationService : AuthenticationBase<User>
{ }
Sécurité - Serveur
Pour les opérations implémentées dans le domaine par
codage, utiliser les attributs RIA Services :
Pour les opérations CRUD standards, utiliser l’attribut
EntityDomainAttribute :
[EntityDomain(typeof(Customers),
Operations = EntityDomainOperations.All,
RequiresAuthentication = EntityDomainOperations.All,
QueryRequiresRole = new []{"StdUser"},
InsertRequiresRole = new []{"Admin"},
UpdateRequiresRole = new []{"Admin"},
DeleteRequiresRole = new []{"Admin"})
]
[RequiresAuthentication]
[RequiresRole("Admin")]
32
Sécurité - Client
Classe WebAuthenticationService
Point d’entrée du processus d’authentification.
Classe FormsAuthentication et WindowsAuthentication
Processus d’authentification spécialisés.
Classe AuthenticationDomainContextBase
Accès client au service d’authentification.
Interfaces IIdentity et IPrincipal
Visibility, pattern ICommand
Sécurité - Client
Propriété
public bool CanDeleteCustomer
{
get
{
return this.DomainAuthService
.CanDeleteCustomer;
}
}
Command (CanExecute)
ICommand deleteCustomerCommand =
new RelayCommand<Customer>(
this.DeleteCustomer,
c => this.CanDeleteCustomer
));
Utilisation dans un ViewModel
Service dédié
public class DomainAuthService
{
public bool CanDeleteCustomer
{
get
{
return WebContext.Current.User.IsInRole("Admin");
}
}
}
Sécurité - Client
Gestion déclarative (pour les cas particuliers)
AuthorizationSamples (http://code.msdn.microsoft.com/RiaServices)
<Button s:Authorization.RequiresRole="Admin,CustomerManager"/>
Inclure au contexte les règles définies côté service
CodeGeneratorTextTemplate (toolkit sp1)
[DomainServiceClientCodeGenerator(typeof(CodeGenerator), "C#")]
public class CodeGenerator : CSharpClientCodeGenerator
{
protected override DomainContextGenerator DomainContextGenerator
{
get
{
return new AuthorizationCodeGenerator();
}
}
}
Génération personnalisée
du DomainContext client
35
Démo
Sécurité
Testabilité
DomainService
Implémentation d’un repository de base
pour les tests
Définition d’un repository spécifique
à chaque contexte.
Configuration du conteneur IOC pour
l’utilisation du repository spécifique de
test.
37
Démo
Testabilité – DomainService
Testabilité
DomainContext
Implémentation d’un DomainClient de
base pour les tests.
Définition d’un DomainClient
spécifique à chaque contexte.
Configuration du conteneur IOC pour
l’utilisation du DomainClient spécifique
de test.
39
Démo
Testabilité – DomainContext
40
Conclusion
RIA Services
Adaptée au model RAD.
Souple
Extensible
Donc adaptée aux applications d’entreprise
41
Références
Téléchargements
http://www.silverlight.net/getstarted/riaservices/
WCF Ria Services Code Gallery
http://code.msdn.microsoft.com/RiaServices
Kyle McClellan
http://blogs.msdn.com/b/kylemc/
Colin Blair
http://www.riaservicesblog.net/Blog/
Jeff Handley
http://jeffhandley.com/
Brad Abrams
http://blogs.msdn.com/b/brada/
42
MSDN et TechNet : l’essentiel
des ressources techniques à portée de clic
http://technet.com http://msdn.com
Portail administration et
infrastructure pour
informaticiens
Portail de ressources
technique pour
développeurs
Industrialiser le développement avec silverlight 4 et wcf ria services

Contenu connexe

Tendances

Econocom aux Techdays de Microsoft. Retours d'expérience sur le Cloud
Econocom aux Techdays de Microsoft. Retours d'expérience sur le CloudEconocom aux Techdays de Microsoft. Retours d'expérience sur le Cloud
Econocom aux Techdays de Microsoft. Retours d'expérience sur le CloudYvain Abeilles
 
M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...
M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...
M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...CERTyou Formation
 
Administration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiantAdministration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiantMicrosoft Technet France
 
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Microsoft Technet France
 
Vsomft formation-vmware-vsphere-with-operations-management-fast-track
Vsomft formation-vmware-vsphere-with-operations-management-fast-trackVsomft formation-vmware-vsphere-with-operations-management-fast-track
Vsomft formation-vmware-vsphere-with-operations-management-fast-trackCERTyou Formation
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzureMicrosoft Décideurs IT
 
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...Microsoft Technet France
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Microsoft Décideurs IT
 
M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...CERTyou Formation
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideMicrosoft
 
Webinar "Matrice de décision ECM"
Webinar "Matrice de décision ECM"Webinar "Matrice de décision ECM"
Webinar "Matrice de décision ECM"Michael Harlaut
 
SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...
SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...
SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...dbi services
 
Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...
Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...
Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...Microsoft Ideas
 
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGSOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGMarc Dutoo
 
#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015
#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015
#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015marcomeasyteam
 
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentauxTm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentauxCERTyou Formation
 
Nouveaux scénarios de déploiement avec SCCM 2012 SP1
Nouveaux scénarios de déploiement avec SCCM 2012 SP1Nouveaux scénarios de déploiement avec SCCM 2012 SP1
Nouveaux scénarios de déploiement avec SCCM 2012 SP1Microsoft Technet France
 
M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...CERTyou Formation
 

Tendances (18)

Econocom aux Techdays de Microsoft. Retours d'expérience sur le Cloud
Econocom aux Techdays de Microsoft. Retours d'expérience sur le CloudEconocom aux Techdays de Microsoft. Retours d'expérience sur le Cloud
Econocom aux Techdays de Microsoft. Retours d'expérience sur le Cloud
 
M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...
M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...
M20412 formation-configuration-avancee-des-services-microsoft-windows-server-...
 
Administration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiantAdministration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiant
 
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
 
Vsomft formation-vmware-vsphere-with-operations-management-fast-track
Vsomft formation-vmware-vsphere-with-operations-management-fast-trackVsomft formation-vmware-vsphere-with-operations-management-fast-track
Vsomft formation-vmware-vsphere-with-operations-management-fast-track
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans Azure
 
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M10750 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybride
 
Webinar "Matrice de décision ECM"
Webinar "Matrice de décision ECM"Webinar "Matrice de décision ECM"
Webinar "Matrice de décision ECM"
 
SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...
SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...
SQL Server 'code name Denali' - Stéphane Haby / Antonio De Santo, dbi service...
 
Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...
Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...
Transformer votre Cloud : est-ce si simple ? La réponse avec les solutions EM...
 
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGSOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
 
#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015
#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015
#OOW15LeOff Breakfast EASYTEAM 26 octobre 2015
 
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentauxTm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
 
Nouveaux scénarios de déploiement avec SCCM 2012 SP1
Nouveaux scénarios de déploiement avec SCCM 2012 SP1Nouveaux scénarios de déploiement avec SCCM 2012 SP1
Nouveaux scénarios de déploiement avec SCCM 2012 SP1
 
M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M10751 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
 

Similaire à Industrialiser le développement avec silverlight 4 et wcf ria services

Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !Microsoft Décideurs IT
 
Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !Microsoft Technet France
 
M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...CERTyou Formation
 
Vocabulaire et Usage du Cloud
Vocabulaire et Usage du CloudVocabulaire et Usage du Cloud
Vocabulaire et Usage du CloudClub Alliances
 
Pb voc-usage-cloud-101011065640-phpapp01
Pb voc-usage-cloud-101011065640-phpapp01Pb voc-usage-cloud-101011065640-phpapp01
Pb voc-usage-cloud-101011065640-phpapp01cmichel65
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Microsoft Technet France
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteAZUG FR
 
M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...
M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...
M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...CERTyou Formation
 
Exadays cloud – Enjeux et Transformation du SI
Exadays   cloud – Enjeux et Transformation du SIExadays   cloud – Enjeux et Transformation du SI
Exadays cloud – Enjeux et Transformation du SISamir Arezki ☁
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 
Cnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generaleCnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generaleAymeric Weinbach
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...vlabatut
 
SkySight : une nouvelle génération de services d’orchestration des solutions ...
SkySight : une nouvelle génération de services d’orchestration des solutions ...SkySight : une nouvelle génération de services d’orchestration des solutions ...
SkySight : une nouvelle génération de services d’orchestration des solutions ...Microsoft Ideas
 
M20487 formation-developper-windows-azure-et-les-services-web
M20487 formation-developper-windows-azure-et-les-services-webM20487 formation-developper-windows-azure-et-les-services-web
M20487 formation-developper-windows-azure-et-les-services-webCERTyou Formation
 
Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...
Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...
Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...Microsoft Technet France
 
Hyper-V Cloud Guides de déploiement Module 3
Hyper-V Cloud Guides de déploiement Module 3Hyper-V Cloud Guides de déploiement Module 3
Hyper-V Cloud Guides de déploiement Module 3Microsoft France
 
2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...
2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...
2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...Club Alliances
 
M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...CERTyou Formation
 
Présentation linkbynet 2015-02-16
Présentation linkbynet 2015-02-16Présentation linkbynet 2015-02-16
Présentation linkbynet 2015-02-16Matthieu DEMOOR
 
Retour d'expérience : rendre votre IT agile grâce au cloud hybride
Retour d'expérience : rendre votre IT agile grâce au cloud hybrideRetour d'expérience : rendre votre IT agile grâce au cloud hybride
Retour d'expérience : rendre votre IT agile grâce au cloud hybrideMicrosoft Décideurs IT
 

Similaire à Industrialiser le développement avec silverlight 4 et wcf ria services (20)

Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !
 
Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !Accélérez vos métiers avec les infrastructures convergées !
Accélérez vos métiers avec les infrastructures convergées !
 
M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
M20246 formation-piloter-et-controler-un-cloud-prive-avec-microsoft-system-ce...
 
Vocabulaire et Usage du Cloud
Vocabulaire et Usage du CloudVocabulaire et Usage du Cloud
Vocabulaire et Usage du Cloud
 
Pb voc-usage-cloud-101011065640-phpapp01
Pb voc-usage-cloud-101011065640-phpapp01Pb voc-usage-cloud-101011065640-phpapp01
Pb voc-usage-cloud-101011065640-phpapp01
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...
M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...
M10265 formation-developper-des-solutions-d-acces-aux-donnees-avec-microsoft-...
 
Exadays cloud – Enjeux et Transformation du SI
Exadays   cloud – Enjeux et Transformation du SIExadays   cloud – Enjeux et Transformation du SI
Exadays cloud – Enjeux et Transformation du SI
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 
Cnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generaleCnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generale
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
 
SkySight : une nouvelle génération de services d’orchestration des solutions ...
SkySight : une nouvelle génération de services d’orchestration des solutions ...SkySight : une nouvelle génération de services d’orchestration des solutions ...
SkySight : une nouvelle génération de services d’orchestration des solutions ...
 
M20487 formation-developper-windows-azure-et-les-services-web
M20487 formation-developper-windows-azure-et-les-services-webM20487 formation-developper-windows-azure-et-les-services-web
M20487 formation-developper-windows-azure-et-les-services-web
 
Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...
Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...
Le datacenter élastique d'avanade, gestion unifiée du cloud privé et refactur...
 
Hyper-V Cloud Guides de déploiement Module 3
Hyper-V Cloud Guides de déploiement Module 3Hyper-V Cloud Guides de déploiement Module 3
Hyper-V Cloud Guides de déploiement Module 3
 
2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...
2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...
2011.10.19 - Cloud Partner Day - Atelier Cloud Application Providers, Infrast...
 
M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
M20247 formation-configurer-et-deployer-un-cloud-prive-avec-microsoft-system-...
 
Présentation linkbynet 2015-02-16
Présentation linkbynet 2015-02-16Présentation linkbynet 2015-02-16
Présentation linkbynet 2015-02-16
 
Retour d'expérience : rendre votre IT agile grâce au cloud hybride
Retour d'expérience : rendre votre IT agile grâce au cloud hybrideRetour d'expérience : rendre votre IT agile grâce au cloud hybride
Retour d'expérience : rendre votre IT agile grâce au cloud hybride
 

Plus de Arnaud Auroux

Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7Arnaud Auroux
 
Visual studio online
Visual studio onlineVisual studio online
Visual studio onlineArnaud Auroux
 
Accéder aux données avec le windows runtime
Accéder aux données avec le windows runtimeAccéder aux données avec le windows runtime
Accéder aux données avec le windows runtimeArnaud Auroux
 
Développement d'un composant win rt
Développement d'un composant win rtDéveloppement d'un composant win rt
Développement d'un composant win rtArnaud Auroux
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à zArnaud Auroux
 
Les tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet coreLes tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet coreArnaud Auroux
 
Cas Pratique Du Mode DéConnecté De Silverlight
Cas Pratique Du Mode DéConnecté De SilverlightCas Pratique Du Mode DéConnecté De Silverlight
Cas Pratique Du Mode DéConnecté De SilverlightArnaud Auroux
 

Plus de Arnaud Auroux (8)

Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7
 
Visual studio online
Visual studio onlineVisual studio online
Visual studio online
 
Accéder aux données avec le windows runtime
Accéder aux données avec le windows runtimeAccéder aux données avec le windows runtime
Accéder aux données avec le windows runtime
 
Développement d'un composant win rt
Développement d'un composant win rtDéveloppement d'un composant win rt
Développement d'un composant win rt
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à z
 
Les tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet coreLes tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet core
 
Cas Pratique Du Mode DéConnecté De Silverlight
Cas Pratique Du Mode DéConnecté De SilverlightCas Pratique Du Mode DéConnecté De Silverlight
Cas Pratique Du Mode DéConnecté De Silverlight
 

Industrialiser le développement avec silverlight 4 et wcf ria services

  • 1.
  • 2. 2 Industrialiser le développement avec Silverlight 4 et RIA Services Mercredi 9 Février Jean-Luc Boucho Architecte Solutions Winwise Arnaud Auroux Consultant Access it IDF
  • 3. 3 L’expert de référence ! Société d’expertise sur les technologies Microsoft Partenaire historique et stratégique de Microsoft Plus de 90 collaborateurs certifiés interviennent sur des missions à forte valeur ajoutée : Missions d’expertise Conseil & Audit Réalisation de projets à engagement de résultats Une offre couvrant l’ensemble du cycle de vie des applications : Travail collaboratif, portail d’entreprise et Workflow Business Intelligence & Data Management Interfaces utilisateurs, Rich Internet Application & desktop application Architecture d’entreprise et Architecture Life cycle Management Infrastructure, Sécurité et Réseaux Centre de formation et de Certification Microsoft WINWISE est le pôle d’expertise MICROSOFT du Groupe ALTEN et bénéficie de la puissance financière d’un leader incontesté WINWISE 130/136 Rue de Silly 92100 Boulogne-Billancourt www.winwise.com
  • 4. 4 Access It IdF en quelques mots… • Société de services, conseil / expertise, et formation, exclusivement sur les technologies Microsoft • 20+ collaborateurs spécialisés sur les techno MS, dont 11 MVP • Interventions en mode :  Conseil, expertise, coaching et formation  Réalisation, au forfait ou en Assistance Technique .NET Plateforme Applicative Framework et langages .Net, AZURE, Silverlight, WPF/Surface, VS/TFS, Windows Phone 7,… SQL Server (SSIS, SQL, SSAS, SSRS), PowerPivot, SharePoint & on-line, Office 365,… .NET Collab. BI
  • 5. 5 Agenda Présentation WCF RIA Services Développement rapide d’applications Industrialisation Patterns Persistance, Domaine, Opérations Approche MVVM Authentification et autorisation Testabilité
  • 6. 6 Problématiques RIA Couche de présentation Couche métier Application cliente Service Couche métier Couche d’accès aux données Base de données Coût de mise en place important Autorisations Accès concurrentiels Duplication de la logique métier
  • 7. 7 Couche de présentation RIA Couche métier Couche d’accès aux données Base de données Simplifier la communication afin que le métier devienne le centre d’intérêt. WCF RIA Services Côté client Contrôles spécifiques Contexte de donnée « Tracking » d’objets Côté serveur WCF Validations Accès aux données Sécurité Notion de domaine : opérations + entités + validations
  • 9. 9 Serveur Création du modèle d’entité Création du Domain Service Création des requêtes Ajout des métadonnées Client Utilisation du DomainContext Utilisation des requêtes générées DataBinding SubmitChanges Développement rapide d’applications Dépendance à la technologie de persistance des données Rigidité de la structure
  • 10. 10 Séparer les responsabilités « Déployer des pratiques pour améliorer la productivité et la robustesse des applications tout en restant dans des délais et des coûts maîtrisés » Industrialisation
  • 11. 11 Patterns d’industrialisation Repository Unit Of Work Dependency Injection MVVM (Model View View-Model) Unit Testing …et aussi : AOP (Aspect-Oriented Programming)
  • 12. 12 Industrialiser la persistance Principes Isoler la persistance dans un repository pour la découpler du service de domaine Accès au repository via une interface IRepository Générique, supportant les opérations CRUD standards pour accélérer le développement Extensible, pour définir des opérations spécifiques supplémentaires Un repository : LinqToEntitiesRepository<TContext> pour supporter EntityFramework (TContext correspond au modèle) Implémentation de la persistance (LinqToEntities…) IRepositoryDomaine Entité Métier Data Source
  • 13. Industrialiser la persistance new LinqToEntitiesRepository<NorthwindEntities>(); IRepository, LinqToEntitiesRepository<TContext>
  • 15. 15 Industrialiser le domaine Principes Définir une classe de base : RepositoryDomainService pour Accéder au IRepository depuis le domaine Bénéficier des opérations standard (CRUD) Valider les lots de modifications (Transaction) Redéfinir si nécessaire les opérations dans le domaine RepositoryDomaine Entité Métier Présentation Entité Métier
  • 17. Industrialiser le domaine [EnableClientAccess()] [EntityDomainServiceDescriptionProvider(typeof(NorthwindEntities))] [EntityDomain(typeof(Customers), EntityDomainOperations.All)] [EntityDomain(typeof(Regions), EntityDomainOperations.Query)] ... public class NorthwindService : RepositoryDomainService { public void DeleteCustomers(Customers customer) { base.Repository.Delete<Customers>(customer); } } NorthwindService EntityDomainServiceDescriptionProvider : description du modèle EntityDomain : opérations CRUD autorisées pour chaque entité IRepository : persistance du modèle
  • 18. 18 Industrialiser le domaine Instanciation du service de domaine Par défaut, le service est instanciée par RIA Services C’est insuffisant : il faut configurer le repository à utiliser Solution : Extensibilité du DomainServiceFactory Unity pour injecter le service de domaine dans RIA Services
  • 19. Industrialiser le domaine DomainServiceFactory public class DomainServiceFactory : IDomainServiceFactory { public DomainService CreateDomainService( Type domainServiceType, DomainServiceContext context) { DomainService domainService = UnityHelper.UnityContainer .Resolve(domainServiceType) as DomainService; domainService.Initialize(context); return domainService; } Application Web Northwind (Global.asax.cs) protected void Application_Start(object sender, EventArgs e) { UnityHelper.UnityContainer.RegisterType<NorthwindService>( new InjectionProperty("Repository", typeof(LinqToEntitiesRepository<NorthwindEntities>))); DomainService.Factory = new DomainServiceFactory(); }
  • 24. 24 Du service vers le client Génération du contexte client … public sealed partial class NorthwindContext : DomainContext { … } … DomainService DescriptionProvider GetDescription … Invocation des opérations DomaineContext.Load(EntityQuery) DomaineContext.SubmitChanges DomainService Description GetInvokeOperation …
  • 29. 29 Sécurité - Serveur Classe AuthenticationBase et attribut RequireAuthentication Attribut RequireRole Infrastructure ASP.NET Intégration au processus « Query / Submit »
  • 30. Sécurité - Serveur RIA Services fournit un service remplissant toutes les fonctionnalités d’authentification Le paramétrage de la sécurité s’effectue de manière classique dans le fichier Web.config <roleManager enabled="true" /> <authentication mode="Forms" > <forms name=".SimpleRIA_ASPXAUTH" /> </authentication> ... [EnableClientAccess] public class AuthenticationService : AuthenticationBase<User> { }
  • 31. Sécurité - Serveur Pour les opérations implémentées dans le domaine par codage, utiliser les attributs RIA Services : Pour les opérations CRUD standards, utiliser l’attribut EntityDomainAttribute : [EntityDomain(typeof(Customers), Operations = EntityDomainOperations.All, RequiresAuthentication = EntityDomainOperations.All, QueryRequiresRole = new []{"StdUser"}, InsertRequiresRole = new []{"Admin"}, UpdateRequiresRole = new []{"Admin"}, DeleteRequiresRole = new []{"Admin"}) ] [RequiresAuthentication] [RequiresRole("Admin")]
  • 32. 32 Sécurité - Client Classe WebAuthenticationService Point d’entrée du processus d’authentification. Classe FormsAuthentication et WindowsAuthentication Processus d’authentification spécialisés. Classe AuthenticationDomainContextBase Accès client au service d’authentification. Interfaces IIdentity et IPrincipal Visibility, pattern ICommand
  • 33. Sécurité - Client Propriété public bool CanDeleteCustomer { get { return this.DomainAuthService .CanDeleteCustomer; } } Command (CanExecute) ICommand deleteCustomerCommand = new RelayCommand<Customer>( this.DeleteCustomer, c => this.CanDeleteCustomer )); Utilisation dans un ViewModel Service dédié public class DomainAuthService { public bool CanDeleteCustomer { get { return WebContext.Current.User.IsInRole("Admin"); } } }
  • 34. Sécurité - Client Gestion déclarative (pour les cas particuliers) AuthorizationSamples (http://code.msdn.microsoft.com/RiaServices) <Button s:Authorization.RequiresRole="Admin,CustomerManager"/> Inclure au contexte les règles définies côté service CodeGeneratorTextTemplate (toolkit sp1) [DomainServiceClientCodeGenerator(typeof(CodeGenerator), "C#")] public class CodeGenerator : CSharpClientCodeGenerator { protected override DomainContextGenerator DomainContextGenerator { get { return new AuthorizationCodeGenerator(); } } } Génération personnalisée du DomainContext client
  • 36. Testabilité DomainService Implémentation d’un repository de base pour les tests Définition d’un repository spécifique à chaque contexte. Configuration du conteneur IOC pour l’utilisation du repository spécifique de test.
  • 38. Testabilité DomainContext Implémentation d’un DomainClient de base pour les tests. Définition d’un DomainClient spécifique à chaque contexte. Configuration du conteneur IOC pour l’utilisation du DomainClient spécifique de test.
  • 40. 40 Conclusion RIA Services Adaptée au model RAD. Souple Extensible Donc adaptée aux applications d’entreprise
  • 41. 41 Références Téléchargements http://www.silverlight.net/getstarted/riaservices/ WCF Ria Services Code Gallery http://code.msdn.microsoft.com/RiaServices Kyle McClellan http://blogs.msdn.com/b/kylemc/ Colin Blair http://www.riaservicesblog.net/Blog/ Jeff Handley http://jeffhandley.com/ Brad Abrams http://blogs.msdn.com/b/brada/
  • 42. 42 MSDN et TechNet : l’essentiel des ressources techniques à portée de clic http://technet.com http://msdn.com Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs

Notes de l'éditeur

  1. Rappeler les fonctionnalités de RIA Services Découvrir le potentiel d’extensibilité Industrialiser une solution RIA Services
  2. Démo lecture / édition, 0 code.
  3. Pattern Repository But : agir comme intermédiaire entre le domaine et la couche de persistance Mise en œuvre : un repository par domaine, générique et extensible Pattern Unit Of Work But : gérer une liste d’objets affectés par une transaction métier, leur persistance et les problèmes de concurrence Mise en œuvre : exploiter l’extensibilité du DomainService protected virtual bool PersistChangeSet(); Pattern Dependency Injection But : Mécanisme d’injection d’objet permettant de séparer la création de l’objet du lieu de son utilisation. Il existe trois types d’injection : via le constructeur, via un champ/propriété, via une interface Mise en œuvre : Framework Unity Injecter le service de domaine dans RIA Services Côté client Injecté le contexte RIA dans les services applicatifs Pattern : Unit Testing But : améliorer la qualité du code en écrivant un test par fonctionnalité Mise en œuvre : Microsoft Visual Studio Unit Testing Unit Test for Silverlight (Silverlight toolkit) Pattern MVVM But : Séparer l’interface, la logique métier et les données Mise en œuvre : La view définit le layout, elle consomme les données et opérations exposées par le ViewModel. Le ViewModel référence les données (Model). Pattern : Unit Testing But : améliorer la qualité du code en écrivant un test par fonctionnalité Mise en œuvre : Microsoft Visual Studio Unit Testing Unit Test for Silverlight (Silverlight toolkit…?) AOP (Aspect-Oriented Programming) Déjà utilisé par RIA Services pour : La sécurité, la validation, … Mise en œuvre : Les opérations du service de domaine, …
  4. Comparatif avec RAD et Repository Evoquer POCO
  5. A l’initialisation, RIA Services : Identifie les services de domaine en inspectant les types possédant l’attribut DomainServiceDescriptionProviderAttribute Appelle la méthode CreateProvider() sur l’attribut pour obtenir un fournisseur de description du service, de type : DomainServiceDescriptionProvider Appelle la méthode CreateDescription() sur le fournisseur pour obtenir la description du service, de type DomainServiceDescription Récupère les informations de la description : Les entités du modèle, de type Type Les opérations, de type DomainOperationEntry Rend accessible en WCF les opérations et entités
  6. RIA Services possède un très bon niveau d’extensibilité, les classes : DomainServiceDescriptionProviderAttribute DomainServiceDescriptionProvider DomainOperationEntry … sont destinées à être héritées ! RIA Services possède sa propre représentation du modèle et des opérations du domaine, cette indépendance permet tout type d’implémentation Nous avons exploité cette extensibilité pour adapter l’implémentation EntityFramework de Microsoft en ajoutant le support du repository
  7. WebContextBase : contexte de l’application WebAuthenticationService : contient une référence vers le DomainContext d’authentification AuthenticationDomainContextBase : classe de base des fournisseurs d’authenfication
  8. Forte dépendance aux règles définies côté serveur
  9. Les restrictions clientes sont souvent dirigées par les règles définies sur les opérations côté service.
  10. Ou service wcf de mock local