Upload
damir-arh
View
900
Download
2
Embed Size (px)
DESCRIPTION
Slides from my session at NT conference 2013 Windows 8 and Windows Phone 8 precon track
Citation preview
100300
Gradnja povezanih aplikacijDamir Arh, Adacta d.o.o.Arhitekt programske opremeMVP – Visual C#@DamirArh, http://www.damirscorner.com
100300
Agenda
Pomen povezanosti Načini povezovanja Lepo obnašanje Windows Phone
100300
Današnje aplikacije
100300
Programski vmesniki (API)
HTTP APIs
Socket APIs
Background APIs
Data APIs
Json XML Streams
DataReader/DataWriter
Cost
Information APIsDownload
Web services
Skydrive
TCP sockets UDP sockets SSL sockets Web Sockets
AtomPubRSS
Network Information
Proximity sockets
Live ID
Upload
Xbox Live Azure
HttpWebRequest
HttpClient
XHR
IXHR
WCFAtom
RTC Push NotificationCost
100300
Viri RSS
100300
RSS : ATOM
100300
Poenoteno branje
var client = new SyndicationClient();var feed = await client.RetrieveFeedAsync(new Uri(uri));
var title = feed.Title.Text;var subtitle = feed.Id;var description = feed.Subtitle.Text; foreach (var feedItem in feed.Items){ var iUniqueId = feedItem.Id; var iTitle = feedItem.Title.Text; var iSubtitle = feedItem.Summary.NodeValue; var iDescription = feedItem.PublishedDate.ToString(); var iContent = feedItem.NodeValue;
100300
Podpora objavljanju
var client = new AtomPubClient(credentials); var item = new SyndicationItem();item = await client.CreateResourceAsync( uri, title, item); item = await client.RetrieveResourceAsync( uri);await client.UpdateResourceAsync(uri, item); await client.DeleteResourceAsync(uri);
100300
Podpora WCF
100300
Omejitve implementacije
Podprt zgolj odjemalec Spreminjanje nastavitev le skozi kodo Omejen nabor podprtih Bindingov
BasicHttpBinding NetTcpBinding NetHttpBinding CustomBinding
Druge omejitve
100300
OAuth in REST
100300
OAuth 2
100300
WebAuthenticationBroker
var requestUri = String.Format( "{0}/client_id={1}&redirect_uri={2}", oauthUri, clientId, redirectUri);
var result = await WebAuthenticationBroker .AuthenticateAsync(options, requestUri, responseUri);
var authenticationCode = result.ResponseData;
100300
OAuth 1
100300
HttpClient
var client = new HttpClient(); var result = await client.GetStringAsync(uri);
var content = StringContent(body);content = FormUrlEncodedContent(dictionary);
var response = await client.PostAsync(uri, content);result = await response.Content .ReadAsStringAsync();
100300
JSON
{ "access_token":"1/fFAGRNJ", "expires_in":3920, "token_type":"Bearer", "refresh_token":"1/xEoDL4iW3"}
using Windows.Data.Json;
var jsonObject = JsonObject.Parse(json);var jsonValue = jsonObject["access_token"];var token = jsonValue.GetString();
100300
XML
<xml> <access_token>1/fFAGRNJ</access_token> <expires_in>3920</expires_in> <token_type>Bearer</token_type> <refresh_token>1/xEoDL4iW3</refresh_token></xml>
using System.Xml.Linq;
var xDoc = XDocument.Parse(xml);var token = xDoc.Element("xml") .Element("access_token").Value;
100300
OData
100300
OData in Windows Store
100300
Poizvedbe z OData
var query = context.Posts.Expand("Parent") .Where(p => p.OwnerUserId == 197913 && p.PostTypeId == 2) .OrderByDescending(p =>p.CreationDate);
((DataServiceQuery<Post>)query).BeginExecute();
var result = await Task.Factory.FromAsync();
var list = result.ToList();
100300
Prenos datotek
100300
BackgroundTransfer
using Windows.Networking.BackgroundTransfer;
var downloader = new BackgroundDownloader();
var uri = new Uri(downloadUri);var file = await ApplicationData.Current .LocalFolder.CreateFileAsync(filename);
var dl = downloader.CreateDownload(uri, file);
await dl.StartAsync();
100300
Prenosi v teku
var downloads = await BackgroundDownloader .GetCurrentDownloadsAsync();
download.RequestedUridownload.ResultFile.Pathdownload.Progress.BytesReceiveddownload.Progress.TotalBytesToReceive
download.AttachAsync() .AsTask(cancellationToken, progress);
100300
Dostop do standardnih map
Aplikacije se izvajajo v peskovniku Mape z različnimi nivoji dostopa
ApplicationData.Current.LocalFolder ApplicationData.Current.RoamingFolder ApplicationData.Current.TemporaryFolder Package.Current.InstalledLocation DownloadsFolder KnownFolders.MusicLibrary KnownFolders.PicturesLibrary KnownFolders.VideosLibrary KnownFolders.DocumentsLibrary KnownFolders.RemovableDevices
100300
Pravice za omrežni dostop
Tri kategorije Internet (Client) Internet (Client & Server) Private Networks (Client & Server)
Pravilnik o zasebnosti
100300
Lokalne povezave
Gostujoči računalnik
Aplikacije za Windows Store
Namizne aplikacije
100300
CheckNetIsolation.exe
CheckNetIsolation.exe LoopbackExempt –s
CheckNetIsolation.exe LoopbackExempt –a-n=packagename_ynxpx341dyebp
CheckNetIsolation.exe LoopbackExempt –d-n=packagename_ynxpx341dyebp
CheckNetIsolation.exe LoopbackExempt –c
100300
Podatki o povezavi
NetworkCostType Unrestricted Fixed Variable Unknown
ApproachingDataLimit OverDataLimit Roaming
NetworkInformation.GetInternetConnectionProfile() .GetConnectionCost()
100300
Prilagajanje delovanja
Običajno Omrežje: unrestricted ali unknown Obnašanje: Brez omejitev
Omejeno Omrežje: fixed ali variable Obnašanje: Prenos manj podatkov
Na zahtevo Omrežje: OverDataLimit ali Roaming Brez samodejnega prenosa
100300
Windows Phone 8
Alternativne implementacije System.ServiceModel.Syndication BackgroundTransferService
Okrnjena funkcionalnost WCF
Ni na voljo WebAuthenticationBroker Windows.Data.JSON
100300
Sklep
Spoznajte platformo Izkoristite ponujeno Zavedajte se omejitev Mislite na uporabnika
300
VPRAŠANJAProsimo vas, da po koncu predavanja izpolnite vprašalnike. Nekoga izmed vas bomo nagradili z Nokio Lumia 820.
Vprašalniki bodo poslani na vaš e-naslov, dostopni pa bodo tudi preko profila na spletnem mestu www.ntk.siNajlepša hvala!
Iščete kakovostno izobraževanje? Obiščite Microsoftove izobraževalne centre:
Uspeh = Znanje = Microsoftovi uradni tečaji + predavatelji Microsoft Certified Trainer