asp.net mvc


Exemple de projet MVC (mis à jour)

J’ai mis à jour le projet MVC échantillon que j’ai écrit pour l’utilisation d’ASP.NET MVC 3 et le moteur d’affichage Razor.

Un changement mineur, c’est que je n’utilise plus le FluentValidationModelValidatorProvider mais le standard. Donc j’ai décorer le modèle d’affichage avec les annotations de données nécessaires :

 

(suite…)


Quelles fonctionnalités aimeriez-vous voir dans ASP.NET MVC 4 ?

S’il y avait une seule fonction que je voudrais voir dans ASP.NET MVC 4, ce serait de voir supprimer/déprécier les ViewBag et ViewData.
Ces deux concepts conduisent à du code très laid selon mon point de vue.
Voici ce que je déteste le plus dans les ViewBag et ViewData :
  • Ils ne sont pas fortement typés et vous devez effectuer un Cast dans vos vues afin d’obtenir le type réel
  • Ils ne sont pas refactorisables car ils s’appuient sur les « magic strings »
  • Ils conduisent à des tests unitaires fragiles en raison des « magic strings »
  • Ils conduisent au code spaghetti dans les vues

Voici le patch de diff, que je serais ravi de voir appliqué pour la classe ViewDataDictionary.cs dans ASP.NET MVC 4 :

Et vous qu’en pensez-vous ?

Upload de plusieurs fichiers avec c#

Avez-vous déjà été dans une situation où vous avez besoin pour télécharger plusieurs fichiers à un hôte distant et passer des paramètres supplémentaires dans la requête ? Malheureusement il n’y a rien dans la BCL qui nous permet d’atteindre cet objectif hors de la boîte.

Nous avons la méthode UploadFile , mais il est limité à un seul fichier et ne nous permet pas de passer des paramètres supplémentaires. Alors allons-y et écrire de telle méthode. L’élément important est que cette méthode doit être conforme RFC 1867 afin que le serveur web distant peut analyser correctement les informations.

Tout d’abord, nous définissons un modèle représentant un seul fichier à télécharger :


(suite…)


Comment nous faisons de l’ASP.NET MVC

Sample MVC Solution

In this post I will show a sample ASP.NET MVC 2.0 project structure illustrating different concepts such as data access, user input validation and mapping between the domain and the view model. The project is still under construction but the source code is available at github.

I will illustrate the usage of the following frameworks:

  • MvcContrib bringing useful extension methods and strongly typed helpers to ASP.NET MVC
  • AutoMapper enabling easy mapping between the domain and the view models
  • FluentValidation – a small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules for your business objects
  • NHibernate – a popular ORM in the .NET world
  • FluentNHibernate – a statically compiled alternative to NHibernate’s standard hbm xml mapping
  • Spring.NET – object container and dependency Injection framework for .NET
  • Rhino.Mocks – A dynamic mock object framework for the .Net platform. It’s purpose is to ease testing by allowing the developer to create mock implementations of custom objects and verify the interactions using unit testing

 

Armed with this arsenal of frameworks let’s start exploring the solution structure. I’ve opted for 2 projects solution but in many real world applications more levels of abstraction could be brought to the business layer. Personally I favor to have less big assemblies rather than many small assemblies into the solution. Fewer the assemblies, faster the load time and faster the IDE. In this case particular attention should be brought to bring proper separation of concerns inside the same assembly

 

ASP.Net MVC project structure

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(suite…)