[Perso] Responsable ASP.NET chez Developpez

by Jean-Michel 18. mars 2012 15:58

Depuis Janvier 2012, j'ai été nommé Responsable ASP.NET à l'essai chez DVP. Ayant rendu la confiance que l'on m'avait donné de par mon investissement dans l'animation de la rubrique .NET, je vous annonce que j'ai été conforté cette semaine dans mon nouveau rôle de manière officielle cette fois en espérant pouvoir continuer sur ma lancée.


Tags: ,


Developpez | Perso

Nouveautés disponibles dans ASP.NET MVC 4 bêta

by Jean-Michel 1. mars 2012 19:42

Depuis quelques jours déjà, ASP.NET MVC 4 est disponible en version bêta. C'est l'occasion pour nous de découvrir ce que contient cette nouvelle version.

 

Web API

La grosse nouveauté de cette nouvelle version réside dans l'intégration du template Web API. Lors d'un billet précédent, je vous expliquais comment faire pour utiliser les API Web au sein d'un projet en ASP.NET MVC 3. Je ne vais donc pas m'éterniser sur cette nouveauté, le principe restant le même.

 

Regroupement par défaut

Une autre nouveauté disponible depuis la version Developer Preview est l'utilisation par défaut du regroupement dans les modèles de projet Web. Si on jette un œil à la section <head> du fichier _Layout.cshtml d'un projet ASP.NET MVC 4, voici ce que contient la section :

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" />
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
</head>

Cela aura pour effet de faire appel à l'intégralité des scripts et fichiers .css en quelques lignes.

 

Moteur de vue Razor

Le moteur de vue Razor reconnaît désormais le symbole « ~ » dans les résolutions d'URL.

Ce qui veut dire, qu'au lieu d'écrire une URL sous la forme suivante :

<script src="@Url.Content("~/Scripts/Form.js")"></script>

Nous pourrons écrire :

<script src="~/Scripts/Form.js"></script>

Autre point d'amélioration : le rendu conditionnel des attributs.

Auparavant, si nous avions un attribut dont la valeur pouvait être null, il fallait effectuer des vérifications avant d'éventuellement l'utiliser comme le montre la ligne de code suivante :

<div @{if (myClass != null) { <text>class="@myClass"</text> } }>Content</div>

Eh bien dans cette nouvelle version, Razor est maintenant capable de gérer tout ceci automatiquement. Ainsi, si l'attribut possède la valeur null, il n'est pas écrit. En admettant que nous ayons le bout de code suivant :

<div class="@myClass">Content</div>

Si @myClass est null, le rendu du code sera celui-ci :

<div>Content</div>

 

 

 

 

 


Tags: ,


ASP.NET MVC | ASP.NET MVC 4

Visual Studio 11 Beta disponible

by Jean-Michel 29. février 2012 18:28

Et voilà !! Nouvelle version promise, nouvelle version disponible. Microsoft vient de mettre en ligne la version bêta de Visual Studio 11.

Le changement majeur de cette version reste son interface rendue plus conviviale.

Pour télécharger cette nouvelle version, rendez-vous sur cette page : http://www.microsoft.com/visualstudio/11/en-us/downloads


Tags:


Visual Studio 11

Visual Studio 11 Beta disponible le 29 Février

by Jean-Michel 25. février 2012 19:22

 

Cette semaine, Microsoft nous dévoilera une version beta de Visual Studio 11 accompagné du framework 4.5, de Team Foundation Server et Team Foundation Server Express (tous en version beta). A noter que la date de sortie de la Consumer Preview de Windows 8 est prévu pour le 29 également.

Au rayon des nouveautés, une ergonomie remaniée avec le nombre de commandes par défaut s'affichant dans la barre d'outils réduit de façon à proposer une affichage plus clair. L'explorateur de solution contiendra une zone de recherche rapide et complète permettant d'effectuer des recherches dans les commandes, les fichiers ouverts, les outils de configuration. Un nouvel onglet « Aperçu » dédié aux prévisualisation fait son apparition ainsi que l’intégration des hubs du workflow permettant de combiner plusieurs tâches en cours dans une même fenêtre.

Côté framework 4.5, des améliorations ont été apportées sur les applications et les serveurs. Microsoft assure également que l'écriture du code asynchrone peut être effectuée aussi bien que du code synchrone.

Côté Team Foundation Server, Jason Zander a mis l'accent sur la console de gestion du cycle de vie des applications (ALM) avec la création de sprints combinée aux fonctions de gestion et d'allocation de ressources. Ceci permet de jongler entre plusieurs développeurs et d'accéder au planning et une interface permettant de gérer les priorités des tâches.

La nouvelle mouture aura également un lien avec le Windows Store permettant la publication d'applications dans la boutique en ligne.

 


Tags: ,


Windows 8 | Visual Studio 11

La bêta d'ASP.NET MVC 4 disponible

by Jean-Michel 18. février 2012 17:51

Depuis cette semaine, Microsoft a mis en ligne une version bêta d'ASP.NET MVC 4 disponible à l'adresse suivante :  http://www.asp.net/vnext/overview/downloads

Dans mon prochain billet, je reviendrai en détail sur les nouveautés disponibles vis-à-vis de la version Developer Preview.


Tags:


ASP.NET MVC 4

Utilisation d'une API Web avec ASP.NET MVC 3

by Jean-Michel 18. février 2012 17:10

Dans ce billet, nous allons voir quelles sont les étapes à suivre pour utiliser une API Web WCF au sein d'une application MVC. Tout d'abord, créons un projet de type Application Web ASP.NET MVC3 que l'on va appeler ArtistManager.

On sélectionne le modèle vide et on conserve le moteur de vue Razor.

Une fois le projet créé, on effectue un clic-droit → Propriétés → Web. Dans la partie Serveurs, on indique un port spécifique (Exemple : 1402).

La prochaine étape consiste à installer un paquet de création d'API Web par l'intermédiaire de NuGet.


NB : Si vous n'avez toujours pas installé NuGet sur votre machine, je vous suggère de lire ce tutoriel d'Hinault Romaric DONFACK qui détaille toutes les informations relatives à ce sujet.


Pour cela, nous allons cliquer sur Outils → Library Package Manager → Add Library Package Reference, rechercher le paquet WebApi.All, et l'installer.

Une fois l'installation effectuée, vous pouvez remarquer que des références ont été ajoutées à votre projet.

Nous sommes désormais prêt à construire notre API Web. Dans un premier temps, nous allons créer un dossier API qui contiendra nos classes API. Au sein de ce dossier, nous allons ajouter une nouvelle classe API que l'on va appelée ArtistApi. A ce stade, vous devriez avoir ce code dans votre classe :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ArtistManager.API
{
    public class ArtisteApi
    {
    }
}

On va la modifier en y ajoutant l'attribut ServiceContract afin d'indiquer à l'API Web que cette classe peut être exposée en tant que service. Cet attribut nécessite l'espace de noms System.ServiceModel.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel;

namespace ArtistManager.API
{
    [ServiceContract]
    public class ArtistApi
    {
    }
}

Maintenant, nous allons enregistrer dans le fichier Global.asax.cs. Ajoutez les espaces de noms suivants :

using ContactManager.APIs;
using System.ServiceModel.Activation;

Dans la méthode RegisterRoutes, il va falloir ajouter le bout de code suivant afin d'enregistrer une route pour notre nouvel API Web :

routes.Add(new ServiceRoute("api/artists", new HttpServiceHostFactory(), typeof(ArtistApi)));

 

Vous devriez avoir :

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.Add(new ServiceRoute("api/artists", new HttpServiceHostFactory(), typeof(ArtistApi)));

            routes.MapRoute(
                "Default", // Nom d'itinéraire
                "{controller}/{action}/{id}", // URL avec des paramètres
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
            );
        }

La classe ServiceRoute permet de créer un itinéraire de service sur HTTP pour la prise en charge de scénarios REST. Elle prend 3 paramètres : un préfix d'itinéraire, une instance de classe HttpServiceHostFactory et un type de service.


Nous allons implémenter une classe POCO Artiste qui contiendra les informations qui seront passés via l'API. Il s'agit essentiellement d'un DTO (Data Transfer Object) mais en HTTP on considère que cette entité est représentée par une « Ressource ». Nous créerons également une méthode qui exposera notre ressource. Cela permettra à de multiples clients d'accéder à la ressource.


Comme fait précédemment, on va créer un dossier Ressources qui contiendra l'ensemble de nos ressources et y ajouter une classe Artist contenant le code suivant :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ArtistManager.Ressources
{
    public class Artist
    {
        public int ArtistId { get; set; }
        public string Name { get; set; }
    }
}

Dans la classe ArtistApi, il va falloir ajouter les espaces de noms suivants :

using System.ServiceModel.Web;
using ArtistManager.Ressources;

Ainsi que la méthode Get suivante permettant de rapatrier les artistes :

[WebGet(UriTemplate = "")]
        public IEnumerable<Artist> Get()
        {
            var artists = new List<Artist>()
            {
                new Artist {ArtistId = 1, Name = "Richard Anconina"},
                new Artist {ArtistId = 2, Name = "Bruno Solo"},
                new Artist {ArtistId = 3, Name = "José Garcia"},
                new Artist {ArtistId = 4, Name = "Gilbert Melki"},
                new Artist {ArtistId = 5, Name = "Vincent Elbaz"}
            };
            return artists;
        }

Ici, l'attribut WebGet indique à l'API Web que cette méthode doit être exposée en tant que requête HTTP GET. On prend soin de passer une chaîne vide à l'UriTemplate. En effet, nous avons déjà définit la route de notre URL dans le Global.asax. D'ailleurs, vous pouvez vérifier que tout fonctionne et que votre liste d'artistes vous est renvoyée en vous rendant à l'URL suivante : http://localhost:1402/api/artists

Afin de tester leurs fonctionnalités, les Web API contiennent un module de test côté client que l'on peut configurer en créant une instance de HttpConfiguration dans la méthode RegisterRoutes :

var config = new HttpConfiguration() { EnableTestClient = true };

Il faudra ensuite passer cette instance au HttpServiceHostFactory de la route du Web API que nous avions créé précédemment.

