Solution RIA simple et puissante

GilgameshGilgamesh Membre
04:51 modifié dans Langages Web & serveurs #1
Bonsoir,

Je sollicite a nouveau vos avis d'expert en matière de programmation en vous posant une question plutôt complexe et requérant une certaine dose d'objectivité.

Je suis a la recherche d'une solution de mise en place d'une RIA simple dans sa programmation mais puissante dans son traitement de bases de données et riche au niveau de son IHM. J'ai pu voir Cappuccino, Google app toolkit, Open Lazslo et bien sur Flex.

j'ai déjà  renoncer a Flex et Open Lazslo car ils se basent tout les deux sur du Flash que je veut éviter absolument.
Je me suis renseigné sur Cappuccino en ObjectiveJ, mais peut être compliquer a mettre en oe“uvre.
JavaFX me semble tres lourd, leur site est long a charger en 1M sans autres navigations ou IM a coté.

Donc voilà  je me trompe surement sur mes points de vue sur ces technologies, j'en ai surement raté d'autres.

Quel est votre avis, vos expériences, vos commentaires.
Merci de vos réponses.

Je précise que j'aimerais une solution libre d'accès et d'utilisation/commercialisation, donc sans licences.  ;)

Réponses

  • JegnuXJegnuX Membre
    04:51 modifié #2
    Alors perso j'ai juste essayé Flex et Cappuccino, comme toi, je préfère laisser tomber Flex à  cause du flash...

    Pour ce qui est de cappuccino, le principal avantage, c'est que si tu sais développer en cocoa, tu sais quasiment développer en Cappuccino, y'a que très peu de temps d'adaption pour passer de l'un a l'autre. On y retrouve la même syntaxe, les mêmes pattern, et tout et tout.

    En plus avec leur IDE Atlas qui est en beta en ce moment, tu pourras même retrouver un IB like avec le systeme d'action, d'outlets, de connexion et tout et tout.

    Sinon tu peux nous dire en quoi Cappuccino avait l'air compliqué à  mettre en place ?
  • GilgameshGilgamesh Membre
    mars 2010 modifié #3
    Je trouve cappuccino un peut compliquer du fait que je suis débutant en dev Cocoa ^^.

    je viens de me renseigner, Atlas est en beta payante et limitée dans le temps.
    Second problème, Cappuccino ne peut être dev que sur mac :s. Pas cool pour un employeur (oui, je suis étudiant a la recherche de compétences pour un futur emplois).
  • muqaddarmuqaddar Administrateur
    04:51 modifié #4
    J'aimerais en savoir plus sur Cappuccino et surtout sur la façon de pouvoir communiquer avec la gestion des données (JSON, XML ?)...
  • JegnuXJegnuX Membre
    04:51 modifié #5
    Bon pour commencer, il me semble qu'on peut développer en cappuccino sur toutes les plateformes. Ya pas de compilation donc suffit de coder et douvrir dans le navigateur.

    C'est juste l'IDE qui est compatible uniquement Mac, pour le moment ! Il me semble qu'à  terme ils souhaitent le rendre multiplateforme.

    En fait c'est juste des outils comme NibToCib que tu peux pas utiliser, vu que ça convertit les nib (enfin, xib) de interface builder en cib, utilisés par Cappuccino.


    Sinon muqaddar, pour commencer, vu que Objective-J et un superset de JavaScript, et que les objets JSON sont des objets JavaScript (en gros), alors l'objJ gère nativement le JSON.
    Pour le XML il me semble aussi qu'il y a ce qu'il faut, à  vérifier.
  • muqaddarmuqaddar Administrateur
    04:51 modifié #6
    dans 1269172951:

    Sinon muqaddar, pour commencer, vu que Objective-J et un superset de JavaScript, et que les objets JSON sont des objets JavaScript (en gros), alors l'objJ gère nativement le JSON.
    Pour le XML il me semble aussi qu'il y a ce qu'il faut, à  vérifier.


    Merci.
    C'est vrai que je vais m'y intéresser sous peu... il faudra que je vois comment coupler ça à  Rails et Ruby pour les entrées/sorties de données.
  • JegnuXJegnuX Membre
    04:51 modifié #7
    pour ça tu peux jeter un coup d'oeil aux CappuccinoCasts 8 et 9 qui montre comment faire une application blog avec cappuccino + RoR : http://cappuccinocasts.com/
  • muqaddarmuqaddar Administrateur
    04:51 modifié #8
    dans 1269180187:

    pour ça tu peux jeter un coup d'oeil aux CappuccinoCasts 8 et 9 qui montre comment faire une application blog avec cappuccino + RoR : http://cappuccinocasts.com/


    J'adore ce lien ! Merci.
  • GilgameshGilgamesh Membre
    04:51 modifié #9
    Personne n'a tester d'autres solutions RIA que Cappuccino? Avoir des retours d'expériences concrètes permettraient d'avoir une bonne vue de la technologies.

    Si tu te lance Muquddar tu pourrais me faire part de tes impressions ?
  • sekaijinsekaijin Membre
    04:51 modifié #10
    il y a éclipse RCP app en java soit sur le poste soit en JMLP
    très complet pas simple à  mettre en oeuvre

    beaucoup plus léger
    ExtJS app en javascript IHM tres complete simple à  mettre en oeuvre
    repose sur la techno de son choix côté server.

    Je l'utilise avec Zend FrameWork

    il existe un version GWT
    bref Google Web Toolkit avec les classes de ExtJS pour obtenir une HIM très pro

    tu peux aussi voir du coté de JAXER http://www.jaxer.org/

    voir aptana.com http://www.aptana.org/

    A+JYT



  • muqaddarmuqaddar Administrateur
    mars 2010 modifié #11
    dans 1269198342:

    Personne n'a tester d'autres solutions RIA que Cappuccino? Avoir des retours d'expériences concrètes permettraient d'avoir une bonne vue de la technologies.

    Si tu te lance Muquddar tu pourrais me faire part de tes impressions ?


    Oui, mais pas avant 3 ou 4 mois... ;)

    Sinon, on en a déjà  parlé là  :
    http://www.pommedev.com/forum/index.php?topic=5121
  • olofolof Membre
    04:51 modifié #12
    Il y'a aussi SproutCore : http://www.sproutcore.com/

    Passé en version 1.0 ce week-end. Mais je n'ai pas d'expérience dans sa mise en oeuvre.

  • wiskywisky Membre
    04:51 modifié #13
    Je le trouve complexe et mal documenté. Même avec mon minable anglais je préfère la doc de prototypeJS qui est plutôt pauvre mais clair !
    Pour ma part j'ai jamais réussi à  faire ce que je souhaitais avec sproutcore. Deplus la partie serveur que j'utilise est souvent en PHP.
  • muqaddarmuqaddar Administrateur
    04:51 modifié #14
    dans 1269257573:

    Je le trouve complexe et mal documenté. Même avec mon minable anglais je préfère la doc de prototypeJS qui est plutôt pauvre mais clair !
    Pour ma part j'ai jamais réussi à  faire ce que je souhaitais avec sproutcore. Deplus la partie serveur que j'utilise est souvent en PHP.


    Et ça se marie mal avec PHP ?
  • wiskywisky Membre
    04:51 modifié #15
    dans 1269260490:

    dans 1269257573:

    Je le trouve complexe et mal documenté. Même avec mon minable anglais je préfère la doc de prototypeJS qui est plutôt pauvre mais clair !
    Pour ma part j'ai jamais réussi à  faire ce que je souhaitais avec sproutcore. Deplus la partie serveur que j'utilise est souvent en PHP.


    Et ça se marie mal avec PHP ?

    Disons juste que ça se marie mieux avec RoR. Mais comme je suis pas un fan de RoR (je ne m'y suis pas pencher dessus). Les appels ajax sont tous sous forme d'url : /module/var1/var2/ d'après mes souvenirs (ça fait un bon moment que j'ai pas tester sproutcore).


    Je suis également à  la recherche de quelque chose me simplifiant la vie pour le dev des RIA. pour le moment j'utilise mes propre biblio avec prototypejs. Mais capuchino m'interesse de plus en plus même si j'en connais pas même un 1%. Le simple fait que cela est basé sur le Mac et Obj-C me plait ! Vive le Mac ! Vive Obj-C ! :P
  • switcherdavswitcherdav Membre
    04:51 modifié #16
    Salut,

    Perso j'utilise depuis 2 ans Flex et pour le développement d'application dans le cadre d'un entreprise c'est vraiment un bonne solution.

    Attention, on parle bien d'applications d'entreprise, pas de faire un site web, un blog ou une galerie photo, mais bien un outil utilisé par des personnels d'une entreprise.

    Les avantages qui j'y vois :
    - langage objet puissant (actionscript)
    - bibliothèque riche et adaptée au développement dans le cadre pro (framework Flex)
    - gestion aisée du layout (position des éléments à  l'écran)
    - intégration d'animation simple


    Ce qu'il faut savoir c'est que Flex n'est qu'un framework, tu peux tout coder uniquement en actionscript et c'est d'ailleurs ce que je fais le plus souvent, je construit mes composants en actionscript et Flex ne me sert qu'à  gérer le layout

    J'ai découvert il y a peu cappuccino et ce produit semble vraiment intéressant et la communauté active.

    Pensant avoir découvert un bug sous Chrome (l'application "hello world" ne fonctionne pas), j'ai ouvert un ticket et le lendemain j'avais un message m'indiquant que c'est un bug de Chrome qui ne peut faire de requête ajax en local (url : file://)

    Le projet est donc vraiment actif, y'a qu'à  suivre ce dernier sous Google Code pour s'en persuader

    Comme j'ai la chance de développer sous mac, le fait que les outils soient sur cette plateforme ne me dérange pas (au contraire)

    Reste que si le projet pouvait être soutenu par Apple, ça lui donnerait encore plus de poids

    Pour finir, je pense qu'il ne faut pas chercher la solution magique, si tu maà®trises bien les concepts de programmation (OOP, patterns ...) tu pourras t'adapter facilement.

    Je me souviens de le phrase d'un formateur Flex en introduction : "si demain tout le monde veut du Silverlight, je ferais du Silverlight"

    Si tu veux en faire ton métier, il faut avant tout être compétent dans les domaines qui sont recherchés, ou alors tu peux être idéaliste et ne chercher qu'à  faire ce que tu aimes ....

    Bon dev et bonne recherche
  • muqaddarmuqaddar Administrateur
    04:51 modifié #17
    On a déjà  parlé plusieurs fois de Cappuccino sur ce forum, et c'est vrai que cette solution m'attire énormément. Apple a soutenu SproutCore il y a 2 ans, et l'utilise pour MobileMe, donc je les vois mal maintenant soutenir Cappuccino mais pourquoi pas...

    SproutCore me semble plus brouillon, Cappuccino a l'air bien géré... je parle d'après ce que j'en ai vu car je n'ai pas encore développé avec. En tout cas, pour des RIA, ça semble être une solution élégante.

    Et surtout parce que c'est un framework JS basé sur Cocoa (au niveau de la structure)... de quoi avantager bien des devs Cocoa !
  • sekaijinsekaijin Membre
    04:51 modifié #18
    après quelques essais et un dev avec cappuccino
    je dois dire que je trouve moi aussi cette approche sympathique.

    mais il y a quelques petites choses qui me gênent
    cib : cib c'est le format NIB pour Coppucino. en fait NIB d'apple c'est en gros (à  la louche un dictionnaire) l'équipe de Cappuccino a mise au point son équivalent mais cette fois les clef valeurs sont véhiculées dans du JSON pour quoi pas. mais cela à  un inconvénient il faut soit utiliser un produit dédié (il en vendent un) soit convertir le IB en CIB
    alors que InterfaceBuilder produit XIB nativement XIB c'est NIB en XML
    pour lire un CIB cappuccino utiliser XMLHttpRequest mais laisse tomber le fonction native de l'objet pour ne gérer que HttpRequest
    alors que s'il utilisait XML XIB donc XMLHttpRequest parserait pour eux le fichier en question.
    CIB est plus léger mais moins facile à  mettre en oe“uvre et nécessite d'embarquer un interprète en JS pour le lire. c'est très marginal mais je trouve ça dommage.

    deuxième petite chose gênante mais là  beaucoup plus c'est impossibilité de changer le thèmes de l'interface;
    Ce n'est pas tant que la changement de thème soit une fonctionnalité primordiale. Mais que lorsqu'on développe pour une entreprise on ne puisse pas fournir une application respectant les règles de l'IHM de la maison.

    pour finir objective-J
    là  je dis chouette génial etc. un vrai langage de programmation structuré sur le navigateur. Mais revers de la médaille
    le debug c'est la croix. pas de point d'arrêt pas de pas à  pas c'est une boite noire et on ne sais pas ce qu'il se passe.
    c'est un bricolage pas possible que je chasser le bug la dedans.

    solution développement itératif on fait un tout petit bout on le teste re teste et re re teste puis on commence à  assembler deux petit bout qu'on va tester et re tester puis trois etc. si on s'aventura à  assembler d'un coup beaucoup trop de chose et qu'un bug apparait il est très difficile de le trouver.

    bref quelques petits défauts
    un très gros manque de maturité
    beaucoup de potentiel
    et un point rédhibitoire en entreprise l'impossibilité d'adopter le thème de l'entreprise.

    A+JYT
  • AliGatorAliGator Membre, Modérateur
    04:51 modifié #19
    Capuccino, c'est du dev HTML/Javascript, non ?
    Donc le format JSON, c'est natif en JS (par définition, puisque JSON c'est du Javascript, JSON voulant dire "JavaScript Object Notation"). Donc pour interpréter le JSON d'un CIB... bah c'est directement intégré et natif au langage javascript, y'a pas besoin d'avoir de parseur ou quoi. Un simple "eval" sur la chaà®ne et le tour est joué.
    Donc au contraire c'est plus simple à  gérer qu'un XML, en tout cas en JS !
  • switcherdavswitcherdav Membre
    04:51 modifié #20
    merci beaucoup pour ce retour sur cappuccino, il est clair que la boite va chercher à  mettre en avant son IDE pour la création des interfaces

    je me demandais également comment personnaliser le thème par défaut, j'ai ma réponse

    je reste de toute façon branché dessus, Apple va bien finir par les racheter ^^
  • sekaijinsekaijin Membre
    04:51 modifié #21
    dans 1278321310:

    Capuccino, c'est du dev HTML/Javascript, non ?
    Donc le format JSON, c'est natif en JS (par définition, puisque JSON c'est du Javascript, JSON voulant dire "JavaScript Object Notation"). Donc pour interpréter le JSON d'un CIB... bah c'est directement intégré et natif au langage javascript, y'a pas besoin d'avoir de parseur ou quoi. Un simple "eval" sur la chaà®ne et le tour est joué.
    Donc au contraire c'est plus simple à  gérer qu'un XML, en tout cas en JS !

    pas vraiment effectivement tu va pouvoir utiliser eval bien que ce soit ce qu'il est surtout recommandé de ne pas faire.
    mais tu vas donc passer par l'interprète javascript pour obtenir un objet Javascript et non un dictionnaire objective-J

    avec XML tu n'as rien a faire XMLHttpRequest Get monurl.ver.une.resource.xml
    response.getXML() te donne non pas le source XML mais un DOM complet déjà  instancier de ton XML.
    pour cela XMLHttp.request utilise le parser XML natif de la plateforme (webkit)
    c'est rapide et peu gourmand

    pour JSON il est très forement recommendé d'utiliser un parser.
    il y a somme tout des différence entre jsonparser et eval
    http://json.parser.online.fr/ pour comparer
    pour les navigateur n'embarquant pas nativement jsonParse http://www.json.org/json2.js

    A+JYT
  • AliGatorAliGator Membre, Modérateur
    04:51 modifié #22
    Oui je sais qu'il est recommandé de ne pas utiliser eval, c'est une porte ouverte côté sécurité.
    Mais je voulais surtout montrer que JSON était un type natif (par définition) de JavaScript.
    Après je savais pas qu'il existait des "dictionnaires Objective-J" : je pensais que c'était un Object (la classe "Object" de Javascript, quoi) dont Cappuccino avait modifié le prototype (genre qu'ils avaient fait [tt]Object.prototype.dictionaryWithObjectsAndKeys = function() { ... }[/tt] pour rajouter la fonction dictionaryWithObjectsAndKeys à  la classe Object tout comme ils auraient pu faire [tt]Array.prototype.arrayWithObjects = function() { ... }[/tt] pour rajouter arrayWithObjects à  la classe javascript "Array" déjà  existante)

    Du coup un eval (ou plutôt un parsing avec un parseur JSON qui assure la sécurité et évite le risque d'exécution de code malicieux) classique (que tu pourrais faire même dans un contexte autre qu'Objective-C) te retournerait un "Object", comme habituellement en javascript quoi... sauf que cet Object, de par les ajouts de Cappuccino, pourrait être vu comme un NSDictionary...


    Mais bon je dis ça plein de suppositions, je n'ai jamais mainpulé Cappuccino, alors bon...
  • sekaijinsekaijin Membre
    04:51 modifié #23
    CIB n'est pas un gros pb en soit
    mais le tout m'a laissé l'impression d'un désir de fermer le tout
    des format propriétaire et vente d'outil pour aller avec alors que IB + XMLHttpRequest sont dispos et gartuit
    un débug hermétique + vente de formation
    etc...

    je me trompe peut-être mais c'est le sentiment que j'ai eu

    j'ai porté un bout du code de renaissance qui est un projet GnuStep ou gmaker (le NIB de gnustep est remplacé par  du xml donc un truc proche de XIB. plus ancien que XIB ) juste pour voir
    coté perf nikel et pas de difficulté majeure. (sauf le débug de la chose)
    mais j'ai juste testé  la faisabilité.

    bref j'aurais bien vu un support d'objective-j et du framework intégré à  Xcode plutôt qu'un dev proprio

    pour moi le frein c'est impossible en l'état de m'adapter à  l'entreprise et le debug

    pour ce qui est du thème il faut retoucher au coeur de cappuccino les images et autre css étant embarqué dans le code du framework

    A+JYT
Connectez-vous ou Inscrivez-vous pour répondre.