Optimisation du temps de chargement d’une page ASP.NET MVC Part 2 : La mise en cache

Pour améliorer les performances de leur application, les développeurs ont couramment recours à l’optimisation côté client et côté serveur. L’optimisation d’une application Web regroupe l’ensemble des techniques qui peuvent aider à accélérer le temps de téléchargement d’une page Web. Parmi ces techniques, on retrouve la minification et la compression du CSS et JavaScript, la mise en cache, l’utilisation des CDN, etc.

Ce billet est le second d’une série sur les techniques d’optimisation du temps de chargement d’une application ASP.NET MVC. Le premier article sur la compression et la minification du CSS et JavaScript peut être consulté sur cette page.

Lire la suite

Entity Framework : que faire face à l’erreur «new transaction is not allowed because there are other threads running »

Je travaillais il y a de cela quelques jours sur une application ASP.NET MVC 3, avec l’ORM Entity Framework. J’ai été confronté lors de l’écriture de mon code à l’erreur suivante : «new transaction is not allowed because there are other threads running ».

Comme il n’est pas exclu que je tombe encore sur le même type de problème à l’avenir, je vais partager sur mon blog – qui est avant tout mon rappel mémoire favori – les causes de cette erreur et comment contourner cela.

Lire la suite

ASP.NET MVC et Entity Framework : résoudre l’erreur System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types

Lors du déploiement de mon application ASP.NET MVC 3 chez un client, j’ai eu l’erreur « System.Reflection.ReflectionTypeLoadException » pendant l’exécution de celle-ci. Pourtant, l’application fonctionnait correctement sur ma machine de développement.

En dehors d’un foutu message “Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information”, rien ne permet d’identifier clairement la source de cette erreur.

Lire la suite

Entity Framework Code First : activer la migration automatique

Pendant le développement ou le cycle de vie d’une application, le développeur est très souvent confronté à des situations pouvant entrainer des modifications de son modèle objet et de la base de données. Avec Entity Framework, cette tâche peut s’avérer assez complexe et voir même frustrant pour certains.

Une des nouveautés les plus intéressantes qu’apporte Entity Framework 4.3 est la migration pour les mises à jour de la base de données.

Cette fonctionnalité offre aux développeurs des outils permettant d’appliquer avec souplesse et facilité des mises à jour à la base de données à partir des modifications apportées à l’application.

Lire la suite

Internationalisation d’une application ASP.NET MVC 3 Razor part 3 : Mécanisme de sélection de la langue dans l’IU

Dans les parties précédentes, nous avons introduit l’internationalisation sur la plateforme .NET et nous avons vu comment procéder à la localisation des vues, des messages d’erreur de validation et des attributs Display dans le modèle.

Cependant, jusqu’ici, lors de nos tests, vous pouvez vous rendre compte que notre application ne dispose d’aucun mécanisme permettant à un l’utilisateur à partir de l’interface de choisir une langue ou de basculer d’une langue à une autre à tout moment.

Cet aspect de l’internationalisation d’une application Web ASP.NET MVC 3 Razor fera l’objet de ce billet de blog.

Lire la suite

Internationalisation d’une application ASP.NET MVC 3 Razor Part 1 : ressources et vues

Plusieurs articles sont déjà disponibles sur developpez.com ou sur le Web qui traitent de l’internationalisation d’une application Web ASP.NET. Cependant, pour ASP.NET MVC, il en existe très peu, et il n’y a pas de méthode reconnue comme standard pour écrire un site multilingue avec le framework Web de Microsoft.

En me basant donc du meilleur que j’ai pu tirer de quelques articles par-ci par-là et mon expérience, j’ai mis au point une solution qui répondait à mes besoins pour une application ASP.NET MVC Razor. Cette méthode n’est pas standard, et peut-être pas la meilleure, mais elle répond pleinement aux exigences de mon projet et aux objectifs que je voulais atteindre.

Lire la suite

Internationalisation d’une application ASP.NET MVC 3 Razor part 2 : messages d’erreur de validation et DisplayAttribute

