Archive

Articles taggués ‘IoC’

Bonnes pratiques pour une application Windows Phone et/ou Windows Store

Bonjour à tous, pour ce tutoriel je vous propose de :

  • Comprendre et appliquer le pattern MVVM (Model View View-Model)
  • Organiser son code pour minimiser les dépendances grâce aux Inversion de Contrôles (IoC) et Injections de Dépendances (DI)
  • Maximiser le partage de code entre les différentes plateformes grâce aux PCL (Portable Class Library)
  • Utiliser ces concepts pour :
    • Développer une application Windows Phone
    • Développer une application Windows Store
    • Développer une application cross plateforme Windows Phone et Windows Store
    • Développer d’autres types de projet (WPF, Silverlight…)

Ce tutoriel suppose que vous ayez déjà quelques bases en développement Windows Phone / Windows 8,  les détails spécifiques aux plateformes ne sont pas expliquées mais sont implémentées dans le code source disponible ici

Lire la suite…

On aime, on partage #7

Bienvenue dans la série « On aime, on partage » d’Objet Direct !
Chaque semaine retrouvez les meilleurs articles du web issus de notre veille technologique.
 
 
 
 

Java :

GWT de Google est mort, vive le GWT de la communauté !

L’avenir du framework GWT a été abordé lors de la dernière conférence Google I/O. Pour rappel, ce framework permet de concevoir des interfaces web en Java (concrètement, le code Java de la partie client d’une application GWT est compilé vers du Javascript). Pour les futurs développements, l’équipe souhaite mettre l’accent sur le performances (compilation, exécution), les problèmes de mobilité (conso batterie, réseau), et un meilleur suivi des version de Java (7, et bientôt 8). Il a aussi été question de nouveautés dans l’organisation du développement de GWT : le projet était déjà open-source, mais Google a décidé de passer sur un mode plus « communautaire » en le plaçant sous la gestion d’un comité de pilotage géré par plusieurs acteurs… une manière élégante de s’en débarrasser ?

http://javaweb.developpez.com/actu/55878/GWT-de-Google-est-mort-vive-GWT-de-la-communaute-la-feuille-de-route-de-la-boite-a-outils-de-developpement-Web-devoilee/


Retour d’expérience sur la création d’une application “desktop” à base d’HTML5

Nos confrère d’Ippon nous partagent leur récente expérience mettant en oeuvre HTML5 dans la réalisation d’une application multi-plateforme / multi-devices ayant la particularité de proposer un mode offline. La problématique de gestion du cache est bien détaillée ce qui permettra à quiconque se lançant dans un développement similaire de gagner un temps précieux en évitant quelques pièges.

http://blog.ippon.fr/2013/05/23/une-application-html5-desktop-en-mode-offline




Agilité :

Sprint Reviews in practice

La revue de Sprint est un élément essentiel de Scrum.

Dans l’article qui suit, Ian Mitchell nous en fait une présentation complète (et plus !) : quezaco ?, les différentes étapes, la différence avec la rétrospective, le backlog grooming, les anti-patterns et quelques conseils avisés pour que ce soit une réussite !

Vos revues de sprint ne se passent pas de la manière dont vous souhaitez ? Lisez cet excellent article, un must read pour tout Scrumiste !!!

http://agile.dzone.com/articles/sprint-reviews-practice




Design et conception :

DIP in the wild

Le principe d’inversion de dépendences, ça vous parle ? Voila un article très complet sur le blog de Martin Fowler. Prenez le temps de le lire. Après une longue introduction à ce qu’est le principe d’inversion de dépendances (le DIP du titre) par rapport à l’injection de dépendance ou l’inversion de contrôle, l’auteur illustre ses propos à travers différents exemples. En conclusion, Brett Schuchert rappelle que le code est le moyen d’arriver à ses fins et non la finalité en elle même. Il rappelle aussi que ce qui marche dans un contexte peut ne pas marcher pour un autre. Bonne lecture …

http://martinfowler.com/articles/dipInTheWild.html




Tribune libre :

HOW-TO : Piloter un drone à la Minority Report

