Building Data Driven Applications Building Data Driven Applications Using WinRT and XAMLUsing WinRT and XAML
Sergey Barskiy, MagenicSergey Barskiy, MagenicMicrosoft MVP – Data Platform
Principal Consultant
Level: Intermediate
OverviewOverview
• Dealing with Data in XAML Based Windows 8 Metro Style Applications
• WinRT – Windows Runtime
Data Options in WinRTData Options in WinRT
• Persisting Data– Local
– Remote / Cloud
Data BindingData Binding• INotifyPropertyChanged• INotifyCollectionChanged• Changed since preview
Data Options In DetailData Options In Detail
• WCF Custom Services– SOAP
– REST
• Web Api– Part of MVC 4
• OData– WCF Data Services (coming soon..)
• Local– Windows.Storage
– SQLite (not yet)
Setting up For WCF DevelopmentSetting up For WCF Development
• There is a setting in Project Properties to allow Loopback address or ..
• Find Your Application’s ID (HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings
• Run CheckNetIsolation CheckNetIsolation LoopbackExempt -a -p=S-XXXXXX
• Update Manifest to enable Networking and Internet Client
WCFWCF
• WCF Custom Services– Create new WCF Service / Add Reference
Data Contacts / Data Members / Operation Contracts– End point configuration
– Querying and updating data
– SOAP vs. REST
Soap is easier to use / proxy generation REST offers better performance and scalability
WCF SOAP ServiceWCF SOAP Service
• Create new Service. Use Service Contract Operation Contract Data Member
– Define operations
– Build the service
– Add Service Reference to generate a proxy in Windows Metro Style project
– Handle data binding!
– Deploy the service
– Setup URL on proxy
WCF REST ServiceWCF REST Service
• Create new Service. – Use new template to get a head start
– Define operations
WebGet, WebInvokeMessage Type XML vs. JSON
– Build the service
– Deploy the service
– Use HttpClient
– Use XML Serializer or JSON Serializer to convert data between service and client
– Use headers to set content type
ASP.NET Web ApiASP.NET Web Api
• ApiController – Define actions
– Update route table if necessary / match Urls in client to actions
– Match actions to calls
– User serializers to convert the data
– Handle data binding
– Validation
WCF Data ServicesWCF Data Services
• WCF Data Services– Subject to changes
There will be a client for WinRT Data Service Collection?
– Define a service
– Create proxy (http://odata.codeplex.com) DataSvcUtil.exe /uri:http://localhost/odataservice.svc/ /out:MyModel.cs /Version:2.0 /DataServiceCollection
– Configure end point
– CRUD operations
Local StorageLocal Storage
• Using Isolated Storage– Using Serializers
– Helper class
Data Options in WinRTData Options in WinRT
• Summary– Remote vs. local data
– Hosting remote data
Azure / Cloud Hosting providers
– Local Storage Options
FilesSQLite (coming later)
– Data binding / storage solutions
Contact InformationContact Information
• [email protected]• http://DotNetSpeak.com