Dans mon précédent billet de blog, nous nous sommes familiarisés avec les différents concepts qui sont liés à l’internationalisation d’une application sur l’écosystème .NET. Nous avons également procédé à la création des fichiers de ressources et obtenu un premier aperçu de notre application.

Cependant, avec ASP.NET MVC, il est possible de définir les messages des erreurs de validation dans le modèle, au sein des attributs fournis par l’espace de noms DataAnnotations utilisé pour la validation des données utilisateur. Il est également possible de définir les textes par défaut qui seront affichés dans les vues pour les intitulés des champs des formulaires.

Si vous avez donc défini ces infirmations dans votre modèle, vous allez vous rendre compte que ce que nous avons fait jusqu’ici ne permet pas de localiser ces champs texte.

Nous verrons donc dans ce billet comment internationaliser les messages des erreurs de validation et les intitulés des champs des formulaires définis dans le modèle.

Lire la suite

Critique : Professional ASP.NET MVC 3

j’ai enfin trouvé un peu de temps pour rediger une critique du livre Professional ASP.NET MVC 3 que j’ai lu y a de cela plusieurs mois.

Profesional ASP.NET MVC 3

Au vu de mon orientation de plus en plus vers ASP.NET MVC pour la conception de mes applications, je me suis dit qu’il était temps pour moi malgré tous les articles que j’ai lus en ligne sur les nouvelles fonctionnalités de la version 3 du Framework, de me mettre à la lecture d’un livre qui traite du sujet.

Mon choix s’est porté sur Professional ASP.NET MVC 3, qui est écrit par Phil Haack et Brad Wilson, qui font partie de l’équipe de développement du framework, ainsi que Jon Galloway et K. Scott Allen, des pionniers de la technologie. Ce livre est le guide parfait pour toute personne désireuse de maitriser le framework ASP.NET MVC 3.

Contrairement au titre qui donne l’impression d’un livre réservé aux professionnels, le chapitre 1 un présente de façon détaillée le framework (description, installation, création d’une première application, etc.) et effectue une comparaison avec ASP.NET et les raisons qui ont entrainé sa création. Le chapitre 2, également un chapitre introductif pour moi, revient en détail sur la notion de contrôleur. C’est à compter des chapitres trois et quatre présentant respectivement la vue et le modèle, que le lecteur découvrira les nouveautés intéressantes comme le moteur de vue Razor, l’échafaudage et Entity Framework Code First. L’utilisation des formulaires, des helpers HTML et les améliorations apportées à la validation des données utilisateur notamment avec DataAnnotations seront décrites dans les deux chapitres suivants.

>>Lire la suite!

Microsoft.Web.Optimisation : ou comment optimiser une application ASP.NET en utilisant le regroupement et la minification à la volée du JavaScript et CSS

Le temps de chargement d’une page est un facteur important dans l’évaluation des performances d’un site Web. Il a un impact non négligeable sur l’expérience utilisateur et même sur le référencement naturel.

Plusieurs techniques peuvent être utilisées pour optimiser les performances d’une application Web (mise en cache, compression des fichiers, minification, etc). Je vais me pencher aujourd’hui sur le package NuGet d’optimisation d’un site Web « ASP.NET Optimization – Bundling » qui a été publié récemment par Microsoft.

Ce package ajoute le support du regroupement et de la minification des fichiers JavaScript et CSS – qui sont des caractéristiques d’ASP.NET 4.5 et ASP.NET MVC 4 (disponibles actuellement en version Developper Preview) – avec le minimum d’effort pour les applications ASP.NET 4 et ASP.NET MVC.

Lire la suite

ASP.NET MVC : résoudre l’erreur « A circular reference was detected while serializing an object of type… »

En travaillant sur une application Web ASP.NET MVC dans laquelle j’utilise Entity Framework 4 Code First, j’ai eu l’erreur suivante : «A circular reference was detected while serializing an object of type… » lorsque j’ai essayé de retourner une classe Entité au client comme un document JSON.

Lire la suite