160418 build2016 리뷰 1편

Edit

160418 build2016 리뷰 1편

황현동 노트북 .net build uwp iotcore

Running Bash on Ubuntu on Windows!

간략요약

  • Windows Subsystem for Linux
  • Ubuntu UserMode on Windows through partnership with Canonical




Bluetooth Device Companion Apps for Windows 10

블루투스 디바이스 리스팅 하기


블루투스 디바이스 페어링 과정





Beyond Beacons: Proximal Awareness with Bluetooth LE

BLE 패킷구조


BackgroundTask에서 비콘 동기화





Using the Right Networking API for Your UWP App

시나리오1. HTTPS + 인증 => HttpClient

var filter = new HttpBaseProtocolFilter();
filter.ClientCertificate = myCertificate;
var client = new HttpClient(filter);
var response = await client.GetAsync(uri);

시나리오2. 클라 + 서버 + 양방향통신 => WebSockets

Windows.Web.Http.HttpClient & Windows.Networking.Sockets.WebSockets

MessageWebSocket & StreamWebSocket

var socket= new MessageWebSocket();
socket.MessageReceived = myReceivingHandler;
socket.Closed = myClosedHandler;
await socket.ConnectAsync(serverUri);
// Send data.
socket.Close(code, reason);

HttpClient vs WebSocket 패킷크기비교


시나리오3. 클라 + 클라 + 양방향통신 + 백그라운드 => Windows.Networking.Sockets

Windows.Networking.Sockets, System.Net.Sockets and Winsock

// 백그라운드에서 소켓연결 맺기
// 트리거타입으로 task만들기
socketTaskBuilder.TaskEntryPoint =  "SocketActivityBackgroundTask.SocketActivityTask";
var trigger = new SocketActivityTrigger();
socketTaskBuilder.SetTrigger(trigger);
var task = socketTaskBuilder.Register();

// 연결된 소켓과 task를 연결하기
socket.EnableTransferOwnership(task.TaskId, SocketActivityConnectedStandbyAction.Wake); 
await socket.ConnectAsync(target, port);

// 앱이 서스팬딩 될때 소유권 이동하기
socket.TransferOwnership(socketId);
// 앱이 소유하고 있는 모든 살아있는 소켓 리턴
SocketActivityInformation.AllSockets

시나리오4. 다운로드/업로드 + 백그라운드 => BackgroundTransfer

HttpClient (in background task) & BackgroundTransfer

// 다운로드 작업 생성
var downloader = new BackgroundDownloader(); 
var download = downloader.CreateDownload(new Uri(downloadlocation), file);

// 다운로드 작업 시작
var startTask = download.StartAsync().AsTask();

// 현재 다운로드 작업리스트 반환
downloads = await BackgroundDownloader.GetCurrentDownloadsAsync();

// 프로그래스핸들러 붙이기
await download.AttachAsync().AsTask(cts.Token, progressCallback);    

// FG에서 완료핸들러 붙이기
var startTask = download.StartAsync().AsTask();
var continueTask = startTask.ContinueWith(OnDownloadCompleted);

// BG에서 완료핸들러 붙이기
var completionGroup = new BackgroundTransferCompletionGroup();
builder.SetTrigger(completionGroup.Trigger);
var downloader = new BackgroundDownloader(completionGroup);

GitHub Universal Samples:

  • HttpClient
  • WebSockets
  • SocketActivityStreamSocket
  • BackgroundTransfer




Saving Development Time with Windows App Studio's Windows 10 UWP NuGet Packages

  • Windows App Studio UWP Controls
  • Windows App Studio Data Providers

이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요.

댓글