Build 2014 7/13/2019 ASP.NET Core Web API all’opera Problemi veri nello sviluppo di un backend vero Marco Minerva Microsoft MVP Windows Development https://about.me/marcominerva.

Slides:



Advertisements
Presentazioni simili
Windows Server 2003 Active Directory Diagnostica, Troubleshooting e Ripristino PierGiorgio Malusardi IT Pro – Evangelist Microsoft.
Advertisements

ISA Server 2004 Enterprise Edition Preview. ISA Server 2004.
Business Value Launch /27/2017 2:27 AM
Visual Studio Tools For Office 2005 Fabio Santini. NET Senior Developer Evangelist Microsoft Italy.
Consumare Web Service Andrea Saltarello
Attivazione Piergiorgio Malusardi IT Pro Evangelist
Sharepoint Gabriele Castellani
Branch office update – SP2. Agenda Messa in esercizio degli uffici remoti Compressione HTTP Differentiated Services Cache di BITS.
Struttura dellinterfaccia SBN2 Mauro Narbone Udine 20 Aprile 2006.
Item Tracking in NAV 5.0 SOLUTIONS. Item Tracking Perchè cambiare Problemi delle release precedenti –Difficoltà di utilizzo –Non perfetta integrazione.
Dynamic Data Center Toolkit for Hoster
Novità nelle tecnologie per il Web
Ordine di vendita con prezzo fisso e fatturazione in base a tempi e materiali SAP Best Practices.
Trasferimento stock senza consegna
Microsoft Dynamics CRM 4.0
Riparazione in deposito
ITA through CASA Microsoft Italy Education – Partners in Learning.
Pianificazione Ordine Interno Ricerca e sviluppo
Conferenza Stampa Microsoft SharePoint Conference e 3 Ottobre, Milano.
Microsoft Windows Server licensing in ambienti virtualizzati
Pianificazione per centri di costo della produzione
Overview di Unified Communication ed Exchange Server 2007 Andrea Garattini Ivan Riservato.
Network Access Protection (NAP): la soluzione di policy enforcement in Windows Server 2008 R2 PierGiorgio Malusardi IT Pro Evangelist Microsoft Italia.
Giovedì 17 Aprile 2008 Heroes {Community} Launch Giovedì 17 Aprile 2008.
Ordine Interno per pianificazione dei costi di marketing e di altri costi generali SAP Best Practices.
Approvvigionamento esterno di servizi
Inventario fisico / Conteggio e rettifiche inventario
Gestione stock: stock bloccato e di rottamazione
Acquisizione cespiti tramite capitalizzazione diretta
Servizio con fatturazione a prezzo fisso SAP Best Practices.
Fasi fondamentali del processo
Contabilità costi generali – Effettiva
Elaborazione dell'ordine cliente con fatturazione collettiva
Connettiti con Rispetto!.
Chiusura del periodo per progetti
Pietro Brambati Developer Evangelist, Microsoft Blogs.msdn.com/pietrobr Internet Explorer 8 Per sviluppatori AJAX.
Una piattaforma per soluzioni service oriented: User Experience Dino Esposito Software Architect Managed Design
Calcolo dei costi di riferimento e simulazione
Pianificazione prezzi articoli acquistati SAP Best Practices.
Elaborazione vendite in conto terzi (con avviso di consegna)
Microsoft Confidential Gabriele Castellani Developer & Platform Evangelism Microsoft.
Offerta cliente SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Descrivere il.
Elaborazione vendite in conto terzi (senza avviso di consegna)
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Forefront contro lo SPAM Emanuele Bianchi Security Technology Specialist.
Ricerca degli errori in IIS7 Piergiorgio Malusardi IT Pro Evangelist
Gestione partite SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Descrizione dettagliata.
Chiusura del periodo per ordini di servizio
Pianificazione ricavi SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Pianificare.
Consulenza spot con fatturazione a prezzo fisso SAP Best Practices.
Gestione trasferte SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Fornire una.
Gestione dei numeri di serie SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Descrizione.
Acquisizione tempi SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Cross-Application.
Reporting del Segmento SAP Best Practices. ©2013 SAP AG. All rights reserved.2 Finalità, vantaggi e passi fondamentali del processo Finalità  Lo scopo.
Gestione intersocietaria dell'ordine
Vendita di servizi pianificati SAP Best Practices.
Acquisizione cespiti per cespiti costruiti
Panoramica generale di "Questo è NAV" Benvenuti Controllo Margine Crescita Introduzione Customer Evidence Dimostrazione Introduzione Customer Evidence.
.it Comedata ShaTag – L’evoluzione delle mailbox condivise.
Bing SMB Advertisers – Search Ads
Agenda Il problema della protezione dei dati
“Costi di salvataggio e parametri di valutazione” Guglielmo Camera
Maria Beatrice Hospital,
7/21/2018 6:31 PM Un possibile trattamento per l’eiaculazione precoce: la terapia di combinazione Stefano Masciovecchio, Pietro Saldutto, Elona Toska,
Il Backup di macchine virtuali Hyper-V
Dael Maselli Tutorial INFN-AAI
Windows Admin Center La rivoluzione della gestione di Windows Server
12/8/ :31 PM DIO È SUSSURRO E BREZZA,
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Azure Cosmos DB The new frontier of Big Data and NoSQL
Transcript della presentazione:

