Faire un postback Asp.net dans une Dialog JQuery UI

Peut être que parmi vous certains ont déjà rencontré ce problème :

Lorque l’on utilise une dialog JQuery UI (http://jqueryui.com/demos/dialog/) et que l’on y place un bouton asp.net, au clic sur celui-ci un refresh de la page est bien effectué, mais ni de postback ni le déclenchement de l’évènement est apellé. Mais pourquoi donc ? WTF ? Lire la suite

Nouveau projet : nPress

NPressVia ce post, je vous annonce que j’ai entrepris de coder une conversion de WordPress en C#.

Après un rapide coup d’oeil aux sources de WordPress, j’ai les yeux qui piquent !
Plus sérieusement il est bien sûr impossible d’écrire un code mot à mot équivalents au code PHP.
Je me fixe donc d’autres objectifs :

  • Avoir le même fonctionnement
  • Avoir le même visuel / rendu
  • Utiliser la même base, je veux pouvoir faire tourner nPress sur une base WordPress
  • Edit Que ça tourne sur mono (apache/XSP)

Mais le plus interessant la dedans c’est que je vais écrire une suite de post pour partager mes points de vue et mon avancement du projet. J’attends de vous un maximum de retour. N’oubliez pas que toute critique est bonne à prendre, alors n’hésitez pas. Je risque même d’en choquer certain au début, car je vais me coller au plus proche des sources PHP.

Voici les techno/outils que je compte utiliser :

  • asp.net MVC : cela va me permettre d’avoir un rendu identique à celui de WordPress ou presque
  • NHibernate
  • Fluent Nhibernate
  • MySql ou Sqllite
  • Test unitaire Visual Studio

Les génériques : premier pas vers le concept DRY

Pour ceux qui ne sont pas familiers avec le terme DRY, voici ce que l’on peut trouver comme définition sur wikipedia :

Ne vous répétez pas (Don’t Repeat Yourself) est une philosophie en programmation informatique consistant à éviter la redondance de code au travers de l’ensemble d’une application afin de faciliter la maintenance, le test, le débuggage et les évolutions de cette dernière.

Et oui c’est un acronyme de plus …

Bref, en quoi les génériques ont un rapport avec DRY ? Réponse tout !

Mais je vais parler d’un cas en particulier ici.

Disons que l’on a un Repository (une classe) qui doit contenir une méthode qui renvoi un object d’un certain type ayant l’id spécifié.

On pourrait écrire la méthode suivante :

Ce code est bien, mais pas top ! l’utilisateur fera un typeof() ou un GetType à chaque appel

La même méthode générique :

Youpi ! un seul paramètre et en plus plus de typeof et de cast de partout !

Bad Practice sur les méthodes génériques

Je bosse sur un projet chez un client.
Ici on a la facheuse tendence à rendre les choses compliquées, et si possible rendre le code incomprehensible …

Voici un exemple de ce que je trouve être une mauvaise pratique.

Je suppose que tout le monde utilise maintenant les génériques depuis la sortie du FX 2.0.

une méthode du genre :

est devenu courante et est facilement compréhensible par tous. ( Ici T va être un type précisé leur de l'appel et doit avoir comme base  MaClassOuInterface)

Mais rien empeche le développeur d'appeller le type non pas T,mais plutôt par un nom qui parle un peu plus. Et c'est la que ça par en coui… 

 

La mauvaise pratique va donner la signature suivante :

 

Et voilà maintenant on se retrouve avec  un Type MaClassOuInterface qui n'est que dans le méthode, et pour la relecture on se prend vite la tête !

Dans la méthode on va pourvoir accéder aux deux types:

 

Conclusion : nommé le type générique T suffit emplement !