IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Question d'architecture c#


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Par défaut Question d'architecture c#
    Bonjour à tous,

    récemment je me suis intéressé a divers technologie, dont le WPF et les architecture MVVM. Étant déjà trifouiller invétéré dans la programmation et ayant de bonne base je me suis lancé un petit défi. Développé un jeu style Football Manager. Donc basé principalement sur du texte et l'interface. Du coup vu les possibilités de WPF je me suis dit qu'on pourrait faire un truc sympa.

    J'ai pendant plusieurs semaines lu et relu des vingtaines de blogs et tutos sur l'architecture MVVM et j'ai mis la main à la pâte. Aujourd'hui je suis confronté a un problème qui doit certainement pas en être un. Je vous met en situation :

    Mon jeu se passe dans des Frame, j'utilise donc la navigation pour allez de page en page. J'ai intentionnellement mis en place l’impossibilité de retourner en arrière avec un RemoveBackEntry, ce qui oblige a recharger la page et donc le viewModel. J'ai mis en place une base de donnée en XML donc rien de bien velu, mais c'est principalement pour les tests.
    Mon jeu comporte donc une page dite "InGame" qui contient une autre frame, mais qui est surtout le coeur du jeu, là où tous ce passe. Comme je tiens a faire le plus possible MVVM, chaque Page a son propre ViewModel. Mais voilà le problème : Les Données et leur persistance.

    De façon naturel j'ai créé se que j'appel une classe GameHub, qui est instancié au moment ou l'on arrive sur la page InGame. Elle a pour rôle de charger et de garder en référence toutes les données en mémoire. Vu qu'il s'agit principalement de donnée légère, on dépasse pas les 200Mo mise en mémoire en début de partie. Donc actuellement tous les ViewModel viennent consommer les donné dans ce fameux GameHub, mais comme le GameHub est une instance, je l'ai elle même référencé dans une classe static, ce qui me permet de récupéré cette valeur n'importe quand. Mais je commence a me demander si cest la bonne façon de faire et j'aurais donc besoin de votre avis là dessus. Enfni je sais que cest certainement pas la bonne ^^

    Autre détail qui me met le doute, c'est ma façon de récupéré les données. Pour faire simple mon GameHub demande a un service de "Load" les données depuis le fichier Xml. Le service étant une classe Static, pour une raison qui méchappé ca me gêne mais je ne trouve pas vraiment d'autres solution viable.

    Enfin bref je crois que vous allez pouvoir m'apprendre des choses.
    Merci de m'avoir lu
    Bob

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    bonjour

    Dans la mesure ou tu utilises le pattern Singleton avec un static, je ne vois pas de défaut d'architecture majeur (même mineur) dans ton approche.

    De toute façon, si tu dois accéder à tes données depuis différentes pages qui n'ont pas de lien entre elle ou ne peuvent pas se passer un contexte, autant utiliser un static qui va te fournir l'accès aux données.

    Pour moi, l'usage d'un pattern "singleton" correspond bien à ton cas d'utilisation. De toute façon, avec les nouveaux développements, comme sous Windows Phone 8 ou Android ou les Pages / activity sont créées au moment ou elles sont affichées, la solution du singleton est la meilleure.

    Ensuite, avec le MVVM, tu te facilites la séparation Code IHM / Code métier.

    Et il est vrai qu'avec WPF et le dataContext, faire du MVVM est énormément simplifié...

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Par défaut
    Ok tu me rassure pas mal, merci pour ta réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur Architecture d'un jeu vidéo 3D
    Par Polygon dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 28/10/2007, 12h43
  2. [C# 2.0] Question d'architecture - code dynamique
    Par StormimOn dans le forum Framework .NET
    Réponses: 11
    Dernier message: 06/03/2007, 11h19
  3. [Création d'un moteur] Petite question d'architecture technologique
    Par ludovic85 dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 07/02/2007, 18h00
  4. [Architecture] Question d'architecture
    Par bourbaki2003 dans le forum Général Java
    Réponses: 3
    Dernier message: 11/07/2006, 10h38
  5. [JPanel] [GUI] question d'architecture
    Par _KB_ dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/06/2006, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo