<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8720750807026021067</id><updated>2012-02-16T08:00:52.856+01:00</updated><category term='Installeur CAB'/><category term='Windows Mobile'/><title type='text'>Réseau Social sous Windows Mobile 6.5</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-7355253481497783939</id><published>2010-02-14T15:52:00.001+01:00</published><updated>2010-02-14T15:52:34.545+01:00</updated><title type='text'>Création d'un site web pour la gestion de la liste des contacts d'un utilisateur</title><content type='html'>Le but est ici de développer un site web pour permettre à un utilisateur de gérer sa liste de contacts. Le site web devra donc permettre à un utilisateur de s'identifier à l'aide d'un pseudonyme et d'un mot de passe. S'il ne possède pas d'identifiant, le site lui permettra d'en créer un et il sera directement enregistré dans la base de données.&lt;br /&gt;Une fois enregistré, l'utilisateur pourra gérer sa liste de contacts. Il pourra ainsi la consulter, et ajouter ou supprimer un contact à cette liste.&lt;br /&gt;Pour l'accès aux données, nous utilisons des EJB (ceux déjà utilisés pour la conception du webservice).&lt;br /&gt;Nous avons donc, d'une part un conteneur d'EJB qui permet de mapper un accès à la base de données, et d'autre part un conteneur WEB où nous utilisons JSF pour la partie interface client, et un javaBean pour tout ce qui est gestion de données.&lt;br /&gt;&lt;br /&gt;Nous aurons donc des classes java  beanManaged avec lesquelles nous pourront utiliser les attributs de la manière suivante :&lt;br /&gt;&lt;br /&gt;public class beanManaged {&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;    private String contactName;&lt;br /&gt;    private String contactMdp;&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Ces attributs nous permettrons de récupérer les valeurs saisies dans les inputsText de la page en JSP de la manière suivante :&lt;br /&gt;&lt;br /&gt; &amp;lt;h:form&amp;gt;&lt;br /&gt;        &amp;lt;h:outputText value="user : "&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;h:inputText id="inputTxtUser1" value="#{beanManaged.contactName}"&amp;amp;lt&amp;amp;gt/h:inputText&amp;amp;lt&lt;br /&gt;         &amp;lt;h:outputText value="Mot de passe : "&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;h:inputText id="inputTxtMdp1" value="#{beanManaged.contactMdp}"&amp;gt;&amp;lt;/h:inputText&lt;br /&gt;…&lt;br /&gt;&amp;gt;&amp;lt;/h:form&amp;gt;&lt;br /&gt;&lt;br /&gt;Le beanManaged contient aussi toutes les fonctions permettant la recherche et la validation de données en faisant appel aux EJB (avec une interface FaçadeRemote). Nous avons donc par exemple des fonctions permettant l'enregistrement d'un utilisateur, la suppression d'un contact, l'ajout d'un contact etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-7355253481497783939?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/7355253481497783939/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/creation-dun-site-web-pour-la-gestion.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/7355253481497783939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/7355253481497783939'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/creation-dun-site-web-pour-la-gestion.html' title='Création d&apos;un site web pour la gestion de la liste des contacts d&apos;un utilisateur'/><author><name>Mathieu</name><uri>http://www.blogger.com/profile/06504128720059099955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-4499590226445989429</id><published>2010-02-07T21:14:00.002+01:00</published><updated>2010-02-07T22:24:34.005+01:00</updated><title type='text'>Couche de persistance des données</title><content type='html'>Pour accéder à la base de données de l'application, nous avons utiliser les fonctionnalités de persistance proposées par l'API Java.&lt;br /&gt;Pour cela, les assistants de netbeans facilitent grandement la mise en place. Néanmoins pour revenir sur les éléments nécessaires, on a besoin:&lt;br /&gt;- D'un pool de connection.&lt;br /&gt;- D'un nom jndi associé au pool.&lt;br /&gt;- D'un persitence unit.&lt;br /&gt;Ceci peut être crée à la main dans la console d'admin de glassfish ou pratiquement automatiquement en suivant ce processus:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Créer un package db par exemple&lt;/li&gt;&lt;li&gt;Clique droit &gt; New &gt; Entity classes from database...&lt;/li&gt;&lt;li&gt;A ce moment là si le DataSource n'est pas crée, Netbeans propose un assistant pour le crée.&lt;/li&gt;&lt;li&gt;Une fois les classes sélectionnées, Un assistant propose de créer un persitence unit en se basant sur le nom jndi du pool de connection précédemment crée.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Une fois les entity créées, créer un autre package ejb par exemple.&lt;/li&gt;&lt;li&gt;Clique droit sur ce package &gt; New &gt; Beans Sessions for Entity Classes...&lt;/li&gt;&lt;/ol&gt;Et voila, en quelques cliques nous avons de beaux EJB beans sessions permettant d'accéder à la base de données. Très pratique ces assistants de Netbeans quand même !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-4499590226445989429?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/4499590226445989429/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/couche-de-persistance-des-donnees.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/4499590226445989429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/4499590226445989429'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/couche-de-persistance-des-donnees.html' title='Couche de persistance des données'/><author><name>Yann Loiseau</name><uri>http://www.blogger.com/profile/02357547524417692662</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-2436993444060701695</id><published>2010-02-07T21:02:00.003+01:00</published><updated>2010-02-07T21:13:56.820+01:00</updated><title type='text'>Transformer des coordonnées GPS en une distance</title><content type='html'>Les données enregistrées dans la base de données sont une longitude et une latitude données en degrés.&lt;br /&gt;Évidemment la comparaison des coordonnées GPS ne fournit pas des distances en kilomètres !!&lt;br /&gt;Ainsi, déterminer la proximité d'un amis par rapport à une coordonnée GPS n'est pas un calcul trivial. Nous avons utiliser un calcul que nous avons trouvé sur un forum après recherches sur google et qui se révèle être; après quelques tests; plutôt proche de la réalité.&lt;br /&gt;Voici le calcul utilisé:&lt;br /&gt;&lt;blockquote&gt;d = R * (pi/2 - asin ( sin x1 * sin x2 + cos ( y1 - y2 ) * cos x1 * cos x2 ));&lt;br /&gt;avec&lt;br /&gt;d distance entre les 2 points&lt;br /&gt;R rayon de la Terre&lt;br /&gt;x1 lattitude en radians du 1er point&lt;br /&gt;x1 lattitude en radians du 2eme point&lt;br /&gt;y1 longitude en radians du 1er point&lt;br /&gt;y1 longitude en radians du 2eme point                &lt;/blockquote&gt;&lt;br /&gt;On voit qu'il faut encore transformer les données puisque le calcul utilise les radians alors que nous fournissons des degrés. Encore une fois une recherche rapide sur google fournit ces informations:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;radians = degres * PI / 180&lt;/blockquote&gt;Implémenter ceci en java est relativement simple:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author Yann Loiseau&lt;br /&gt;*/&lt;br /&gt;public class GPS {&lt;br /&gt;   public static float degres2radians(float degres){&lt;br /&gt;       return (float) (degres * Math.PI / 180);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   static float getKilometers(float lattitude1, float lattitude2, float longitude1, float longitude2) {&lt;br /&gt;       return (float) (6378 * (Math.PI / 2 - Math.asin(Math.sin(GPS.degres2radians(lattitude1)) * Math.sin(GPS.degres2radians(lattitude2)) + Math.cos(GPS.degres2radians(longitude1) - GPS.degres2radians(longitude2)) * Math.cos(GPS.degres2radians(lattitude1)) * Math.cos(GPS.degres2radians(lattitude2)))));&lt;br /&gt;   } //d = R * (pi/2 - asin ( sin x1 * sin x2 + cos ( y1 - y2 ) * cos x1 * cos x2 ));&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;!-- post_body --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-2436993444060701695?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/2436993444060701695/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/transformer-des-coordonnees-gps-en-une.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/2436993444060701695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/2436993444060701695'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/transformer-des-coordonnees-gps-en-une.html' title='Transformer des coordonnées GPS en une distance'/><author><name>Yann Loiseau</name><uri>http://www.blogger.com/profile/02357547524417692662</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-228778636951037994</id><published>2010-02-07T20:29:00.005+01:00</published><updated>2010-02-17T10:13:08.314+01:00</updated><title type='text'>Web Application: partie métier du serveur basée sur un Web Service</title><content type='html'>&lt;img src="file:///C:/Users/yann/AppData/Local/Temp/moz-screenshot.png" alt="" /&gt;&lt;img src="file:///C:/Users/yann/AppData/Local/Temp/moz-screenshot-1.png" alt="" /&gt;Pour permettre à l'application client de mettre à jour ses coordonnées GPS et récupérer la liste des amis qui sont proches, nous avons fait le choix de créer un Web Service qui assurera cette fonction. Notre Web Service possède une seule opération pour l'instant:&lt;br /&gt;&lt;blockquote&gt;@WebMethod(operationName = "UpdateCoordonnees")&lt;br /&gt;public ArrayList UpdateCoordonnees(@WebParam(name = "Nom") String Nom, @WebParam(name = "Longitude") float Longitude,&lt;br /&gt;@WebParam(name = "Latitude") float Latitude)&lt;/blockquote&gt;&lt;br /&gt;Plus simplement: notre opération prend 3 paramètres en entrée: le nom du contact qui l'interroge et ses coordonnées GPS: latitude et longitude.&lt;br /&gt;Elle retourne un tableau de type contact simple qui est une classe contenant quatre attributs:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;public class ContactSimple {&lt;br /&gt; private String Nom;&lt;br /&gt; private String Numero;&lt;br /&gt; private float Longitude;&lt;br /&gt; private float Latitude;&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Netbeans s'occupe lui même de créer la structure XML.&lt;br /&gt;&lt;br /&gt;C'est une fonctionnalité de Netbeans que j'ai trouvé assez pratique pour la création d'un Web Service. Il s'occupe évidemment de crée le wsdl mais également le fichier de description XML (.xsd) décrivant la structure des données utilisées pour les paramètres d'entrée et de sortie de l'opération.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Le Web Service utilise la couche de persistance des données pour enregistrer ou récupérer des données de la base.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-228778636951037994?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/228778636951037994/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/web-application-partie-metier-du.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/228778636951037994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/228778636951037994'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/web-application-partie-metier-du.html' title='Web Application: partie métier du serveur basée sur un Web Service'/><author><name>Yann Loiseau</name><uri>http://www.blogger.com/profile/02357547524417692662</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-7665401785039319494</id><published>2010-02-07T19:38:00.004+01:00</published><updated>2010-02-07T20:25:16.235+01:00</updated><title type='text'>Coté base de données</title><content type='html'>L'organisation du stockage des données s'est fait de manière très simple: en utilisant phpmyadmin. En effet le projet est expérimental et la solution la plus simple s'est imposée comme la meilleure!&lt;br /&gt;Structure de la table:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8ZyAk_GSJnY/S28ThoiRJDI/AAAAAAAAAAc/kSSxetBqHzU/s1600-h/Sch%C3%A9maBD.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://1.bp.blogspot.com/_8ZyAk_GSJnY/S28ThoiRJDI/AAAAAAAAAAc/kSSxetBqHzU/s400/Sch%C3%A9maBD.JPG" alt="" id="BLOGGER_PHOTO_ID_5435584743797236786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Les points à noter sont:&lt;br /&gt;Champ Date dans la table CoordonneesGPS est de type timestamp qui permet qu'il soit rempli automatiquement à l'insert.&lt;br /&gt;&lt;br /&gt;Les relations entre Contact, Liste, ContactListePivot sont ainsi car un contact appartient à une liste de quelqu'un d'autre et en même possède une liste. Celà se traduit par une clé étrangère dans la table Liste pour modéliser le propriétaire de la liste et la création d'une table pivot contenant les clés étrangères de la liste et du contact pour modéliser l'appartenance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-7665401785039319494?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/7665401785039319494/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/cote-base-de-donnees.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/7665401785039319494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/7665401785039319494'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/cote-base-de-donnees.html' title='Coté base de données'/><author><name>Yann Loiseau</name><uri>http://www.blogger.com/profile/02357547524417692662</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8ZyAk_GSJnY/S28ThoiRJDI/AAAAAAAAAAc/kSSxetBqHzU/s72-c/Sch%C3%A9maBD.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-794767992386609015</id><published>2010-02-07T18:38:00.004+01:00</published><updated>2010-02-07T20:27:54.249+01:00</updated><title type='text'>Application coté serveur</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;Coté serveur, nous nous sommes basé sur une architecture distribuée utilisant le serveur d'application Glassfish. Plusieurs composants distincts forment cette architecture. Netbeans IDE 6.8 a constitué le support de développement.&lt;br /&gt;Pour commencer il faut créer un projet de type Entreprise Application sous Netbeans. Pour le serveur nous avons pris Glassfish v3 dans un premier temps même si il a fallut switcher avec la v2.1 régulièrement car il y a eu quelques bugs incompréhensibles au moment du déploiement de l'application (erreurs du type The Module has not been deployed) que nous avons résolu en redémarrant le serveur ou en changeant carrément de version. Pour la version de Java EE: la 5 pour des soucis de compatibilité entre Glassfish v2.1 et v3.&lt;br /&gt;Donc une fois l'entreprise application créée, on se retrouve avec deux modules: une Web App et un projet EJB. On s'est servi de la Web App pour la partie métier notamment en créant un Web Service pour ces traitements. Le projet EJB nous a servi pour l'accès aux données à l'aide des mécanismes de persistance.&lt;br /&gt;&lt;br /&gt;Dans les prochains billets je traiterais en détail de ces deux composantes de l'architecture.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-794767992386609015?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/794767992386609015/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/application-cote-serveur.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/794767992386609015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/794767992386609015'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/application-cote-serveur.html' title='Application coté serveur'/><author><name>Yann Loiseau</name><uri>http://www.blogger.com/profile/02357547524417692662</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-2719780207885976126</id><published>2010-02-06T18:47:00.003+01:00</published><updated>2010-02-13T17:14:46.128+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Consommer un webservice dans une application mobile</title><content type='html'>Pour utiliser un web service dans une application mobile en c#, le principe est le même que dans une application c# classique.&lt;br /&gt;&lt;br /&gt;Tout d'abord, il faut ajouter la référence du service au projet mobile (clic droit -&gt; ajouter une référence Web) , on entre alors l'adresse du web service, on le nomme et on valide.&lt;br /&gt;&lt;br /&gt;On peut à tout moment connaitre le contenu du web service en faisant un clic droit -&gt; Afficher dans l'explorateur d'objets. Cela permet de connaitre les méthodes proposée, et les types utilisés.&lt;br /&gt;&lt;br /&gt;Pour utiliser un web service, il faut l'instancier :&lt;br /&gt;&lt;blockquote&gt;WebService.NomDuService ws = new WebService.NomDuService();&lt;/blockquote&gt;On peut alors faire des appels aux méthodes présents :&lt;br /&gt;&lt;blockquote&gt;ws.maMethodeWeb();&lt;/blockquote&gt;De même, on peut utiliser un type présent dans un web service :&lt;br /&gt;&lt;blockquote&gt;WebService.MonType montype;&lt;br /&gt;&lt;/blockquote&gt;Cela peut s'avérer utile lorsque le web service demande des paramètres particuliers ou lorsqu'il retourne une valeur d'un type non simple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-2719780207885976126?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/2719780207885976126/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/consommer-un-webservice-dans-une.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/2719780207885976126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/2719780207885976126'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/consommer-un-webservice-dans-une.html' title='Consommer un webservice dans une application mobile'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-970211212410138508</id><published>2010-02-05T14:00:00.004+01:00</published><updated>2010-02-13T17:14:46.128+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Proposer de passer un appel</title><content type='html'>Lorsqu'un utilisateur de notre application envoie sa position, il souhaite connaitre les noms et les numéros des personnes proches de lui. Pour lui éviter de devoir retaper le numéro, nous proposons d'appeler directement.&lt;br /&gt;&lt;br /&gt;Pour cela, il suffit d'utiliser un code très simple mais pas forcément évident à trouver sur Internet :&lt;br /&gt;&lt;blockquote&gt;Microsoft.WindowsMobile.Telephony.Phone myPhone = new Microsoft.WindowsMobile.Telephony.Phone();&lt;br /&gt;myPhone.Talk("0123456789", true);&lt;/blockquote&gt;&lt;br /&gt;Il ne faut pas oublier d'inclure&lt;br /&gt;&lt;blockquote&gt;Microsoft.WindowsMobile.Telephony;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-970211212410138508?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/970211212410138508/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/proposer-de-passer-un-appel.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/970211212410138508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/970211212410138508'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/proposer-de-passer-un-appel.html' title='Proposer de passer un appel'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-6828981578747113008</id><published>2010-02-05T13:38:00.005+01:00</published><updated>2010-02-13T17:14:46.128+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Récupérer une carte depuis google maps</title><content type='html'>Pour permettre à l'utilisateur d'avoir un plan dans l'application, nous avons utilisé Google Maps. En effet, Google met à sa disposition des outils afin de récupérer une carte d'un endroit souhaité.&lt;br /&gt;&lt;br /&gt;Pour nous aider, nous nous sommes fortement inspirés du tutoriel proposé par &lt;a href="http://blogs.msdn.com/pierreca/archive/2009/06/24/la-boite-outils-de-l-application-g-olocalis-e-partie-3-afficher-une-carte.aspx"&gt;Pierre Cauchois&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nous avons donc créé deux paramètres dans notre fichier de ressources : un pour l'url de l'application google maps, et un deuxième pour la clé nécessaire à la connexion à cette application.&lt;br /&gt;&lt;br /&gt;Pour l'url, nous avons mis le paramètre GoogleMapsBaseUrl avec la valeur suivante : http://maps.google.com/staticmap? (avec le point d'interrogation)&lt;br /&gt;&lt;br /&gt;Pour la clé, nous sommes allés sur &lt;a href="http://code.google.com/apis/maps/signup.html"&gt;ce site&lt;/a&gt;, et en bas, nous avons rempli l'url par http://localhost .&lt;br /&gt;Google nous a retourné une clé que nous avons ajouté comme valeur d'un paramètre que nous avons nommé GoogleMapsApiKey.&lt;br /&gt;&lt;br /&gt;Puis, pour faire la requête auprès de google, nous avons utilisé le code suivant :&lt;br /&gt;&lt;blockquote&gt;Bitmap myMap = null;&lt;br /&gt;           #region Construction des arguments de l'URL&lt;br /&gt;           StringBuilder args = new StringBuilder();&lt;br /&gt;           args.Append("center=" + lat + "," + lng);&lt;br /&gt;           args.Append("&amp;amp;zoom=12");&lt;br /&gt;           args.Append("&amp;amp;size=" + 480 + "x" + 380);&lt;br /&gt;           args.Append("&amp;amp;format=png");&lt;br /&gt;           args.Append("&amp;amp;maptype=mobile");&lt;br /&gt;           args.Append("&amp;amp;markers=" + lat + "," + lng + "," + "blue");&lt;br /&gt;           args.Append("&amp;amp;key=" + Properties.Resources.GoogleMapsApiKey);&lt;br /&gt;           args.Append("&amp;amp;sensor=false");&lt;br /&gt;           #endregion&lt;br /&gt;           try&lt;br /&gt;           {&lt;br /&gt;               WebRequest myRequest = WebRequest.Create(Properties.Resources.GoogleMapsBaseUrl + args.ToString());&lt;br /&gt;               WebResponse myResponse = myRequest.GetResponse();&lt;br /&gt;               myMap = new Bitmap(myResponse.GetResponseStream());&lt;br /&gt;               myResponse.Close();&lt;br /&gt;           }&lt;br /&gt;           catch (WebException ex)&lt;br /&gt;           {&lt;br /&gt;               MessageBox.Show(ex.Message);&lt;br /&gt;           }&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Ce code nous permet de passer les coordonnées à google qui nous retourne la carte correspondante. Nous pouvons alors utiliser cette carte pour l'afficher à l'utilisateur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-6828981578747113008?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/6828981578747113008/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/recuperer-une-carte-depuis-google-maps.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/6828981578747113008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/6828981578747113008'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/recuperer-une-carte-depuis-google-maps.html' title='Récupérer une carte depuis google maps'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-3834176440058904475</id><published>2010-02-05T13:34:00.002+01:00</published><updated>2010-02-05T13:38:39.715+01:00</updated><title type='text'>Problèmes et réorganisation</title><content type='html'>Nous avions prévu de travailler avec Azure pour ce projet mais nos comptes n'étant plus actifs depuis le 1er février 2010, cela pose quelques petits problèmes...&lt;br /&gt;Nous sommes donc passés sur des web services en java sur un serveur glassfish pour pouvoir continuer le projet.&lt;br /&gt;&lt;br /&gt;La partie mobile a également eu quelques ralentissements dus à des problèmes sur les téléphones reçus. Certains problèmes sont toujours présents mais nous allons tout de même continuer notre application avec les moyens possibles pour arriver à un résultat le plus proche du but premier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-3834176440058904475?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/3834176440058904475/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/problemes-et-reorganisation.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/3834176440058904475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/3834176440058904475'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/02/problemes-et-reorganisation.html' title='Problèmes et réorganisation'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-664525591356081251</id><published>2010-01-22T11:43:00.006+01:00</published><updated>2010-02-13T17:14:46.128+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Installeur CAB'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Créer un installeur pour portable</title><content type='html'>Un des enjeux du projet est de permettre à des utilisateurs de télécharger et d'installer l'application sur leur téléphone pour pouvoir l'utiliser.&lt;br /&gt;&lt;br /&gt;Nous allons donc créer un fichier .cab, qui installera l'application et qui créera un raccourci dans les programmes.&lt;br /&gt;&lt;br /&gt;Pour cela, il faut tout d'abord créer un nouveau projet qui est intégré dans la solution.&lt;br /&gt;&lt;br /&gt;Sur la solution : clic droit -&gt; nouveau projet&lt;br /&gt;Dans les types de projet (partie gauche de la fenêtre qui s'ouvre), choisir "Autres types de projet" puis "Configuration et déploiement". Dans la partie gauche, choisir "Projet CAB Smart Device". Nommer le projet et valider.&lt;br /&gt;&lt;br /&gt;Faire ensuite un clic droit sur le projet créé et choisir "Ajouter" et "Sortie de projet..." et choisir le projet SmartDevice développé.&lt;br /&gt;&lt;br /&gt;Voila l'installateur prêt, il ne nous reste plus qu'à créer le raccourci. Pour cela, il faut afficher le système de fichiers du projet cab (s'il n'est pas affiché, clic droit sur le projet, "Affichage", "Système de fichiers")&lt;br /&gt;Dans la partie gauche de cette nouvelle interface, clic droit sur "Système de fichiers de l'ordinateur cible", "Ajouter un dossier spécial", "Dossier Programmes".&lt;br /&gt;Cliquer sur le dossier créé, et faire un clic droit dans la partie droite de l'interface. Choisir "Créér un raccourci". Une fenêtre s'ouvre. Chercher le programme dans Dossier d'applications et la valider. Renommer le raccourci. Voila le raccourci prêt. Il ne reste plus qu'à créer le .cab et à l'installer sur le téléphone. &lt;br /&gt;&lt;br /&gt;Il est évidemment possible de modifier d'autres options de l'installateur, telles que les clés de registre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-664525591356081251?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/664525591356081251/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/01/creer-un-installeur-pour-portable.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/664525591356081251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/664525591356081251'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/01/creer-un-installeur-pour-portable.html' title='Créer un installeur pour portable'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-8007501708582068208</id><published>2010-01-19T18:25:00.003+01:00</published><updated>2010-01-19T18:32:01.570+01:00</updated><title type='text'>Téléphone portable reçu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ctgv9YJ7suM/S1XsfAI_btI/AAAAAAAAACY/BIU9uvhyorw/s1600-h/HTC_Touch_HD.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 220px; height: 320px;" src="http://3.bp.blogspot.com/_ctgv9YJ7suM/S1XsfAI_btI/AAAAAAAAACY/BIU9uvhyorw/s320/HTC_Touch_HD.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5428504943222812370" /&gt;&lt;/a&gt;&lt;br /&gt;Microsoft nous a mis à disposition un téléphone portable que nous avons reçu aujourd'hui.&lt;div&gt;&lt;br /&gt;&lt;div&gt;Nous avons donc comme support le HTC Touch HD, avec comme système d'exploitation Windows Mobile 6.5 Professional.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-8007501708582068208?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/8007501708582068208/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/01/telephone-portable-recu.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/8007501708582068208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/8007501708582068208'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/01/telephone-portable-recu.html' title='Téléphone portable reçu'/><author><name>Antoine Prunier</name><uri>http://www.blogger.com/profile/12982615548537242664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ctgv9YJ7suM/S1XsfAI_btI/AAAAAAAAACY/BIU9uvhyorw/s72-c/HTC_Touch_HD.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8720750807026021067.post-124740375659323723</id><published>2010-01-10T12:27:00.002+01:00</published><updated>2010-01-10T12:37:25.162+01:00</updated><title type='text'>Objet du blog</title><content type='html'>Ce blog a pour but de suivre l'avancée d'un projet réalisé dans le cadre du cours de génie logiciel de l'EPSI Montpellier.&lt;br /&gt;&lt;br /&gt;Le sujet est le suivant : &lt;br /&gt;développer un réseau social sur Windows mobile 6.5 permettant d'être alerté lorsqu'un de nos contact est proche de nous. &lt;br /&gt;&lt;br /&gt;Pour cela, nous utiliserons un système de géolocalisation pour connaitre les positions des différents membres du réseau et nous fixerons une limite de distance pour lancer une alerte.&lt;br /&gt;Le site d'administration du compte, de récupération du logiciel et de stockage d'informations utilisera la plateforme Azure de Microsoft.&lt;br /&gt;&lt;br /&gt;Si vous êtes intéressé par le développement sur plateforme mobile ou cloud avec les outils de Microsoft, n'hésitez pas à nous suivre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8720750807026021067-124740375659323723?l=epsimobiledev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epsimobiledev.blogspot.com/feeds/124740375659323723/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://epsimobiledev.blogspot.com/2010/01/objet-du-blog.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/124740375659323723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8720750807026021067/posts/default/124740375659323723'/><link rel='alternate' type='text/html' href='http://epsimobiledev.blogspot.com/2010/01/objet-du-blog.html' title='Objet du blog'/><author><name>Yoann Gesquiere</name><uri>http://www.blogger.com/profile/11435423970579554196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
