David Verrière

Blog sur les thèmes du développement .Net, SQL Server, Windows Mobile et tout ce qui peut me passioner en général

 

logo_eureka

Je transmet une offre de la société dans laquelle je travaille.
Ambiance très sympa et jeune avec des projets intéressants et motivants.
N'hésitez pas à me poser des questions.
Les technos que nous utilisons :

  • winform
  • WPF
  • WCF
  • SQL Server 2008
  • Windows Mobile/CE
  • asp.Net
  • GPS
  • PTV Loxane

Vous travaillerez sur la suite logicielle Dispatch, ce progiciel est destiné aux transporteur et permet de gérer toutes les tâches d’une activité transport :

  • Prise d’appel
  • Saisie de mission de transport
  • Dispatching
  • Géolocalisation des chauffeurs
  • Facturation
  • Import / Export EDI
  • Inter-connexion temps réel entre diverses sociétés de transports

L’offre en question :

Offre recrutement développeur .Net sur Montpellier


EUREKA Technology, PME de taille humaine, éditeur métier d’une suite logicielle innovante à destination du Transport Urgent, recrute dans le cadre de sa forte croissance (+ 30 à 40% par an) un développeur .NET
Notre suite logicielle, composée d’une application centrale Winform et de modules additionnels Temps Réels vous permettra d’utiliser les technologies mobiles (Imode, PDA (Compact framework.net), WAP20) et  les technologies Web (ASP.net, webservices…).


Nous vous proposons de ce fait un poste riche, complet qui requiert :
-   une forte polyvalence
-   une excellente capacité d’adaptation
-   une capacité démontrée à travailler en équipe


Pour les projets de taille moyenne ou forte, vous travaillez dans une équipe de 7 personnes.
Pour les projets de petite taille, vous êtes le responsable final et êtes amené à développer individuellement certains modules ou fonctionnalités.


Compétences requises :

  • Bonne maitrise de la programmation objet
  • Maitrise d’un langage objet C++/CSharp/Java
  • Compétence nécessaire en SQL
  • Compétences appréciées sur PTV xServer
  • Connaissance appréciée du logiciel Crystal Report ou Reporting Services


Le poste est basé à Montpellier. Le recrutement en CDI est immédiat. Le salaire est à négocier.
Nous recherchons une personne motivée, passionnée par son métier et désirant s’investir pleinement dans une aventure enrichissante.

Présentation d’EUREKA Technology


Etant au cœur même du système d’information de ses clients, EUREKA Technology, est le catalyseur, l’acteur et le premier bénéficiaire de leur E-transformation.
Editeur d’une suite logicielle TEMPS REEL sur le marché du Transport Urgent, EUREKA Technology s’est développée autour du concept de convergence des technologies en offrant à ses clients la maîtrise d'une double expertise en matière de :
-   expertise dans les métiers du transport : transport express, course à course, fret, messagerie, affrètement
-   expertise en développement informatique, technologies mobiles et plus largement NTIC.
Plus précisément, Eureka Technology édite un progiciel, Dispatch, qui gère le CŒUR même du système d’information de nos clients Grands Comptes, PME et TPE nationales : saisie, dispatching et suivi de missions, analyse statistique et facturation.
Les modules Dispatch Web et Dispatch Mobiles étendent le système d’information de nos entreprises clientes, à leurs propres clients, à leurs partenaires et à leurs nomades pour constituer un véritable flux d’information TEMPS REEL, générateur de forts gains de productivité et créateur de nouveaux services.

Les modules Dispatch Cartographie et géolocalisation permettent suivre en temps réel la flotte d’une entreprise transport et de visualiser les flux sur une carte.


