Introduzione a web e servizi con .net e azure

31
DotNetAbruz zo .NET Day #netday15 05 Febbraio 2015 Marco Minerva [email protected] Blog: http://marcominerva.wordpr ess.com Twitter: @marcominerva Introduzione a Web e Servizi con .NET e Azure

Transcript of Introduzione a web e servizi con .net e azure

DotNetAbruzzo

.NET Day

#netday15

05 Febbraio 2015

Marco [email protected]: http://marcominerva.wordpress.com Twitter: @marcominerva

Introduzione a Web e Servizi con .NET e Azure

.NET Day #netday15

• Consulente freelance• .NET addicted• Windows Store, Windows Phone, Azure• Co-fondatore della Community DotNetToscana• Microsoft MVP .NET• Speaker ad eventi Community e nazionali

Chi sono

.NET Day #netday15

• L’ecosistema Web di Microsoft• Siti Web con .NET• Servizi Web con .NET• Introduzione ad Azure

Agenda

.NET Day #netday15

One ASP.NET

ASP.NET

WebForms

Sites

WebPages

SinglePageApps

MVCWebAPI

SignalR

Services

.NET Day #netday15

• Web Forms• Programmazione visuale con Drag & Drop• Controlli ed eventi (stessa filosofia della programmazione Windows)

• Web Pages• Per avvicinarsi alla programmazione Web con ASP.NET• Sviluppo con WebMatrix

• Single Pages applications• Applicazione Web “racchiusa in una sola pagina” (non c’è navigazione)• Interattività e dinamicità lato client (HTML 5, CSS, Javascript)• Comunicazione con il server tramite servizi (Web API)

• MVC• Pattern Model-View-Controller• “Alternativa” a Web Forms• Netta separazione tra UI e logica applicativa

Siti Web

.NET Day #netday15

One ASP.NET con Visual Studio 2013

.NET Day #netday15

ASP.NET MVC

Model

View

Controller

1

5

2

4

3

Browser

The request hits the controller

The Controller asks the Model for data

The Model gives the data back to the

Controller

The controller formats the data and passes them to the View

The view renders the HTML that needs to be

sent to the client

.NET Day #netday15

• Model: gestisce i dati del dominio dell’applicazione• Ad esempio, un oggetto Prodotto che recupera le informazioni da un database, opera su di

esse e quindi le persiste in una tabella Products

• View: gestisce la visualizzazione delle informazioni• Mostra nella UI le informazioni che provengono da un modello• Ad esempio, una vista (pagina) che mostra caselle di testo, drop down e checkbox

valorizzate in base allo stato di un oggetto Prodotto che deriva dal modello

• Controller: gestisce le interazioni con l’utente, manipola il modello e decide quale View mostrare• Ad esempio, elabora i parametri che sono stati inviati da una View e il passa al modello che li

utilizza per effettuare una query su un database

Model, View, Controller

.NET Day #netday15

• Un View Engine per ASP.NET MVC• Consente di integrare markup HTML e codice, così che possiamo descrivere la logica

secondo cui una pagina web dinamica viene generata

• Controllo sul codice HTML• Quello che scriviamo è quello che viene generato

• Non esiste un designer grafico

Razor

.NET Day #netday15

• OR/M (Object-Relational Mapper) per .NET• Lavorare con dati relazionali usando normali

classi .NET• Senza dover scrivere esplicitamente il codice per l’accesso al database

Entity Framework

.NET Day #netday15

• ASP.NET Identity• Autenticazione locale• Two Factor Authentication

• E-Mail• SMS

• Supporto ai Social Network• Facebook• Microsoft Account• Twitter• Google

Autenticazione

.NET Day #netday15

• Un framework per la realizzazione di interfacce web responsive• Una serie di componenti riusabili e personalizzabili, adattabili in termini stilistici ed

estetici alle richieste del progetto e alla creatività di chi concepisce il sito• E’ ormai uno standard

• Approccio mobile first• Una pagina basata su Bootstrap si adatta ad una gamma ampia di device, dagli

smartphone fino ai desktop ad altissima risoluzione

Bootstrap

.NET Day #netday15

Panoramica su ASP.NET MVC

