Fermer

mai 23, 2018

Une entrevue avec Daniel Roth


Retrouvez toutes les dernières nouvelles de la version RC d'ASP.NET Core 2.1 dans l'interview d'Ed Charbeneau avec Daniel Roth à Microsoft Build 2018.

Sur cet épisode de Eat Sleep Code, l'invité Daniel Roth parle de "live release" candidat "d'ASP.NET Core 2.1. Je me suis assis avec Daniel Roth à Microsoft Build 2018 pour discuter des améliorations à venir dans la version, et il y a beaucoup à dire. C'est une version excitante qui comprend un signal SignalR / Azure SignalR flambant neuf, une intégration facile avec OpenAPI (aka Swagger), un support de tests fonctionnels, et bien plus encore. Daniel discute certaines de ses fonctionnalités préférées comme HttpClientFactor et des frameworks expérimentaux comme Blazor .

Vous pouvez écouter le spectacle, enregistré en direct sur Build 2018, en utilisant le player ci-dessous ou en vous abonnant sur iTunes . Pour ceux qui préfèrent lire à l'écoute, vous trouverez ci-dessous des récapitulatifs des nombreuses fonctionnalités discutées sur le podcast.

SignalR

SignalR est une bibliothèque ASP.NET pour travailler avec la communication bidirectionnelle entre le serveur et le client via Websockets . Dans ASP.NET 2.1, la nouvelle version de SignalR est une version en direct complète. Bien que SignalR n'ait pas été complètement réécrit à partir de la version initiale de .NET Framework, il a été fondamentalement modifié et considérablement amélioré. L'un des plus grands changements est la suppression de sa dépendance jQuery. La suppression de jQuery élargit le spectre des frameworks côté client à utiliser, notamment Angular, React et Vue. En outre, les protocoles sont maintenant extensibles dans SignalR avec deux protocoles de concentrateur intégrés: un protocole de texte basé sur JSON et un protocole binaire utilisant MessagePack

Azure SignalR Service

L'une des plus grandes annonces concernant SignalR est de savoir comment étant inclus dans la pile Azure. Les développeurs n'ont plus besoin de gérer les performances, l'évolutivité et la disponibilité de leurs concentrateurs SignalR. Avec le service Azure SignalR, ces problèmes sont traités pour vous.

 signalr "data-displaymode =" Original "title =" signalr "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

Le service Azure SignalR est étroitement intégré à la bibliothèque SignalR .NET L'ajout d'Azure SignalR à une implémentation SignalR existante s'effectue en créant une référence au SDK Azure SignalR Service.

 Install-Package Microsoft.Azure.SignalR -Version 1.0. 0-preview1-10009 

Ensuite, configurez une chaîne de connexion et des services de connexion dans Startup.cs en utilisant services.AddSignalR (). AddAzureSignalR () et app. UseAzureSignalR () Les clients ASP.NET Core SignalR existants n'ont pas besoin de modification pour tirer parti des services Azure SignalR

OpenAPI / Swagger Integration

Dans cette version, une nouvelle méthode pour créer ASP.NET Core Web Des API plus descriptives utilisant la spécification OpenAPI (anciennement Swagger) ont été ajoutées . Cela a été fait pour alléger le besoin d'utiliser plusieurs attributs pour produire des résultats similaires lors de l'utilisation de IActionResult. ASP.NET Core 2.1 introduit un nouveau type ActionResult qui permet de renvoyer le type de réponse ou tout résultat d'action tout en indiquant le type de réponse.

[Produces(typeof(SalesOrder))]
 public IActionResult Get (long id)
{
  var salesOrder = GetSalesOrder (id);
  renvoie Ok (salesOrder);
}

public ActionResult  Obtenir (identifiant long)
{
  var employé = GetSalesOrder (id);
  return salesOrder;
} 

Lors de l'utilisation de ActionResult l'objet de retour est défini par T et la spécification OpenAPI peut être obtenue à partir de la signature de méthode

Functional Testing Support

est devenu plus facile dans ASP.NET Core 2.1 avec WebApplicationFactory. WebApplicationFactory appelle l'ensemble de l'application et l'héberge en mémoire. WebApplicationFactory permet aux développeurs de créer une fabrique personnalisée qui configure le HttpClient sans "toucher le fil". Lorsque WebApplicationFactory est initialisé, il appelle l'application entière de bout en bout, y compris les pages et les vues, ce qui permet de vérifier les résultats. Cela permet de tester des scénarios qui requièrent une configuration HttpClient spécifique, par exemple, l'ajout d'en-têtes HTTP spécifiques à une requête.