Enfin, l’interfaçage de cette suite logicielle Dispatch aux autres systèmes d’information ou de communication de nos clients libère encore de nouveaux gisements de productivité.
Le positionnement unique d’EUREKA Technology lui permet de capter, sous forme de revenus ponctuels et récurrents, une partie de la valeur créée par les solutions globales à fort retour sur investissement dont elle équipe ses clients.
Une PME réactive, une équipe de passionnés, une ambiance de travail conviviale et responsabilisant, une culture forte du résultat…
L’équipe EUREKA Technology est composée de 12 personnes, développeurs ou experts métiers.
Management de proximité, responsabilisation et écoute des salariés sont nos valeurs : 100 % des salariés d’EUREKA Technology affirment travailler dans une ambiance rare.
Une PME en pleine croissance dans un secteur porteur, une suite logicielle qui est un fantastique fer de lance commercial…
EUREKA Technology puise son savoir-faire et sa croissance dans le fabuleux laboratoire qu’est le monde du Transport Urgent : son objectif premier est d’équiper le TOP 200 des entreprises nationales de Transport Urgent. Sa suite logicielle est unique, sans équivalent sur le marché. 
www.eureka-technology.fr

Merci de me contacter à l’adresse suivante : davidverriere@gmail.com

EUREKA Technology, PME de taille humaine, éditeur d'une suite logicielle métier innovante à destination des Métiers du Transport et de la Logistique, recrute dans le cadre de sa forte croissance un Hot Liner Métier à compétence Système et Réseau, bi ou tri-lingue. Poste sédentaire principalement.

Notre suite logicielle est un ERP Temps réel, développé sous environnement Windows (.Net) avec base de données SQL et générateur d'états Crystal Report. Nous sommes très spécialisés dans les métiers du Transport et de la Logistique.

Nous vous proposons un poste riche, complet qui requiert :

  • de grandes qualités d'écoute
  • des qualités pédagogiques et un vrai relationnel client
  • une capacité démontrée à travailler en équipe
  • une autonomie forte
  • une capacité à évoluer vers un poste de management

Diplômes et Compétences requises :

  • De formation technique Bac+2 minimum, 
  • Expérience significative dans l'administration du système d'information idéalement d'une société de transport (compétences SQL, Windows, client mail)
  • Une connaissance poussée des outils bureautique
  • Connaissance appréciée du générateur d'états (Crystal Report)
  • Compétences rédactionnelles nécessaires 
  • Bilingue anglais impératif, un plus si trilingue.

Le poste est basé à Saint Ouen (93400). Le recrutement en CDI est immédiat. Le salaire est à négocier en fonction de votre profil. Le cursus de formation sera celui d'un formateur Expert-Métier Transports et Logistique et durera au minimum 6 mois.
Nous recherchons une personne motivée, passionnée par son métier et désirant s'investir pleinement dans une aventure enrichissante au sein d'une PME leader en France dans certains marchés du Transport et qui s'inscrit dans une stratégie de conquête internationale.

Merci de nous contacter à l’adresse suivante : recrutement@eureka-technology.fr

Allez pour un premier post “techniques” sur la plateforme du petit bonhomme vert, je vais donner une solution que j’ai pu lire sur le forum frandroid à un problème que j’avais déjà eu sur mon Windows Mobile.

La communication entre son application et internet ne fonctionne pas où très mal avec un forfait illimytics SFR, il faut savoir que SFR bride à mort son offre internet illimitée illimytics (le sens du mot illimité n’est pas le même entre le Français et les commerciaux de SFR : de la belle arnaque de commercial).

Donc plusieurs limites interviennent sur les forfaits SFR illimités (oui faut suivre):

  • Débit ralenti au bout de 500Mo
  • Port 80 et 443 uniquement
  • Un joli proxy qui filtre un peu tout et n’importe quoi et surtout trop

Le 1er point est rédhibitoire, on ne peut rien y faire, pour le 2ème il faut passer à la caisse et passer au forfait FULL Internet (un peu comme la pub Omo lave plus blanc que blanc), et pour le 3ème voila la solution magique sur Android.

Symptômes rencontré chez moi :

je fais une requête HTTP en post depuis le téléphone, la requête arrive bien sur le serveur mais le client HTTP ne rend jamais la main sur le téléphone, l’application se ferme. Le problème ne se produit pas en WIFI ou chez un autre operateur.