.NET Day #netday15

• Web API• Framework per creare servizi HTTP che possono essere utilizzati da browser,

applicazioni desktop, app per smartphone, tablet, device IoT

• SignalR• Astrazione di una connessione real-time e persistente tra client e server basata sul

protocollo HTTP

Servizi

.NET Day #netday15

• Applicazioni RESTful• Risorse REST accessibili tramite chiamate HTTP

in GET, POST, PUT, ecc.• Stessa filosofia di MVC

• Ma senza View • Risposte JSON o XML

Web API

.NET Day #netday15

• Un'astrazione di una connessione real-time e persistente su protocollo HTTP

• Permette comunicazioni bi-direzionali tra server e client

• Il server può effettuare push verso i client• Niente più polling

SignalR

.NET Day #netday15

Architettura di SignalR

.NET Day #netday15

• Server: Hub SignalR• ASP.NET MVC• Web API• All’interno di applicazioni console e servizi (non Web)

• Client: supporto per la maggior parte delle piattaforme• Applicazioni Web con Javascript• .NET Desktop• Windows Phone/Windows Phone/Universal app• Xamarin• Android & iOS

SignalR: Server e Client

.NET Day #netday15

Chat con SignalR

Microsoft AzureIntroduzione ragionata per sviluppatori .NET

.NET Day #netday15

It’s Microsoft’s cloud platform: a growing collection of integrated services—compute, storage, data, networking, and app—that help you move faster, do more, and save money.

Che cosa è Microsoft Azure?

Huge infrastructure scale is the enabler19 Regions ONLINE…huge datacenter capacity around the world…and

we’re growing

Central USIowa

West USCalifornia

North EuropeIreland

East USVirginia

East US 2Virginia

US GovVirginia

North Central USIllinois

US GovIowa

South Central USTexas

Brazil SouthSao Paulo

West EuropeNetherlands

China North *Beijing

China South *Shanghai

Japan EastSaitama

Japan WestOsakaIndia West

TBD

India EastTBD

East AsiaHong Kong

SE AsiaSingapore

Australia WestMelbourne

Australia EastSydney

100+ datacenters Top 3 networks in the world 2x AWS, 6x Google DC Regions G Series – Largest VM in World, 32 cores, 448GB Ram, SSD… Operational Announced* Operated by 21Vianet

23

Microsoft Azure Web Sites

Code smart Go liveStart simpleCrea nuovi siti Web in pochi secondi

Gestisci e scala i tuoi siti con facilità

Load balancing automatico

Utilizza istanze riservate per aumentare le performance e la scalabilità

Supporto per attività schedulate (Web jobs)

Utilizza ASP.NET, ASP, PHP, Java o Node.js

Database SQL Azure o MySQL

Supporto ad applicazioni e framework open source

Sviluppa con Visual Studio e WebMatrix

Supporta tool di sviluppo Web su ogni piattaforma (Windows, OSX e Linux)

Integrazione con source control come Team Foundation Server e Git

Supporto per l’analisi dell’utilizzo e delle performance

Accesso veloce a log, richieste e diagnostica

• Database SQL Server as a service • Completamente gestito• Scalabile• Cross Datacenter failover e backup per

supportare scenari di disaster recovery

SQL Azure

• Storage as a service • Completamente gestito• Replica automatica dei dati

Azure Storage

Mobile ServicesStorage

Authentication

Logic

Push

Scheduler

• Fornisce i servizi di base per losviluppo di applicazioni client• Client supportati• iOS• Android• HTML5/Web• Xamarin• Windows• Windows Phone• PhoneGap• Sencha

Azure Portalmanage.windowsazure.com

Azure Management Portal (Preview)portal.azure.com

.NET Day #netday15

Azure all’operaPubblicare un sito Web

Provare Azure• 150 € di credito validi per un mese• Utilizzabili con tutti i servizi di Azure• Una serie di risorse utilizzabili gratuitamente

http://azure.microsoft.com/it-it/pricing/free-trial

+

.NET Day #netday15

• http://www.asp.net• http://www.asp.net/web-api• http://www.asp.net/signalr

• http://azure.microsoft.com

Riferimenti