The document provides information about an upcoming Q&A session hosted by Microsoft for app developers to ask questions about the Windows 8 Proximity/NFC APIs. The session will be held on March 12th from 5-6pm local Belgium time and product engineers who built the proximity APIs will be available to take questions directly from attendees. The document then continues by describing various aspects of the Near Field Communication (NFC) technology and how it is supported in Windows 8, Windows Phone 8, and other platforms. It provides details on the NFC APIs available to developers in Windows Runtime (WinRT) for reading and writing NFC tags and establishing connections between devices.
For some new managers, the idea of giving performance reviews and being responsible for others can be intimidating. For others, there are fears about how to manage people older than them. And then there are others who worry about being accepted by their new team. I too, had these fears. But over time, I have learned a lot from peers, from mentors, and from my own employees. I made some terrible mistakes, and I had some pretty good successes. These nuggets of insight are some of the best personal learnings I’ve had in my management career, and ones which I wish I knew when I started managing people.
The Manager's Resource Handbook is an online source of tools, templates and articles relating to business and management in the global environment. Our mission is the help managers and businesses succeed through the benefit of our experience. You can contact us at http://www.managersresourcehandbook.com.
Near Field Communication (NFC) is an emerging short-range radio technology that is poised to revolutionise how we use mobile phones in everyday interactions. In this webinar, we’ll introduce the basics of NFC and how the technology is implemented in Nokia Lumia phones. We’ll also demonstrate how you can use NFC via Microsoft Windows Phone 8’s Proximity API in your applications to share content, read data from and write data to NFC tags, and create your own application-launch tags. We suggest that you install the Microsoft Windows Phone SDK 8.0 in advance to get the most out of this training lab. While you’ll learn a lot with or without the SDK, you’ll learn even more if you have the SDK installed and can begin using the API as soon as you complete the training. Also, it will be helpful to have a Nokia Lumia phone built on Windows Phone 8 available for testing.
Introduction to the Windows 8 Platform Proximity APIs for NFC apps.
Create your own Near Field Communication apps to interact with peers as well as NFC tags. Also introduces the open source NDEF Library for Proximity APIs: http://ndef.codeplex.com/
- Subscribe to proximity messages
- Publish messages to peers and tags (WindowsUri and NDEF records)
- Parse & create NDEF messages (including Smart Posters)
- Launching apps on own and peer devices
- Registering for custom URI schemes and protocols
- LaunchApp tags to directly start the app
- Peer to peer: quick data exchange and long term connections with Wi-Fi Direct / Bluetooth
- Establishing peer to peer socket communications simply by tapping two devices
- User Experience Recommendations for peer to peer apps
The three most important NFC (Near Field Communication) scenarios for Windows 8 / Windows Phone 8 (WP8) app developers:
- Discover Your App
- Share to Others
- Seamless Multi-User Games & Collaboration
This presentation describes these three scenarios, and shows you how to implement them in C# from a technical perspective. It contains examples for both Windows 8 and Windows Phone 8 development, based on the new Windows Proximity APIs.
In addition, this presentation contains a quick overview of NFC as a technology, as well as pointers towards tools and documentation, including the open source NDEF library for more powerful and sophisticated NFC tag writing and reading tasks.
For some new managers, the idea of giving performance reviews and being responsible for others can be intimidating. For others, there are fears about how to manage people older than them. And then there are others who worry about being accepted by their new team. I too, had these fears. But over time, I have learned a lot from peers, from mentors, and from my own employees. I made some terrible mistakes, and I had some pretty good successes. These nuggets of insight are some of the best personal learnings I’ve had in my management career, and ones which I wish I knew when I started managing people.
The Manager's Resource Handbook is an online source of tools, templates and articles relating to business and management in the global environment. Our mission is the help managers and businesses succeed through the benefit of our experience. You can contact us at http://www.managersresourcehandbook.com.
Near Field Communication (NFC) is an emerging short-range radio technology that is poised to revolutionise how we use mobile phones in everyday interactions. In this webinar, we’ll introduce the basics of NFC and how the technology is implemented in Nokia Lumia phones. We’ll also demonstrate how you can use NFC via Microsoft Windows Phone 8’s Proximity API in your applications to share content, read data from and write data to NFC tags, and create your own application-launch tags. We suggest that you install the Microsoft Windows Phone SDK 8.0 in advance to get the most out of this training lab. While you’ll learn a lot with or without the SDK, you’ll learn even more if you have the SDK installed and can begin using the API as soon as you complete the training. Also, it will be helpful to have a Nokia Lumia phone built on Windows Phone 8 available for testing.
Introduction to the Windows 8 Platform Proximity APIs for NFC apps.
Create your own Near Field Communication apps to interact with peers as well as NFC tags. Also introduces the open source NDEF Library for Proximity APIs: http://ndef.codeplex.com/
- Subscribe to proximity messages
- Publish messages to peers and tags (WindowsUri and NDEF records)
- Parse & create NDEF messages (including Smart Posters)
- Launching apps on own and peer devices
- Registering for custom URI schemes and protocols
- LaunchApp tags to directly start the app
- Peer to peer: quick data exchange and long term connections with Wi-Fi Direct / Bluetooth
- Establishing peer to peer socket communications simply by tapping two devices
- User Experience Recommendations for peer to peer apps
The three most important NFC (Near Field Communication) scenarios for Windows 8 / Windows Phone 8 (WP8) app developers:
- Discover Your App
- Share to Others
- Seamless Multi-User Games & Collaboration
This presentation describes these three scenarios, and shows you how to implement them in C# from a technical perspective. It contains examples for both Windows 8 and Windows Phone 8 development, based on the new Windows Proximity APIs.
In addition, this presentation contains a quick overview of NFC as a technology, as well as pointers towards tools and documentation, including the open source NDEF library for more powerful and sophisticated NFC tag writing and reading tasks.
Although Windows Store apps run in a security sandbox, the Windows Runtime provides a rich set of APIs that enable connectivity over sockets. WinRT supports the new HTML5 WebSocket specification but also allows apps to connect via TCP and UDP for real-time streaming connectivity. Join Jeremy Likness as he walks through several examples of apps using socket protocols to establish communications and demonstrates the ease of interfacing with the Windows Runtime sockets APIs.
This talk has been presented for the Distributed Course. It focuses on how to implement p2p application in .Net
Feedbacks are welcome! If you get inspired by this presentation, please let me know and add credits to your work ;)
Visual Studio Online is the online home for your development projects. Visual Studio Online connects to Visual Studio, Eclipse, Xcode, and other Git clients to support development for a variety of platforms and languages.
Find out more about how you can use the power of Visual Studio Online to drive your development projects.
Look beyond the hype and create a strategy that will unlock the potential of the Internet of Your Things to realize real, transformative results in your organization.
More Related Content
Similar to 02 dev room6__tapand_go_jeffprosise_9Tap and Go: Proximity Networking in WinRT
Although Windows Store apps run in a security sandbox, the Windows Runtime provides a rich set of APIs that enable connectivity over sockets. WinRT supports the new HTML5 WebSocket specification but also allows apps to connect via TCP and UDP for real-time streaming connectivity. Join Jeremy Likness as he walks through several examples of apps using socket protocols to establish communications and demonstrates the ease of interfacing with the Windows Runtime sockets APIs.
This talk has been presented for the Distributed Course. It focuses on how to implement p2p application in .Net
Feedbacks are welcome! If you get inspired by this presentation, please let me know and add credits to your work ;)
Visual Studio Online is the online home for your development projects. Visual Studio Online connects to Visual Studio, Eclipse, Xcode, and other Git clients to support development for a variety of platforms and languages.
Find out more about how you can use the power of Visual Studio Online to drive your development projects.
Look beyond the hype and create a strategy that will unlock the potential of the Internet of Your Things to realize real, transformative results in your organization.
Look beyond the hype and create a strategy that will unlock the potential of the Internet of Your Things to realize real, transformative results in your organization.
Code in the Cloud presentation as presented in Antwerp Lindner Hotel on 8th December 2014
#codeinthecloud
Agenda from the event:
In the AM (Introduction)
- Introduction to Application Lifecycle Management and Visual Studio Online
- Managing your project: what, who and when
- Working with code: keeping the source code safe and in-sync and be productive as a developer
- Tracking progress: how are we doing
- Improving quality: continuous build, deploy and testing
EAT
In the PM (Putting it all into practice)
- Exciting demonstrations and walkthroughs on how to run your project with Visual Studio Online.
Unlimited resources at your fingertips, only bounded to the limitations of your imagination. Windows Azure allows you to be flexible at your own pace and with your own provisioning needs, whether you're a developer or IT professional. This talk will handle all things IaaS related to Windows Azure, going over the capabilities in usage and architecture.
Belgian app builders: discover your new home: http://msdn.be/apps AKA the Apps on Windows portal.
02 dev room6__tapand_go_jeffprosise_9Tap and Go: Proximity Networking in WinRT
1.
2. A Message from the Team
We want to hear from you – app developers!
Microsoft will be hosting a live Q&A session via Lync for your company to
ask questions, or provide feedback, on the Windows 8 Proximity/NFC
APIs. You’ll have an opportunity to communicate directly with product
engineers who built the proximity APIs.
March 12th from 5 – 6 PM local Belgium time (GMT+1)
http://aka.ms/gwevca
3. Near Field Communication (NFC)
Enables devices to communicate wirelessly while in close proximity (3 to
4 cm) of each other
"Devices" can be powered or passive (e.g., smart tag)
May be used to establish Bluetooth, WiFi, and WiFi Direct connections
for non-proximate transfers
Supported by many platforms, including Windows 8, Windows Phone
8, Android, and Symbian
Standards driven by NFC Forum (160+ members)
4. NFC Modes and Use Cases
NFC enables a multitude of "tap and do" scenarios which are intuitive to
users and require no setup
Read and write Tap devices to establish
information stored in peer-to-peer Tap a payment
passive NFC tags communication and share terminal to execute
("smart tags") content electronic payments
Reader/Writer Mode Peer-to-Peer Mode Card Emulation Mode
5. NFC Data Exchange Format (NDEF)
Lightweight, binary, platform-independent format for NFC messages with
variable-length payloads
Read and write
Or store them
them with
in inductively
smartphones
powered
and other
smart tags
mobile devices
6. NFC in WinRT
Tap For
NFC Socket
Connection Connection
ProximityDevice PeerFinder
Exchange NDEF messages and Exchange data using
Windows messages using SNEP Bluetooth, WiFi, or WiFi Direct*
* WiFi Direct supported in Windows 8 but not Windows Phone 8
8. The ProximityDevice Class
Provides methods for driving NFC devices
Publishing NDEF messages to devices and tags
Subscribing to NDEF messages from devices and tags
Identifying on-board proximity devices
Contains properties for retrieving transfer rates and other information
about proximity devices
Fires events when other proximity devices arrive and depart
9. Detecting NFC Support
var device = ProximityDevice.GetDefault();
if (device != null)
{
// This device supports NFC
}
10. Getting Device Information
var device = ProximityDevice.GetDefault();
if (device != null)
{
var id = device.DeviceId; // Device ID
var bps = device.BitsPerSecond; // Max transfer rate (bps)
var size = device.MaxMessageBytes; // Max message size (bytes)
}
12. PublishMessage
ProximityDevice.PublishMessage publishes Windows.subtype messages
to other devices
Supported by Windows and Windows Phone
Not supported by other platforms
subtype can be anything you want
Supports transmission of string data
Does not publish to smart tags
ProximityDevice.StopPublishingMessage stops publishing a message
13. Using PublishMessage
// Publish without a completed callback
device.PublishMessage("Windows.Sample", "Hello, NFC!");
// Publish with a completed callback
device.PublishMessage("Windows.Sample", "Hello, NFC!", OnMessageTransmitted);
.
.
.
void OnMessageTransmitted(ProximityDevice sender, long messageId)
{
// Stop publishing the message once it's delivered
device.StopPublishingMessage(messageId);
}
14. Subscribing to Messages
ProximityDevice.SubscribeForMessage subscribes to NDEF messages
of the specified type
"Windows.subtype" messages
"WindowsUri" messages for URIs
"WriteableTag" messages for writeable tags
"NDEF[:filter]" messages for other message types
e.g., NDEF, NDEF:ext, and NDEF:wkt.U
ProximityDevice.StopSubscribingForMessage revokes a message
subscription
15. Using SubscribeForMessage
device.SubscribeForMessage("Windows.Sample", OnReceived);
.
.
.
void OnReceived(ProximityDevice sender, ProximityMessage message)
{
string type = message.MessageType; // e.g., "Windows.Sample"
string data = message.DataAsString; // e.g., "Hello, NFC!"
// Do this now, or do it later to continue subscribing
device.StopSubscribingForMessage(message.SubscriptionId);
}
16.
17. The PeerFinder Class
Provides API for establishing socket connections via NFC for direct app-
to-app communications
Methods for establishing connections
Properties for feature detection, connecting to other platforms, and exerting control
over transport types
Events signifying connection requests
TriggeredConnectionStateChanged event makes tap-to-connect gestures
simple and easy
18. Detecting Tap-to-Connect Support
if ((PeerFinder.SupportedDiscoveryTypes & PeerDiscoveryTypes.Triggered) != 0)
{
// This device supports tap-to-connect
}
19. Establishing a Socket Connection
if ((PeerFinder.SupportedDiscoveryTypes & PeerDiscoveryTypes.Triggered) != 0)
{
PeerFinder.TriggeredConnectionStateChanged += OnTriggered;
PeerFinder.Start();
}
void OnTriggered(object sender,
TriggeredConnectionStateChangedEventArgs e)
{
if (e.State == TriggeredConnectState.Completed)
{
var socket = e.Socket; // StreamSocket
PeerFinder.Stop();
}
}
20. Triggered Connection State
void OnTriggered(object sender, TriggeredConnectionStateChangedEventArgs e)
{
switch (e.State)
{
case TriggeredConnectState.Listening:
break;
case TriggeredConnectState.PeerFound: // OK to move devices apart
break;
case TriggeredConnectState.Connecting: // Establishing socket connection
break;
case TriggeredConnectState.Completed: // StreamSocket reference in e.Socket
break;
case TriggeredConnectState.Canceled: // Connection was closed
break;
case TriggeredConnectState.Failed: // Connection could not be established
break;
}
}
21. Controlling the Transport Type
// All values default to true
PeerFinder.AllowBluetooth = true; // Bluetooth
PeerFinder.AllowInfrastructure = true; // WiFi
PeerFinder.AllowWiFiDirect = true; // WiFi Direct (Win8 only)
22. Alternate (App) Identities
PeerFinder.AlternateIdentities enables apps on different platforms to
connect to each other
e.g., Windows to Windows Phone
In a Windows app, add entry identifying corresponding app on Windows
Phone
App ID = {App product ID}
In a Windows Phone app, add entry identifying corresponding app on
Windows
App ID = {Package family name}!App
26. PublishBinaryMessage
Publishes NDEF messages to devices and tags
WriteTag messages for writing to smart tags
Windows:WriteTag, WindowsUri:WriteTag, LaunchApp:WriteTag, and NDEF:WriteTag
NDEF:WriteTag supports smart posters, Android Application Records (AARs), and more
NDEF messages for publishing to other devices
WindowsMime messages to other devices
Use NDEF Library for Proximity APIs for help formatting binary NDEF
messages
28. Writing URIs to NFC Tags
using (var writer = new DataWriter { UnicodeEncoding = UnicodeEncoding.Utf16LE })
{
writer.WriteString("http://www.wintellect.com");
var buffer = writer.DetachBuffer();
device.PublishBinaryMessage("WindowsUri:WriteTag", buffer);
}
29. Writing Windows Launch Tags
using (var writer = new DataWriter { UnicodeEncoding = UnicodeEncoding.Utf16LE })
{
string tag =
"argument" + // Optional launch argument
"tWindowst" + // Platform identifier
"1ED5AEA5.AngryBirdsSpace_p2gbknwb5d8r2!App"; // App ID
writer.WriteString(tag);
var buffer = writer.DetachBuffer();
device.PublishBinaryMessage("LaunchApp:WriteTag", buffer);
}
30. Writing Windows Phone Launch Tags
using (var writer = new DataWriter { UnicodeEncoding = UnicodeEncoding.Utf16LE })
{
string tag =
"argument" + // Optional launch argument
"tWindowsPhonet" + // Platform identifier
"{afc3dfcf-8429-4e0d-9df8-4038939b5e75}"; // App ID
writer.WriteString(tag);
var buffer = writer.DetachBuffer();
device.PublishBinaryMessage("LaunchApp:WriteTag", buffer);
}
31. Writing Dual Launch Tags
using (var writer = new DataWriter { UnicodeEncoding = UnicodeEncoding.Utf16LE })
{
string tag =
"argument" +
"tWindowst" +
"1ED5AEA5.AngryBirdsSpace_p2gbknwb5d8r2!App" +
"tWindowsPhonet" +
"{afc3dfcf-8429-4e0d-9df8-4038939b5e75}";
writer.WriteString(tag);
var buffer = writer.DetachBuffer();
device.PublishBinaryMessage("LaunchApp:WriteTag", buffer);
}
32. Using Launch Arguments (Windows)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// If this page was activated from an NFC tag or a
// secondary tile, retrieve the launch argument
if (e.Parameter != null && e.Parameter != String.Empty)
{
string arg = (string)e.Parameter;
// TODO: Use the launch argument
}
}
33. Using Launch Arguments (Phone)
private const string _key = "ms_nfp_launchargs";
.
.
.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// If this page was activated from an NFC tag, retrieve the launch argument
if (NavigationContext.QueryString.ContainsKey(_key))
{
string arg = NavigationContext.QueryString[_key];
// TODO: Use the launch argument
}
}
34.
35. NDEF Library for Proximity APIs
Free, open-source library for reading and writing NDEF
messages, including smart posters and AARs
Compatible with Windows 8 and WP8
36. Writing a Smart Poster Tag
var record = new NdefSpRecord();
record.Uri = "http://www.wintellect.com";
record.NfcAction = NdefSpActRecord.NfcActionType.DoAction;
record.AddTitle(new NdefTextRecord { Text = "Wintellect", LanguageCode = "en" });
var message = new NdefMessage { record };
device.PublishBinaryMessage("NDEF:WriteTag", message.ToByteArray().AsBuffer());
37. Reading a Smart Poster Tag
device.SubscribeForMessage("NDEF", OnMessageReceived);
...
void OnMessageReceived(ProximityDevice sender, ProximityMessage message)
{
var ndef = NdefMessage.FromByteArray(message.Data.ToArray());
foreach (NdefRecord record in ndef)
{
if (record.CheckSpecializedType(false) == typeof(NdefSpRecord))
{
var poster = new NdefSpRecord(record);
var uri = poster.Uri;
for (int i = 0; i < poster.TitleCount(); i++)
var title = poster.Titles[i].Text;
}
}
}
38. Writing an Android Launch Tag
var record = new NdefAndroidAppRecord();
record.PackageName = "com.adobe.reader";
var message = new NdefMessage { record };
device.PublishBinaryMessage("NDEF:WriteTag", message.ToByteArray().AsBuffer());
39.
40. PublishUriMessage
Publishes URI messages to other devices
Messages include standard NDEF URI records
Compatible with Windows and non-Windows devices
Only one URI message can be published at a time
URI messages launch URIs on target devices
http:// protocol launches browser and shows the specified URL
(e.g., http://www.wintellect.com)
Other protocols launch apps registered for those protocols and can include launch
parameters
Great way to launch apps on other platforms!
41. Launching a Browser
var uri = new Uri("http://www.wintellect.com");
device.PublishUriMessage(uri, OnMessageTransmitted);
.
.
.
void OnMessageTransmitted(ProximityDevice sender, long messageId)
{
// Message delivered
}
42. Launching Skype
var uri = new Uri("skype:lori.prosise?call");
device.PublishUriMessage(uri, OnMessageTransmitted);
.
.
.
void OnMessageTransmitted(ProximityDevice sender, long messageId)
{
// Message delivered
}
43. Subscribing to URI Messages
device.SubscribeForMessage("WindowsUri", OnUriReceived);
.
.
.
private async void OnUriReceived(ProximityDevice sender, ProximityMessage message)
{
var array = message.Data.ToArray();
var uri = Encoding.Unicode.GetString(array, 0, array.Length);
}