HttpClientFactory

HttpClientFactory est une fabrique "opiniâtre" pour créer des instances HttpClient à utiliser dans vos applications. Il fournit des conseils pour l'utilisation de HttpClient de telle sorte que HttpClient soit créé et réutilisé efficacement plutôt que de les éliminer prématurément. Une mauvaise utilisation de HttpClient peut entraîner des goulots d'étranglement importants et une mauvaise fiabilité en consommant des ressources et des sockets. En plus de fournir HttpClient en tant que service .NET, la fabrique gère les problèmes transversaux via un pipeline de requêtes de manière centralisée.

HttpClientFactory introduit des clients nommés et typés pour l'utilisation de plusieurs instances distinctes de HttpClient.

] AddHttpClient méthode un HttpClient nommé est ajouté au conteneur de service.

 public void ConfigureServices (Services IServiceCollection) {
  services.AddHttpClient ("github", c =>
  {
    c.BaseAddress = new Uri ("https://api.github.com/");

    c.DefaultRequestHeaders.Add ("Accepter", "application / vnd.github.v3 + json"); // Github API versioning
    c.DefaultRequestHeaders.Add ("User-Agent", "HttpClientFactory-Sample"); // Github nécessite un user-agent
  });
} 

La propriété httpClientFactory est ensuite résolue via l'injection de dépendance et une instance du client nommé est créée.

 public class MyController: Controller
{
  IHttpClientFactory _httpClientFactory;

  MyController public (IHttpClientFactory httpClientFactory)
  {
    _httpClientFactory = httpClientFactory;
  }

  public IActionResult Index ()
  {
    var gitHubClient = _httpClientFactory.CreateClient ("github");
    retour Voir ();
  }
} 

HttpClient peut également être fortement typé pour l'aide supplémentaire d'IntelliSense et du compilateur. Un HttpClient fortement typé est ajouté au conteneur de service à l'aide de AddHttpClient.

 public void ConfigureServices (services IServiceCollection)
{
    services.AddHttpClient  ();
    services.AddMvc ();
} 

Une classe personnalisée encapsule les en-têtes et les paramètres nécessaires pour effectuer la requête.

 public class GitHubService
{
  public HttpClient Client {get; ensemble privé; }

  GitHubService public (client HttpClient)
  {
    client.BaseAddress = new Uri ("https://api.github.com/");
    client.DefaultRequestHeaders.Add ("Accepter", "application / vnd.github.v3 + json"); // Github API versioning
    client.DefaultRequestHeaders.Add ("User-Agent", "HttpClientFactory-Sample"); // Github nécessite un user-agent

    Client = client;
  }
} 

Dans le contrôleur, le HttpClient peut être résolu par injection de dépendance en utilisant le type.

 public class IndexModel: PageModel
{
  GitHubService privé _ghService;

  IndexModel public (GitHubService ghService)
  {
    _ghService = ghService;
  }

  tâche asynchrone publique OnGet ()
  {
    var resultat = wait _ghService.Client.GetStringAsync ("/ orgs / octokit / repos");
  }
} 

Avec l'ajout de HttpClientFactory, un pipeline de middleware HTTP sortant est disponible en utilisant un type DelegatingHandler . Le pipeline de middleware sortant est conceptuellement similaire à la manière dont ASP.NET gère les requêtes HTTP entrantes. Plus d'informations sur HttpClientFactory sont disponibles dans l'article, Présentation de la fabrique HTTPClient .

Bibliothèques de classe Razor

Une bibliothèque de classes Razor (RCL), comme son nom l'indique, est une bibliothèque de classes Vues rasoir. Les RCL sont un moyen simple de créer des mandrins réutilisables de code de vue qui peuvent être partagés entre des projets ou via NuGet. Inclus dans la version ASP.NET Core 2.1 est un nouveau modèle RCL disponible via l'expérience Fichier> Nouveau projet dans Visual Studio ou la ligne de commande en utilisant dotnet new razorclasslib -o RazorClassLib1 .

 razor-classe-bibliothèque "data-displaymode =" Original "title =" bibliothèque-classe-razor "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

Cette nouvelle façon de partager des vues ASP.NET MVC crée des opportunités pour que la communauté ASP.NET partage des modèles d'interface utilisateur courants.

