Articoliinfo@ugidotnet.orgTue, 19 Mar 2024 03:42:01 +0000Agorà Feed Generatorhttps://www.ugidotnet.org/articoli/3228/Api-versioningMetodologie per il versionamento delle API
<p>In questo articolo illustriamo alcune metodologie per il versioning delle web API.</p>
Mon, 11 Sep 2023 09:33:52 +0000Mon, 11 Sep 2023 09:29:49 +0000Alessandro Magistronihttps://www.ugidotnet.org/articoli/3216/Record-Type-e-gestione-dell’immutabilità-dei-DTOTipi Record e gestione dell’immutabilità dei DTO
<p class="Normal">I record, introdotti con C# 9 ci permettono di creare strutture leggere, ideali per il trasporto dei dati.</p>
Thu, 22 Jun 2023 07:49:28 +0000Mon, 19 Jun 2023 12:00:56 +0000Michele Panipuccihttps://www.ugidotnet.org/articoli/3166/Deploy-automatico-di-applicazioni-su-Azure-con-GitHub-ActionsDeploy automatico di applicazioni su Azure con GitHub Actions
<p>Usiamo GitHub Actions per fare il deploy della nostra web application su Azure</p>
Tue, 09 May 2023 07:38:51 +0000Tue, 09 May 2023 07:38:07 +0000Alberto Morihttps://www.ugidotnet.org/articoli/3130/AWS-AppConfig-Feature-Flags-DotNet-e-Blazor-WebAssemblyGestire i Feature Flag in Blazor WebAssembly con AWS AppConfig
<p>I "Feature Flag" ci permettono di attivare e disattivare una features (ad esempio per ricevere feedback su una nuova funzionalità o per fornire servizi solo ad alcuni bacini di utenza). In questo articolo vediamo come utilizzarli all'interno di un piccolo sito di ricette sviluppato con Blazor.</p>
Tue, 31 Jan 2023 21:35:08 +0000Tue, 31 Jan 2023 21:38:24 +0000Alberto Meneghinihttps://www.ugidotnet.org/articoli/3100/Integration-testing-delle-API-ASP-NET-CoreIntegration testing delle API ASP.NET Core
<p>In questo articolo utilizziamo <strong>xUnit</strong> come framework di testing per un progetto ASP.NET Core in .NET 7, che espone delle semplici API HTTP per la gestione di una ToDo list.</p>
Thu, 19 Jan 2023 10:46:44 +0000Thu, 19 Jan 2023 10:45:17 +0000Alberto Morihttps://www.ugidotnet.org/articoli/3026/Utilizzare-Postman-per-testare-API-protette-da-Azure-AD-B2CUtilizzare Postman per testare API protette da Azure AD B2C
<p>Postman è l'applicazione che ci permette di testare ed esplorare API: vediamo come utilizzarlo con API protette da un tenant Azure AD B2C.</p>
Thu, 01 Sep 2022 11:05:59 +0000Mon, 29 Aug 2022 08:59:16 +0000Damiano Andresinihttps://www.ugidotnet.org/articoli/3002/accessibilita-web-un-esempio-con-blazorAccessibilità Web, un esempio con Blazor
<p>Una introduzione al mondo dell’accessibilità web, in abbinamento a <strong>Blazor</strong>.</p>
Thu, 26 May 2022 07:33:38 +0000Fri, 10 Jun 2022 10:17:45 +0000Alberto Meneghinihttps://www.ugidotnet.org/articoli/2943/Migrare-un-database-SQL-Server-on-prem-in-Azure-senza-downtimeMigrare un database SQL Server on-prem in Azure senza downtime
<p>Il <em>lift-and-shift </em>è la strategia che consente la migrazione su Cloud più rapida, meno laboriosa e (almeno inizialmente) meno costosa rispetto ad altri processi.</p>
<p>In questo articolo vedremo come è possibile migrare un database SQL Server senza generare interruzioni sui servizi già in opera.</p>
Thu, 14 Apr 2022 07:25:03 +0000Wed, 13 Apr 2022 18:25:56 +0000Nicola Biancolinihttps://www.ugidotnet.org/articoli/2940/Connessione-a-VPC-con-app-Net-su-AWS-App-RunnerConnessione a VPC con app .Net su AWS App Runner
<p>Questo articolo descrive come connettere un'applicazione web pubblicata su AWS App Runner ad un VPC esistente.</p>
Thu, 31 Mar 2022 07:37:52 +0000Wed, 30 Mar 2022 21:11:06 +0000Alberto Meneghinihttps://www.ugidotnet.org/articoli/2844/Implementare-un-DateTime-picker-per-Razor-senza-librerie-esterneImplementare un DateTime picker per Razor senza librerie esterne
<p>Implementare un DateTime picker in una applicazione web è una esigenza diffusa, non stupisce quindi che sia nata una varietà di librerie che, utilizzando CSS e JavaScript, assolvono a questo scopo. Fortunatamente, però, molti browser moderni permettono una soluzione differente che non richiede alcuna libreria esterna.</p>
Thu, 09 Dec 2021 08:47:42 +0000Thu, 09 Dec 2021 08:47:05 +0000Andrea Saltarellohttps://www.ugidotnet.org/articoli/2815/AWS-Serverless-per-Sviluppatori-DotNetAWS Serverless per sviluppatori .NET
<p>In questo articolo utilizziamo le Lambda Functions di AWS per leggere il contenuto di un file su un bucket S3 e popolare una tabella AmazonDB.</p>
Wed, 27 Oct 2021 07:43:36 +0000Wed, 27 Oct 2021 07:42:52 +0000Alberto Meneghinihttps://www.ugidotnet.org/articoli/2639/Testare-componenti-Blazor-utilizzando-bUnitTestare componenti Blazor utilizzando bUnit
<p><strong>Blazor</strong> è diventato, soprattutto nel mondo .NET, rapidamente molto popolare tra gli sviluppatori permettendo lo sviluppo di <em>Single Page Applications (SPA)</em> utilizzando <strong>C#</strong> come linguaggio principale.<br />
Una delle domande che possono sorgere è se esista un modo per creare una suite di test automatici per i nostri componenti Blazor. Una possibile risposta a questo quesito è insita nella libreria <strong>bUnit</strong>.</p>
Thu, 08 Jul 2021 08:14:03 +0000Thu, 08 Jul 2021 07:39:41 +0000Alberto Morihttps://www.ugidotnet.org/articoli/2634/Pubblicare-SPA-con-Azure-App-Service-Linux-e-NodeJSPubblicare una Single Page Application con Azure App Service per Linux e NodeJS
<p>Microsoft Azure offre la possibilità di creare applicazioni web utilizzando il servizio con modello PaaS chiamato <strong>Azure App Service</strong> e permette di ospitare applicazioni scritte per Windows o Linux.<br />
Nel caso in cui si scelga Linux è necessario configurare manualmente il web server; in questo articolo vedremo come fare.</p>
Mon, 28 Jun 2021 14:23:37 +0000Mon, 28 Jun 2021 14:23:21 +0000Luca Montanarihttps://www.ugidotnet.org/articoli/2607/Invocare-funzioni-managed-da-una-applicazione-nativa-Win32Invocare funzioni managed da una applicazione nativa Win32
<p>L'interoperabilità tra codice managed ed unmanaged è, solitamente, operata invocando codice nativo da quello .NET mediante i meccanismi che il CLR predispone allo scopo tra i quali, ad esempio, ricordiamo gli <em>assembly di interoperabilità</em> per le librerie COM e l'attributo <code class="CodeInText">DllImport</code> per le funzioni Win32.</p>
<p>Per lo scenario inverso, invece, non esistono meccanismi così immediati ma ciò non significa che non sia possibile. Si supponga, ad esempio, di voler invocare da una applicazione nativa (es: una applicazione MFC) alcune funzioni implementate in linguaggio C#.</p>
Thu, 27 May 2021 08:54:01 +0000Thu, 27 May 2021 19:22:52 +0000Andrea Saltarellohttps://www.ugidotnet.org/articoli/2363/Configurare-CORS-su-AWS-API-Gateway-con-moduli-TerraformConfigurare CORS su AWS API Gateway con moduli Terraform
<p>Terraform si sta affermando come lo strumento più utilizzato per l'automazione della gestione delle infrastrutture cloud. In questo articolo vedremo come utilizzarlo per definire una policy CORS su API Gateway di AWS.</p>
<div class="ms-editor-squiggler" style="color: initial; font: initial; font-feature-settings: initial; font-kerning: initial; font-optical-sizing: initial; font-variation-settings: initial; forced-color-adjust: initial; text-orientation: initial; text-rendering: initial; -webkit-font-smoothing: initial; -webkit-locale: initial; -webkit-text-orientation: initial; -webkit-writing-mode: initial; writing-mode: initial; zoom: initial; place-content: initial; place-items: initial; place-self: initial; alignment-baseline: initial; animation: initial; appearance: initial; aspect-ratio: initial; backdrop-filter: initial; backface-visibility: initial; background: initial; background-blend-mode: initial; baseline-shift: initial; block-size: initial; border-block: initial; border: initial; border-radius: initial; border-collapse: initial; border-end-end-radius: initial; border-end-start-radius: initial; border-inline: initial; border-start-end-radius: initial; border-start-start-radius: initial; inset: initial; box-shadow: initial; box-sizing: initial; break-after: initial; break-before: initial; break-inside: initial; buffered-rendering: initial; caption-side: initial; caret-color: initial; clear: initial; clip: initial; clip-path: initial; clip-rule: initial; color-interpolation: initial; color-interpolation-filters: initial; color-rendering: initial; color-scheme: initial; columns: initial; column-fill: initial; gap: initial; column-rule: initial; column-span: initial; contain: initial; contain-intrinsic-size: initial; content: initial; content-visibility: initial; counter-increment: initial; counter-reset: initial; counter-set: initial; cursor: initial; cx: initial; cy: initial; d: initial; display: block; dominant-baseline: initial; empty-cells: initial; fill: initial; fill-opacity: initial; fill-rule: initial; filter: initial; flex: initial; flex-flow: initial; float: initial; flood-color: initial; flood-opacity: initial; grid: initial; grid-area: initial; height: 0px; hyphens: initial; image-orientation: initial; image-rendering: initial; inline-size: initial; inset-block: initial; inset-inline: initial; isolation: initial; letter-spacing: initial; lighting-color: initial; line-break: initial; list-style: initial; margin-block: initial; margin: initial; margin-inline: initial; marker: initial; mask: initial; mask-type: initial; max-block-size: initial; max-height: initial; max-inline-size: initial; max-width: initial; min-block-size: initial; min-height: initial; min-inline-size: initial; min-width: initial; mix-blend-mode: initial; object-fit: initial; object-position: initial; offset: initial; opacity: initial; order: initial; origin-trial-test-property: initial; orphans: initial; outline: initial; outline-offset: initial; overflow-anchor: initial; overflow-wrap: initial; overflow: initial; overscroll-behavior-block: initial; overscroll-behavior-inline: initial; overscroll-behavior: initial; padding-block: initial; padding: initial; padding-inline: initial; page: initial; page-orientation: initial; paint-order: initial; perspective: initial; perspective-origin: initial; pointer-events: initial; position: initial; quotes: initial; r: initial; resize: initial; ruby-position: initial; rx: initial; ry: initial; scroll-behavior: initial; scroll-margin-block: initial; scroll-margin: initial; scroll-margin-inline: initial; scroll-padding-block: initial; scroll-padding: initial; scroll-padding-inline: initial; scroll-snap-align: initial; scroll-snap-stop: initial; scroll-snap-type: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; shape-rendering: initial; size: initial; speak: initial; stop-color: initial; stop-opacity: initial; stroke: initial; stroke-dasharray: initial; stroke-dashoffset: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-width: initial; tab-size: initial; table-layout: initial; text-align: initial; text-align-last: initial; text-anchor: initial; text-combine-upright: initial; text-decoration: initial; text-decoration-skip-ink: initial; text-indent: initial; text-overflow: initial; text-shadow: initial; text-size-adjust: initial; text-transform: initial; text-underline-offset: initial; text-underline-position: initial; touch-action: initial; transform: initial; transform-box: initial; transform-origin: initial; transform-style: initial; transition: initial; user-select: initial; vector-effect: initial; vertical-align: initial; visibility: initial; -webkit-app-region: initial; border-spacing: initial; -webkit-border-image: initial; -webkit-box-align: initial; -webkit-box-decoration-break: initial; -webkit-box-direction: initial; -webkit-box-flex: initial; -webkit-box-ordinal-group: initial; -webkit-box-orient: initial; -webkit-box-pack: initial; -webkit-box-reflect: initial; -webkit-highlight: initial; -webkit-hyphenate-character: initial; -webkit-line-break: initial; -webkit-line-clamp: initial; -webkit-mask-box-image: initial; -webkit-mask: initial; -webkit-mask-composite: initial; -webkit-perspective-origin-x: initial; -webkit-perspective-origin-y: initial; -webkit-print-color-adjust: initial; -webkit-rtl-ordering: initial; -webkit-ruby-position: initial; -webkit-tap-highlight-color: initial; -webkit-text-combine: initial; -webkit-text-decorations-in-effect: initial; -webkit-text-emphasis: initial; -webkit-text-emphasis-position: initial; -webkit-text-fill-color: initial; -webkit-text-security: initial; -webkit-text-stroke: initial; -webkit-transform-origin-x: initial; -webkit-transform-origin-y: initial; -webkit-transform-origin-z: initial; -webkit-user-drag: initial; -webkit-user-modify: initial; white-space: initial; widows: initial; width: initial; will-change: initial; word-break: initial; word-spacing: initial; x: initial; y: initial; z-index: initial;"> </div>
<div class="ms-editor-squiggler" style="color: initial; font: initial; font-feature-settings: initial; font-kerning: initial; font-optical-sizing: initial; font-variation-settings: initial; forced-color-adjust: initial; text-orientation: initial; text-rendering: initial; -webkit-font-smoothing: initial; -webkit-locale: initial; -webkit-text-orientation: initial; -webkit-writing-mode: initial; writing-mode: initial; zoom: initial; place-content: initial; place-items: initial; place-self: initial; alignment-baseline: initial; animation: initial; appearance: initial; aspect-ratio: initial; backdrop-filter: initial; backface-visibility: initial; background: initial; background-blend-mode: initial; baseline-shift: initial; block-size: initial; border-block: initial; border: initial; border-radius: initial; border-collapse: initial; border-end-end-radius: initial; border-end-start-radius: initial; border-inline: initial; border-start-end-radius: initial; border-start-start-radius: initial; inset: initial; box-shadow: initial; box-sizing: initial; break-after: initial; break-before: initial; break-inside: initial; buffered-rendering: initial; caption-side: initial; caret-color: initial; clear: initial; clip: initial; clip-path: initial; clip-rule: initial; color-interpolation: initial; color-interpolation-filters: initial; color-rendering: initial; color-scheme: initial; columns: initial; column-fill: initial; gap: initial; column-rule: initial; column-span: initial; contain: initial; contain-intrinsic-size: initial; content: initial; content-visibility: initial; counter-increment: initial; counter-reset: initial; counter-set: initial; cursor: initial; cx: initial; cy: initial; d: initial; display: block; dominant-baseline: initial; empty-cells: initial; fill: initial; fill-opacity: initial; fill-rule: initial; filter: initial; flex: initial; flex-flow: initial; float: initial; flood-color: initial; flood-opacity: initial; grid: initial; grid-area: initial; height: 0px; hyphens: initial; image-orientation: initial; image-rendering: initial; inline-size: initial; inset-block: initial; inset-inline: initial; isolation: initial; letter-spacing: initial; lighting-color: initial; line-break: initial; list-style: initial; margin-block: initial; margin: initial; margin-inline: initial; marker: initial; mask: initial; mask-type: initial; max-block-size: initial; max-height: initial; max-inline-size: initial; max-width: initial; min-block-size: initial; min-height: initial; min-inline-size: initial; min-width: initial; mix-blend-mode: initial; object-fit: initial; object-position: initial; offset: initial; opacity: initial; order: initial; origin-trial-test-property: initial; orphans: initial; outline: initial; outline-offset: initial; overflow-anchor: initial; overflow-wrap: initial; overflow: initial; overscroll-behavior-block: initial; overscroll-behavior-inline: initial; overscroll-behavior: initial; padding-block: initial; padding: initial; padding-inline: initial; page: initial; page-orientation: initial; paint-order: initial; perspective: initial; perspective-origin: initial; pointer-events: initial; position: initial; quotes: initial; r: initial; resize: initial; ruby-position: initial; rx: initial; ry: initial; scroll-behavior: initial; scroll-margin-block: initial; scroll-margin: initial; scroll-margin-inline: initial; scroll-padding-block: initial; scroll-padding: initial; scroll-padding-inline: initial; scroll-snap-align: initial; scroll-snap-stop: initial; scroll-snap-type: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; shape-rendering: initial; size: initial; speak: initial; stop-color: initial; stop-opacity: initial; stroke: initial; stroke-dasharray: initial; stroke-dashoffset: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-width: initial; tab-size: initial; table-layout: initial; text-align: initial; text-align-last: initial; text-anchor: initial; text-combine-upright: initial; text-decoration: initial; text-decoration-skip-ink: initial; text-indent: initial; text-overflow: initial; text-shadow: initial; text-size-adjust: initial; text-transform: initial; text-underline-offset: initial; text-underline-position: initial; touch-action: initial; transform: initial; transform-box: initial; transform-origin: initial; transform-style: initial; transition: initial; user-select: initial; vector-effect: initial; vertical-align: initial; visibility: initial; -webkit-app-region: initial; border-spacing: initial; -webkit-border-image: initial; -webkit-box-align: initial; -webkit-box-decoration-break: initial; -webkit-box-direction: initial; -webkit-box-flex: initial; -webkit-box-ordinal-group: initial; -webkit-box-orient: initial; -webkit-box-pack: initial; -webkit-box-reflect: initial; -webkit-highlight: initial; -webkit-hyphenate-character: initial; -webkit-line-break: initial; -webkit-line-clamp: initial; -webkit-mask-box-image: initial; -webkit-mask: initial; -webkit-mask-composite: initial; -webkit-perspective-origin-x: initial; -webkit-perspective-origin-y: initial; -webkit-print-color-adjust: initial; -webkit-rtl-ordering: initial; -webkit-ruby-position: initial; -webkit-tap-highlight-color: initial; -webkit-text-combine: initial; -webkit-text-decorations-in-effect: initial; -webkit-text-emphasis: initial; -webkit-text-emphasis-position: initial; -webkit-text-fill-color: initial; -webkit-text-security: initial; -webkit-text-stroke: initial; -webkit-transform-origin-x: initial; -webkit-transform-origin-y: initial; -webkit-transform-origin-z: initial; -webkit-user-drag: initial; -webkit-user-modify: initial; white-space: initial; widows: initial; width: initial; will-change: initial; word-break: initial; word-spacing: initial; x: initial; y: initial; z-index: initial;"> </div>
Fri, 12 Mar 2021 08:21:44 +0000Thu, 11 Mar 2021 23:48:30 +0000Alberto Meneghinihttps://www.ugidotnet.org/articoli/2090/Configurazioni-multi-environment-con-AngularConfigurazioni multi environment con Angular
<p>Angular è un framework particolarmente flessibile e completo. In questo articolo vedremo come configurarlo correttamente al fine di poter eseguire una soluzione in più di un ambiente.</p>
Thu, 10 Dec 2020 08:41:24 +0000Thu, 10 Dec 2020 08:35:41 +0000Mattia Fravezzihttps://www.ugidotnet.org/articoli/1933/Test-automatici-con-AngularTest automatici con Angular
<p>In qualsiasi ambito tecnologico di sviluppo software, una buona strategia di test automatici permette di scrivere codice migliore sia dal punto di vista del design che della qualità. In questo articolo vedremo quali tecniche adottare in uno scenario di utilizzo con Angular 7.</p>
Thu, 01 Oct 2020 08:20:29 +0000Thu, 01 Oct 2020 08:28:33 +0000Mattia Fravezzihttps://www.ugidotnet.org/articoli/1879/Angular-comunicare-con-il-server-mediante-serviziAngular: comunicare con il server mediante servizi
<p>Una Single Page Application (SPA) normalmente consuma servizi di backend per recuperare dati ed eseguire operazioni dispositive. In questo articolo vedremo come sia possibile consumare in maniera efficiente API server side all'interno di una applicazione Angular.</p>
Fri, 29 May 2020 09:05:18 +0000Thu, 01 Oct 2020 07:55:13 +0000Mattia Fravezzihttps://www.ugidotnet.org/articoli/1863/Applicazioni-Javascript-con-Microsoft-Graph-Api-e-AzureApplicazioni Javascript con Microsoft Graph Api e Azure
<p>Microsoft Graph rappresenta un set di API che possono essere utilizzate per l’integrazione dei prodotti Microsoft Office 365 all’interno di applicazioni Javascript, iOS, Android e varie altre piattaforme e linguaggi. Le potenzialità sono enormi: le nostre applicazioni potranno, ad esempio, effettuare upload su OneDrive, creare eventi sul calendario di Outlook, creare task su Planner, leggere, creare e scrivere documenti Excel / Word ed altro ancora.</p>
Wed, 15 Apr 2020 12:17:03 +0000Fri, 11 Sep 2020 16:50:43 +0000Andrea SaltarelloFabio Biondihttps://www.ugidotnet.org/articoli/1864/Introduzione-ad-Azure-Dev-SpaceIntroduzione ad Azure Dev Spaces
<p>Azure Dev Spaces è un servizio che punta a rendere molto più semplice lo sviluppo di soluzioni basate su container e su Kubernetes. Garantisce la possibilità di eseguire la soluzione completa su AKS, il cluster K8s di Azure, e aggiornare in modo indipendente le varie parti dell'applicazione, senza influire sul resto del cluster o su altri sviluppatori.</p>
Mon, 30 Mar 2020 07:56:51 +0000Fri, 22 Jan 2021 15:56:34 +0000Alessandro Melchiorihttps://www.ugidotnet.org/articoli/1862/Introduzione-alle-GitHub-ActionsIntroduzione alle GitHub Actions
<p>GitHub è una delle piattaforme più utilizzate dagli sviluppatori per ospitare il codice sorgente dei propri progetti, soprattutto quando si tratta di soluzioni Open Source. Negli ultimi anni ha inoltre aggiunto una serie di funzionalità che permettono di integrare strumenti di Project Management e CI/CD.<br />
Tra tutti questi strumenti, uno dei più interessanti è certamente GitHub Actions, rilasciato ufficialmente al GitHub Universe 2019.</p>
Wed, 18 Mar 2020 09:26:21 +0000Fri, 22 Jan 2021 15:55:44 +0000Alberto Morihttps://www.ugidotnet.org/articoli/1844/Introduzione-agli-Azure-Cognitive-Services-parte-2-analisi-del-testoAzure Cognitive Services: analisi del testo con TextAnalytics
<p>In questo articolo approfondiremo la conoscenza del servizio cognitivo <strong>TextAnalytics</strong>, introdotto nella prima parte di questo tutorial, e ne introdurremo le principali funzionalità messe a disposizione.</p>
Tue, 25 Feb 2020 09:06:37 +0000Fri, 06 Mar 2020 17:33:46 +0000Andrea Saltarellohttps://www.ugidotnet.org/articoli/1843/Introduzione-agli-Azure-Cognitive-Services-parte-1Introduzione agli Azure Cognitive Services
<p>I Cognitive Services sono una serie di API che rendono fruibili applicazioni della intelligenza artificiale senza la necessità di acquisire competenze specifiche quali data science, machine learning e tecnologie correlate.</p>
Fri, 07 Feb 2020 18:33:30 +0000Fri, 06 Mar 2020 19:43:18 +0000Andrea Saltarellohttps://www.ugidotnet.org/articoli/1830/Introduzione-a-VueJS--Parte-IIIntroduzione a VueJS - Parte II
<p><em>L'evoluzione che ha avuto il Web negli anni ha portato le SPA (Single Page Applications) ad essere una delle tipologie di applicazioni maggiormente richieste e sviluppate. Per poter facilitare gli sviluppatori nella creazione di questo tipo di applicazioni, sono nati negli anni diversi Framework client-side, tra questi VueJS è, al momento, uno dei più popolari e di più facile utilizzo.</em></p>
Tue, 28 May 2019 06:25:05 +0000Tue, 28 May 2019 06:24:36 +0000Alberto Morihttps://www.ugidotnet.org/articoli/1783/Introduzione-a-VueJSIntroduzione a VueJS - Parte I
<p><em>L'evoluzione che ha avuto il Web negli anni ha portato le SPA (Single Page Applications) ad essere una delle tipologie di applicazioni maggiormente richieste e sviluppate. Per poter facilitare gli sviluppatori nella creazione di questo tipo di applicazioni, sono nati negli anni diversi Framework client-side, tra questi VueJS è, al momento, uno dei più popolari e di più facile utilizzo.</em></p>
Fri, 01 Mar 2019 10:55:42 +0000Tue, 28 May 2019 06:16:17 +0000Alberto Morihttps://www.ugidotnet.org/articoli/1420/Introduzione-a-WebpackIntroduzione a Webpack
Negli ultimi anni si è verificata una notevole evoluzione nel mondo dello sviluppo front-end che ha portato alla nascita di strumenti che potessero facilitare le fasi di build e minification delle applicazioni: Tra tutti questi strumenti Webpack è diventato un tool fondamentale nella realizzazione di Single Page Application.
Thu, 08 Nov 2018 00:00:00 +0000Thu, 08 Nov 2018 11:35:28 +0000Alberto Morihttps://www.ugidotnet.org/articoli/1419/Realizzare-Alexa-Skills-1a-parte-Flash-BriefingRealizzare Alexa Skills, 1a parte: Flash Briefing
<p>Alexa è l'assistente virtuale di Amazon, fruibile sia tramite i device Amazon Echo sia tramite device di altri produttori, che sono disponibili anche in Italia ed in italiano da oggi 24 ottobre 2018. Una "skill" Alexa è, letteralmente, una nuova capacità aggiunta a quelle disponibili "out of the box" che un utente Alexa può abilitare: in questo articolo vedremo come realizzarne una.</p>
Wed, 24 Oct 2018 00:00:00 +0000Tue, 16 Jun 2020 12:27:50 +0000Enos Recanatihttps://www.ugidotnet.org/articoli/1416/Introduzione-ad-Azure-Functions-ProxiesIntroduzione ad Azure Functions Proxies
Tramite Functions Proxies è possibile definire uno (o più) endpoint che fungano da reverse proxy per altre API, siano esse altre function oppure qualsiasi altra API. In questo modo è possibile definire la superficie di esposizione delle API utilizzate, garantendo uniformità verso i client, anche se le API che verranno effettivamente invocate dal proxy sono profondamente differenti.
Mon, 27 Nov 2017 00:00:00 +0000Mon, 27 Nov 2017 15:02:37 +0000Alessandro Melchiorihttps://www.ugidotnet.org/articoli/1413/DocumentDB-l-emulatore-localeDocumentDB: l'emulatore locale
<p>In questo articolo vedremo come installare l'emulatore di Azure DocumentDB, come utilizzarlo nello sviluppo e test locale delle nostre applicazioni e quali differenze ci sono rispetto alla versione cloud.</p>
Wed, 11 Jan 2017 00:00:00 +0000Fri, 17 Sep 2021 13:16:18 +0000Alessandro Melchiorihttps://www.ugidotnet.org/articoli/1411/Introduzione-a-DockerIntroduzione a Docker
In questo articolo cercheremo di definire cosa è docker e le differenze con un approccio classico di virtualizzazione, cosa sono le immagini e i container e come docker ci può aiutare nella loro gestione.
Mon, 24 Oct 2016 09:55:00 +0000Sun, 23 Oct 2016 23:53:09 +0000Alessandro Melchiori