{"id":29381,"date":"2020-12-09T00:00:00","date_gmt":"2020-12-08T23:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=29381"},"modified":"2021-01-13T09:39:54","modified_gmt":"2021-01-13T08:39:54","slug":"benvenuto-net-5","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/","title":{"rendered":"Benvenuto .NET 5"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"29382\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/attachment\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"24d3e222-c3e2-44d3-9c13-23f4458bd0bd\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-29382\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Da circa tre mesi sono entrato nel team Blexin ed ho avuto la fortuna di partecipare ad un progetto in fase di startup. Il Cliente ci chiede la riscrittura di un applicativo WPF creato per lavorare offline con meccanismi di sincronizzazione dei dati con una versione Web e quindi accesso ai dati in tempo reale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La richiesta \u00e8 arrivata in concomitanza con il rilascio di .NET 5 e con il team abbiamo deciso di approfondire, in questo progetto, le novit\u00e0 introdotte sul campo ed ho pensato potessero essere utili a chi sta pensando ad una migrazione simile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vediamo quindi insieme le principali novit\u00e0 che Microsoft ha presentato il 10 Novembre alla .NET Conference e come si stia evolvendo il framework.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nelle intenzioni di Microsoft c\u2019\u00e8 sempre stata l\u2019idea di rendere possibile scrivere codice riutilizzabile (librerie) su pi\u00f9 piattaforme (Web, Mobile, Desktop, IoT, Cloud e chi pi\u00f9 ne ha pi\u00f9 ne metta) e, nonostante .NET 5 sia un passo decisivo in quella direzione, la roadmap attuale ci dice che sar\u00e0 .NET 6 a completare il processo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La storia degli ultimi 20 anni \u00e8 disseminata da tentativi, non sempre riusciti (leggi: Silverlight), di convergenza tra ambienti eterogenei. Facciamo un piccolo ripasso insieme di questi tentativi, perch\u00e9 dalla storia e dagli errori si deve sempre imparare.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" data-attachment-id=\"29386\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/attachment\/image01-23\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-23.png?fit=1837%2C979&amp;ssl=1\" data-orig-size=\"1837,979\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image01-23\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-23.png?fit=1024%2C546&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-23.png?resize=1024%2C546&#038;ssl=1\" alt=\"\" class=\"wp-image-29386\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-23-980x522.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-23-480x256.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nel dicembre del 2006, grande fu la sorpresa per tutti gli sviluppatori Windows Form all\u2019annuncio della versione beta di Silverlight: un plugin da installare sul browser che permetteva di far \u201cgirare\u201d codice C# all\u2019interno del browser stesso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Varie versioni sono state rilasciate nel tempo, aumentando le funzionalit\u00e0 e la percentuale di codice che, potenzialmente, si poteva condividere. Ho sperimentato un paio di progetti con la versione 3.0 nel 2010, e devo dire che le premesse per un buon risultato c\u2019erano tutte, con tanto di editor avanzato per la grafica e pattern MVVM nativo. Purtroppo, la dipendenza da un plugin esterno non fu accolto dal mercato positivamente che non ne colse le potenzialit\u00e0. Oggi Silverlight \u00e8 arrivato alla versione 5 e il supporto terminer\u00e0 ad ottobre 2021.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poi venne Xamarin, un\u2019applicazione del framework Mono, il porting di .NET Framework su piattaforma Linux, Android, Mac OS e IOS. Ricordo la mia gioia quando, durante la conferenza Build del 2016, ci fu l\u2019annuncio dell\u2019acquisizione di Xamarin da parte di Microsoft e la disponibilit\u00e0, a partire da Visual Studio 2017, di tutto il pacchetto Xamarin per lo sviluppo cross platform per i sistemi operativi mobile IOS, Android e Universal Windows Platform. Considerate che all&#8217;epoca Microsoft si considerava ancora un competitor per sistemi operativi Mobile ed aveva appena rilasciato Windows 10 Mobile. Il meccanismo che introdusse Xamarin per condividere il codice tra i vari ambiente fu duplice: Shared Project e Portable Class Library. La differenza tre le due implementazioni consisteva nella conoscenza dell\u2019ambiente di deploy e delle relative primitive: nello Shared Project era possibile invocare metodo esclusivi della piattaforma di riferimento, mentre nella le Portable Class Library esisteva un subset di primitive comuni a tutte le piattaforme.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"933\" height=\"491\" data-attachment-id=\"29388\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/attachment\/image02-22\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-22.png?fit=933%2C491&amp;ssl=1\" data-orig-size=\"933,491\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image02-22\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-22.png?fit=933%2C491&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-22.png?resize=933%2C491&#038;ssl=1\" alt=\"\" class=\"wp-image-29388\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-22.png 933w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-22-480x253.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 933px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le Portable Class Library sono state il seme che ha dato vita al progetto .Net Standard: un contratto di funzionalit\u00e0 comuni a cui le varie implementazioni del framework (.net Framework 4.x, .Net Core, Mono) si sottoscrivono. In fase di compilazione, viene referenziata l&#8217;implementazione opportuna per l&#8217;ambiente per cui si sta compilando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un grande lavoro \u00e8 stato dedicato ai runtime coreFx e Mono, introducendo il supporto per Windows ARM64 e non solo. Consapevole dell\u2019importanza che ricopre la containerizzazione, un impegno significativo in questa direzione da parte di Microsoft ha portato alla riduzione delle dimensioni delle immagini docker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con l\u2019arrivo di .NET 5 le librerie hanno adesso un\u2019implementazione di tutte le funzionalit\u00e0 su ogni runtime, mentre il progetto di unificazione della UI App di avere un unico progetto che in fase di compilazione venga \u201ctipizzato\u201d per l\u2019ambiente di deploy, cos\u00ec come avviene per le librerie, \u00e8 rimandato al prossimo anno. Per chi volesse cominciare a dare uno sguardo, qui trovate il link al repository del progetto&nbsp;<a href=\"https:\/\/github.com\/dotnet\/maui\/wiki\/Roadmap\" target=\"_blank\" rel=\"noreferrer noopener\">MAUI<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ma vediamo come tutte queste novit\u00e0 ci aiutano nel quotidiano e nel refactoring che stiamo affrontando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cominciamo con la memorizzazione dei dati: Entity Framework sia nella versione full framework che Core \u00e8 supportato in .NET 5. Questo significa che anche librerie un po\u2019 datate, di cui non si \u00e8 pensato di fare il refactoring, scritte utilizzando Entity Framework 6.x, sono riutilizzabili. Ma EF Core 5, con la riscrittura totale di tutto il motore, ha un impatto significativo sulle performance, aspetto che non pu\u00f2 essere trascurato nella scelta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tra le novit\u00e0 introdotte le pi\u00f9 rilevanti sono sicuramente il mapping many-to-many delle tabelle (finalmente!) ed il supporto al logging configurabile con il metodo<strong>&nbsp;LogTo&nbsp;<\/strong>presente nel classe&nbsp;<strong>DbContextOptionsBuilder.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il framework .NET 5 supporta tutte le novit\u00e0 introdotte dai linguaggi C# 9 e F# 5. Per i dettagli, se ve lo foste perso, vi consiglio l\u2019<a href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Uno-sguardo-al-futuro-C-9-82\" target=\"_blank\" rel=\"noreferrer noopener\">articolo<\/a>&nbsp;di Francesco.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per il mondo servizi, le novit\u00e0 pi\u00f9 consistenti introdotte in ASP.NET Core 5 riguardano il supporto a HTTP\/2 e gRPC, che vanno a colmare il vuoto lasciato dall\u2019assenza di WCF, che ci lascia definitivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per quando riguarda il mondo front-end Web server side, il supporto ai tipi record in Razor e il supporto nativo a Swagger sono sicuramente gli aspetti pi\u00f9 interessanti. L\u2019utilizzo dei record nel model binding ha sicuramente un impatto positivo sulla memoria e quindi anche sulle performance, mentre chi come me trova in Swagger uno strumento indispensabile si ritrova questa libreria nativamente nei propri progetti.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"706\" data-attachment-id=\"29391\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/attachment\/image03-20\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-20.png?fit=1562%2C1077&amp;ssl=1\" data-orig-size=\"1562,1077\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image03-20\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-20.png?fit=1024%2C706&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-20.png?resize=1024%2C706&#038;ssl=1\" alt=\"\" class=\"wp-image-29391\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-20-980x676.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-20-480x331.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Assoluto protagonista di questo rilascio \u00e8 sicuramente Blazor, che raggiunge la sua maturit\u00e0 con le novit\u00e0 introdotte da .NET 5 (qui trovate una&nbsp;<a href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Creare-una-Single-Page-Application-in-C-con-Blazor-57\" target=\"_blank\" rel=\"noreferrer noopener\">guida introduttiva<\/a>&nbsp;del nostro CEO\/CTO Michele Aponte), con incremento delle performance, riduzione del payload del primo accesso e una serie di funzionalit\u00e0 quali:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Componenti Nativi InputFile, InputRadio e InputRadioGroup;<\/li><li>CSS Isolation, che permette di integrare componenti ti terze parti utilizzando semplicemente nuget senza dover aggiungere ulteriori riferimenti all\u2019interno del progetto;<\/li><li>JS Isolation, per isolare moduli Javascript;<\/li><li>Miglioramento dell\u2019esperienza di debug, sia in visual studio che in visual studio code<\/li><li>Aggiornamento automatico del browser dopo le modifiche, questa funzione non \u00e8 supportata se abilitato il debug;<\/li><li>Componente Virtualize, che si occupa di renderizzare gli elementi di una lista di oggetti solo se sono visibili all\u2019interno dell\u2019area visibile della pagina.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Alcune significative novit\u00e0 sono state introdotte anche nella Command Language Interface (CLI) di .NET Core. L\u2019opzione&nbsp;<strong>watch<\/strong>&nbsp;\u00e8 stata estesa anche per i test, fornendo un\u2019esperienza \u201cMatrix Style\u201d dei live Test. Ad ogni modifica del codice sul progetto di test o sui progetti da cui dipende verr\u00e0 quindi eseguita la build e tutti i test.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un obiettivo del progetto .NET Core \u00e8 avere la possibilit\u00e0 di non installare software aggiuntivo sui server di destinazione, per questo motivo \u00e8 stato introdotta la funzione di pubblicazione in unico file, dove vengono inglobate tutte le dipendenze della BCL necessarie al progetto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vediamo insieme le possibilit\u00e0 che questa opzione ci mette a disposizione.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndotnet publish -r win-x64 \/p:PublishSingleFile=true \/p:IncludeNativeLibrariesForSelfExtract=true \/p:PublishTrimmed=true\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\"><li><strong>PublishSingleFile&nbsp;<\/strong>produce un eseguibile con all\u2019interno tutte le risorse del progetto ( immagini, resource, etc), in aggiunta al file .exe (in questo caso stiamo compilando per windows) ci sono anche le DLL della BCL necessari all\u2019eseguibile. Questo vuol dire che possiamo copiare la cartella di output sulla macchina di destinazione e possiamo lanciarlo senza preoccuparci di dover installare il runtime.<\/li><li><strong>IncludeNativeLibrariesForSelfExtract&nbsp;<\/strong>le DLL della BCL necessarie all\u2019eseguibile vengono inglobate all\u2019interno del file .exe stesso.<\/li><li><strong>PublishTrimmed&nbsp;<\/strong>\u00e8 una cura dimagrante delle dll della BCL: in fase di build il compilatore prende solo i metodi richiamati dal nostro codice; ovviamente, se il nostro progetto fa uso di&nbsp;<a href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Migliora-il-tuo-codice-con-la-Reflection-52\" target=\"_blank\" rel=\"noreferrer noopener\">reflection<\/a>, non \u00e8 auspicabile utilizzare questo parametro in quanto il compilatore non riesce a identificare i metodi chiamati dinamicamente.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa non c\u2019\u00e8 e non ci sar\u00e0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In .NET 5 cos\u00ec come in .NET Core 3.1 non sar\u00e0 presente ASP.NET Web Form, Windows Comunication Foundation (WCF) e Windows Workflow Foundation (WF). In alcuni casi abbiamo un\u2019alternativa, come Blazor e gRPC, mentre esistono dei progetti open-source, non supportati ufficialmente da Microsoft, sia di WF (<a href=\"https:\/\/github.com\/UiPath\/corewf\" target=\"_blank\" rel=\"noreferrer noopener\">CoreWF<\/a>) che di WCF (<a href=\"https:\/\/github.com\/CoreWCF\/CoreWCF\" target=\"_blank\" rel=\"noreferrer noopener\">CoreWCF<\/a>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusioni<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le novit\u00e0 che introduce .NET 5 con tutti i framework collegati (ASP.NET, Entity Framework, Blazor) e C# 9, possono rendere il lavoro dello sviluppatore sicuramente pi\u00f9 agevole e veloce, con possibilit\u00e0 nuove da esplorare. Il lavoro sulle performance colloca l\u2019ecosistema tra i pi\u00f9 performanti sul mercato e, in un mondo che passa da poche grosse macchine a tante piccole unit\u00e0 che collaborano, questo aspetto ha sicuramente un ruolo fondamentale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Spero di avervi almeno incuriosito a dare una possibilit\u00e0 a questa nuova release: se state pensando a una migrazione dei vostri progetti direi proprio che questo \u00e8 un buon momento!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al prossimo articolo. Buona Strada!<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Le novit\u00e0 di .NET 5 alla prova su strada<\/p>\n","protected":false},"author":196716252,"featured_media":29382,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637420,688637414,688637459,688637382],"class_list":["post-29381","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-net","tag-asp-net-core","tag-blazor","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Benvenuto .NET 5 - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Benvenuto .NET 5 - Blexin\" \/>\n<meta property=\"og:description\" content=\"Le novit\u00e0 di .NET 5 alla prova su strada\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-08T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-13T08:39:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Antonio Venditti\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Venditti\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/\"},\"author\":{\"name\":\"Antonio Venditti\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/22c32a7a08e0ea5a2ff91b284e311b8e\"},\"headline\":\"Benvenuto .NET 5\",\"datePublished\":\"2020-12-08T23:00:00+00:00\",\"dateModified\":\"2021-01-13T08:39:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/\"},\"wordCount\":1438,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1\",\"keywords\":[\".Net\",\"Asp.net core\",\"Blazor\",\"C#\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/\",\"name\":\"Benvenuto .NET 5 - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2020-12-08T23:00:00+00:00\",\"dateModified\":\"2021-01-13T08:39:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/22c32a7a08e0ea5a2ff91b284e311b8e\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/benvenuto-net-5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Benvenuto .NET 5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/22c32a7a08e0ea5a2ff91b284e311b8e\",\"name\":\"Antonio Venditti\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3460007fe9323a859b603fbf3fe3b196d028ff22e53c85567b5a2b5cc2b022f5?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3460007fe9323a859b603fbf3fe3b196d028ff22e53c85567b5a2b5cc2b022f5?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3460007fe9323a859b603fbf3fe3b196d028ff22e53c85567b5a2b5cc2b022f5?s=96&d=identicon&r=g\",\"caption\":\"Antonio Venditti\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/antonio-vendittiblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Benvenuto .NET 5 - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/","og_locale":"it_IT","og_type":"article","og_title":"Benvenuto .NET 5 - Blexin","og_description":"Le novit\u00e0 di .NET 5 alla prova su strada","og_url":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/","og_site_name":"Blexin","article_published_time":"2020-12-08T23:00:00+00:00","article_modified_time":"2021-01-13T08:39:54+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Antonio Venditti","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Antonio Venditti","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/"},"author":{"name":"Antonio Venditti","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/22c32a7a08e0ea5a2ff91b284e311b8e"},"headline":"Benvenuto .NET 5","datePublished":"2020-12-08T23:00:00+00:00","dateModified":"2021-01-13T08:39:54+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/"},"wordCount":1438,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1","keywords":[".Net","Asp.net core","Blazor","C#"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/","url":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/","name":"Benvenuto .NET 5 - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1","datePublished":"2020-12-08T23:00:00+00:00","dateModified":"2021-01-13T08:39:54+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/22c32a7a08e0ea5a2ff91b284e311b8e"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/benvenuto-net-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Benvenuto .NET 5"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/22c32a7a08e0ea5a2ff91b284e311b8e","name":"Antonio Venditti","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/3460007fe9323a859b603fbf3fe3b196d028ff22e53c85567b5a2b5cc2b022f5?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3460007fe9323a859b603fbf3fe3b196d028ff22e53c85567b5a2b5cc2b022f5?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3460007fe9323a859b603fbf3fe3b196d028ff22e53c85567b5a2b5cc2b022f5?s=96&d=identicon&r=g","caption":"Antonio Venditti"},"url":"https:\/\/blexin.com\/it\/author\/antonio-vendittiblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/24d3e222-c3e2-44d3-9c13-23f4458bd0bd.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7DT","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716252"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=29381"}],"version-history":[{"count":4,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29381\/revisions"}],"predecessor-version":[{"id":29394,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29381\/revisions\/29394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/29382"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=29381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=29381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=29381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}