La méthode suivante permet d’appeler un service REST en lui passant un paramètre JSON en POST.

public static String JSONCall(String Url, JSONObject arg) {
    HttpPost httpost = null;
    try {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        httpost = new HttpPost(Url);

        StringEntity se = new StringEntity(arg.toString());
        httpost.setEntity(se);
        httpost.setHeader("Accept", "application/json, text/javascript, */*");
        httpost.setHeader("Content-type", "application/json; charset=utf-8");
        HttpProtocolParams.setUseExpectContinue(httpclient.getParams(), false);
        BasicResponseHandler responseHandler = new BasicResponseHandler();           
        return httpclient.execute(httpost, responseHandler);
    } catch (Exception e) {
        return e.getMessage();
    }
}

En gras en rouge la ligne à rajouter pour que votre client http ne bloque plus avec les proxy SFR, le client DefaultHttpClient rajoute le header suivant Expect: 100-Continue.

En esperant que cela puisse aider: voila le poste original que j’ai relayé depuis frandroid : ici

android-renderedAllez mon 1er post sur Android, je viens de découvrir la plateforme et je dois dire que je suis emballé. Après le coup de poignard dans le dos de Microsoft qui n’a pas supporté Windows Mobile dans Visual Studio 2010 (merci encore c’est géniale de nous forcer à rester sur le 2010 sans proposer aucune alternative pour le développement mobile pour les professionnels), je dois dire qu’Android apporte une vrai fraicheur au développement mobile.

Je me suis décidé à tester la plateforme suite à un gros ras le bol vis à vis de Microsoft et sa politique concernant les mobiles. Je me suis donc acheté un HTC Hero d’occasion sous Android 2.1. Quand on vient d’un Windows Mobile 6.5 ça fait un choc quand on pense à l’intégration réalisé sur le terminal.

Les points qui m’ont plus:

  • Sdk très bien foutu et complet
  • Nombreuses ressources (loin devant Windows Mobile qui est pourtant une très vieille plateforme)
  • La séparation du code et de l’interface graphique ( à la WPF en moins poussé)
  • Facilité de déploiement
  • Un market place accessible (25€)

Les points avec lesquels j’ai du mal :

  • Java : c’est fou les kilomètres de codes qu’on doit pondre, C# est loin devant
  • Eclipse : c’est lent, pas très intuitif j’ai beaucoup de mal à m’y faire
  • Non support du SOAP en natif
  • Pas de génération de classe à partir d’un web service en natif

Après quelques heures de développement sur la plateforme voila donc mes impressions. J’espère que Microsoft va se réveiller car la franchement la concurrence est à des années lumières.

Monsieur Microsoft s’il vous plait :

  • Arrêtez de copier Apple sur le modèle économique et sur tout en général et laissez les dans leur ghettos bobo
  • Supportez le HTML 5 dès le début sur Windows Phone: ça ne va pas tuer Silverlight
  • Baissez un peu le prix d’accès pour les développeurs sur le market place (< 85€)
  • Proposez pleins de ressources pour les développeurs
  • Ne laissez pas tomber la branche pro mobile, vous êtes les seuls sur le marché

 

Je vais donc surement écrire quelques posts sur Android orienté communication avec WCF (bah oui, je ne vais pas lâcher mes technos de prédilections)

Je viens de tomber sur un site sympa avec pleins de thèmes pour Visual Studio 2005/2008/2010 :

image

http://studiostyles.info

Lorsqu’on utilise une BindingSource dans un usercontrol en windowsform, si le control perd le focus, il arrive que la bindingsource déclenche tout un tas d’event sans qu’on sache vraiment pourquoi.

Ce qui provoque des propertychanged un peu dans tous les sens sur les objets bindés.

Par exemple j’ai rajouté un événement listchanged sur ma bindingsource qui est bindé sur une combobox ou une checkbox. Si je sors du usercontrol cet événement est déclenché alors qu’il n’y a pas de raison apparente qu’il le soit vu que rien n’a bougé.

