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

- TechDays Paris 2010 : La BI dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 1 heure et 26 minutes

- TechDays Paris 2010 : Déploiement de nouvelles technologies – Retour d’expérience par l’informatique de Microsoft par Blog Technique de Romelard Fabrice le il y a 2 heures et 53 minutes

- TechDays Paris 2010 : Plan de migration vers SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 6 heures et 36 minutes

- TechDays Paris 2010 : La pleinière du second jour par Blog Technique de Romelard Fabrice le il y a 7 heures et 41 minutes

- Visual Studio 2010 and .NET Framework 4 Release Candidate now available par Matthieu MEZIL le il y a 10 heures et 47 minutes

- Création d’une base de donnée sous SQL Azure par Le Blog (Vert) d'Arnaud JUND le il y a 11 heures et 43 minutes

- TechDays Paris 2010 : Les Services d’applications dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 21 heures et 42 minutes

- TechDays Paris 2010 : La GED et SharePoint 2010 par Blog Technique de Romelard Fabrice le 02-08-2010, 16:54

- TechDays Paris 2010 : SharePoint 2010 et Les réseaux sociaux par Blog Technique de Romelard Fabrice le 02-08-2010, 15:40

- TechDays Paris 2010 : SharePoint 2010 – Description et nouveautés par Blog Technique de Romelard Fabrice le 02-08-2010, 14:33