Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Projet de fin d'Etudes : Clinique INSIA (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS)

image

Et voilà ! Une année cloturée avec un beau projet utilisant Silverlight 3 et plus particulièrement le mode OutOfBrowser pour la partie applicative. Je souhaitais partager mon enthousiasme avec la communauté sur ce projet et démontrer ici qu’il était possible de construire une solution sérieuse dans le domaine médicale avec Silverlight 3… même en béta !

Définition du contexte :

La Clinique INSIA dispense un certain nombre de soins spécialisés, reposant chacun sur un matériel spécifique. La Clinique dispose d'un site internet, qui constitue à la fois une vitrine/interface avec les patients, mais devrait également constituer un puissant outil de communication/organisation en interne.

L’entreprise est installée à Paris ( XXe ) : c'est sur cet unique site que devront être déployées les applications ( hormis web, pouvant être placé chez un hébergeur ).

La Clinique se trouve aujourd'hui confrontée à des besoins, certes anciens, devant trouver une solution souple et efficace :

- capacité à communiquer efficacement, rapidement et massivement vers l'extérieur,

- centraliser et normaliser la communication et l'organisation en interne ,

- augmenter l'efficacité de taches ponctuelles par l'ajout d'outils spécifiques,

- améliorer l'efficacité de services en perfectionnant l'utilisation de certaines ressources.

imageTechnologies Utilisées :

- Visual Studio Team System 2008 et Team Foundation Server pour la partie gestion de projet, contrôle de code source, intégration continue et développement.

- SQL Server 2008 BI/Data : Intégration des codes postaux, des médicaments, mais aussi Analysis Services et Reporting Services

- Silverlight 3 béta pour la vitrine internet et applicative (mode out of browser) : Deux applications à réaliser .. une seule avec Silverlight 3, déploiement facilité pour l’applicatif client.

- WCF : Dans une solution hospitalière, il est préférable d’exposer nos fonctionnalités sous forme de service

réutilisable par d’autres applications.

 

Apercu de certains écrans :

Intégration Virtual Earth pour la géolocalisation :

image
Présentation des activités :

image
BackOffice avec persistence des crédentials dans l’isolated storage
image
Mode OutOfBrowser
image 
CrudViewModelBase et le pattern MVVM avec Silverlight 3 :

Le pattern MVVM apporte des vrais solutions d’architecture logicielle dans nos applications WPF ou Silverlight d’aujourd’hui, vous trouverez plein de liens à ce sujet sur internet notamment : http://msdn.microsoft.com/fr-fr/magazine/dd458800.aspx

Au cours du projet nous avons fait face à plusieurs écrans de Creation, Lecture, Edition, et Suppression d’une entité au sens Linq To SQL T4 :

- Traitement en local sur la collection d’entité (Ajout, Suppression, Modification ..)

- Utilisation de l’isolated storage et mécanisme de change tracking sur les entités en reflection

- Recherche

Faire une copie de la collection source :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private ObservableCollection GetShallowCopy()
{
ObservableCollection cloneList = new ObservableCollection();

foreach (T item in CollectionOriginals)
{
object cloneItem = Activator.CreateInstance(typeof(T));

foreach (PropertyInfo property in item.GetType().GetProperties())
{
property.SetValue(cloneItem, property.GetValue(item, null), null);
}

cloneList.Add((T)cloneItem);
}
return cloneList;
}

Vérifier si une entité a été modifié :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private bool CheckIfModified(T canBeModifiedEntity, T originalEntity)
{
foreach (PropertyInfo pOfCanBeModifiedEntity in canBeModifiedEntity.GetType().GetProperties())
{
object propertyValueM = pOfCanBeModifiedEntity.GetValue(canBeModifiedEntity, null);
object propertyValueO = originalEntity.GetType().GetProperty(pOfCanBeModifiedEntity.Name).GetValue(originalEntity, null);

if (propertyValueM != null && propertyValueO != null)
{
if (!propertyValueM.Equals(propertyValueO))
{
return true;
}
}
}

return false;
}

Annuler les modifications :

1
2
3
4
5
6
7
public void UndoChanges()
{
ClearChangeTracking();
CollectionOfEntities = null;
SelectedItem = default(T);
CollectionOfEntities = GetShallowCopy();
}

Le but étant de travailler en local et de contacter le serveur seulement sur les entités impactés.

Dans les prochains posts je reviendrais sur d'autres aspects que je considère intéressant du projet...

Conclusion .. Silverlight Rulez :)

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié jeudi 2 juillet 2009 22:38 par davidrei
Classé sous :

Commentaires

vendredi 3 juillet 2009 08:36 by Thomas LEBRUN

# re: Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1

Pas mal du tout dis donc: beau travail :)

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Pb lors de l’installation SharePoint 2010… par Le blog de Patrick le il y a 2 heures et 48 minutes

- [WF4] Ajouter des contraintes à une activité (2/2) par Blog de Jérémy Jeanson le il y a 8 heures et 21 minutes

- [WF4] Ajouter des contraintes à une activité (1/2) par Blog de Jérémy Jeanson le il y a 8 heures et 53 minutes

- [ASP.NET] Ne pas se faire avoir par IHttpModule et sa méthode Init() par Thomas Jaskula le il y a 16 heures et 52 minutes

- [MSTD10] SharePoint 2010 et Team Foundation Server par Philippe Sentenac [MVP SharePoint] le 03-11-2010, 10:49

- [MSTD10] SQL Server 2008 pour les développeurs et Visual Studio Team System Database Edition par Michel Perfetti [Miiitch] le 03-11-2010, 10:00

- [WF4] Localiser simplement une activité et son designer WPF par Blog de Jérémy Jeanson le 03-11-2010, 08:49

- [Techdays 2010] Webcasts et Slides par Blog Technique d'Audrey PETIT le 03-11-2010, 08:30

- NDepend v3. J’adore son intégration avec VS2010 par Thomas Jaskula le 03-11-2010, 00:18

- XNA 4.0 pour créer des jeux 3D sous Windows Phone 7 Series par Code is poetry le 03-10-2010, 14:14