mercredi 31 décembre 2014

Bilan 2014 : une année riche techniquement et humainement

ça y est : on est à moins de 4h de la fin de l'année 2014, et j'ai décidé d'écrire un petit billet sur cette année qui fut très riche pour moi sur le plan professionnel (et personnel aussi). Ce billet me servira de tremplin si je'puis dire les choses ainsi pour attaquer l'année 2015 en force.

Plein d'articles de blog, mais peut-être pas assez
J'ai écris plein d'articles de blogs en 2014 mais peut-être pas assez, du coup j'ai décidé pour l'année à venir d'écrire au moins le double d'articles pour l'année à venir.
Objectif 2015 : 2 articles par mois

Pas de commentaires... une déception 2014
Je me demande si c'est parce que j'écris en français et que la communauté des développeurs est plutôt Anglophone, mais en tout cas, je n'ai reçu aucun commentaire sur aucun de mes articles... je me dis également que ces derniers ne sont pas assez riche.
Objectif 2015 : avoir au minimum 2 commentaires sur mon blog :)

2014 mon année ASP.NET MVC-Javascript
Cette année est celle où j'ai eu l'occasion d'approfondir mes compétences de façon assez exponentiel sur "razor et compagnie". J'ai eu l'occasion de tester pas mal de framework Javascript, et d'en faire beaucoup (à mon habitude).

Les tests
Cette année 2014, j'ai également eu l'occasion d'approfondir encore d'avantage mes compétences en BDD/TDD.
Objectif 2015 : continuer à faire du test, et promouvoir l'intérêt de faire du test sur les applications, car on en fait toujours pas assez à mon gout.

L'agilité
Moi qui ne croyait pas trop à SCRUM à mes débuts, je peux dire que j'en suis plus que convaincu aujourd'hui, et bien sur, je crois en l'Agilité tout court d'avantage.
Objectif 2015 : ne rien changer : continuer dans l'agilité.

La communication : l'aspect Humain en force (l'ambiance au sein de l'équipe)
J'ai eu l'occasion d'avoir des responsabilités dans certains de mes missions cette année, et je peux dire à ce stage de ma carrière que la chose la plus importante dans un équipe de développement (et dans tous projet informatique d'ailleurs) est l'aspect humain : cette notion comprend bien évidemment une communication riche sur le fond, mais aussi un point qui me semble fondamental : l'ambiance. L'ambiance au sein d'une équipe est je pense extrêmement importante car d'après moi, c'est la seule chose que l'ont retient après chaque projet. Combien de fois j'ai entendu autour de moi (on avait une équipe de m*rde, j'étais dans une s*le équipe,etc). J'ai eu l'occasion de travailler dans des supers team cette année et j'ai pu constater l'intérêt de l'importance de l'ambiance au sein des équipes. J'en parlerai beaucoup cette année sur mon blog.
Objectif 2015 : cultiver la bonne ambiance au sein des équipes dans lesquelles je travaillerai et poster des billets sur ce point.

Objectifs 2015
Au final voici quelques objectifs supplémentaires que je me donne sur l'année à venir :
- Continuer à cultiver la culture du bon code : un code simple et efficace.
- Continuer à cultiver l'excellence dans le travail
- Viser le 0 bugs dans mes projets (et oui, pourquoi pas)
- Publier et partager plus sur le Web
- Apprendre 3 nouveaux langages de programmation
- Publier plus d'articles sur ASP.NET MVC
- Cultiver la bonne ambiance au travail

Très bonne année 2015 à tous et à très bientôt !

dimanche 30 novembre 2014

A la découverte de Leaflet js - librairie Javascript de cartogaphie


Il existe une multitude d'Api de cartographie (Google Map, Bing Map, OSM,etc) présentant chacune des avantages/inconvénients divers (prix, ergonomie, complexité d'intégration, etc). Le fait est que chacune présente des différences d'implémentations et il est souvent difficile de faire son choix. Ainsi, l'utilisation d'une librairie tierce faisant abstraction de ces différences serait un choix judicieux pour un projet intégrant la cartographie.

Leaflet est une librairie Javascript développé par Vladimir Agafonkin permettant l'intégration de la cartographie sur les sites internet.

Pourquoi Utiliser Leaflet ?

  • Parce ce c'est une librairie qui fait abstraction des différentes API de cartographie actuelles (Google Map, BingMap, OpeStreetMap, etc) : ainsi à tout moment, on pourra changer de provider de Map sans pour autant changer la logique métier associée à notre Map qu'on aura développé.
  • Cette librairie présente l'avantage d'être "responsive", et fonctionne globalement bien sur tous les terminaux (mobile, tablettes, etc).
  • Elle a été conçue et pensée dans les standards et tendance actuelle du Web, avec notamment l'intégration facile avec le HTML5 et CSS3, tout en restant accessible sur les anciens navigateurs.
  • Les fonctionnalités de la librairie : Leaflet intègre une quantité assez conséquente de fonctions de manipulation de Map : les effets de Zoom, la gestion des markers (pins sur la carte), la gestion des "event" par défaut (clique, gestion des entrées clavier, etc)
  • Le légereté de la librairie  à peine 34Kb compressé
  • La documentation de l'Api : assez complète sur le site même, on trouve également plein de référence sur internet
  • La couche vectorielle qui permet de faire des tracés de formes géométriques (cercle, polygones, etc)
  • La richesse des plugin :  je dirai que c'est ce qui fait de cette librairie un choix de premier ordre car il existe une multitude de plugins existant pour cette librairie permettant de "customiser" votre Map, et de répondre à tout type de besoins associés.