Build 2014 7/13/2019 ASP.NET Core Web API all’opera Problemi veri nello sviluppo di un backend vero Marco Minerva Microsoft MVP Windows Development https://about.me/marcominerva © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Il progetto Applicazione per sfogliare una lista di ristoranti Possibilità di inviare una valutazione con commento Visualizzazione di tutte le valutazioni di un ristorante

Le sfide da affrontare Autorizzazione Accesso ai dati Versionamento Integrità del servizio e gestione degli errori Cross-Origin Requests (CORS) …

Autorizzazione Prevenire l’accesso non autorizzato alle API ASP.NET Core fornisce un middleware per autenticare le richieste E’ necessario implementare la logica di autenticazione ASP.NET Core Identity Attributo Authorize Si applica globalmente, per Controller o per azione Verifica che la richiesta possa essere effettuata

Autorizzazione con JWT (JSON Web Token) https://tools.ietf.org/html/rfc7519 Formato di scambio di claim tra due parti header.payload.signature Firmato con una chiave conosciuta solo dal server Se si modifica il token, la chiave non sarà più valida È possibile criptarlo Authorization: Bearer <token> Bearer Tokens ×  Client Protected Resource

Demo Autorizzazione con JWT

Accesso ai dati Entity Framework Core Approccio Code-First Database Project Il servizio invia e riceve i dati che saranno salvati sul database E’ sbagliato esporre direttamente gli oggetti del modello Proprietà che non si vogliono inviare, necessità di refactoring dei dati, controlli sull’input, ecc. DTO per gestire lo scambio dei dati con le applicazioni

Demo Accesso ai dati

Versionamento I servizi si evolvono Cambiano le specifiche Nuovi scenari da gestire Dobbiamo mantenere la compatibilità con le vecchie versioni Versionamento delle API Per garantire il funzionamento delle vecchie e delle nuove applicazioni

Versionare le API URL Query string Custom header api/v1/restaurants /api/restaurants/?version=1 /api/restaurants?version=2 Custom header api-version: 1 api-version: 2

Demo Versionamento delle API

Integrità del servizio Sapere se il servizio è correttamente funzionante Ad esempio, il database potrebbe non essere accessibile Necessità di segnalarlo nell’applicazione ASP.NET Core 2.2 fornisce un supporto nativo Health Check Endpoint che restituisce lo stato Esegue i controlli che abbiamo specificato

Gestione degli errori Tutto può fallire #ottimismo Il servizio deve comunicare gli errori a chi lo utilizza ASP.NET Core fornisce la Developer Exception Page

Gestione degli errori con Web API La Developer Exception Page non è utile nel caso di API Non gestibile programmaticamente ASP.NET Core 2.1 include la classe Problem Details https://tools.ietf.org/html/rfc7807 Definisce come restituire errori in modalità «machine-readable»

Demo Integrità del servizio e gestione degli errori

Cross-Origin Resource Sharing (CORS) Il browser impedisce ad una pagina web di effettuare richieste verso un dominio diverso da quello della pagina stessa Cross-Origin Resource Sharing permette di rilassare questo vincolo Per dominio Per header Per metodo HTTP ASP.NET Core consente di abilitare il CORS globalmente, per Controller o per singola azione

Demo CORS

Risorse https://en.wikipedia.org/wiki/JSON_Web_Token https://docs.microsoft.com/aspnet/core/security/authentication/identity https://docs.microsoft.com/ef/core https://github.com/Microsoft/aspnet-api-versioning https://docs.microsoft.com/aspnet/core/host-and-deploy/health-checks https://codeopinion.com/http-api-problem-details-in-asp-net-core https://docs.microsoft.com/aspnet/core/security/cors https://github.com/marcominerva/AwesomeBackend

Grazie! Domande? Marco Minerva - @marcominerva Microsoft MVP – Windows Development http://about.me/marcominerva