Magazine

Techdays 2011, jour 2 : Choisir une techno d'accès aux données distantes, 45 projets en 45 mn, accélérer vos dévs. Web grâce aux frameworks, toolkits et applications, Code Contracts

Publié le 11 février 2011 par Olivier Duval

2ème jour des Techdays 2011, quelques notes prises au cours des 3 sessions suivies de la journée.

Au programme : technos. d'accès aux données, 45 projets en 45 mn, accélérer vos développements Web, Code Contracts

Choisir une techno. d'accès aux données distantes

techdays-odata

David Rousset et Stéphanie Hertrich.

Cette session était dédiée aux différentes solution d'accès aux données, par une énumération de différentes techniques disponibles selon ses besoins, de WCF à WCF RIA Services.

  • WCF : découplage entre le service métier et sa publication et de comment on le publie (binaire, http, SOAP, REST, MSMQ, ...), c'est la technique la plus générique et donc la plus souple. La souplesse amène l'inconvénient de tout gérer manuellement (web.config / code) mais permet une maitrise complète des services et des données exposés. L'avantage est que, pour une même interface, de pouvoir modifier le format de retour (l'implémentation) par "simple" modification du web.config en précisant des endpoints différents.
  • ODATA : exposer des données aux travers des URI HTTP (à la REST) sous la forme de flux Atom ou JSON. odata propose un SDK dans une majorité de langages (C#, JS, ruby, ...).

Parmi les avantages de OData :

  • les méthodes CRUD sont natives,
  • le fitrage des données s'effectue à la source et se symbolise par des paramètres dans l'URI,
  • SDK multi langages,
  • accessibles par des clients hétérogènes (ndr : j'avais testé le client Silverlight Sesame qu'on peut tester avec la source http://proagora.com/fr/odata/ mais il y en a d'autres)
  • WCF Data Services : surcouche à OData, une implémentation de OData mais pour .NET (wrapper). Cela apporte notamment un proxy Linq pour le requêtage, les URI des filtres sont directement traduites de l'expression Linq.
  • WCF RIA Services : principalement utilisé pour du développement Silverlight, il facilite l'accès aux données pour ce type d'application. La démo est accessible directement en ligne, une application de bouquins (une version HTML5 / jQuery est également accessible). Une introduction et tout un tas de billets sur RIA Services sont disponibles sur le blog de David.

45 projets en 45 mn

techdays-opensource

Bruno Michel nous propose en 45 mn de nous parler de 45 projets (OpenSource sous Windows) que je vais tenter de lister.

  1. TortoiseGit : le client Windows pour accéder aux répertoires Git (portage du fameux TortoiseSVN)
  2. GitExtensions : GIT intégré à Windows Explorer
  3. MyGitHub résumé : site qui génère un CV suivant ses projets GitHub
  4. Hackety Hack où comment apprendre en ligne Ruby aux...enfants
  5. Rails installer : installé un bundle Rails sous Windows
  6. Rubinius : interpréteur Ruby écrit en ...Ruby
  7. ShowOff : le powerpoint des geeks
  8. toto : le moteur de blog minimaliste
  9. Doc Split : programme Ruby d'extraction d'informations d'un document (texte, image, ..., meta données)
  10. ChiliProject : application de gestion de projets Web
  11. Lamson : serveur SMTP en Python
  12. Pygments : coloration syntaxique
  13. Stylus : framework d'aide à l'écriture de CSS
  14. Zombie.js : utilise Node.js, permet de tester des applications Web
  15. Cloud9IDE : l'IDE sur le nuage
  16. CoffeeScript : syntaxe alternative pour écrire du javascript
  17. Backbone.js : framework MVC côté client
  18. Underscore.js : ajout de 60 fonctions utiles à Javascript (map, select, bind, ...)
  19. DOM Master : utilitaire javascript qui permet d'analyser les performances d'un site
  20. Google TV Web UI : bibliothèque javascript pour l'intégration aux TV
  21. Protovis : création de graphes en SVG en javascript (ne fonctionne pas donc jusqu'à IE 8)
  22. Treesaver : framework de publication de magazines en ligne (HTML/CSS)
  23. IE6 no more : tuons IE 6
  24. JS Lint : assez connu, permet de vérifier que ce que l'on écrit en JS respecte les bonnes pratiques
  25. U.C. engine : framework pour la création d'applications Web en temps réel (Erlang/JS)
  26. OpenKinect : les drivers opensource pour le fonctionnement de la Kinect sous Windows, Linux ou Mac.
  27. Depth.js : interagir avec la Kinect à partir d'une page Web
  28. PhoneGap : Mobile framework JS/HTML5
  29. BitCoin : la monnaie virtuelle en P2P
  30. Seeks : moteur de recherche social, axé sur le P2P
  31. OneTeam : outil de messagerie en ligne pour entreprise (ou pas)
  32. Archipel : virtualisation sur le Cloud
  33. Chef : outil de déploiement en Ruby
  34. Vagrant : s'appuie sur Chef pour du déploiement multi-plaformes en VirtualBox
  35. MongoDB : moteur NoSQL, orienté documents
  36. Redis : un autre moteur NoSQL, en clés/valeurs
  37. Webdis : interface HTTP + JSON pour interroger Redis
  38. DuckDuckGo : un moteur de recherche qui ne garde aucune trace de votre passage
  39. htty : une console pour requêter en HTTP
  40. Spore : spécifications d'API en JSON (middleware)
  41. WebHookIt : web hooks (création de mashups, ...)
  42. 0MQ : message queue de bas niveau, orienté socket
  43. Synergy : outil très pratique qui permet de naviguer entre plusieurs stations (Linux, Mac, Windows) avec un seul clavier et une seule souris
  44. GomingGW : portage du langage Google GO sous Windows
  45. IOGraph : inutile et donc indispensable (dixit Bruno) : crée un graphe des mouvements de la souris que vous avez effectués durant la journée

Les slides de la session sont en ligne, vous avez 1 mn par slide ks, toolkits et applications

techdays-vstudio-2010

Pierre Lagarde et David Rousset

Parcours de quelques outils, contrôles et autres trucs utiles pour le développement.

Outils Visual Studio (2010)

  • Razor : le nouveau moteur de rendu pour ASP.NET MVC 3, simplifie et rend surtout plus clair le code à l'intérieur du code HTML.
  • SP1 de VS 2010 : permet de changer le serveur web local pour basculer vers IIS Express. Egalement, la venue de HTML5 (target HTML5).
  • NuGet : nuget est un gestionnaire d'extensions sous VS, qui se base sur un référentiel en ligne. Il suffit, sur le clic droit du projet, d'utiliser le "Add librairie package référence" afin de rechercher et d'ajouter un module (le service pointe sur http://packages.nuget.org/v1/FeedService.svc/)
  • Elmah : libraire pour gérer les logs. Le simple ajout de cette extension (et de sa configuration dans le web.config) donne accès à la page elmha.axd qui analyse ce qui s'est passé sur la page récemment consultée.
  • EF Coding First : on part des classes pour créer la base ou les tables, en Entity Framework.
  • Addins VS avec Tools (Extension Manager) :
       - Productivity Power Tools (un R# like)
       - T4 permet (à partir de New Item dans un projet) d'avoir des fichiers d'extension .tt qui générent du code à partir d'un modèle       
       - R# (payant) : le must have pour le développement (refactoring, vérification du code) sous Visual Studio

Contrôles (HTML, Silverlight, Javascript)

  • AjaxControlToolKit : librairie assez connue qui propose une multitude de contrôle près à l'emploi
  • MVCHtml5toolkit : fournit des Helpers pour HTML5 (en ASP.NET MVC) (ne pas oublier d'ajouter le namespace dans le web.config section razor pour profiter de l'Intellisense)
  • Telerik MVC Extensions : Telerik offre gracieusement un ensemble de contrôle pour ASP.NET MVC
  • CLEditor : un éditeur WYSIWYG
  • Silverlight Control Toolkit : tout un ensemble de contrôles pour Silverlight
  • Telerik SL (payant) : RadControls Telerik propose une 40aine de contrôle Silverlight, où l'on peut en admirer des démos
  • JavaScript InfoVis Toolkit : disponible sous NuGet, cette librairie Javascript fournit des outils/API pour créer des graphes en ligne
  • Galleriffic : librairie Javascript pour générer des galeries photos

enfin, hors catégorie, WebMatrix est une plateforme de création de site Web intégrée, tout en un.

Code Contracts

techdays-codecontracts

Gilles Tourreau et Amine Zemzemi de Winwise.

Code Contracts permet de faire de la vérification par contrats des méthodes que l'on appelle via des pré et post-conditions, ainsi que les invariants (test de l'état d'un objet, toujours appelé à la fin de chaque méthode). En version Visual Studio Premium, il inclut la vérification à la compilation des contrats (static checker), mais rendu possible en ligne de commande (cccheck) pour les autres version VStudio. Namespace .NET 4.0 à utiliser : System.Diagnostics.Contracts

Avant les CC, les vérifications des entrées ou sorties de méthodes s'effectuaient via des if(! condition) ArgumentException, les CC introduisent une manière simple et évolutive d'effectuer des tests en entrée ou en sortie de méthode, tout en supportant l'héritage via les interfaces et attributs de classe.

Les méthodes statiques disponibles de Contract :

  • Contract.Requires(test) : pré-condition
  • Contract.Ensures(test) : post-condition
  • Contract.Invariant(test) : invariant, appelée à chaque fin de méthodes de la classe
  • Contract.Assume(test) : pour du code existant, évite la vérification statique du code (version Premium de VS), cette vérification oblige aux tests des variables utilisées du type if(diviseur!=0) methode(diviseur) else erreur
  • utiliser Contract.EndContractBlock() sur du code existant contenant des séquences if then throw

ou par les attributs .NET ContractClass(typeof(interface)) (pour l'interface) / ContractClassFor(typeof(interface)) (pour la classe abstraite qui implémente l'interface), cela se traduit par d'injection des contrats dans les classes, permet l'utilisation de l'héritage, voir l'exemple d'application sur MSDN.

CC permet de générer 2 assemblies, 1 pour la production (A.dll) et 1 pour le développement (A.Contracts.dll), peut être utile si l'assembly est livrée à un intégrateur.

Retrouvez toutes les années via le tag techdays.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Olivier Duval 4 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte