ASP.NET et Web Tools 2013.2 pour Visual Studio 2013 - Notes de publication
par Microsoft
Notes d’installation
ASP.NET et Web Tools pour Visual Studio 2013.2 sont groupés dans le programme d’installation principal et peuvent être téléchargés dans le cadre de Visual Studio 2013 Update 2.
Documentation
Des didacticiels et d’autres informations sur ASP.NET et Web Tools pour Visual Studio 2013.2 sont disponibles à partir du site web ASP.NET.
Configuration logicielle requise
ASP.NET et Web Tools pour Visual Studio 2013.2 nécessite Visual Studio 2013.
Nouvelles fonctionnalités dans ASP.NET et Web Tools pour Visual Studio 2013.2
Les sections suivantes décrivent les fonctionnalités qui ont été introduites dans la version.
- Un ASP.NET modèles de projet
- Prise en charge du protocole SSL lors du lancement d’applications web sur IIS Express
- Améliorations apportées à Visual Studio Web Editor
- Lien du navigateur
- Prise en charge d’Azure App Service Web Apps dans Visual Studio
- Créer des ressources Azure distantes lors de la création d’un projet web
- Améliorations apportées à la publication web
- ASP.NET génération de modèles automatique
- NuGet 2.8.1
- Formulaires web ASP.NET
- ASP.NET MVC 5.1.2
- API Web ASP.NET 2.1.2
- pages Web ASP.NET 3.1.2
- Entity Framework 6.1
- ASP.NET Identity 2.0.0
- Composants Microsoft OWIN
- ASP.NET SignalR 2.0.2
Un ASP.NET modèles de projet
- Mises à jour de ASP.NET modèles de projet pour prendre en charge la confirmation de compte et la réinitialisation du mot de passe.
- Mettez à jour API Web ASP.NET modèle pour prendre en charge l’authentification à l’aide de comptes organisationnels locaux.
- Le modèle SPA ASP.NET contient désormais l’authentification basée sur les vues côté serveur et MVC. Le modèle dispose d’un contrôleur WebAPI accessible uniquement par les utilisateurs authentifiés.
Prise en charge du protocole SSL lors du lancement d’applications web sur IIS Express
Pour éliminer l’avertissement de sécurité lors de la navigation et du débogage https sur localhost, nous avons ajouté une boîte de dialogue permettant à Internet Explorer et Chrome d’approuver le certificat IIS express SSL auto-signé.
Par exemple, une propriété de projet web peut être définie pour utiliser SSL. Cliquez sur F4 pour afficher la boîte de dialogue propriétés. Remplacez SSL activé par true. Copiez l’URL SSL.
Définissez l’onglet web de la page de propriétés du projet web pour utiliser l’URL basée sur HTTPS (l’URL SSL sera https://localhost:44300/
sauf si vous avez précédemment créé des sites web SSL.)
Appuyez sur Ctrl+F5 pour exécuter l’application. Suivez les instructions pour approuver le certificat auto-signé généré par IIS Express.
Lisez la boîte de dialogue Avertissement de sécurité, puis cliquez sur Oui si vous souhaitez installer le certificat représentant localhost.
Le site s’affiche dans Internet Explorer ou Chrome sans l’avertissement de certificat dans le navigateur.
Firefox utilise son propre magasin de certificats, de sorte qu’il affiche un avertissement.
Améliorations apportées à Visual Studio Web Editor
Nouvel élément et éditeur de projet JSON : nous avons ajouté un élément et un éditeur de projet JSON à Visual Studio. Les fonctionnalités actuelles de l’éditeur JSON incluent la colorisation, la validation de la syntaxe, la saisie semi-automatique, le plan, le paramètre d’option outils et bien plus encore.
IntelliSense prend désormais en charge le schéma JSON v3 et v4. Il existe une zone de liste déroulante de schéma pour choisir des schémas existants, modifier le chemin de schéma local ou simplement déplacer un fichier JSON de projet vers celui-ci pour obtenir le chemin relatif.
Nouvel éditeur Sass (SCSS) : Nous avons ajouté LESS dans VS2013 RTM, et nous avons maintenant un élément de projet Sass et un éditeur. Les fonctionnalités de l’éditeur Sass sont comparables à celles de l’éditeur LESS et incluent la colorisation, la variable et Mixins IntelliSense, les commentaires/décompressions, les informations rapides, la mise en forme, la validation de syntaxe, le plan, la définition goto, le sélecteur de couleurs, le paramètre d’option outils, etc.
Nouveau sélecteur d’URL dans les documents HTML, Razor, CSS, LESS et Sass : VS 2013 fourni sans sélecteur d’URL en dehors des pages Web Forms. Le nouveau sélecteur d’URL pour les éditeurs HTML, Razor, CSS, LESS et Sass est un sélecteur de saisie fluide et sans dialogue qui comprend « . ». et filtre les listes de fichiers de manière appropriée pour les balises et liens img.
Mises à jour de l’éditeur LESS en ajoutant d’autres fonctionnalités
Mise à niveau IntelliSense de Knockout : nous avons ajouté une syntaxe KnockOut non standard pour VS IntelliSense, la syntaxe « ko-vs-editor viewModel : ». Il peut être utilisé pour lier plusieurs modèles d’affichage sur une page à l’aide de commentaires dans le formulaire :
Nous avons également ajouté la prise en charge d’IntelliSense ViewModel imbriqué. Vous pouvez donc explorer des objets profondément imbriqués sur ViewModel.
<div data-bind="text: foo.bar.baz.etc" />
IntelliSense affiché est l’intelliSense complet de l’objet JavaScript.
Nouveau sélecteur d’URL dans les documents HTML, Razor, CSS, LESS et Sass : VS 2013 fourni sans sélecteur d’URL en dehors des pages Web Forms. Le nouveau sélecteur d’URL pour les éditeurs HTML, Razor, CSS, LESS et Sass est un sélecteur de saisie fluide et sans dialogue qui comprend « . ». et filtre les listes de fichiers de manière appropriée pour les balises et liens img.
Lien du navigateur
- Browser Link prend désormais en charge les connexions HTTPS et répertoriera celle-ci dans Le tableau de bord avec d’autres connexions tant que le certificat est approuvé par navigateur.
- Mappage de source HTML statique
- Prise en charge de spa pour le mappage des données
- Mettre à jour automatiquement les données de mappage
Prise en charge d’Azure App Service Web Apps dans Visual Studio
- Prise en charge de la connexion Azure.
- Débogage à distance et vue à distance pour les applications web : nous prenons désormais en charge le débogage à distance pour les applications web dans Azure App Service et l’affichage à distance des fichiers de contenu d’application web dans l’Explorateur de serveurs.
Créer des ressources Azure distantes lors de la création d’un projet web
Nous avons ajouté une case à cocher Azure « Créer des ressources distantes » dans la boîte de dialogue nouvelle application web. En le choisissant, vous serez en mesure d’intégrer l’expérience de création d’une application web, de configurer le site de publication Azure pour les tests et de créer un profil de publication en quelques étapes simples.
Améliorations apportées à la publication web
- Améliorer l’expérience utilisateur pour la publication.
ASP.NET génération de modèles automatique
- Prise en charge de l’énumération : si votre modèle utilise Enums, l’échafaudeur MVC génère une liste déroulante pour Enum. Cela utilise les helpers Enum dans MVC.
- Prise en charge du démarrage : mise à jour des modèles EditorFor dans la structure MVC afin qu’ils utilisent les classes Bootstrap.
- Prise en charge des packages : les modèles de modèles de l’API Web et MVC ajoutent des packages 5.1 pour MVC et l’API web
Les captures d’écran suivantes illustrent les modèles de génération automatique.
Code du modèle :
Compilez le code du modèle, cliquez avec le bouton droit, puis sélectionnez Ajouter, Nouvel élément généré automatiquement.
Choisissez le contrôleur MVC5 avec des vues, à l’aide d’Entity Framework :
Ajoutez le contrôleur à l’aide du modèle :
Vérifiez le code généré, par exemple Views/WeekdayModels/Edit.cshtml :
@Html.EnumDropDownListFor
Exécutez la page pour afficher la zone de liste modifiable enum générée, notez que si une valeur peut être null, une chaîne vide peut être choisie pour la zone de liste modifiable. Par exemple, la page Créer affiche les éléments suivants :
NuGet 2.8.1
NuGet 2.8.1 RTM sera publié en avril 2014. Voici les points importants des notes de publication, mais consultez les notes de publication complètes pour plus d’informations sur ces modifications.
Applications Windows Phone 8.1 cibles : NuGet 2.8.1 prend désormais en charge le ciblage d’applications Windows Phone 8.1 à l’aide des monikers de framework cible « WindowsPhoneApp », « WPA », « WindowsPhoneApp81 » et « WPA81 ».
Résolution des correctifs pour les dépendances : lors de la résolution des dépendances de package, NuGet a implémenté historiquement une stratégie de sélection de la version principale et mineure la plus basse du package qui satisfait aux dépendances du package. Contrairement aux versions majeure et mineure, toutefois, la version du correctif a toujours été résolue en fonction de la version la plus élevée. Bien que le comportement ait été bien intentionné, il a créé un manque de déterminisme pour l’installation de packages avec des dépendances.
Commutateur DependencyVersion : Bien que NuGet 2.8 modifie le comportement par défaut pour la résolution des dépendances, il ajoute également un contrôle plus précis sur le processus de résolution des dépendances via le commutateur -DependencyVersion dans la console du gestionnaire de package. Le commutateur permet de résoudre les dépendances avec la version la plus basse possible (comportement par défaut), la version la plus élevée possible, ou la version mineure ou de correctif la plus élevée. Ce commutateur fonctionne uniquement pour Install-Package dans la commande PowerShell.
Attribut DependencyVersion : outre le commutateur -DependencyVersion détaillé ci-dessus, NuGet a également permis de définir un nouvel attribut dans le fichier nuget.config définissant la valeur par défaut, si le commutateur -DependencyVersion n’est pas spécifié dans un appel d’install-package. Cette valeur sera également respectée par la Boîte de dialogue du Gestionnaire de package NuGet pour toutes les opérations Install-Package. Pour définir cette valeur, ajoutez l’attribut ci-dessous à votre fichier nuget.config :
<config> <add key="dependencyversion" value="Highest" /> </config>
Aperçu des opérations NuGet avec -WhatIf : certains packages NuGet peuvent avoir des graphe des dépendances approfondies et, par conséquent, il peut être utile pendant une opération d’installation, de désinstallation ou de mise à jour pour voir d’abord ce qui se passera. NuGet 2.8 ajoute la commande PowerShell standard -what if switch to the install-package, uninstall-package and update-package commands to enable visualizing the entire closure of packages to which the command will be applied.
Package de rétrogradation : il n’est pas rare d’installer une version préliminaire d’un package afin d’examiner les nouvelles fonctionnalités, puis de décider de revenir à la dernière version stable. Avant NuGet 2.8, il s’agissait d’un processus en plusieurs étapes de désinstallation de la version préliminaire du package et de ses dépendances, puis d’installation de la version antérieure. Avec NuGet 2.8, toutefois, le package de mise à jour restaure désormais l’intégralité de la fermeture du package (par exemple, l’arborescence des dépendances du package) vers la version précédente.
Dépendances de développement : de nombreux types de fonctionnalités peuvent être fournis en tant que packages NuGet, y compris les outils utilisés pour optimiser le processus de développement. Ces composants, bien qu’ils puissent être déterminants dans le développement d’un nouveau package, ne doivent pas être considérés comme une dépendance du nouveau package lorsqu’il est publié ultérieurement. NuGet 2.8 permet à un package de s’identifier dans le fichier .nuspec en tant que developmentDependency. Une fois installées, ces métadonnées sont également ajoutées au fichier packages.config du projet dans lequel le package a été installé. Lorsque ce fichier packages.config est analysé ultérieurement pour les dépendances NuGet pendant nuget.exe pack, il exclut ces dépendances marquées comme dépendances de développement.
Fichiers packages.config individuels pour différentes plateformes : lors du développement d’applications pour plusieurs plateformes cibles, il est courant d’avoir différents fichiers projet pour chacun des environnements de build respectifs. Il est également courant de consommer différents packages NuGet dans différents fichiers projet, car les packages ont différents niveaux de prise en charge pour différentes plateformes. NuGet 2.8 offre une prise en charge améliorée de ce scénario en créant différents fichiers packages.config pour différents fichiers projet spécifiques à la plateforme.
Secours au cache local : bien que les packages NuGet soient généralement consommés à partir d’une galerie distante telle que la galerie NuGet à l’aide d’une connexion réseau, il existe de nombreux scénarios où le client n’est pas connecté. Sans connexion réseau, le client NuGet n’a pas pu installer correctement les packages, même lorsque ces packages étaient déjà sur l’ordinateur du client dans le cache NuGet local. NuGet 2.8 ajoute le cache de secours automatique à la console du gestionnaire de package.
La fonctionnalité de cache de secours ne nécessite aucun argument de commande spécifique. En outre, le cache de secours ne fonctionne actuellement que dans la console du gestionnaire de package : le comportement ne fonctionne pas actuellement dans la boîte de dialogue du gestionnaire de package.
Correctifs de bogues : l’un des principaux correctifs de bogues effectués a été l’amélioration des performances dans la commande update-package -reinstall.
Outre ces fonctionnalités et le correctif de performances mentionné ci-dessus, cette version de NuGet inclut également de nombreux autres correctifs de bogues. Un total de 181 problèmes ont été résolus dans la version. Pour obtenir la liste complète des éléments de travail corrigés dans NuGet 2.8, consultez le Suivi des problèmes NuGet pour cette version.
ASP.NET Web Forms
- Les modèles Web Forms montrent maintenant comment effectuer la confirmation de compte et la réinitialisation du mot de passe pour ASP.NET Identity.
- Contrôle de source de données d’entité et Fournisseur de données dynamique pour Entity Framework 6. Pour plus d’informations, consultez le blog MSDN suivant : Fournisseur de données dynamiques et contrôle EntityDataSource pour Entity Framework 6.
ASP.NET MVC 5.1.2
- Améliorations du routage des attributs
- Prise en charge du démarrage pour les modèles d’éditeur
- Prise en charge de l’énumération dans les vues
- Prise en charge discrète des attributs MinLength/ MaxLength
- Prise en charge du contexte « this » dans Unobtrusive Ajax
API Web ASP.NET 2.1.2
- Gestion globale des erreurs
- Améliorations du routage des attributs
- Améliorations apportées à la page d’aide
- Prise en charge de IgnoreRoute
- Formateur de type multimédia BSON
- Meilleure prise en charge des filtres asynchrones
- Analyse des requêtes pour la bibliothèque de mise en forme du client
pages Web ASP.NET 3.1.2
Entity Framework 6.1
Entity Framework a été mis à jour vers la version 6.1 pour le runtime et les outils. Entity Framework (EF) 6.1 est une mise à jour mineure vers Entity Framework 6 et inclut un certain nombre de correctifs de bogues et de nouvelles fonctionnalités. Pour plus d’informations sur EF6.1, notamment des liens vers la documentation relative aux nouvelles fonctionnalités, consultez l’historique des versions d’Entity Framework. Les nouvelles fonctionnalités de cette version sont les suivantes :
- La consolidation des outils offre un moyen cohérent de créer un modèle EF. Cette fonctionnalité étend l’Assistant ADO.NET Entity Data Model afin de prendre en charge la création de modèles Code First, y compris l’ingénierie inverse à partir d’une base de données existante. Ces fonctionnalités étaient précédemment disponibles en version bêta dans EF Power Tools.
- La gestion des échecs de validation des transactions fournit le nouveau System.Data.Entity.Infrastructure.CommitFailureHandler qui utilise la possibilité nouvellement introduite d’intercepter les opérations de transaction. CommitFailureHandler autorise la récupération automatique à partir d’échecs de connexion lors de la validation d’une transaction.
- IndexAttribute permet aux index d’être spécifiés en plaçant un attribut sur une propriété (ou des propriétés) dans votre modèle Code First. Code First crée ensuite un index correspondant dans la base de données.
- L’API de mappage public fournit l’accès aux informations contenues dans EF sur la façon dont les propriétés et les types sont mappés aux colonnes et aux tables de la base de données. Dans les versions précédentes, cette API était interne.
- Possibilité de configurer des intercepteurs via le fichier App/Web.config (permettant aux intercepteurs d’être ajoutés sans recompiler l’application).
- DatabaseLogger est un nouvel intercepteur qui facilite l’enregistrement de toutes les opérations de base de données dans un fichier. En combinaison avec la fonctionnalité précédente, vous pouvez facilement activer la journalisation des opérations de base de données pour une application déployée, sans avoir à effectuer de recompilation.
- La détection des changements de modèle de migration a été améliorée afin que les migrations générées soient plus précises ; les performances du processus de détection des modifications ont également été considérablement améliorées.
- Améliorations des performances, notamment des opérations de base de données réduites lors de l’initialisation, des optimisations pour la comparaison de l’égalité null dans les requêtes LINQ, la génération d’affichage plus rapide (création de modèle) dans d’autres scénarios et la matérialisation plus efficace des entités suivies avec plusieurs associations.
ASP.NET Identity 2.0.0
Authentification à deux facteurs : ASP.NET Identity prend désormais en charge l’authentification à deux facteurs. L’authentification à deux facteurs fournit une couche de sécurité supplémentaire à vos comptes d’utilisateur dans le cas où votre mot de passe est compromis. Il existe également une protection contre les attaques par force brute contre les deux codes facteurs.
Verrouillage du compte : permet de verrouiller l’utilisateur si l’utilisateur entre son mot de passe ou ses codes à deux facteurs de manière incorrecte. Le nombre de tentatives non valides et l’intervalle de temps pour les utilisateurs sont verrouillés peuvent être configurés. Un développeur peut éventuellement désactiver le verrouillage de compte pour certains comptes d’utilisateur s’il doit le faire.
Confirmation du compte : le système ASP.NET Identity prend désormais en charge la confirmation du compte. Il s’agit d’un scénario assez courant dans la plupart des sites web aujourd’hui où, lorsque vous vous inscrivez à un nouveau compte sur le site web, vous devez confirmer votre e-mail avant de pouvoir faire quoi que ce soit dans le site web. La confirmation de l’e-mail est utile, car elle empêche la création de comptes faux. Cela est extrêmement utile si vous utilisez l’e-mail comme méthode de communication avec les utilisateurs de votre site web, tels que les sites de forum, les banques, le commerce électronique ou les sites web sociaux.
Réinitialisation du mot de passe : la réinitialisation du mot de passe est une fonctionnalité dans laquelle l’utilisateur peut réinitialiser ses mots de passe s’il a oublié son mot de passe.
Tampon de sécurité (déconnexion partout) : prend en charge un moyen de régénérer le jeton de sécurité pour l’utilisateur dans les cas où l’utilisateur modifie son mot de passe ou toute autre information liée à la sécurité, comme la suppression d’une connexion associée (par exemple, Facebook, Google, Compte Microsoft, etc.). Cela est nécessaire pour vous assurer que tous les jetons générés avec l’ancien mot de passe sont invalidés. Dans l’exemple de projet, si vous modifiez le mot de passe de l’utilisateur, un nouveau jeton est généré pour l’utilisateur et tous les jetons précédents sont invalidés. Cette fonctionnalité fournit une couche de sécurité supplémentaire à votre application, car lorsque vous modifiez votre mot de passe, vous serez déconnecté de partout (tous les autres navigateurs) où vous vous êtes connecté à cette application.
Rendre le type de clé primaire extensible pour les utilisateurs et les rôles : dans ASP.NET Identity 1.0, le type de clé primaire pour les utilisateurs et rôles de table était des chaînes. Cela signifie que lorsque le système d’identité ASP.NET a été conservé dans SQL Server à l’aide d’Entity Framework, nous utilisions nvarchar. Il y a eu de nombreuses discussions autour de cette implémentation par défaut sur Stack Overflow et en fonction des commentaires entrants. Nous avons fourni un hook d’extensibilité dans lequel vous pouvez spécifier la clé primaire de votre table Utilisateurs et Rôles. Ce hook d’extensibilité est particulièrement utile si vous migrez votre application et que l’application stockait des ID utilisateur sont des GUID ou des ints.
Prise en charge d’IQueryable sur les utilisateurs et les rôles : ajout de la prise en charge d’IQueryable sur UsersStore et RolesStore, vous pouvez facilement obtenir la liste des utilisateurs et des rôles.
Prise en charge de l’opération Delete via UserManager
Indexation sur UserName : dans ASP.NET implémentation d’Entity Framework d’identité, nous avons ajouté un index unique sur le nom d’utilisateur à l’aide du nouvel IndexAttribute dans EF 6.1.0. Cela permet de s’assurer que les noms d’utilisateur sont toujours uniques et qu’il n’existe aucune condition de concurrence dans laquelle vous pourriez finir par des noms d’utilisateur en double.
Validateur de mot de passe amélioré : le validateur de mot de passe fourni dans ASP.NET Identity 1.0 était un validateur de mot de passe assez simple qui validait uniquement la longueur minimale. Il existe un nouveau validateur de mot de passe qui vous permet de mieux contrôler la complexité du mot de passe. Notez que même si vous activez tous les paramètres dans ce mot de passe, nous vous encourageons à activer l’authentification à deux facteurs pour les comptes d’utilisateur.
Middleware IdentityFactory/ CreatePerOwinContext :
- Gestionnaire d’utilisateurs : vous pouvez utiliser l’implémentation Factory pour obtenir une instance de UserManager à partir du contexte OWIN. Ce modèle est similaire à ce que nous utilisons pour obtenir AuthenticationManager à partir du contexte OWIN pour SignIn et SignOut. Il s’agit d’un moyen recommandé d’obtenir une instance de UserManager par requête pour l’application.
- DbContextFactory : ASP.NET Identity utilise Entity Framework pour conserver le système d’identité dans SQL Server. Pour ce faire, le système d’identité a une référence à ApplicationDbContext. Le middleware DbContextFactory retourne une instance de ApplicationDbContext par requête que vous pouvez utiliser dans votre application.
ASP.NET package NuGet d’exemples d’identités : le package NuGet Samples peut faciliter l’installation et l’exécution d’exemples pour ASP.NET Identity et suivre les meilleures pratiques. Il s’agit d’un exemple d’application MVC ASP.NET. Modifiez le code en fonction de votre application avant de le déployer en production. L’exemple doit être installé dans une application ASP.NET vide. Pour plus d’informations sur le package, consultez le billet de blog suivant : Annonce de RTM de ASP.NET Identity 2.0.0
Composants Microsoft OWIN
Il y avait beaucoup de bogues qui ont été corrigés dans cette version.
ASP.NET SignalR 2.0.2
Il y avait beaucoup de bogues qui ont été corrigés dans cette version. Pour plus d’informations, consultez les notes de publication de la version 2.0.2.