Archives de catégorie : Développement

Entity Framework: Erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. »

Entity Framework: Erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. »

Bon ce n’est franchement pas ma journée. Après cette première blague en voici une seconde dans la foulée.

Toujours lors d’une mise à jour d’une base EF, cette fois je récupère l’erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. Des dépendances peuvent exister en raison de contraintes de clé étrangère, d’exigences en matière de modèle ou de valeurs générées par le magasin. ».

Là également ce n’est pas la première fois que je tombe dessus, mais apparemment mon cerveau a décidé de mettre en veille toutes mes capacités mémorielles 🙁

Continuer la lecture de Entity Framework: Erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. »

Entity Framework : Erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value »

Entity Framework : Erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value »

Bon on est dimanche, et certainement pour cela que mon cerveau est en mode boulet (d’ailleurs j’inaugure une nouvelle catégorie tellement je suis dépité).

Sur un projet perso lors d’un « Update-Database » de mon contexte EF, je me prends l’erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value ».

Je perds 15 minutes a vérifier ma base de données avant d’en retrouver la raison. Et ce n’est pas comme si cette erreur ne m’était jamais arrivée !

Continuer la lecture de Entity Framework : Erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value »

Installer PHP Manager sur Windows 10

Installer PHP Manager sur Windows 10

Depuis WPI (Microsoft Web Platform Installer) on peut installer PHP pour IIS (Internet Information Service ou en français Gestionnaire des services Internet) sous Windows. Pour faciliter la gestion de PHP sous IIS généralement on installe un module qui se nomme « PHP Manager ».

Malheureusement depuis Windows 10 l’installation de ce module pose un problème. Heureusement il y a une solution 🙂

Deux problèmes sont courants :

  • Un problème de Framework .Net 2.0 qui n’est pas installé sur la machine
  • Sous Windows 10, un numéro de version n’est pas encore supporté par l’installeur

Continuer la lecture de Installer PHP Manager sur Windows 10

ASP.NET MVC : binding de modèle à « null »

ASP.NET MVC : binding de modèle à « null »

Petit rappel des règles de binding de modèle en ASP.NET MVC pour éviter de perdre des heures, comme je viens de le faire 😉

Soit notre modèle :

public class Hardware
{
  public int ID{ get; set; }
  public String Manufacturer { get; set; }
  public String Model { get; set ;}
}

Notre action dans votre contrôleur:

[HttpPost]
public ActionResult Update(Hardware model)
{
  if(ModelState.IsValid){
    // ...
  }
  return View(model);
}

Lorsque que vous postez votre formulaire, votre modèle est null.

Cela est du au fait que le nom de votre argument représentant votre modèle est le même que celui d’une des propriétés de votre modèle.

Dans notre cas c’est model vs Hardware.Model. En effet la priorité du binder est de mapper les éléments d’un formulaire vers les arguments de même nom. Dans notre cas Hardware.Model est une chaîne, et l’argument model est un Hardware qui n’est pas compatible avec une chaîne donc notre model est null.

Nous n’avons qu’a modifier le nom de notre argument hardwareModel par exemple, et notre modèle est de nouveau bindé correctement.

A bientôt,

Yanos

C# : Service windows en mode console pour le débogage et l’administration

C# : Service windows en mode console pour le débogage et l’administration

Lorsque l’on développe des services Windows en .Net nous sommes très vite confronté au problème du débogage.

De plus nous devons régulièrement démarrer, arrêter le service, voir l’installer et le désinstaller. Toutes ces actions nécessitent d’utiliser différentes lignes de commandes (installutil, net start, etc.).

Je vous propose dans cet article de transformer votre Service Windows en mode console pour vous permettre de déboguer un peu plus facilement, ainsi que gérer tous les mécanismes de manipulation du service au travers des paramètres de lignes de commandes, et ainsi simplifier sa gestion.

Continuer la lecture de C# : Service windows en mode console pour le débogage et l’administration

Transtypage de valeurs avec la sérialisation XDocument

Transtypage de valeurs avec la sérialisation XDocument

Depuis sa version 4.0, le Framework .Net nous fourni une nouvelle librairie pour gérer les documents XML: System.Linq.XDocument.

Cette librairie et plutôt conçue pour fonctionner avec LINQ (comme son espace de nom nous l’indique).

Elle permet de créer plus rapidement des documents, de parcourir avec des requêtes LINQ. En revanche on perd le standard DOM ainsi que le XPath.

L’une des particularité de XDocument est que l’on peut lui transmettre des objets comme contenu et il s’occupe de les convertir en valeur de noeud ou d’attribut. L’inverse est également vrai, on peut obtenir une valeur depuis un noeud ou un attribut directement en transtypant. Ces mécanismes nous permettent de sérialiser/désérialiser rapidement un fichier XML quand on ne peut pas utiliser les mécanismes de sérialisation XML du .Net.

Continuer la lecture de Transtypage de valeurs avec la sérialisation XDocument

Small Basic – Ligne de temps pour les jeux

Small Basic – Ligne de temps pour les jeux

Dans un jeu plusieurs éléments sont généralement synchronisés suivant une ligne de temps. Par exemple une balle se déplaçant de 200 pixels en 2 secondes.

Nous avons plusieurs approches possibles, cet article va en étudier deux en particulier:

  • une classique et simple, mais qui n’est pas toujours d’une grande précision.
  • une seconde approche permettant d’avoir d’une ligne de temps plus précise.

Continuer la lecture de Small Basic – Ligne de temps pour les jeux

Ressources Small Basic

Ressources Small Basic

Dans un article précédent j’ai parlé de ma découverte du Small Basic. Mais comme j’avais conclu, il y a apriori un manque de ressources en français.

Voulant regrouper un peu ces informations avant de me lancer dans des traductions d’articles, je constate qu’il y a énormément de documentation. Je vais donc dans cet article faire un travail de recensement des ressources principales que je trouve.

Continuer la lecture de Ressources Small Basic

Découverte du projet Small basic

Découverte du projet Small basic

Comme beaucoup d’entreprises, nous sommes en plein dans la « saison » des stagiaires de 3ème qui viennent découvrir le monde du travail.

Cette semaine je me suis trouvé dans la situation de devoir montrer la programmation. Alors le montrer avec du C# à un gamin de 14-15 ans, ce n’est quand même pas super passionnant pour lui.

J’ai donc fait une petite recherche et là je suis tombé sur Small Basic de Microsoft (attention il existe un projet Open Source de même nom).

Continuer la lecture de Découverte du projet Small basic

Soyons énumérables – Partie 3

LINQ et les énumérables à la chaîne

LINQ est un language de requêtage intégré au language C# ou VB.Net, le propos de cet article n’est pas d’expliquer LINQ en lui-même mais son comportement avec les énumérables. Pour plus d’informations sur LINQ je vous renvoie à la documentation officielle.

Continuer la lecture de Soyons énumérables – Partie 3