gradnja povezanih aplikacij

Post on 26-Jun-2015

904 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides from my session at NT conference 2013 Windows 8 and Windows Phone 8 precon track

TRANSCRIPT

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

top related