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 :

Développement graphiques et différentes librairies


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 30
    Par défaut Développement graphiques et différentes librairies
    Bonjour,

    Je vais devoir développer une application graphique (donc toolkit pour les fenêtres + interaction et API Graphique utilisant l’accélération matérielle)

    Les deux principales restrictions, et non des moindres, le langage C#, et une portabilité maximale ...

    J'ai pas mal de choix a faire, donc voici ce sur quoi je reste pour le moment, et je voudrais des avis dessus:

    - C#
    - Mono pour le binding C#
    - MonoDroid et MonoTouch pour la portabilité sur devices portables

    - OpenGL pour la librairie graphique
    - OpenTK pour la compatibilité C# / OpenGL
    - OpenGL ES pour la librairie graphique sur devices portables

    - Qt pour le fenêtrage et les entrées / sorties
    - Qyoto pour le compatibilité C# / Qt

    Donc voilà ... Les contraintes (Portabilité et C# ...) font que je risque de devoir utiliser pas mal de framework, et j ai vraiment très peu de connaissances à ce sujet !
    Y a vraiment le couple Qt / Qyoto qui m'inquiète un peu, j ai pu lire pas mal de mauvais feedback à ce propos.
    Est ce que le plus simple serait pas d'utiliser plusieurs toolkit pour le fenêtrage ? WPF pour windows, etc. Sachant que ça serait pas vraiment la tache critique en terme de temps de développement, qui serait plutôt le développement de l engine OpenGL (Qui lui devrait être portable facilement)

    Donc avant de fixer un choix je voudrais l avis de gens qui ont plus d’expérience que moi à ce sujet (Je n ai jamais fait de développement cross platform)

    Merci

  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
    avec mono, tu as un peu tout

    Après, MonoDroid et MonoTouch sont payants...

    Pour moi, l'utilisation de QT n'est pas justifiée...

    Ou alors, tu fais TOUT en QT.... mais là, on sort de la "contrainte" C#.

    MonoDevelopment est un bon choix.

    Après, si tu veux tester sur plusieurs plateformes, tu as "intérêt" à te monter
    pleins de Machines Virtuelles pour tester facilement ton application.

    Et te faire une procédure de fabrique de ton code pour ces différentes plateformes cibles.

    Bref, tout cela me "semble" assez ambitieux... et demande quand même un peu de reflexion.

    Malheureusement, de la réflexion, j'en ai mais une expérience .Net multiplateforme, que nenni !!!

    Bonne chance

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Août 2004
    Messages : 60
    Par défaut
    Pas sur que faire du cross plateforme avec C# soit une si bonne idée, c'est quand même une techno Microsoft à la base, et Mono n'ayant pas les mêmes moyens financiers que MS, leurs APIs doivent être à la traine.

    Je comprend l'intérêt de la chose si tu as un existant en C# et que tu dois le porter sous le Linux, mais si tu pars de zéro...

    Si tu veux vraiment faire du cross-plateforme : je te conseille plutôt java (qui doit aussi avoir des bindings open-gl), voir du C/C++ avec QT.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 30
    Par défaut
    Je vais pas trop m étendre, mais le C# et la portabilité sont deux choix qui me sont imposés

    Bon après quelques recherches ...

    Sachant que le gros du travail sera sur le moteur graphique en lui même, et que le système de fenêtrage demandera pas un grand travail, est ce que ca serait une bonne idée d utiliser:

    - WPF pour Windows XXX
    - Qt pour Linux / Max
    - MonoXXXX pour iOS / Android ?

    J'aurai toujours le problème pour Qt / C#. Après, ces deux OS sont vraiment pas la cible du projet, donc j vais peut être mettre ça de cote... Et si finalement ça revient parmi les priorités je verrais avec Qyoto

    TheMonz31: Qu'entends tu par "Et te faire une procédure de fabrique de ton code pour ces différentes plateformes cibles." ?
    Bien structurer pour avoir a réécrire le minimum de code pour la portabilité ? (En utilisant les design pattern approprié donc) Ou tu as en tête des procédures particulière ?

    Merci de vos réponses qui confirment que je vais en chier en conception

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Août 2004
    Messages : 60
    Par défaut
    Citation Envoyé par qventura Voir le message
    Je vais pas trop m étendre, mais le C# et la portabilité sont deux choix qui me sont imposés
    C'est bizarre comme cahier des charges, surtout que tu dis ensuite que la version QT (donc j'imagine linux/unix) n'est pas très prioritaire.

    Ceci dit une autre alternative serait d'utiliser winform qui est plus ancien et donc peut-être mieux émulé par Mono que WPF.
    http://www.mono-project.com/WinForms

  6. #6
    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
    si tu veux faire quelque chose de portable, il ne faut pas penser "cible" pour faire ton architecture...

    Normalement, en Mono, je crois que tu peux faire du WPF.

    La seule restriction est de ne pas utiliser des librairies Microsoft.xxx.XXX

    Donc, evidement, pas de DirectX...

    Après, du OpenGL est effectivement quelque chose d'adapter pour la partie graphique...

    Il faut juste que tu valides que les versions d'openGL à utiliser existent pour chaque plateforme. Si c'est le cas.. bingo...


    Après, et cela ne reste que mon avis, faire une application pour Tablette (ipad /Android), pour smartphone (iphone, Android) et bureau n'est pas forcément judicieux car on se trouve avec 3 modes de comportement différents et donc vouloir faire 3 versions "identiques" pour 3 cibles hétérogènes me semble surprenant, sinon dommageable pour le logiciel...

    Si j'avais à faire l'architecture de mon système, je décorrèlerais bien la partie "Métier" et de la partie Graphique et de la partie IHM pour que, en fonction de la cible, les fonctionnalités dépendantes de la puissance de la machine cible soient prises en compte


    Pour l'aspect fabrique, je veux simplement dire que lorsque tu dois compiler et livrer une version d'un logiciel pour plusieurs plateforme, il est utile d'avoir un process, un outil ou tu n'as qu'à lancer la fabrication logiciel et cet outil va créer chaque executable en prenant les bonnes librairies dédiés à chaque cible...

    Ca s'appelle de la fabrication logicielle... Des outils que Make ou NMake me semble t-il fournissent cette approche.

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Je ne comprends pas bien le problème avec le développement 2D.

    Comme dit précédement : WinForm est standard et est supporté par toutes les plateformes. Donc pourquoi ne pas l'utiliser ?

    Ensuite, si le programme est principalement basé en OpenGL et que seulement quelques fenêtres sont nécessaires... pourquoi ne pas les faire en OpenGL ?

    Tous les jeux 3D actuel utilisent directement des fenêtres dans le moteur 3D. J'ai aucune idée de comment ça marche, mais j'imagine que c'est pas bien sorcier. Ne serait-ce pas la solution pour ne pas avoir à choisir entre la peste et le choléra ?

    En plus, ça permet d'avoir une interface bien plus "sexy"...

  8. #8
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Août 2004
    Messages : 60
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Normalement, en Mono, je crois que tu peux faire du WPF.
    euh, justement non en fait.
    At this point, no group in the Mono project has plans to implement Windows Presentation Foundation APIs as part of the project.
    http://www.mono-project.com/WPF

    Par contre, ça me rappelle que le runtime Silverlight (qui est dérivé de l'ancien projet ROTOR sous FREEBSD) tourne aussi sur Mac OS X et Windows Phone ainsi que Linux via Moonlight. Donc c'est peut-être le truc le plus portable qu'on peut trouver sur .NET.

    Bon maintenant, la portabilité cela n'a jamais été le point fort de cette plateforme. Celui qui veut vraiment de la portabilité fait du Java ou du C/C++ à mon humble avis.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/06/2008, 12h54
  2. [GD] Graphiques avec la librairie GD
    Par Whombat dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/11/2007, 09h01
  3. Appel d'interruptions graphique avec la librairie bios.h
    Par Pragmateek dans le forum Bibliothèques
    Réponses: 13
    Dernier message: 29/05/2006, 23h32
  4. [Interface graphique]Composant différents selon le PC
    Par Cyborg289 dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 01/08/2005, 10h05
  5. c/c++ développement graphique
    Par ggnore dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 02/09/2004, 18h27

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