Lo scorso 28 giugno è stata rilasciata la Preview 2 di ASP.NET Core 2.

Le principali novità della nuova versione ASP.NET Core sono:

  • Razor Pages
  • Nuovi Template di Progetto
  • Configurazione Semplificata
  • Meta Pacchetto Microsoft.AspNetCore.All
  • Precompilazione Razor View
  • Integrazione Azure Directory B2C

Per vedere queste novità è necessario scaricare l’ultimo sdk al seguente url

https://www.microsoft.com/net/core/preview ed installare la versione preview di Visual Studio 2017 https://www.visualstudio.com/it/vs/preview/

Questa versione è la versione più aggiornata di Visual Studio che permette di provare tutte le ultime novità e permette l’installazione side by side con la versione attualmente stabile senza comprometterla Winking smile

Una volta installato l’ultimo SDK e la versione preview di Visual Studio possiamo procedere con il seguente comando:

dotnet –-version

Se l’installazione è andata a buon fine riceveremo:

2.0.0-preview2-006497

Che corrisponde all’ultima versione disponibile ad oggi

Razor Pages

Le Razor Pages sono una delle novità con più controversie da parte degli Sviluppatori ASP.NET:

Le Razor Pages  fanno parte dell’assembly Microsoft.AspNetCore.Mvc.RazorPages che è parte integrante dell’assembly Microsoft.AspNetCore.Mvc. Il nuovo Framework introduce la possibilità di creare delle pagine in stile WebForm senza definire alcuna route, basterà creare una Razor Page all’interno della directory Pages e MVC mapperà automaticamente la route in base al nome e alla struttura della directory.

Nuovi Template di Progetto

L’ultima versione dell’SDK ha aggiunto dei nuovi Template per la creazione dei progetti .NET Core.

Eseguendo dal prompt dei comadi:

dotnet new ?

Otterremo

image

Come possiamo vedere rispetto alla versione 1.1 sono presenti dei Template aggiuntivi:

    • ASP.NET Core Web App (Razor Pages)
    • ASP.NET Core with Angular
    • ASP.NET Core with React.js
    • ASP.NET Core with React.js and Redux
    • Razor Page

    Oltre al Template del Progetto ASP.NET con le Razor Pages ed il relativo Template per la creazione di una nuova Razor Page, è possibile distinguere dei nuovi Template per una SPA (Single Page Application).

    Questi Nuovi Template permettono di creare in maniera semplificata una SPA basata su Angular, React o React + Redux.

    Una piccola notazione sul Template disponibili utilizzando il comando dotnet new:

    E’ ora possibile creare progetti in VB.NET Winking smile

    Configurazione Semplificata

    Alcune novità sono state aggiunte per migliorare il codice della classe Startup, ora è possibile passare nel costruttore della classe la classe di configurazione della nostra applicazione:

    public class Startup
    {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    
            public IConfiguration Configuration { get; }
    
       [...]
    }
      

    Come possiamo notare ora possiamo passare la configurazione tramite Dependency Injection Winking smile

    In precedenza il costruttore della versione 1.1 era:

    public class Startup { public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); if (env.IsDevelopment()) { // For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709 builder.AddUserSecrets<Startup>(); } builder.AddEnvironmentVariables(); Configuration = builder.Build(); } public IConfigurationRoot Configuration { get; }

    }

    Un’altra novità è l’oggetto WebHost con il suo metodo CreateDefaultBuilder che permette di ridurre sensibilmente le righe di codice necessarie per definire la configurazione “standard” del nostro Host:

    ASP.NET Core 2.0:

       public class Program
        {
            public static void Main(string[] args)
            {
                BuildWebHost(args).Run();
            }
    
            public static IWebHost BuildWebHost(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                    .UseStartup<Startup>()
                    .Build();
        }

    ASP.NET Core 1.1:

        public class Program
        {
            public static void Main(string[] args)
            {
                var host = new WebHostBuilder()
                    .UseKestrel()
                    .UseContentRoot(Directory.GetCurrentDirectory())
                    .UseIISIntegration()
                    .UseStartup<Startup>()
                    .UseApplicationInsights()
                    .Build();
    
                host.Run();
            }
        }

    Meta Pacchetto Microsoft.AspNetCore.All

    I nuovi progetti ASP.NET Core 2.0 avranno una sola reference al meta pacchetto Microsoft.AspNetCore.All, questo meta pacchetto è collegato a tutti i pacchetti necessari per un’applicazione ASP.NET Core che sono installati per default con il nuovo Framework.

    Questo è stato per risolvere i problemi di compatibilità e di numero di versione tra i vari assembly che vengono utilizzati all’interno della nostra applicazione ASP.NET Core.

    Di seguito la differenza tra la versione attuale e la precedente:

    ASP.NET Core 2.0:

      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0-preview2-final" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0-preview2-final" PrivateAssets="All" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0-preview2-final" PrivateAssets="All" />
      </ItemGroup>

    ASP.NET Core 1.1:

    <ItemGroup>
        <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
        <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
        <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.2" />
        <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="1.1.2" />
        <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
        <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
        <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.2" PrivateAssets="All" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.2" PrivateAssets="All" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" PrivateAssets="All" />
        <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.2" />
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" PrivateAssets="All" />
        <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
      </ItemGroup>

    Precompilazione Razor View

    Durante il deploy dell’applicazione tutte la Razor View vengono automaticamente precompilate per aumentare le prestazioni specialmente nella fase di startup / prima esecuzione.

    Integrazione Azure Directory B2C

    I nuovi progetti ASP NET Core permettono di configurare l’autenticazione degli utenti sia con ASP.NET Identity che con Il servizio Azure Directory B2C.

    Parleremo in maniera più approfondita del Servizio Azure Directory B2C in altro articolo, per ulteriori informazioni potete fare riferimento alla documentazione ufficiale: https://azure.microsoft.com/it-it/services/active-directory-b2c/

    Happy Coding Winking smile

       

    Autore:


    blog comments powered by Disqus

     

    Calendar

    <<  October 2017  >>
    MonTueWedThuFriSatSun
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    View posts in large calendar