Developpez.com

Le Club des Développeurs et IT Pro

ASP.NET MVC 4 beta disponible : introduction de Web API

Améliorations de Razor et regroupement par défaut dans les modèles

Le 2012-02-20 15:49:59, par Hinault Romaric, Responsable .NET
ASP.NET MVC 4 vient de franchir une nouvelle étape dans son cycle de développement. Microsoft vient de publier la version Beta du framework Web open source fondé sur ASP.NET.

En dehors des nouveautés disponibles dans la version Developper Previw publiée en septembre dernier dont le support des plateformes mobiles, le rendu adaptatif, View Switcher, l’introduction des recettes et des nouveaux modèles de projet Web, etc. la bêta apporte plusieurs corrections de bug et quelques nouveautés donc la plus importante est l’introduction de l’API Web.

Web API a fait son apparition dans WCF. Elle a pour objectif principal de permettre aux développeurs d’exposer leurs applications, données et services sur le web directement à travers HTTP.



Depuis la Developer Previw d’ASP.NET MVC 4, la librairie Microsoft.Web.Optimisation avait été introduite à la plateforme pour permettre d’optimiser les performances d’une application et améliorer le temps de chargement des pages en utilisant le regroupement et la minification à la volée du JavaScript et CSS. Avec la bêta de MVC 4, le regroupement est utilisé par défaut dans les modèles projets Web.

Le moteur de vue Razor qui à fait son apparition avec MVC 3, croit en maturité dans cette version, avec des améliorations qui simplifient sa syntaxe dans certains scénarios courants comme la résolution d’URL avec prise en charge de « ~ » dans la syntaxe ou encore le rendu conditionnel d’attribut.

Enfin l’utilisation package NuGet restore permet lors de la création d’un nouveau projet de vérifier, télécharger et installer automatiquement les nouvelles versions des bibliothèques externes utilisées par l’application.

ASP.NET MVC 4 beta peut-être utilisé avec Visual Studio 2010 Service pack 1 ou Visual Web Developer 2010 Service Pack 1. La préversion de Visual Studio 11 n’est pas prise en charge. Le framework peut s’installer via NuGet ou en utilisant le Web plateforme installer.

Télécharger ASP.NET MVC 4 beta

Source : Blog Hinault Romaric

Et vous ?

Que pensez-vous de ces améliorations ?
  Discussion forum
7 commentaires
  • Crooby
    Membre régulier
    Bonjour,

    Je crois qu'on ne peut pas mettre deux models sur une même page.
    Petite solution simple:

    Dans ton Rapport_TP.Areas.rapport.Models.Edition tu crée une propriété
    de type IEnumerable<Rapport_TP.Areas.rapport.Models.Edition>

    Sinon tu créé une nouvelle classe qui contiendra les deux.

  • Envoyé par Crooby
    tu créé une nouvelle classe qui contiendra les deux.
    +1 pour cette solution. Alors dans ce cas la classe que tu crées s'appellera une ViewModel. Voici un excellent article qui t'explique dans quels cas tu dois créer ce type de classe dans une application ASP.Net MVC.
  • kokokaka
    Nouveau membre du Club
    J'utilise le Tuple et je trouve ca pas mal.

    Lors du GET pas besoin d'initialiser le tuple<t1,t2>.

    Code :
    1
    2
    3
    4
    5
    [HttpGet]
    public ActionResult NewAccount()
    {            
                return View();
    }
    Dans ta vue tu initialise ton model
    Code :
    @model Tuple<T1,T2>
    Pour récupéré le Tuple dans un httpPost :
    Code :
    1
    2
    3
    4
    5
    [HttpPost]
            public ActionResult NewAccount([Bind(Prefix = "Item1")] CLIENT c, [Bind(Prefix = "Item2")] ADRESSE a)
            {
    return View();
    }
    Dans cette Méthode, tu garde les validation des Models.
  • orman05
    Membre à l'essai
    Bonsoir,
    Je désir utilisé sur une même view un model et une liste de cet même model comme suite :
    Code :
    1
    2
    @model Rapport_TP.Areas.rapport.Models.Edition
    @model IEnumerable<Rapport_TP.Areas.rapport.Models.Edition>
    Dans ma view rasor, surce je désir développé sur la même vue un tableau ou une liste de mes éditions de ma classe Edition dans le model et une interface de saisir d'une édition. Le problème racontré m'empêche de faire la declaration que je faite ci-haut.
    Ma question est la suivante, peut-on utiliser deux models dans une view ?
    Que pouvez m'aider à trouver une solution à cet aspect de problème?
    Merci d'avance coordinalement!
  • orman05
    Membre à l'essai
    Merci beaucoup pour vos solutions et surtout l'exemple de l’article a été vraiment intéressant et pratique.
  • Arkal
    Membre régulier
    On peut avoir deux modeles sur une page de cette facon

    Code :
    @model Tuple<T1, T2>

    Tu peux y acceder en tapant Model.Item1 et Model.Item2...

    Ton controleur doit passer le tuple en parametre a la vue...

    Code :
    return View(new Tuple<T1, T2>(Item1, Item2));

    Mais ce n'est peut-etre pas la meilleur chose à faire...
    peut-etre qu'une VueModel est mieux...
  • dkmix
    Membre éprouvé
    Bien "Tuple" je ne connaissais pas.
    Merci