La richesse des plugins Leaflet
Les plugins associés sont répertoriés directement sur le site : http://leafletjs.com/plugins.html. Exemple de plugin : Leaflet.Draw  qui permettant le tracé vectoriel :

Aperçu de Leaflet.Draw

Dans mon prochain article, je ferai un démo de l'intégration de Leaflet dans une application Asp.net mvc, avec des exemples d'utilisation de plugins associés.

vendredi 17 octobre 2014

Erreur de build sur la dll system.web.mvc

Si vous avez eu des problèmes avec votre build ces derniers jours, notamment avec la dll system.web.mvc, voici un post qui vous donnera des éléments d'informations :

http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx

pour info, il y a eu un correctif de sécurité sur cette dll, et donc un incrément sur la version.

mercredi 15 octobre 2014

ASP.NET MVC vs SEO : outils d’analyse

Une fois les Metas et les fichiers sitemap.xml et robots.txt mis en place,  il faut pouvoir analyser l’impact de ces mises en œuvre sur le SEO de notre site : comment sont indexées les pages de notre site ? Les restrictions sont-elles bien prises en compte ? Les balises Metas sont-elles correctes ? Mon site avance-t-il dans le temps en termes de référencement ?



mardi 12 août 2014

ASP.NET MVC vs SEO : Le fichier Sitemap


Tout comme le fichier robots.txt, le ficher sitemap.xml est une ressource que l’on rend disponible sur notre site web. Il va définir les différents liens des pages de notre site web afin que ces dernières soient automatiquement prises en considération par les moteurs de recherche pour l’indexation...

mardi 27 mai 2014

ASP.NET MVC vs SEO : Le fichier robots.txt

Le fichier robots.txt comme son nom l'indique est une ressource placé généralement sur votre site internet et qui a pour vocation d'influencer les robots des moteurs de recherche notamment pour spécifier les pages que vous ne souhaiter pas voir indexées, de donner la chemin vers votre sitemap, etc

mercredi 30 avril 2014

ASP.NET MVC vs SEO : Les META

Comment optimiser le référencement de notre site web ASP.NET MVC ? quelles sont sont les erreurs à éviter ? Dans une série d'articles consacrées au SEO en environnement .NET (MVC), je vais m’intéresser à ces problématiques. Je vais commencer par les balises META, et de façon plus globale, des balises que l'on trouve dans le 'Head' de nos pages web, et qui ont potentiellement un poids dans le SEO de notre site...

dimanche 23 mars 2014

Le pattern Abstract Factory


Le pattern abstract Factory (Fabrique Abstraite) permet de rassembler des méthodes communes à des familles d’objets différents dans une classe commune : la fabrique abstraite, afin d’éviter au client d’appeler des méthodes différentes (concrètes) par famille d’objets.

“L’abstract Factory” est un pattern de création (Creational Pattern) : il va donc nous servir pour instancier des objets...

mardi 28 janvier 2014

Erreur : Le code généré à l'aide de modèles T4 pour le développement Database First et Model First

J'ai récemment rencontré cette erreur sur un projet asp.net MVC 4 :

Le code généré à l'aide de modèles T4 pour le développement Database First et Model First peut ne pas fonctionner correctement s'il est utilisé en mode Code First. Pour continuer d'utiliser Database First ou Model First, vérifiez que la chaîne de connexion Entity Framework est spécifiée dans le fichier de configuration de l'application en cours d'exécution. Pour utiliser ces classes, générées à partir de Database First ou Model First, avec Code First, ajoutez toute configuration supplémentaire à l'aide des attributs ou de l'API DbModelBuilder, puis supprimez le code qui lève cette exception.


Voici 2 liens que j'ai trouvé traitant du sujet :

Scénario d'apparition de l'erreur

il s'agit de mon cas :
- j'ai d'abord créer un nouveau projet mvc4
- j'ai utilisé le générateur Code-First pour la partie MemberShip provider par défaut (le simpleMemberShip)
- J'ai rajouté un projet DAL avec un EDMX.
- J"ai modifié la connexion String dans le web.config du projet Web iso celui de l'app.conf du projet de la DAL.

Pistes d'explications 

Il s'agit vraisemblablement d'un problème d'utilisation des 2 modes en // : database first et code first en voulant utiliser la même chaîne de connexion.
Ayant au préalable utiliser le "Code First" qui fonctionne avec une chaîne de connexion "standard", la partie Edmx elle fonctionne avec une chaine spécifiant bien le fonctionnement avec providerName="System.Data.EntityClient" dans sa chaîne.

solutions

Soit vous utilisez 2 chaines de connexion en simultanée, l'une pour gérer la partie code first (pour la part, l'utilisation du simpleMembership par défaut), et l'autre pour tout ce qui accédera à la BDD via les "entities" générées par l'edmx,
Soit vous partez uniquement sur du code first ou du database first, et vous utilisez une seule chaîne de connexion appropriée.
Il doit exister une solution plus subtiles; Je suis preneur si quelqu'un sait.