win05 accesso ai dati in win 8
TRANSCRIPT
Template designed by
Accesso ai dati in Windows 8.x
Paolo [email protected]://www.pialorsi.com/blog.aspx
brought to you by
Consulente, project manager e trainer dal 1996
Oltre 40 certificazioni Microsoft conseguiteMicrosoft Certified Solutions Master – SharePoint
Focalizzato su .NET e SharePoint dal 2002
Autore di 10 libri su XML, SOAP, .NET,LINQ e SharePoint
• Microsoft SharePoint 2013 Developer Reference, Microsoft Press
• Build Windows 8 Apps with Microsoft Visual C# andVisual Basic Step by Step, Microsoft Press
• Microsoft SharePoint 2010 Developer Reference, Microsoft Press
Speaker alle principali conferenze IT
Chi sono
Partiamo dall’esigenza
Sorgenti consumabili a confronto
Conclusioni
Agenda
Consumare dati
Quasi ogni applicazioneConsuma dati (CRUDQ)
Lavora grazie ai dati
Svolge operazioni transazionali
• Garantendo la consistenza e l’integrità dei dati
Ma le Windows Store App e WinRT supportano l’accesso ai database?No! E allora come m*n#*ia faccio?!
L’esigenza primordiale
Elementi base di Windows Runtime in .NET
.NET for Windows 8 Apps
BCL
HTTP
XML
Serialization
WCF
Set di referenze x Windows Store Apps
Manca qualcosa?
Per esempio ...System.Data.*
System.Transactions.*
Ok, quindi siamo spacciati?!No!
Cosa manca?!
Correva l’anno 2000 D.C. e qualcuno dicevaPensate il vostro software «orientato ai servizi»
Prevedete uno strato di presentazione «sottile»
Lasciate logiche e dati server-side
• Esposti tramite servizi
Service Oriented Architecture
File locale (XML, CSV, ecc.)
SQLite for Windows 8
WCF/SOAP Service
OData
REST + POX/JSON/RSS/ATOM
Azure Service (SOAP/REST)
Brokered WinRT Component
Sorgenti consumabili
Strumenti disponibiliLocal Storage
• Alla rimozione della App i file vengono cancellati
User’s folders
• Occorre specifica capability e file type declaration
• Ma in caso di App Uninstall i file permangono
Roaming Storage?
• No! Troppo poco spazio (100KB)
File locali
Dem
o Usare local storage, user’s
folders, and roaming
storage
http://www.sqlite.org/
È un’opzione possibile
Esiste una estensione per Windows RuntimeRichiede C++
Serve wrapper .NET (sqlite-net)
SQLite per Windows 8
Occorre gestire manualmente la sincronizzazione con la parte serverSempre che esista una parte server ...
I dati sono sul device dell’utenteVa bene per dati di reference
Non va bene per dati «business» … come gestiamo BYOD?
Non si sposa con l’idea di avere i dati everywhere/on every deviceA meno di non fare a mano dei meccanismi di resync
Va bene comunque per file di dati di piccole dimensioniNon pensate di metterci dentro 1M di clienti e 10M di ordini ...
Limiti
Dem
o Usare SQLite da
Windows Store App
In ottica SOA sono una delle scelte migliori
BindingBasicHttpBinding
NetTcpBinding
NetHttpBinding
CustomBinding
Serializzatori disponibiliDataContractSerializer
DataContractJsonSerializer
XmlSerializer
WCF/SOAP Service
SupportaTransport Security (HTTPS/SSL)
Transport with Message Credentials
Transport Credential Only
Sicurezza
Client CredentialsNone
Basic
Digest
Negotiate
NTLM
Windows
Username (Message Security)
Windows (Transport Security)
Sicurezza integrata da abilitare in AppManifestRichiede «Enterprise authentication» capability
Non supporta wsHttpBinding
Non supporta wsFederationHttpBinding
Non supporta connessioni in entrataWCF Client e non WCF Service
Ma abbiamo NetHttpBinding ...
Limiti
Dem
o Consumare servizi SOAP
da Windows Store App
OData = Open Data Protocolwww.odata.org
OData 4.0 è uno standard OASIS! (News - 17/3/2014)
In Windows Store Apps richiede add-onWCF Data Services 5.6.0 RTM
Poi si consuma come un normale servizio WCFAdd Service Reference ...
OData
Possiamo usare sicurezza del trasportoHTTP/HTTPS
Basic/Digest/Windows
Possiamo usare sicurezza ASP.NETCon FBA o WIF in WS-Federation Passive
Via WebAuthenticationBroker
Possiamo usare OAuth (vedi dopo ...)Eventualmente con Microsoft Azure ACS
Sicurezza
Il WebAuthenticationBroker è «kitsch»
Non troppo performante
Querying client-side limitato
Limiti
Dem
o Consumare OData
da Windows Store App
È comunque Service OrientedService non vuol dire solo SOAP!
Per molte App «veloci» è più sempliceSe non ci sono grandi pretese di protocollo/sicurezza
Possiamo usare gli stessi servizi anche daHTML5/JavaScript
jQuery
iPad/iPhone/iOS in genere
Android
REST + POX/JSON/RSS/ATOM
Cambiano radicalmente il paradigma e i protocolli
OAuth è lo standard di riferimentoWinRT offre WebAuthenticationBroker
Utile non solo per OAuth, ma perché inventare la ruota ...
Si ragiona in termini di Repository dati esterno (Facebook, SharePoint 2013, ecc.)
Autenticazione dell’utente
Autenticazione dell’applicazione
Autorizzazione che l’utente concede all’applicazione rispetto al Repository
In scenari web-based è la direzione ormai intrapresa
Sicurezza
Disponibile per side-loaded Windows Store AppA partire da Windows 8.1 Update
Comunicazione con il “desktop” classicSQL Compact, SQL Express, ecc.
Riuso “estremo” del codice legacy in Windows Store App
Brokered WinRT Component Project Templatehttp://visualstudiogallery.msdn.microsoft.com/527286e4-b06a-4234-adde-d313c9c3c23e
Brokered WinRT Component
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei prossimi giorni
Per contattarmi
Grazie