routes.Add(new ServiceRoute("api/artists", new HttpServiceHostFactory() { Configuration = config }, typeof(ArtistApi)));

On relance le projet, puis on se rend à l'URL suivante : http://localhost:1402/api/artists/test

Ce qui nous amène sur la page de test.

Lorsque l'on clique sur notre ressource, cela a pour effet de remplir les champs Request et HTTP/1.1

On clique sur le bouton Send pour afficher la réponse de la requête GET :

 

On peut également récupérer la liste des Artistes au format JSON en passant la valeur « application/json » au paramètre Accept du champ Header :

 

Retour sur les TechDays 2012

by Jean-Michel 13. février 2012 20:40

Et voila, les TechDays sont finis (bon je sais, c'est fini depuis 5 jours) !!

C'était la première fois que j'y assistais et je ne regrette absolument pas. J'ai eu l'occasion de rencontrer des membres de développez.com, de découvrir de nouvelles choses tel que le développement sous Windows Phone avec XNA ou encore les bonnes pratiques à observer pour développer des applications en ASP.NET MVC. L'inconvénient, et je suis sûr que c'est un avis partagé, c'est que les journées et les sessions sont beaucoup trop courtes et que l'on a malheureusement pas le temps de profiter de tout.

En tous cas, ce fut un grand plaisir d'y avoir assisté et vivement l'année prochaine qu'on y regoûte !! 

Pour ceux qui auraient manqué cet événement ou qui n'ont pas pu assister à toutes les sessions auxquelles ils souhaitaient assister, vous pouvez toujours vous rattrapez sur ce site : http://tdtv.microsoft.fr/ (toutes les sessions ne sont pas encore disponibles).


Tags: ,


.NET | TechDays

Traduction du MVC Music Store

by Jean-Michel 14. janvier 2012 11:19

Ce billet pour signaler la publication de la traduction du MVC Music Store

N'hésitez pas à laisser un commentaire.

Bonne lecture.


Tags: , , ,


ASP.NET MVC | Developpez | Traduction | MVC Music Store

TechDays édition 2012

by Jean-Michel 10. décembre 2011 19:19

Comme vous le savez, chaque année les TechDays débarquent à Paris et rassemblent environ 20000 visiteurs en l’espace de 3 jours. Cette année, l’édition 2012 se déroulera les 7, 8 et 9 février 2012 au Palais des Congrès à Paris.

L’occasion pour vous (et pour moi) de découvrir pas moins de 300 conférences, 140 exposants, des communautés, les différents progammes communautaires de Microsoft et bien d’autres, bref, le rendez-vous annuel à ne pas manquer!

Voila comment vont se dérouler chacune des journées :      

  • 8h50 - 18h30 : Une « TechDays TV » tout au long des 3 jours pour vous faire, vivre l’événement comme si vous y étiez.
  • 9h15 - 10h30 : Une grande conférence plénière par jour.
  • 10h30 - 18h : Une zone d’exposition de 5500m² regroupant près de 140 partenaires, stands Microsoft et communautés Microsoft.
  • 11h - 17h : Plus de 300 conférences techniques.
  • 11h30 - 18h : Un espace projets permettant d’entrer en relation avec des experts qui vous conseilleront dans la préparation de vos projets.

De mon côté, j’espère bien assister à plusieurs sessions, en particulier :

  • Quoi de neuf dans ASP.NET 4.5 (RIA219) animée par Thomas Jaskula
  • Architecture, bonnes pratiques et recettes pour la réussite de vos projets avec ASP.NET MVC (RIA216) animée par Rui Carvalho et Julien Corioland


Pour plus d’innformations, vous pouvez consulter le site officiel : http://www.microsoft.com/france/mstechdays/default.aspx

Ne tardez plus, inscrivez-vous dès maintenant : https://techdays.microsoft.fr/TechDays2012/Inscription-Profil.aspx


Tags:


TechDays

Mise à jour du framework .NET 4 : Support de LocalDB

by Jean-Michel 31. octobre 2011 19:01

Microsoft vient de publier une mise à jour du Framework .NET 4. Cette mise à jour prend en charge LocalDB dans le fournisseur de données SqlClient. Désormais, les développeurs peuvent accéder aux instances de LocalDB à partir de Visual Studio 2010.

LocalDB Denali est une nouvelle version allégée de SQL Server Express. Cet outil est spécifiquement conçu pour les développeurs et leur permet d’éviter d’avoir à installer, gérer et administrer une instance complète de SQL Server Express sur leurs machines de développement. 

Afin d'accéder à LocalDB depuis Visual Studio 2010, il faut suivre la procédure décrite sur le blog MSDN de SqlExpress. 

Par ailleurs, concernant d'autres évolutions apportées, on notera la prise en charge d’AlwaysOn dans SqlClient ou encore une mise à jour de ClickOnce.

Pour télécharger cette mise à jour, il faut se rendre à cette adresse.

Pré-requis : Visual Studio 2010 SP1 


Tags: , ,


.NET 4 | .NET | Framework

Powered by BlogEngine.NET 2.0.0.36
Theme by Extensive SEO