Nous avons la chance en tant que développeur d’avoir la possibilité d’assister a un grand nombre d’évènements (DOJO, Barcamp, etc.). Il faut bien avouer que les occasions ne manquent pas et que nous avons l’embarras du choix ! Parmi ces évènements voici le retour d’un “Coding Marathon” organisé par la société Palo-IT qui, par son choix de sujet original, mérite toute votre attention ! En effet, nos confrères ont mixé 2 dispositifs High-tech du moment :

  • le capteur Leap Motion (dispositif prometteur permettant de communiquer avec un ordinateur avec une gestuelle qui n’est pas sans rappeler celle que nous avons découvert il y a quelques années dans le film Minority Report) .

  • l’AR.Drone de la société Parrot (un drone quadrirotor)

L’aventure nous est relatée itération par itération présentant ainsi les différentes embûches rencontrées et les premiers pas avec ces technos originales. Même si il reste encore un peu de travail pour arriver à maîtriser parfaitement les deux appareils, gageons que les participants ont passés un bon moment !

http://palo-it.com/blog/piloter-lar-drone-2-0-avec-le-capteur-leap-motion


Comment déterminer qu’un grand nombre est divisible par 7 ?

Tout ça de manière graphique applicable par un enfant … Le pire, c’est que ça marche !!!

http://blog.tanyakhovanova.com/?p=159


Merci à nos contributeurs de la semaine : Clément Plantier, Jean-Philippe Letard, Mathieu Laurent et Benjamin Marron.

Architecture d’une application Windows en .NET

On m’a récemment demandé un avis sur l’architecture d’une application Windows écrite en .NET. Bien que l’exercice soit toujours difficile car cela dépend bien évidemment du contexte, je profite de ce billet pour donner quelques pistes de réflexions quand au choix des briques logicielles. Le demandeur venant du monde Java, mon discours sera orienté dans ce sens.

  • Outil de mapping objet relationnel : à mon sens, il y a aujourd’hui 2 alternatives en .NET :
    1. NHibernate, le cousin germain de Hibernate. Pour éviter la configuration dans les fichiers XML, je conseille le mode fluent ainsi que l’API de requêtage  LINQ . Un début de présentation est disponible ici. Sinon, il y a aussi les slides de la formation en soirée qui a été animée l’automne passé.
    2. Entity Framework. La dernière version reprend des principes de NHibernate, dont notamment la programmation par POCO (Plain Old C# Object), le lazy loading (chargement tardif). Comme je le mentionnais dans ce billet, plusieurs modes sont disponibles : Database first, Model First et maintenant Code First, très proche de Fluent NHibernate. Un atelier en soirée aura lieu fin mai sur ce thème.
  • Spring.NET : je trouve la question délicate, car cela dépend vraiment du besoin (IoC, programmation par aspects, boîte à outils,  framework MVC …). Comme son cousin Java, c’est une véritable boîte à outils très (trop ?) riche. Cette richesse est parfois synonyme de complexité et de lourdeur, par rapport à d’autres conteneurs IoC tels que NInject, Autofac, StructureMap, Castle Windsor ou Unity. Son principal inconvénient était sa configuration « XML based ». Ce point devrait être adressé avec la sortie de CodeConfig. Sa proximité avec son cousin est souvent un critère de choix pour des équipes mixtes (Java/NET).
  • NUnit : très proche de son cousin Java JUnit, il est également basé sur des attributes. Dans le monde ouvert, j’apprécie également MBUnit maintenant inclus dans le framework Gallio. Pour intégrer ces frameworks open-source dans un IDE tel que Visual Studio, je conseille test driven.net. Microsoft fournit également son propre framework,  qui ressemble beaucoup à NUnit et qui est très bien intégré dans Visual Studio. J’avoue l’utiliser très souvent. J’aime particulièrement la structuration par projet, qui fonctionne également pour tester des classes « internal ». J’aime également la facilité avec laquelle on peut écrire des tests orientés données, en prenant un fichier CSV pour indiquer les paramètres d’entrée et les paramètres de sortie.
  • Un équivalent à Mockito. Ne l’ayant pas utilisé sur un projet, la réponse risque d’être déplacée. Néanmoins, j’utilise parfois moq ou NMock. Je suis preneur d’un comparatif 😉
  • Pour la base de données, encore une fois je penche pour la facilité d’intégration et donc pour une solution SQL Server Express, ou SQL Server Compact, selon l’usage. Les deux solutions sont gratuites.

Je termine par un outil que je trouve très utile, qui est maintenant intégré à Visual Studio 2010 SP1 et qui permet de gérer des librairies externes, un maven like light : NuGet.