Pour éviter ce comportement il faut passer la propriété du UserControl parent AutoValidate à Disable.

Ainsi lors de la perte de focus le user control ne tentera pas de revalider tout ce qui lui passe sous la main et semer la zizanie dans votre binding.

Quelle surprise aujourd’hui lorsqu’on a voulu commencé à tester Visual Studio 2010 :

Visual Studio 2010 ne supporte pas le compact framework et le développement sur windows mobile, seule Windows phone 7 est supporté.

Nous avons quelques projets mobile noyés dans une solution .Net que nous allons donc devoir extraire pour pouvoir passer sous Visual Studio 2010 et donc continuer à travailler sur Visual Studio 2008 pour maintenir ces applications.

J’ai contacté Pierre Cauchoix à ce sujet et il m’a répondu ce ci je cite :

Le choix de l'outil de développement est lié au reste du SDK et à des questions de cohérence de l'environnement:
Le DTK Windows Phone 6.5.3 s'installe sur le SDK Windows Mobile 6 Refresh qui est supporté dans Visual Studio 2008, car c'est la version 2008 qui supporte .NET 3.5 sur lequel est basé le Compact Framework 3.5
Visual Studio 2010 va de paire avec  .NET 4, Silverlight 4, XNA Game Studio 4, et le développement Windows Phone 7.
Le choix de l'outil doit donc être motivé par le choix de la plateforme, pas l'inverse! Et c'est vrai que le changement de "type d'utilisateur" et donc naturellement des types d'applications qu'ils recherchent font qu'aujourd'hui on est en droit de se poser sérieusement la question de savoir quelle est la meilleure plateforme pour une application d'entreprise, Windows Phone 6.5 ou 7. Nous sommes conscient que pour certains scénarios métiers, Windows Phone 7 n'est pas à la hauteur de 6.5, tout comme 6.5 est très loin de Windows Phone 7 sur la plupart des scénarios grand public.
C'est pourquoi Microsoft a décidé de maintenir Windows Phone 6.5 pendant cette période de changement, durant laquelle Windows Phone 7 va gagner de plus en plus de fonctionnalités pour des applications métier, et ainsi rattraper son retard au lancement. La sortie en mars du DTK Windows Phone 6.5.3, avec de nouveaux contrôles de nouveaux terminaux sur Windows Phone 6.5 prouve bien que nous ne sommes absolument pas à l'arrêt sur cette plateforme. Nous allons continuer d'investir en parallèle tant que les possibilités de migration ne sont pas satisfaisantes en terme de fonctionnalités.

Je le remercie pour la réponse, il a sous entendu que Windows Phone 7 devrait peut être évoluer pour les pros.

C’est vrai quand attendant coté application métier et bien on est bien emmerdé.

D’un coté à Windows Mobile 6.5 avec Visual Studio 2008 sur lequel on peut maintenir nos applications métier.

De l’autre Windows Phone 7, qui n’est pas encore sortie avec un mode de distribution ultra verrouillé à la Apple et totalement inexploitable pour les applications métier.

C’est bien la 1ère fois que je suis autant frustré par Microsoft, j’espère que ça va évoluer et que Microsoft ne va pas laisser tomber la branche pro de Windows Mobile, car bon Windows CE c’est vraiment cool mais les terminaux sont beaucoup trop cher pour certains métiers comparé à de petit terminaux sous windows mobile.

 

Aujourd’hui je suis tombé sur un problème bête:

un développeur m’envoie un structure de donnée en XML sur mon service WCF qui accepte des requêtes en POST au format REST mais je ne reçois pas toutes ces données, certaines propriétés sont à null alors qu’elles sont bien présente

Mon operation contract :

[OperationContract]
[WebInvoke(UriTemplate = "PushGeoDatas", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, Method = "POST")]
void PushGeoDatas(GeoData geoData);

Mon DataContract

