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

Silverlight Discussion :

Affichage d'une image générée par un service WCF


Sujet :

Silverlight

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut Affichage d'une image générée par un service WCF
    Bonjour,

    Je souhaite réaliser une application silverlight qui affiche une image de synthèse.

    Cette image ne peut être générée par l'application Silverlight car la synthèse nécessite le Framework en entier.
    D'où mon idée de générer cette image par un service WCF. Mon problème est que je ne sais pas comment on peut enregistrer un fichier avec un service WCF. Et une fois que l'on a enregistré le fichier quel est son url.

    En effet, l'url est le résultat retourné par le service et mon application silverlight se chargera de downloader l'image à partir de l'url.

    Mes 2 questions :
    Comment créer un fichier avec un service WCF?
    Est ce que le service WCF est adapté à ma problématique?

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    passe par des byte[] et génère des bitmap à la volée.


    Comment créer un fichier avec un service WCF?
    tout pareil qu'avec n'importe quelle appli .Net que ce soit console, winform ou asp.net ou meme rien du tout. c'est les mêmes lignes de code, et un type défini que tu retourneras. soit une url, soit une Image, soit un byte array. WCF, c'est que la "communication", pour le reste, l'interieur des méthodes, ca reste du code brut.

    Est ce que le service WCF est adapté à ma problématique?
    tout pourrait être adapté. un webservice basique ferait la même chose mais effectivement, WCF est une avancée, autant l'utiliser
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    Merci pour cette réponse. J'aimerai avoir quelques précisions.

    Lors de ma phase de développement mon service WCF est hebergé sur localhost, donc où va être crée un fichier si son chemin relatif est "./myFile.jpg".

    Et lorsque je suis en production, c'est à dire que mon service est hebergé sur www.myDomain.com, où va être créé le fichier?

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    justement, le fait de passer par des byte[], tu ne créés pas d'image ni de fichier. (tu pourrais, c'est juste qu'on veut éviter cela) une image sur le disque est de tte facon chargée en mémoire donc autant ne pas prendre de la place sur le disque pour rien

    j'utilise ce principe dans mon premier article
    http://lgmorand.developpez.com/dotnet/adimage/#LII

    l'image est stockée sous forme de byte[] dans l'AD, et mon client l'affiche direct


    ici, il suffit d'imaginer que l'AD est un webservice qui génère une image, la transforme en byte[] et la retourne au client silverlight. c'est tout
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Le problème c'est que Silverlight ne sait pas afficher une image avec un byte[], il lui faut au choix, une URI ou un Stream.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    un MemoryStream, ca doit pouvoir le faire non?

    byte array to memorystream
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    En fait, j'ai besoin que mon fichier soit stocké sur le serveur qui héberge le service WCF. En effet, mon image n'est pas un simple jpeg mais une collection de fichier formant une image DeepZoom.

    C'est pour ça que je voulais savoir comment enregistrer un fichier sur le serveur et quel sera son url.

  8. #8
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ben tu as bien une méthode Save sur un objet Bitmap nan ?

    Tu le sauves et tu y accèdes via une URL. Si tu le sauves dans le même repertoire que ton service, tu pourras y accéder via la même URL que ton service (en changeant juste le nom du service par le nom de l'image).
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    J'ai remarqué que mon service s'executait sur "localhost:5530", d'ailleurs je vois le contenu de mon répertoire de développement quand je tape l'adresse le navigateur.

    Par contre, mon fichier ne se créé pas. Y a t'il des droits à ouvrir?

  10. #10
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    localhost:5530
    ouais mais en production ca sera pas ca. j'espère que le principe de localhost et les numéros de port te sont familiers :/



    passe en mode debug pour voir pourquoi ca ne se créé pas. faut utiliser un logiciel de log quand tu developpes (log4net par exemple) sinon tu t'en sortiras jamais
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  11. #11
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    Justement, je suis débutant dans le développement de services web, c'est pour ça que je pose un certain nombre de questions qui peuvent sembler bête.

    Mais je suis d'accord avec toi, mon url de production sera www.myDomain.com mais lors du développement j'utilise le localhost.

    Je vais regarder l'utilité de log4net. Et peut-être le fichier Web.config...

  12. #12
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    c'est pour ça que je pose un certain nombre de questions qui peuvent sembler bête.
    aucune question n'est bête

    simplement, le "pourquoi ca ne marche pas", bien souvent, c'est le debug qui te donnera la réponse. et bien plus rapidement que nous, qui à distance, n'avons pas les éléments sous les yeux
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  13. #13
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    Effectivement, le débug est toujours mon outil de travail.

    Par contre dans le cas d'un service WCF, le debug ne s'arrete pas quand je met un point d'arret dans le code du service : d'où mes nombreuses questions.

  14. #14
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par PerpetualSnow Voir le message
    Effectivement, le débug est toujours mon outil de travail.

    Par contre dans le cas d'un service WCF, le debug ne s'arrete pas quand je met un point d'arret dans le code du service : d'où mes nombreuses questions.
    Heu... si, il s'arrête.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  15. #15
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    J'ai du mettre ce projet en suspens pendant quelques jours faute de résultats positifs.
    Cela dit, je n'arrive pas à faire passer le débugger dans mon service WCF. Je vais créer un projet plus simple pour comprendre ce qui se passe, et je reviendrai peut-être (surement? ) avec d'autres questions.

Discussions similaires

  1. Affichage d'une image génèrée dynamiquement
    Par chichone dans le forum GWT et Vaadin
    Réponses: 6
    Dernier message: 20/06/2008, 13h51
  2. [ImageMagick] Affichage d'une image générée
    Par iamyog dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/08/2007, 12h35
  3. Récupérer une image générée par un lien
    Par furtif1 dans le forum Langage
    Réponses: 1
    Dernier message: 03/05/2007, 11h11
  4. [GD] Enregistrer une image générée par PHP sur disque dur
    Par Alex01 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/05/2006, 11h16
  5. [GD] pb affichage d'une image créée par GD depuis ma base MySQL
    Par freddy92110 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/12/2005, 15h50

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