Si vous avez une idée de la façon dont Progress Telerik peut utiliser les RCL, envoyez-nous un message à l'adresse feedback.telerik.com et faites-nous le savoir. 19659039] Identity Overhaul

L'identité dans ASP.NET Core 2.1 est en cours de révision majeure.

GDPR

Les mises à jour incluent une prise en charge permettant aux développeurs de gérer les implications du GDPR (General Data Protection Regulation). prendre le contrôle de leurs données personnelles Dans cette version, la bibliothèque ASP.NET Identity gi ves développeurs un point de départ pour la façon de gérer les cookies, la possibilité de télécharger des données personnelles (en mode hors connexion), et de supprimer leurs données d'identité.

Identiy Scaffolding

Dans les versions précédentes d'ASP.NET Core, l'ajout d'Identity à un projet était un processus très manuel. Les utilisateurs devaient souvent créer un nouveau projet à l'aide de la boîte de dialogue Fichier> Nouveau projet pour obtenir le code nécessaire à ajouter à un projet existant. Avec ASP.NET Core 2.1 et grâce à Razor Class Libraries (RCL), il s'agit maintenant d'un processus simple

Dans ASP.NET Core 2.1 Identity est une RCL qui peut être facilement ajoutée aux projets nouveaux et existants. Pour aider davantage les développeurs dans le processus, un nouvel assistant Identity Scaffolidng a été ajouté à Visual Studio. L'outil d'échafaudage Identity sert à deux fins, en ajoutant l'identité ou en remplaçant les modèles d'identité existants.

 identity-échafaudage "data-displaymode =" Original "title =" identité-échafaudage "data-openoriginalimageonclick =" true " /> </a data-recalc-dims=

Comme les vues Identity sont contenues dans une RCL, elles ne peuvent pas être éditées directement, c'est là que le scaffolder Identity brille réellement, car il peut être utilisé pour générer les vues à l'aide d'une interface intuitive. Cochez simplement les cases correspondant aux vues à remplacer et ajoutez-les au projet Une fois les fichiers ajoutés au projet, tout fichier sur le disque qui occupe le même chemin qu'une vue trouvée dans la RCL remplacera la RCL. 19659048] Nouveaux modèles de SPA

ASP.NET Core 2.0 a ajouté de nouveaux modèles d'application de page unique (ASP) pour Angular et React Dans ASP.NET Core, ces modèles ont été remplacés par de nouveaux modèles compatibles avec la CLI angulaire et Réagir create-react-app expériences de ligne de commande. Les nouveaux modèles SPA offrent une expérience d'intégration facile pour le développement Angular et React utilisant les technologies .NET

Remarque: Les nouveaux modèles ne contiennent pas le rendu côté serveur (SSR). Le SSR peut être activé, mais ce n'est pas une décision à prendre à la légère car il y a des impacts négatifs sur l'utilisation du SSR dans une application. Les détails concernant le SSR avec ASP.NET Core 2.1 Les modèles SPA sont disponibles dans la documentation officielle ASP.NET .

Si vous êtes un client Progress Telerik et que vous souhaitez essayer le modèle Angular SPA en utilisant le Kendo UI, téléchargez notre dernière extension pour Visual Studio sur le marché . Faites-nous savoir si c'est quelque chose que nous devrions continuer à développer en laissant vos commentaires à feedback.telerik.com .

Blazor Experiment continue

Blazor est pas officiellement pris en charge ASP.NET Caractéristique de base mais cela ne le rend pas moins excitant. Blazor est un nouveau framework web .NET expérimental utilisant C # / Razor et HTML qui s'exécute dans le navigateur avec WebAssembly. Blazor est fortement inspiré par les concepts de frameworks frontaux populaires comme Angular et React. L'aspect prometteur de Blazor est qu'il est capable de consommer des bibliothèques .NET Standard sur le client du navigateur. Cela signifie que les applications Blazor peuvent potentiellement partager du code commun entre le serveur et le client, et en plus des bibliothèques de NuGet. L'inconvénient d'exécuter des bibliothèques existantes sur le client est qu'elles ne doivent pas dépendre de ressources qui ne sont pas disponibles dans le navigateur, ex: System.IO ou System.Drawing.

Puisque Blazor est un test, il doit être ajouté manuellement et n'est pas inclus avec ASP.NET Core 2.1. Vous trouverez les instructions d'installation sur la page d'accueil Blazor .


Les commentaires sont désactivés en mode prévisualisation.
[ad_2]
Source link