[DataContract(Namespace = "Business")]
public class GeoData
{
    [DataMember(IsRequired = true)]
    public string ConstrutorDeviceId { get; set; }

    [DataMember(IsRequired = false)]
    public CellIdInfos CellIdInformations { get; set; }

    [DataMember(IsRequired = false)]
    public GpsInfos GpsInformations { get; set; }

}

Mon appel :

<?xml version="1.0" encoding="UTF-8"?>
<Datas xmlns="Business" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

<ConstrutorDeviceId>358240030981245</ConstrutorDeviceId>
<CellIdInformations xmlns:a="GeoData">
<a:CellId>1119092</a:CellId>
<a:LocalAreaCode>20171</a:LocalAreaCode>
<a:MobileCountryCode>208</a:MobileCountryCode>
<a:MobileNetworkCode>20</a:MobileNetworkCode>
</CellIdInformations>
</GeoData>

Le problème est que lorsque je reçois le GeoData la propriété CellIdInformations  est null.

Après un petit tour sur Google, je tombe sur la msdn : http://msdn.microsoft.com/en-us/library/ms729813.aspx

For all data that's XML over the line. Like for WebServices using SOAP, REST and so on. Order is important, with the deserialisation of XML.

Tiens ça je ne savais pas, donc si dans mon DataContract je ne spécifie pas de Order sur les DataMembers alors c’est l’ordre Alphabétique qui est pris en compte.

Je teste donc en renseignant les parametres dans l’ordre alphabétique:

<?xml version="1.0" encoding="UTF-8"?>
<Datas xmlns="Business" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CellIdInformations xmlns:a="GeoData">
<a:CellId>1119092</a:CellId>
<a:LocalAreaCode>20171</a:LocalAreaCode>
<a:MobileCountryCode>208</a:MobileCountryCode>
<a:MobileNetworkCode>20</a:MobileNetworkCode>
</CellIdInformations>

<ConstrutorDeviceId>358240030981245</ConstrutorDeviceId>
</GeoData>

La ça passe.

Il faut donc mieux spécifier l’ordre dans ces datamembers

[DataContract(Namespace = "Business")]
public class GeoData
{
    [DataMember(IsRequired = true, Order=0)]
    public string ConstrutorDeviceId { get; set; }

    [DataMember(IsRequired = false, Order=1)]
    public CellIdInfos CellIdInformations { get; set; }

    [DataMember(IsRequired = false, Order=2)]
    public GpsInfos GpsInformations { get; set; }

}

Ce qui fait que si l’ordre n’est pas respecté WCF renvoi une erreur 400 Bad Format.

Personnellement je ne comprend pas pourquoi l’ordre est important sachant qu’on a le nom des balises et que donc on peut déserializer dans n'importe quel ordre.

Merci Jérémy pour cette remontée de bug :)

 

image

Lorsqu’on veut compiler un projet web asp.net dans deux versions différentes sur deux solutions différentes, on ne peut avoir deux répertoire virtuel sur IIS avec le même nom et on se prend le jolie message d’erreur :

image

“Creation of the virtual directory failed with the error The URL is already mapped to a different folder location”

Pour résoudre ce problème il faut éditer le fichier csproj, pour se faire clique droit sur le projet et Edit.

image

Chercher la section ProjectExtensions, puis remplacer l’url du champs IISUrl par une autre URL

image

Dans un de mes projets C#, j’ai été confronté à une erreur peu explicite.

En mettant à jour la dll Net.SourceForge.Koogra.dll, une erreur est apparue lors de la génération de mon projet.

Le message était le suivant :

Error    7    Assembly '..\..\ExternalLibrairies\Composant\Net.SourceForge.Koogra.dll' must be strong signed in order to be marked as a prerequisite.    projet(projet\projet)

Pour régler ce genre de problème il faut nettoyer le répertoire de sortie du projet ainsi que le répertoire obj. Le problème vient du fait que la dll externe n’était pas signée fortement avant et que maintenant elle l’est.