<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.devhammer.net/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Devhammer Blog</title><link>http://devhammer.net:80/blog</link><description>Devhammer Blog</description><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.devhammer.net/devhammer" /><feedburner:info uri="devhammer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Friday App Shout-Out: Special Indy Game Edition</title><link>http://feeds.devhammer.net/~r/devhammer/~3/12FDrDIU8Lo/friday-app-shout-out-special-indy-game-edition</link><description>&lt;p&gt;This week, I want to take a slight detour from my usual fare to give a shout-out to a local community member who has published a couple of games for the XBOX Live Indy game channel, in addition to highlighting another Mid-Atlantic developed Windows Store app.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://marketplace.xbox.com/en-US/Product/2D-Math-Panic/66acd000-77fe-1000-9115-d80258550962" target="_blank"&gt;2D Math Panic&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://marketplace.xbox.com/en-US/Product/2D-Math-Panic/66acd000-77fe-1000-9115-d80258550962" target="_blank"&gt;&lt;img title="2DMathPanic" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="2DMathPanic" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Special-Indy-Game-E_A666/2DMathPanic_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://marketplace.xbox.com/en-US/Product/2D-Math-Panic/66acd000-77fe-1000-9115-d80258550962" target="_blank"&gt;2D Math Panic&lt;/a&gt; is the first of two games by local dev &lt;a href="http://wakeupandcode.com/" target="_blank"&gt;Shahed Chowdhuri&lt;/a&gt; that I'm featuring this week. Aimed at teaching kids math in a fun way, this game has kids pilot a spaceship and pick up the falling passenger that represents the solution to a given math problem. &lt;/p&gt; &lt;h2&gt;&lt;a href="http://marketplace.xbox.com/en-US/Product/Angry-Zombie-Ninja-Cats/66acd000-77fe-1000-9115-d802585509ea" target="_blank"&gt;Angry Zombie Ninja Cats&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://marketplace.xbox.com/en-US/Product/Angry-Zombie-Ninja-Cats/66acd000-77fe-1000-9115-d802585509ea" target="_blank"&gt;&lt;img title="AngryZombieNinjaCats" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="AngryZombieNinjaCats" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Special-Indy-Game-E_A666/AngryZombieNinjaCats_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Shahed's second game, &lt;a href="http://marketplace.xbox.com/en-US/Product/Angry-Zombie-Ninja-Cats/66acd000-77fe-1000-9115-d802585509ea" target="_blank"&gt;Angry Zombie Ninja Cats&lt;/a&gt;, is a plaformer pitting the player against the aforementioned critters.&lt;/p&gt; &lt;p&gt;It's nice to see local folks building games, and I'm hoping the I'll be able to help Shahed bring one of his games to the Windows Store before long.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/dhammapada/7efd1327-2697-440a-a230-3eecb7ebbc37" target="_blank"&gt;Dhammapada&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/dhammapada/7efd1327-2697-440a-a230-3eecb7ebbc37" target="_blank"&gt;&lt;img title="Dhammapada" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Dhammapada" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Special-Indy-Game-E_A666/Dhammapada_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This app, developed by local dev Upul Obeysekare, presents stories from the Dhammapada, a collection of stories based on teachings of the Buddha. For my Buddhist readers, this looks like a handy way to read stories about your faith. The app displays a random story each time it's launched, and also implements the Search contract in order to enable users to locate specific stories based on search keywords.&lt;/p&gt; &lt;h2&gt;Who's Next?&lt;/h2&gt; &lt;p&gt;Would you like to be the next recipient of a shout-out for your app? You can get links, videos, and more for free at &lt;a href="http://bitly.com/gd30tolaunch"&gt;App Builder&lt;/a&gt;. Sign up takes only a few seconds, and the resources can help make you the next app rockstar. And if you publish your app (for Windows Store or Windows Phone) between now and June 30th, you may be eligible for $100 per app (up to 10 apps) from the &lt;a href="http://aka.ms/KeepTheCashApps"&gt;Keep the Cash&lt;/a&gt; promotion.  &lt;p&gt;You can also join me for an upcoming &lt;a href="http://usdpe.ohours.org/devhammer"&gt;Office Hours&lt;/a&gt;, where I can provide 1:1 technical advice on building your app and getting it into the Windows Store.  &lt;p&gt;&lt;a href="http://devhammer.net/contact"&gt;Drop me a note&lt;/a&gt; if you're working on a Windows 8 app and have questions or need advice, or if you've published your app already, &lt;a href="http://blogs.msdn.com/gduthie/contact.aspx" target="_blank"&gt;let me know&lt;/a&gt; so I can spread the word!&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/12FDrDIU8Lo" height="1" width="1"/&gt;</description><pubDate>Fri, 24 May 2013 17:19:11 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/friday-app-shout-out-special-indy-game-edition</guid><feedburner:origLink>http://devhammer.net:80/blog/friday-app-shout-out-special-indy-game-edition</feedburner:origLink></item><item><title>Upcoming Events for May 20th, 2013</title><link>http://feeds.devhammer.net/~r/devhammer/~3/RwZkte78OuA/upcoming-events-for-may-20th-2013</link><description>&lt;p&gt;Here are the events listed in &lt;a href="http://www.communitymegaphone.com/"&gt;Community Megaphone&lt;/a&gt; for the next couple of weeks for the Mid-Atlantic area, as well as webcasts of interest:&lt;/p&gt; &lt;h2&gt;DC&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6467"&gt;Developing Games for the Windows Store with HTML5 and JavaScript&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, May 21, 2013 6:30 PM, Washington, DC&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2400+N+Street+NW%2c+Washington%2c+DC&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Developing Games for the Windows Store with HTML5 and JavaScript on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6467&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Join Microsoft Technical Evangelist G. Andrew Duthie for a tour of the tools and frameworks you can use to build awesome games for the Windows Store using HTML and JavaScript. From game libraries like ImpactJS and CreateJS, to frameworks like Scirra?s Construct 2, there are many ways to create new games, or port existing games to the Windows Store. Leverage your existing web skills to build great apps, and get them in the Windows Store. And if you publish by June 30th, you may qualify for the Keep the Cash promotion. &lt;br&gt;&lt;br&gt;Andrew can be reached through his blog at http://devhammer.net/. You can also &lt;a href="http://twitter.com/devhammer" target="_blank"&gt;follow Andrew on twitter&lt;/a&gt;. &lt;br&gt;&lt;br&gt;Event venue: Heart House &lt;br&gt;&lt;br&gt;Hosted by: DC .Net User Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6467"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6467"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6467.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;MD&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6470"&gt;BmoreJS&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 6:00 PM, Baltimore, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1020+Hull+Street%2c+Baltimore%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View BmoreJS on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6470&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Location: Advertising.com on the Under Armor campus &lt;br&gt;Advertising.com has offered their space to us for our meetups, it's located in the Ivory Building. &lt;br&gt;The Ivory building is at the end of Haubert St in Locust Point. The area is served by the Charm City Circulator "Banner Route", as well as the MTA #1 bus. You can also take the water taxi over from Fells Point (landing #8) to landing #10. Note that the water taxi service ends at 7pm, and the Circulator ends at 8pm prior to May 1. &lt;br&gt;If you cycle to the meetup, feel free to bring your bike inside, or you can lock up on one of the racks just outside the building. &lt;br&gt;Refreshments &lt;br&gt;Food will be provided - watch this space a few days beforehand. Beverages include water, juice, tea and sometimes beer. &lt;br&gt;&lt;br&gt;See Meetup site for additional info. &lt;br&gt;&lt;br&gt;Event venue: Advertising.com training room - Ivory Building &lt;br&gt;Hosted by: The Baltimore JavaScript Users Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6470"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6470"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6470.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6446"&gt;Game (and App) Jam Windows 8 Style Week 2: Building Apps and Games with HTML5 and JS&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 6:00 PM, Hunt Valley, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=118+Shawan+Road%2c+Hunt+Valley%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game (and App) Jam Windows 8 Style Week 2: Building Apps and Games with HTML5 and JS on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6446&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; NOTE: Please RSVP at &lt;a href="http://aka.ms/Win8JamWk2"&gt;http://aka.ms/Win8JamWk2&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;In the week 2 workshop, we'll look at using the native support for HTML5 and JavaScript to build apps and games, including showing how you can port existing games built with 3rd party frameworks such as ImpactJS, and how you can leverage 3rd party middleware such as Scirra's Construct 2 to quickly build great games and export them for Windows Store and/or Windows Phone 8. There will be hands-on time available after the presentation to work on your apps and games. Attendees wishing to use Construct 2 should download the latest release from Scirra.com. &lt;br&gt;&lt;br&gt;Don't forget to reserve your spot for Game (and App) Jam, Windows 8 Style Week 3! &lt;br&gt;&lt;br&gt;Then join us for the App Judging at CMAP Code Camp, on June 1st! We'll be delivering sessions on Windows Store development, including tips and tricks for getting through the certification process. Technical Evangelist G. Andrew Duthie will be holding office hours for folks with questions, and at the end of the day we'll hold an app competition, where all attendees who show off their app can compete for some great prizes, including a grand prize of a Surface Pro! Prerequisites: In order to participate in the app contest or any of the hands-on activities, you must bring a laptop with Windows 8 along with Visual Studio 2012 (the Express for Windows 8 version will work fine, or Pro or above will also work). &lt;br&gt;&lt;br&gt;Event venue: The Greene Turtle &lt;br&gt;Hosted by: DC Windows App Developers&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6446"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6446"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6446.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6447"&gt;Game (and App) Jam Windows 8 Style Week 3: Windows 8 and Unity3D&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 29, 2013 6:00 PM, Hunt Valley, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=118+Shawan+Road%2c+Hunt+Valley%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game (and App) Jam Windows 8 Style Week 3: Windows 8 and Unity3D on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6447&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; NOTE: Please RSVP at &lt;a href="http://aka.ms/Win8JamWk3"&gt;http://aka.ms/Win8JamWk3&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;In week 3, we'll look at game development with Unity3D, and in particular at how you can use the Windows Store and Windows Phone plugins (currently in beta) to export your Unity games for Windows Store. We'll also look at ways that you can enhance your games with Windows 8 features like Share, snap view, and live tiles. There will be hands-on time available after the presentation to work on your apps and games. Attendees wishing to use Unity3D for Windows Store should sign up for the beta at Unity3D.com. &lt;br&gt;&lt;br&gt;NOTE: There are additional requirements for participation in the Unity early access programs for Windows Store and Windows Phone 8. Please see http://blogs.unity3d.com/2013/03/07/unity-4-early-access-for-windows-store-apps/ and http://blogs.unity3d.com/2013/03/27/unity-4-beta-program-for-windows-phone-apps/ for more details on these programs. &lt;br&gt;&lt;br&gt;Then join us for the App Judging at CMAP Code Camp, on June 1st! We'll be delivering sessions on Windows Store development, including tips and tricks for getting through the certification process. Technical Evangelist G. Andrew Duthie will be holding office hours for folks with questions, and at the end of the day we'll hold an app competition, where all attendees who show off their app can compete for some great prizes, including a grand prize of a Surface Pro! Prerequisites: In order to participate in the app contest or any of the hands-on activities, you must bring a laptop with Windows 8 along with Visual Studio 2012 (the Express for Windows 8 version will work fine, or Pro or above will also work). &lt;br&gt;&lt;br&gt;Event venue: The Greene Turtle &lt;br&gt;Hosted by: DC Windows App Developers&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6447"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6447"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6447.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;PA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6431"&gt;Philly Appathon Workshop&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 5:00 PM, Malvern, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=45+Liberty+Blvd%2c+Malvern%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Appathon Workshop on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6431&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Philly Appathon Workshops are part of the Philly Appathon contest and run through the end of June. Join us each Wednesday in the Microsoft Malvern Office for a session on app development as well as open lab time. This week's session will cover tips and tricks on designing a great Windows Store App&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6431"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6431"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6431.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6460"&gt;Game Development for Beginners&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 23, 2013 10:00 AM, Pittsburgh, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=30+Isabella+St%2c+2nd+floor%2c+Pittsburgh%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game Development for Beginners on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6460&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; In this beginner level workshop we will cover the basics of game design, programming and publication. We will build a casual game and publish it to the Windows Store. This workshop is great for students, hobbyists and professional developers who want to learn the basics of game development and publish their first app to the store as no programming skills are required!&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6460"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6460"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6460.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6432"&gt;Philly Appathon Workshop&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 29, 2013 5:00 PM, Malvern, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=45+Liberty+Blvd%2c+Malvern%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Appathon Workshop on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6432&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Philly Appathon Workshops are part of the Philly Appathon contest and run through the end of June. Join us each Wednesday in the Microsoft Malvern Office for a session on app development as well as open lab time. This week's session will cover tips and tricks on designing a great Windows Store App&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6432"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6432"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6432.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6438"&gt;Windows Azure Infrastructure Services Training Day&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 30, 2013 9:00 AM, Malvern, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=45+Liberty+Boulevard%2c+Malvern%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Windows Azure Infrastructure Services Training Day on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6438&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Join us for this interactive training event to showcase and build proof of concepts using the newly released Windows Azure Infrastructure Services™ (IaaS). This is your opportunity to dive into different scenarios for ‘on-demand’ infrastructure with a Microsoft technical expert.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6438"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6438"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6438.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;VA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6421"&gt;RADNUG May Meeting&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, May 21, 2013 6:30 PM, Fredericksburg, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=11905+Bowman+Drive%2c+%23501+%2c+Fredericksburg%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RADNUG  May Meeting on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6421&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; We are pleased to announce that Leland Holmquest will be our special guest speaker at our May meeting. &lt;br&gt;&lt;br&gt;Leland will be talking about Project Lily: Kinect enabled virtual assistant &lt;br&gt;&lt;br&gt;Project Lily started as a class project (CS895: Software for Context-Aware Multiuser Systems) at George Mason University. It has since been the basis for other class projects. Lily is intended to be a virtual assistant, trying to closely mimic human behavior and interactions. The Kinect for Windows sensor provides the "eyes and ears" for Lily. The talk will demonstrate some of Lily's capabilities, show some of the design and code behind Lily and briefly explain future intentions. &lt;br&gt;&lt;br&gt;About Leland: &lt;br&gt;Leland Holmquest is a Senior Consultant at Microsoft supporting the US Army. Prior to Microsoft, he was a Software Engineer at the Naval Surface Warfare Center Dahlgren. He earned his Bachelor and Master's Degrees in Information Technology from American InterContinental University and is currently working on a Doctorate degree at Northcentral University. He has a regular column on MSDN Magazine Online and frequently blogs at lelandholmquest.wordpress.com. &lt;br&gt;And his crowning achievement, he is the proud father of two daughters. &lt;br&gt;&lt;br&gt;RADNUG meets at the SimVentions office in Fredericksburg. Thank you to SimVentions for the use of their facility for our group!&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6421"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6421"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6421.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6436"&gt;Windows Azure Infrastructure Services Training Day&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 9:00 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=12012+Sunset+Hills+Road%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Windows Azure Infrastructure Services Training Day on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6436&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Join us for this interactive training event to showcase and build proof of concepts using the newly released Windows Azure Infrastructure Services™ (IaaS). This is your opportunity to dive into different scenarios for ‘on-demand’ infrastructure with a Microsoft technical expert.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6436"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6436"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6436.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6459"&gt;Game Development for Beginners&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Saturday, May 25, 2013 10:00 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=12012+Sunset+Hills+Rd%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game Development for Beginners on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6459&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; In this beginner level workshop we will cover the basics of game design, programming and publication. We will build a casual game and publish it to the Windows Store. This workshop is great for students, hobbyists and professional developers who want to learn the basics of game development and publish their first app to the store as no programming skills are required!&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6459"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6459"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6459.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;br&gt;  &lt;p&gt;Want your events listed? You can &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx"&gt;add them here.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at &lt;a href="http://www.communitymegaphone.com/API.aspx"&gt;http://www.communitymegaphone.com/API.aspx&lt;/a&gt;. You can also &lt;a href="http://devhammer.net/contact"&gt;email me&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/RwZkte78OuA" height="1" width="1"/&gt;</description><pubDate>Mon, 20 May 2013 18:32:13 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/upcoming-events-for-may-20th-2013</guid><feedburner:origLink>http://devhammer.net:80/blog/upcoming-events-for-may-20th-2013</feedburner:origLink></item><item><title>Friday App Shout-Out: Hopper Bopper</title><link>http://feeds.devhammer.net/~r/devhammer/~3/oCsPCjm4hCY/friday-app-shout-out-hopper-bopper</link><description>&lt;p&gt;Welcome to another edition of the Friday App Shout-Out!&lt;/p&gt; &lt;p&gt;I'll keep it short and sweet today…today's app comes from FASO alumi LCG Technologies, and I found out about it at this week's kick-off session of the &lt;a href="http://devhammer.net/blog/game-and-app-jam-windows-8-style" target="_blank"&gt;Game (and App) Jam: Windows 8 Style series&lt;/a&gt; this past Tuesday. If you missed out on week 1 of the series, don't fret. You can still sign up for the next two sessions, which will take place on Wednesday, May 22nd, and Wednesday, May 29th, at the Greene Turtle in Hunt Valley, MD. Here's the registration info:&lt;/p&gt; &lt;h3&gt;Week 2: Building Apps &amp;amp; Games with HTML and JS – Wednesday, May 22nd – 6pm-9pm&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.meetup.com/DC-Windows-App-Developers/events/117419422/"&gt;Meetup Link&lt;/a&gt; | &lt;a href="http://aka.ms/Win8JamWk2"&gt;Registration Link&lt;/a&gt; &lt;h3&gt;Week 3: Windows 8 and Unity 3D – Wednesday, May 29th – 6pm-9pm&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.meetup.com/DC-Windows-App-Developers/events/117419942/"&gt;Meetup Link&lt;/a&gt; | &lt;a href="http://aka.ms/Win8JamWk3"&gt;Registration Link&lt;/a&gt; &lt;p&gt;If you missed the earlier post, here's the gist…we're holding 3 weekly workshops, where you can learn about game (and app) development, and then on June 1st, at the &lt;a href="http://www.cmap-online.org/codecamp"&gt;CMAP Code Camp&lt;/a&gt;, there will be an app contest, where the top app will win a Surface Pro. &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/hopper-bopper/4e110a11-88cb-4563-8721-99faf56d8a3c" target="_blank"&gt;Hopper Bopper&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/hopper-bopper/4e110a11-88cb-4563-8721-99faf56d8a3c" target="_blank"&gt;&lt;img title="HopperBopper" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="HopperBopper" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_AB85/HopperBopper_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Hopper Bopper is a simple game where you play the role of a very energetic grasshopper, and your job is to pop as many balloons as possible during the time limit. The game was developed using &lt;a href="http://scirra.com" target="_blank"&gt;Scirra's Construct 2&lt;/a&gt; game development tool (which, as it happens, we'll be discussing at &lt;a href="http://www.meetup.com/DC-Windows-App-Developers/events/117419422/" target="_blank"&gt;next week's workshop in Hunt Valley&lt;/a&gt;), and I like the fact that although the game is simple, it has it's own unique flavor, and is very easy to pick up and play.&lt;/p&gt; &lt;h2&gt;Who's Next?&lt;/h2&gt; &lt;p&gt;Would you like to be next? You can get links, videos, and more for free at &lt;a href="http://bitly.com/gd30tolaunch"&gt;App Builder&lt;/a&gt;. Sign up takes only a few seconds, and the resources can help make you the next app rockstar. And if you publish your app (for Windows Store or Windows Phone) between now and June 30th, you may be eligible for $100 per app (up to 10 apps) from the &lt;a href="http://aka.ms/KeepTheCashApps"&gt;Keep the Cash&lt;/a&gt; promotion.  &lt;p&gt;You can also join me for an upcoming &lt;a href="http://usdpe.ohours.org/devhammer"&gt;Office Hours&lt;/a&gt;, where I can provide 1:1 technical advice on building your app and getting it into the Windows Store.  &lt;p&gt;&lt;a href="http://devhammer.net/contact"&gt;Drop me a note&lt;/a&gt; if you're working on a Windows 8 app and have questions or need advice.&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/oCsPCjm4hCY" height="1" width="1"/&gt;</description><pubDate>Fri, 17 May 2013 16:19:53 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/friday-app-shout-out-hopper-bopper</guid><feedburner:origLink>http://devhammer.net:80/blog/friday-app-shout-out-hopper-bopper</feedburner:origLink></item><item><title>Building Back-end Data and Services for Windows 8 Apps: Authentication Tips and Tricks</title><link>http://feeds.devhammer.net/~r/devhammer/~3/SFqKDOLzCk0/building-back-end-data-and-services-for-windows-8-apps-authentication-tips-and-tricks</link><description>&lt;p&gt;In &lt;a href="http://bitly.com/bundles/devhammer/2"&gt;previous installments of this series&lt;/a&gt;, I've shown how you can quickly create REST-based services accessible via HTTP that allow you to easily store and retrieve data in a Windows Store app, using several different approaches including WCF Data Services, ASP.NET Web API, and the new Windows Azure Mobile Services. You can &lt;a href="http://bitly.com/bundles/devhammer/2"&gt;read all of the previous parts of the series here&lt;/a&gt;. I recommend reading the intro post and the post on Windows Azure Mobile Services, as well as &lt;a href="http://bit.ly/YdjEFv" target="_blank"&gt;the most recent installment covering the basics of authentication with mobile services&lt;/a&gt; at a minimum, so you're familiar with the games I'm using to demonstrate the concepts in the series, and with the basics of mobile services.&lt;/p&gt; &lt;h2&gt;MOAR Authentication!&lt;/h2&gt; &lt;p&gt;In the previous post, I showed you how easy it is to leverage one of several providers (Twitter, Facebook, Microsoft Accounts, and Google are currently supported) to provide authentication for your &lt;a href="http://www.windowsazure.com/en-us/develop/mobile/" target="_blank"&gt;Windows Azure Mobile Services&lt;/a&gt;-based apps. In this post, I want to cover a couple of related areas that are of interest. First, I'll show you how to enable persistent login for a mobile service, to simplify the login process for the user. And second,&amp;nbsp; I'll discuss how we can get additional information about users from the configured identity provider(s).&lt;/p&gt; &lt;h2&gt;Persistent Logins&lt;/h2&gt; &lt;p&gt;One thing I noticed about the default behavior of my Space Cadet game as coded in the previous post is that it requires the user to enter their username and password every time the game starts, regardless of whether they click the checkbox to indicate that the client should remember this information. Kind of annoying.&lt;/p&gt; &lt;p&gt;Fortunately, this is really easy to solve, and only requires two actions…one on the server, and one on the client.&lt;/p&gt; &lt;p&gt;On the server, we need to provide the mobile service with the package SID for the app. The process of obtaining the Package SID and configuring the mobile services is actually covered in &lt;a href="http://bit.ly/TnP5jU" target="_blank"&gt;my earlier post on adding push notifications to a mobile service&lt;/a&gt;, so if you've followed the steps outlined in that post, you'll already have this in place. To verify, open up your mobile service in the &lt;a href="http://www.windowsazure.com/" target="_blank"&gt;Windows Azure&lt;/a&gt; management portal, and click on the Push tab. You should see a value for the Package SID field, as shown in this screen grab from the push notifications post:&lt;/p&gt; &lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_A43A/PushTab_2.png"&gt;&lt;img title="PushTab" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="PushTab" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_A43A/PushTab_thumb.png" width="640" height="368"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Note that for the purposes of persistent login, only the Package SID is required.&lt;/p&gt; &lt;p&gt;Once the mobile service is properly configured for your app, the client-side change is even easier. Simply open the app, and find the call to the MobileServiceClient.login function, and add a second parameter to the call, with a value of "true" (no quotes), like so:&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;leaderboardClient.login(&lt;span class="str"&gt;"twitter"&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; (result) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   &lt;span class="rem"&gt;// remaining code omitted...&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
This parameter indicates that we want the app to persist the login (the mobile service refers to this as single sign-on), so the next time we call the login function, the user will not need to enter their credentials (though they will still see the UI for the WebAuthenticationBroker, though it will automatically disappear once authentication is complete). &lt;/p&gt;
&lt;p&gt;Essentially, we've done here is that by associating the app's Package SID to the mobile service, and adding the second parameter, we've enabled the use of HTTP cookies from our app to persist the login information, so our game now behaves essentially the same as if we'd authorized our app via a web browser. It's also important to note that this particular parameter of the login function is only applicable to Windows 8 clients.&lt;/p&gt;
&lt;p&gt;Now, if we fire up the game, and have already authenticated (and authorized our app to use the selected identity provider, in this case, Twitter), we'll see the WebAuthenticationBroker UI appear briefly, and will be automatically logged in. This functionality leverages the Windows 8 WebAuthenticationBroker's support for single sign-on (SSO). &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/jj856909.aspx" target="_blank"&gt;Check out this page on the Windows Developer Center&lt;/a&gt; for more information on how single sign-on works with the Web authentication broker.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;:&lt;/h4&gt;
&lt;p&gt;The mobile services documentation refers to the feature we're using as single sign-on, but conceptually, it's more of a persistent login, in that it enables the user to only provide their authentication credentials the first time the app is authorized with the configured identity provider.&lt;strong&gt; If you wish to provide single sign-on using the Microsoft Account of the logged in user of a Windows 8 app, see &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/live/hh826544.aspx" target="_blank"&gt;&lt;strong&gt;this article from the Live Connect Developer Center&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;I Need Moar Info!&lt;/h2&gt;
&lt;p&gt;The other thing that's less than ideal about our initial implementation of authentication against Twitter as an identity provider in the last post is that by default, the mobile service client library only provides access to the ID for the given identity provider. In the case of Twitter, this is the string "Twitter:[ID]" where ID is the unique identifier for the logged in user.&lt;/p&gt;
&lt;p&gt;In Space Cadet, one piece of information that the app tracks is the "Cadet Name". In Dave Isbitski's original game starter kit, this value is simply a user-entered field. And in my game leaderboard service, I use the Cadet Name along with the game name to uniquely identify a given leaderboard score. But as you might have guessed already, there's a problem. If the user can choose their own username, then there's the potential for more than one user to choose the same name, in which case, data might get overwritten.&lt;/p&gt;
&lt;p&gt;Once implementing login with Twitter as the identity provider, it would be pretty easy to solve the problem of uniqueness, simply by using the ID as the unique identifier, but in its current state, the playerName property of the game logic (in default.js) isn't settable from our Leaderboard code. So the first step in providing better integration with our logged in identity is to shift the game code to read and write to the Leaderboard player identity. Here's what I'll do…first, I'll modify the Leaderboard namespace to enable the game code to get the "playerName" variable:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;WinJS.Namespace.define(&lt;span class="str"&gt;"Leaderboard"&lt;/span&gt;, {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;font style="background-color: #ffff00"&gt;getPlayerName: getPlayerName,&lt;/font&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    setPlayerName: setPlayerName,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    init: init,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    addWin: incrementWins,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    addLoss: incrementLosses,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    addTie: incrementTies,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    updateScore: updateHighScore,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    getTopTenScores: getTopTenScores,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    getTopTenWins: getTopTenWinLossTie,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    leaderboardList: leaderboardList &lt;span class="rem"&gt;//,&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;});&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And create the getPlayerName function to return the property value:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; getPlayerName() {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; playerName;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I also need to modify the Leaderboard.init function so that it no longer requires the player name to be passed in, which I can do by simply commenting out a line of code:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; init(player, game) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; WinJS.Promise(&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;function&lt;/span&gt; (completed, error, progress) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (player) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                playerName = player;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                &lt;span class="rem"&gt;&lt;font style="background-color: #ffff00"&gt;// error("Player Name is required for initialization");&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (game) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                gameName = game;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                error(&lt;span class="str"&gt;"Game Name is required for initialization"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            &lt;span class="rem"&gt;// remaining code omitted for brevity&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And then we need one last change in Leaderboard.init, to set the playerName to the ID returned from the login:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// Login with Twitter, and don't process additional &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;// initialization code until the authentication is complete&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;leaderboardClient.login(&lt;span class="str"&gt;"twitter"&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; (result) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    userId = result.userId;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;font style="background-color: #ffff00"&gt;playerName = userId;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;// remaining code omitted for brevity&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then, in the game code, I'll update the initialization code to pull the game's playerName value from the leaderboard, once leaderboard initialization is complete:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// set or retrieve player name and initialize leaderboard&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;strike&gt;playerName = appdata.current.roamingSettings.values[&lt;span class="str"&gt;"playerName"&lt;/span&gt;];&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;strike&gt;playerName = !playerName ? &lt;span class="str"&gt;"Player1"&lt;/span&gt; : playerName;&lt;/strike&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;strike&gt;txtPlayerName.textContent = playerName;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Leaderboard.init(playerName, &lt;span class="str"&gt;"Space Cadet"&lt;/span&gt;).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;// any initialization dependent on leaderboard&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;font style="background-color: #ffff00"&gt;txtPlayerName.textContent = Leaderboard.getPlayerName();&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;},&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Of course, now that we're relying on the logged in identity, it would probably be a good idea to disable the code that can update the cadet name, but I'll leave that as an exercise for the reader.&lt;/p&gt;
&lt;p&gt;But even with the changes we've made, that only solves half of our problem, as this is what I see when I'm playing the game after logging in:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_A43A/TwitterID_2.png"&gt;&lt;img title="TwitterID" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TwitterID" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_A43A/TwitterID_thumb.png" width="410" height="166"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is fine in terms of uniqueness, but we still want to be able to display the username, which is something that the mobile service client does not provide. So it's back off to the server we go…&lt;/p&gt;
&lt;p&gt;Ideally, I'd like to use the Twitter screen name of the logged in user for the display name of the player. I could do that from the client side code, but I'd need to do it every time I launched the app, which ends up being a fair number of extra calls over the life of the app. Instead, I can grab the screen name on the server and ensure that when a new score record is inserted, we add a new column called playerDisplayName, and populate it with the screen_name property, which we can get from Twitter's Users API (note that I'm using the v1 API, which is being sunsetted, to keep things simple…once the v1 API is retired, you'll need to add code to handle the OAuth request process as well, but that's outside the scope of this post). Thanks to the &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj631641.aspx" target="_blank"&gt;server-side support for making HTTP requests&lt;/a&gt;, this is simple to do:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; insert(item, user, request) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    item.playerDisplayName = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; id = user.userId.substring(user.userId.indexOf(&lt;span class="str"&gt;':'&lt;/span&gt;) + 1);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; url = &lt;span class="str"&gt;'https://api.twitter.com/1/users/show.json?user_id='&lt;/span&gt; + id;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; httpRequest = require(&lt;span class="str"&gt;'request'&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    httpRequest(url, &lt;span class="kwrd"&gt;function&lt;/span&gt; (err, resp, body) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (err || resp.statusCode !== 200) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            request.respond(500, body);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                item.playerDisplayName = JSON.parse(body).screen_name;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                console.log(&lt;span class="str"&gt;"updated score record for: "&lt;/span&gt; + item.playerDisplayName);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                request.execute();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            } &lt;span class="kwrd"&gt;catch&lt;/span&gt; (ex) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                request.respond(500, ex);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    });&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(My thanks to &lt;a href="https://twitter.com/goldshtn" target="_blank"&gt;Sasha Goldshtein&lt;/a&gt; for &lt;a href="http://blogs.microsoft.co.il/blogs/sasha/archive/2013/04/08/windows-azure-mobile-services-quot-rent-a-home-quot-sample-part-3-authentication.aspx" target="_blank"&gt;this blog post&lt;/a&gt; which included the code which I've modified slightly for the above example)&lt;/p&gt;
&lt;p&gt;The code is pretty straightforward, and will run each time a new score record is inserted. It grabs the userId(which will contain the ID of the logged in user) from the user object, parses it to get just the numeric portion following the ":", and then creates the API request URL. Next, the code creates an HTTP request object, and executes the request, passing in the API request URL, and a callback function. If the request succeeds, the code parses the response and sets item.playerDisplayName to the screen_name property value, then logs the request status, and executes the insert request. As long as dynamic schema is enabled for the mobile service (the default), the code above will add the playerDisplayName column even if it does not yet exist.&lt;/p&gt;
&lt;p&gt;Once the value has been stored at the server, it only takes a few tweaks on the client to bring everything together. First, we'll add a variable named playerDisplayName to leaderboardWAMS.js to store the new value:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; leaderboardClient, gameScoresTable, leaderboardList, playerName, &lt;font style="background-color: #ffff00"&gt;playerDisplayName&lt;/font&gt;, gameName, diag, channel, userId;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Next, we'll modify the login code inside Leaderboard.init to set the variable's value, based on the value returned from the server:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;leaderboardClient.login(&lt;span class="str"&gt;"twitter"&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; (result) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    userId = result.userId;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    playerName = userId;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="rem"&gt;// Replace "gamescore" with your table name, if different&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    gameScoresTable = leaderboardClient.getTable(&lt;span class="str"&gt;'gamescore'&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="rem"&gt;// make sure that the score table has at least one record for the player name / game name combo&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    gameScoresTable.where({ player: playerName, game: gameName })&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        .read().done(&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;function&lt;/span&gt; (results) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (results.length == 0) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="rem"&gt;// initialize table&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; gameScore = {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                game: gameName, player: playerName, score: 0, wins: 0, losses: 0, ties: 0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            };&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            gameScoresTable.insert(gameScore).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; (insertResults) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                &lt;font style="background-color: #ffff00"&gt;playerDisplayName = insertResults.playerDisplayName;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                &lt;font style="background-color: #ffff00"&gt;completed();&lt;/font&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            });&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;font style="background-color: #ffff00"&gt;playerDisplayName = results[0].playerDisplayName;&lt;/font&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            &lt;font style="background-color: #ffff00"&gt;completed();&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    },&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    &lt;span class="kwrd"&gt;function&lt;/span&gt; (e) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        showMessage(e.message);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;    });&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;});&lt;/pre&gt;&lt;/div&gt;






&lt;p&gt;Note that since the gameScoresTable.insert method is async, it returns a Promise object with the results of the insert operation. If a score record already exists for this player, the gameScoresTable.where method will have already returned it, so we can simply grab the playerDisplayName property from the existing object.&lt;/p&gt;
&lt;p&gt;Last, but not least, we need to update the getPlayerName function to return the new playerDisplayName property:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; getPlayerName() {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; playerDisplayName;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now, if I fire up the game, the login code executes, and this is what I see during game play:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_A43A/TwitterScreenName_2.png"&gt;&lt;img title="TwitterScreenName" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TwitterScreenName" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_A43A/TwitterScreenName_thumb.png" width="317" height="188"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Because the code to get the screen name is on the server, it runs only when the record is first inserted. Each subsequent run of the app will locate the existing record based on the game name and the Twitter ID, which provide a reliable unique identifier for the score record, and the retrieved record will include the playerDisplayName information, which we can use as a display value for the player.&lt;/p&gt;
&lt;h2&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;In this post, I've shown you how I quick and easy it is to authenticate users against a third-party provider using Windows Azure Mobile Services. Once you've configured the proper app credentials, the mobile services client takes care of all the heavy lifting of making the appropriate API calls for the app platform you're working with, and returns the user ID and the auth token from the configured service. 
&lt;p&gt;You can &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj710105.aspx"&gt;explore more about authentication in Windows Azure Mobile Services here&lt;/a&gt;. 
&lt;h2&gt;For Review&lt;/h2&gt;&lt;a name="review"&gt;&lt;/a&gt;
&lt;p&gt;If you haven't already, I highly recommend that you read the rest of the posts in this series: 
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://bit.ly/Win8DataSvc"&gt;Building Data and Services for Windows 8 Apps: Overview&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/TripDM"&gt;Building Back-end Data and Services for Windows 8 Apps: OData - Part 1&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/UZ9Uy7"&gt;Building Back-end Data and Services for Windows 8 Apps: OData - Part 2&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/TEBoHA"&gt;Building Back-end Data and Services for Windows 8 Apps: ASP.NET Web API&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/12oegCY"&gt;Building Back-end Data and Services for Windows 8 Apps: Windows Azure Mobile Services&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/TnP5jU"&gt;Building Back-end Data and Services for Windows 8 Apps: Adding Push Notifications&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/YdjEFv" target="_blank"&gt;Building Back-end Data and Services for Windows 8 Apps: Adding Authentication&lt;/a&gt;
&lt;li&gt;Building Back-end Data and Services for Windows 8 Apps: Authentication Tips and Tricks (this post) &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;What's Next?&lt;/h2&gt;
&lt;p&gt;Given how far we've come with this series, I may be ready to put the wraps on it. But if you readers have topics you'd like to see covered, please &lt;a href="http://devhammer.net/contact" target="_blank"&gt;drop me a note&lt;/a&gt;, and I'll be happy to add to the list. 
&lt;p&gt;While you're waiting for the next installment, why not sign up for &lt;a href="http://bit.ly/gd30tolaunch"&gt;App Builder&lt;/a&gt;? There are lots of great resources available for building Windows 8 apps (and now for Windows Phone 8 as well), including &lt;a href="http://www.generationapp.com/frameworks/#fbid=N7fqwpqoBQU"&gt;new information on a variety of app frameworks&lt;/a&gt; from partners that make it fast and easy to build apps and games for Windows 8. It's free, and you control how often updates are sent, so there's no good reason to pass it up. &lt;a href="http://bit.ly/gd30tolaunch"&gt;Sign up now&lt;/a&gt;!&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/SFqKDOLzCk0" height="1" width="1"/&gt;</description><pubDate>Tue, 14 May 2013 02:27:55 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/building-back-end-data-and-services-for-windows-8-apps-authentication-tips-and-tricks</guid><feedburner:origLink>http://devhammer.net:80/blog/building-back-end-data-and-services-for-windows-8-apps-authentication-tips-and-tricks</feedburner:origLink></item><item><title>Upcoming Events for May 13th, 2013</title><link>http://feeds.devhammer.net/~r/devhammer/~3/LOM4WUARpeU/upcoming-events-for-may-13th-2013</link><description>&lt;p&gt;Here are the events listed in &lt;a href="http://www.communitymegaphone.com/"&gt;Community Megaphone&lt;/a&gt; for the next couple of weeks for the Mid-Atlantic area, as well as webcasts of interest:&lt;/p&gt; &lt;h2&gt;DC&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6467"&gt;Developing Games for the Windows Store with HTML5 and JavaScript&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, May 21, 2013 6:30 PM, Washington, DC&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2400+N+Street+NW%2c+Washington%2c+DC&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Developing Games for the Windows Store with HTML5 and JavaScript on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6467&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Join Microsoft Technical Evangelist G. Andrew Duthie for a tour of the tools and frameworks you can use to build awesome games for the Windows Store using HTML and JavaScript. From game libraries like ImpactJS and CreateJS, to frameworks like Scirra?s Construct 2, there are many ways to create new games, or port existing games to the Windows Store. Leverage your existing web skills to build great apps, and get them in the Windows Store. And if you publish by June 30th, you may qualify for the Keep the Cash promotion. &lt;br&gt;&lt;br&gt;Speaker Bio: &lt;br&gt;Andrew Duthie, aka devhammer, is a Technical Evangelist for Microsoft's Mid-Atlantic States district, where he provides support and education for developers working with the Microsoft development platform. In addition to his work with Microsoft, Andrew is the author of several books on ASP.NET and web development, and has spoken at numerous industry conferences from VSLive! and ASP.NET Connections, to Microsoft's Professional Developer Conference (PDC) and Tech-Ed. Andrew has been participating in the user group community since way back in 1997, when one of his co-workers dragged him out to the Internet Developers User Group in Tyson's Corner, VA, and he's been hooked ever since. &lt;br&gt;Andrew is also the creator and developer of Community Megaphone, a site designed for promoting and finding developer community events. &lt;br&gt;In addition to his work in software development, Andrew has enjoyed some recent forays into the world of hardware experimentation, including developing for Kinect and .NET Gadgeteer, using his newly-formed hardware chops to do everything from blinking LEDs and making strange noises, to flying a helicopter with his bare hands. Andrew can be reached through his blog at &lt;a href="http://devhammer.net/"&gt;http://devhammer.net/&lt;/a&gt;. You can also &lt;a href="http://twitter.com/devhammer" target="_blank"&gt;follow Andrew on twitter&lt;/a&gt;. &lt;br&gt;&lt;br&gt;Event venue: Heart House &lt;br&gt;&lt;br&gt;Hosted by: DC .Net User Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6467"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6467"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6467.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;MD&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6445"&gt;Game (and App) Jam, Windows 8 Style Week 1: Windows Store App and Game Dev Landscape&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, May 14, 2013 6:00 PM, Hunt Valley, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=118+Shawan+Road%2c+Hunt+Valley%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game (and App) Jam, Windows 8 Style Week 1: Windows Store App and Game Dev Landscape on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6445&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; NOTE: Please RSVP at &lt;a href="http://aka.ms/Win8JamWk1"&gt;http://aka.ms/Win8JamWk1&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;Join Microsoft Technical Evangelist G. Andrew Duthie as we kick off a 3 week workshop series designed to help you get your app or game in the Windows Store. In week 1, we'll look at the tools you can use to build apps and games for the Windows Store, and there will be hands-on time available after the presentation to start working on your apps and games with guidance from Microsoft experts. &lt;br&gt;Don't forget to reserve your spot for Game (and App) Jam, Windows 8 Style Week 2 and Week 3! &lt;br&gt;&lt;br&gt;Then join us for the App Judging at CMAP Code Camp, on June 1st! We'll be delivering sessions on Windows Store development, including tips and tricks for getting through the certification process. Technical Evangelist G. Andrew Duthie will be holding office hours for folks with questions, and at the end of the day the code camp will hold an app competition, where all attendees who show off their app can compete for some great prizes, including a grand prize of a Surface Pro! Prerequisites: In order to participate in the app contest or any of the hands-on activities, you must bring a laptop with Windows 8 along with Visual Studio 2012 (the Express for Windows 8 version will work fine, or Pro or above will also work). &lt;br&gt;&lt;br&gt;Event venue: The Greene Turtle &lt;br&gt;Hosted by: DC Windows App Developers&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6445"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6445"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6445.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6446"&gt;Game (and App) Jam Windows 8 Style Week 2: Building Apps and Games with HTML5 and JS&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 6:00 PM, Hunt Valley, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=118+Shawan+Road%2c+Hunt+Valley%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game (and App) Jam Windows 8 Style Week 2: Building Apps and Games with HTML5 and JS on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6446&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; NOTE: Please RSVP at &lt;a href="http://aka.ms/Win8JamWk2"&gt;http://aka.ms/Win8JamWk2&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;In the week 2 workshop, we'll look at using the native support for HTML5 and JavaScript to build apps and games, including showing how you can port existing games built with 3rd party frameworks such as ImpactJS, and how you can leverage 3rd party middleware such as Scirra's Construct 2 to quickly build great games and export them for Windows Store and/or Windows Phone 8. There will be hands-on time available after the presentation to work on your apps and games. Attendees wishing to use Construct 2 should download the latest release from Scirra.com. &lt;br&gt;&lt;br&gt;Don't forget to reserve your spot for Game (and App) Jam, Windows 8 Style Week 3! &lt;br&gt;&lt;br&gt;Then join us for the App Judging at CMAP Code Camp, on June 1st! We'll be delivering sessions on Windows Store development, including tips and tricks for getting through the certification process. Technical Evangelist G. Andrew Duthie will be holding office hours for folks with questions, and at the end of the day the code camp will hold an app competition, where all attendees who show off their app can compete for some great prizes, including a grand prize of a Surface Pro! Prerequisites: In order to participate in the app contest or any of the hands-on activities, you must bring a laptop with Windows 8 along with Visual Studio 2012 (the Express for Windows 8 version will work fine, or Pro or above will also work).  &lt;br&gt;&lt;br&gt;Event venue: The Greene Turtle &lt;br&gt;Hosted by: DC Windows App Developers&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6446"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6446"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6446.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6470"&gt;BmoreJS&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 6:00 PM, Baltimore, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1020+Hull+Street%2c+Baltimore%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View BmoreJS on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6470&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Location: Advertising.com on the Under Armor campus &lt;br&gt;Advertising.com has offered their space to us for our meetups, it's located in the Ivory Building. &lt;br&gt;The Ivory building is at the end of Haubert St in Locust Point. The area is served by the Charm City Circulator "Banner Route", as well as the MTA #1 bus. You can also take the water taxi over from Fells Point (landing #8) to landing #10. Note that the water taxi service ends at 7pm, and the Circulator ends at 8pm prior to May 1. &lt;br&gt;If you cycle to the meetup, feel free to bring your bike inside, or you can lock up on one of the racks just outside the building. &lt;br&gt;Refreshments &lt;br&gt;Food will be provided - watch this space a few days beforehand. Beverages include water, juice, tea and sometimes beer. &lt;br&gt;&lt;br&gt;See Meetup site for additional info. &lt;br&gt;&lt;br&gt;Event venue: Advertising.com training room - Ivory Building &lt;br&gt;Hosted by: The Baltimore JavaScript Users Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6470"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6470"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6470.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;Online&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6354"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 15, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6354"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6354.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6389"&gt;PASS DataArch VC presents - Designing a Global Scaled-out Architecture by Robert Davis&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 16, 2013 12:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; Summary: How do you deliver a public-facing website on a global scale? To be truly competitive in a global market, you need to deliver a high performing website no matter what part of the world the user is in. Scaling out websites to multiple locations is easy, but it doesn’t really provide the performance required if the website has to get data from halfway around the world. This session will look at the challenges to scaling out the entire application to meet global performance requirements and how we addressed these challenges for an existing web application. &lt;br&gt;&lt;br&gt;About Robert: Robert is a SQL Server 2008 Certified Master and an experienced Database Administrator, SQL Server evangelist, speaker, writer, and trainer. He has worked with SQL Server for 13+ years, most recently as Chief SQL Server Evangelist for Idera Software. Previously he served as PM for the SQL Server Certified Master Program at Microsoft Learning, and as a production DBA at Microsoft. Robert helped found the PASS Data Architecture Virtual Chapter and was co-author of Pro SQL Server 2008 Mirroring &lt;br&gt;&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6389"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6389.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6235"&gt;Developer Tools for SharePoint 2010&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 16, 2013 5:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; With the release of Visual Studio 2012 along with SharePoint in a narrow time frame, many tools are now available to make custom development in SharePoint easier. Leveraging the same knowledge from prior versions of SharePoint, developers can now easily create tasks once known to be difficult. With features like visual designers, packaging and deployment support, project, and item templates make SharePoint development simpler and faster.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6235"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6235.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;PA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6431"&gt;Philly Appathon Workshop&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 5:00 PM, Malvern, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=45+Liberty+Blvd%2c+Malvern%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Appathon Workshop on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6431&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Philly Appathon Workshops are part of the Philly Appathon contest and run through the end of June. Join us each Wednesday in the Microsoft Malvern Office for a session on app development as well as open lab time. This week's session will cover tips and tricks on designing a great Windows Store App&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6431"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6431"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6431.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6460"&gt;Game Development for Beginners&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 23, 2013 10:00 AM, Pittsburgh, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=30+Isabella+St%2c+2nd+floor%2c+Pittsburgh%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game Development for Beginners on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6460&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; In this beginner level workshop we will cover the basics of game design, programming and publication. We will build a casual game and publish it to the Windows Store. This workshop is great for students, hobbyists and professional developers who want to learn the basics of game development and publish their first app to the store as no programming skills are required!&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6460"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6460"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6460.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;VA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6337"&gt;Illuminating Lucene.Net: Bringing Full-Text Search to Light&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, May 14, 2013 6:30 PM, Arlington, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=4301+Wilson+Blvd%2c+Arlington%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Illuminating Lucene.Net: Bringing Full-Text Search to Light on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6337&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Tired of shredding C# objects to shove them into a SQL database? Are you frustrated because SQL full-text search isn't providing the features you need? Curious about the search technology used by web sites like StackOverflow and NoSQL databases like RavenDB? Come learn about Lucene.Net, one of the best-kept secrets in the .NET ecosystem. &lt;br&gt;By the way, Lucene.Net is the C# version of the Apache Lucene full-text indexing engine and document database. &lt;br&gt;Speaker Bio: &lt;br&gt;&lt;br&gt;W. Dean Thrasher is a DC ALT.NET member who has spent most of the last decade working with relational databases and large scale information management systems. The last two web content management systems he built for different clients relied upon Lucene.Net, and he's eager to share his enthusiasm for it and experience with it. &lt;br&gt;&lt;br&gt;Event venue: NRECA Building &lt;br&gt;Hosted by: DC ALT.NET&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6337"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6337"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6337.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6427"&gt;Introduction to Enyo JS Cross-platform Mobile and Desktop App Development Tool&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 15, 2013 6:30 PM, McLean, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=8283+Greensboro+Drive%2c+McLean%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Introduction to Enyo JS Cross-platform Mobile and Desktop App Development Tool on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6427&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Yes another JavaScript framework! Come out to hear Roy Sutton give us an introduction to the Enyo. Enyo is designed to make native-quality apps on both the mobile and desktop devices. One of its strengths is its component model. In this talk you will learn the ins and outs of Enyo components, including how their events, properties and inheritance model make it easy to create well-structured, maintainable apps. You will be introduced to the components that are included in the base Enyo library as well as the optional components from the Onyx widget set and the Layout library. A good time will be had by all. &lt;br&gt;We are joining NoVA Web Develoment User Group, a new event partner who will be hosting this event at Booz Allen Hamilton. &lt;br&gt;&lt;br&gt;Bio: &lt;br&gt;Roy Sutton is the Community Manager for LG's Open webOS project. He is the author of Enyo: Up and Running from O'Reilly Media and a contributor to the Enyo project. He has been a mobile developer for longer than the term has existed. You can find him on twitter as @Pre101 &lt;br&gt;&lt;br&gt;Event venue: Booz Allen Hamilton &lt;br&gt;Hosted by: DC Mobile App Cross Platform Development Authority&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6427"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6427"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6427.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6298"&gt;NoVA UX May Meetup - Microsoft Design; Usability Testing Demystified&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 15, 2013 7:00 PM, Vienna, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1595+Spring+Hill+Road%2c+Suite+300%2c+Vienna%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View NoVA UX May Meetup - Microsoft Design; Usability Testing Demystified on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6298&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; This month's meetup with have two speakers: first, G. Andrew Duthie will talk about Microsoft design and how Microsoft is building a consistent vision across mobile devices and desktop screens. Then, Bill Killam will talk about demystifying usability testing. Here are more details: &lt;br&gt;Microsoft Design - Building a Consistent Vision Across Devices and Screens &lt;br&gt;G. Andrew Duthie, Technical Evangelist, Microsoft Corporation &lt;br&gt;Abstract: From Windows 8 to Windows Phone, and even on the XBOX 360, Microsoft has built a consistent design vision across multiple platforms and properties. Hear from Microsoft Technical Evangelist G. Andrew Duthie how design has become increasingly important and prominent at Microsoft over the years, and see the progression that has led to the Microsoft design language implemented in Windows 8, Windows Phone 8, and XBOX 360, and which offers to app developers and designers a level of UX consistency across platforms not available anywhere else. &lt;br&gt;--- &lt;br&gt;Details about Bill's talk coming soon... &lt;br&gt;&lt;br&gt;Event venue: AddThis HQ &lt;br&gt;Hosted by: NoVA UX&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6298"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6298"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6298.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6397"&gt;RVNUG Special Event: Jeff Barr's Amazon Web Services User Group Road Trip &lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 16, 2013 6:30 PM, Roanoke , VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=207+Bullitt+Ave+SE%2c+Roanoke+%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RVNUG Special Event: Jeff Barr" src="http://communitymegaphone.com/MapTile.ashx?id=6397&amp;amp;w=200&amp;amp;h=200" user maps? Bing on Trip Road Group Services Web Amazon s&gt;&lt;/a&gt; NOTE START TIME is 6:30 PM and Please Register. &lt;br&gt;Chief Amazon Web Services (AWS) Evangelist Jeff Barr will make a stop in Roanoke as part of his 13 city, 5500 mile speaking tour with a presentation designed to introduce AWS and cloud computing to those who don’t know much about it, and to discuss the latest and great AWS developments for those who do. Topics to be covered include the latest EC2 instance types, the Relational Database Service, Amazon Glacier, Amazon Redshift, and the Virtual Private Cloud. &lt;br&gt;&lt;br&gt;Please come armed with lots of questions; Jeff enjoys the interactive part of user group presentations. &lt;br&gt;&lt;br&gt;Jeff holds a BS degree in Computer Science from American University and is a part-time graduate student at the University of Washington. He’s father to 5 children and grandfather to 1. He’s a 10 year veteran of Amazon.com and has also worked on the Visual Studio team at Microsoft and at several startups.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6397"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6397"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6397.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6469"&gt;Office Hours for Windows Store app developers - G. Andrew Duthie&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Friday, May 17, 2013 1:00 PM, McLean, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1961+Chain+Bridge+Rd%2c+McLean%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Office Hours for Windows Store app developers - G. Andrew Duthie on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6469&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Do you have an app in progress, and need to get a little help with a technical or design question? &lt;br&gt;Or just need a little quiet time to focus on coding? &lt;br&gt;Please join Microsoft Technical Evangelist G. Andrew Duthie for Office Hours. There are a couple of ways to participate: &lt;br&gt;&lt;br&gt;Visit &lt;a href="http://usdpe.ohours.org/officehours/36614"&gt;http://usdpe.ohours.org/officehours/36614&lt;/a&gt; and reserve a slot for your specific app needs. This will ensure that you get specific 1:1 time. &lt;br&gt;Drop by any time during the office hours for a (relatively) quiet spot to work on your app. Please RSVP via meetup so we have an idea who's coming. &lt;br&gt;&lt;br&gt;We want to help you remove any technical blocks to finishing your app and getting it into the Windows Store. &lt;br&gt;Publishing apps can be rewarding...check out Keep the Cash (http://aka.ms/KeepTheCashApps). &lt;br&gt;&lt;br&gt;Event venue: Microsoft Store, in Tysons Corner Mall &lt;br&gt;Hosted by: DC/Baltimore Windows App Developers&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6469"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6469"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6469.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6421"&gt;RADNUG May Meeting&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, May 21, 2013 6:30 PM, Fredericksburg, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=11905+Bowman+Drive%2c+%23501+%2c+Fredericksburg%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RADNUG  May Meeting on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6421&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; We are pleased to announce that Leland Holmquest will be our special guest speaker at our May meeting. &lt;br&gt;&lt;br&gt;Leland will be talking about Project Lily: Kinect enabled virtual assistant &lt;br&gt;&lt;br&gt;Project Lily started as a class project (CS895: Software for Context-Aware Multiuser Systems) at George Mason University. It has since been the basis for other class projects. Lily is intended to be a virtual assistant, trying to closely mimic human behavior and interactions. The Kinect for Windows sensor provides the "eyes and ears" for Lily. The talk will demonstrate some of Lily's capabilities, show some of the design and code behind Lily and briefly explain future intentions. &lt;br&gt;&lt;br&gt;About Leland: &lt;br&gt;Leland Holmquest is a Senior Consultant at Microsoft supporting the US Army. Prior to Microsoft, he was a Software Engineer at the Naval Surface Warfare Center Dahlgren. He earned his Bachelor and Master's Degrees in Information Technology from American InterContinental University and is currently working on a Doctorate degree at Northcentral University. He has a regular column on MSDN Magazine Online and frequently blogs at lelandholmquest.wordpress.com. &lt;br&gt;And his crowning achievement, he is the proud father of two daughters. &lt;br&gt;&lt;br&gt;RADNUG meets at the SimVentions office in Fredericksburg. Thank you to SimVentions for the use of their facility for our group!&lt;br&gt; &lt;div style="text-align: left; clear: both"&gt;&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6421"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6421"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6421.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/div&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6436"&gt;Windows Azure Infrastructure Services Training Day&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 22, 2013 9:00 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=12012+Sunset+Hills+Road%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Windows Azure Infrastructure Services Training Day on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6436&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Join us for this interactive training event to showcase and build proof of concepts using the newly released Windows Azure Infrastructure Services™ (IaaS). This is your opportunity to dive into different scenarios for ‘on-demand’ infrastructure with a Microsoft technical expert.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6436"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6436"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6436.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6459"&gt;Game Development for Beginners&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Saturday, May 25, 2013 10:00 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=12012+Sunset+Hills+Rd%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Game Development for Beginners on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6459&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; In this beginner level workshop we will cover the basics of game design, programming and publication. We will build a casual game and publish it to the Windows Store. This workshop is great for students, hobbyists and professional developers who want to learn the basics of game development and publish their first app to the store as no programming skills are required!&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6459"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6459"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6459.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;  &lt;p&gt;Want your events listed? You can &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx"&gt;add them here.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at &lt;a href="http://www.communitymegaphone.com/API.aspx"&gt;http://www.communitymegaphone.com/API.aspx&lt;/a&gt;. You can also &lt;a href="http://devhammer.net/contact"&gt;email me&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/LOM4WUARpeU" height="1" width="1"/&gt;</description><pubDate>Mon, 13 May 2013 15:32:35 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/upcoming-events-for-may-13th-2013</guid><feedburner:origLink>http://devhammer.net:80/blog/upcoming-events-for-may-13th-2013</feedburner:origLink></item><item><title>Windows Store App Template to Live Data in 3 Easy Steps</title><link>http://feeds.devhammer.net/~r/devhammer/~3/-YQCpIyZsq0/windows-store-app-template-to-live-data-in-3-easy-steps</link><description>&lt;p&gt;One of the things that I like about building Windows Store apps using Visual Studio 2012 is the availability of several rich and useful templates. One of my favorites is the Grid App template, which demonstrates how to build an app with a hub page listing grouped items in a ListView control, a group details page, listing information about each group, and an item details page, for information about specific items.&lt;/p&gt; &lt;p&gt;I chose to use the Grid app template in my &lt;a href="https://github.com/apimash/StarterKits/tree/master/APIMASH_MeetupPOI_StarterKit" target="_blank"&gt;MeetupPOI Starter Kit&lt;/a&gt; for my team's API Mashup Starter Kits collection. You can &lt;a href="http://apimash.github.io/StarterKits/" target="_blank"&gt;download the whole set of starter kits here&lt;/a&gt;, or &lt;a href="https://github.com/apimash/StarterKits" target="_blank"&gt;browse our Github site&lt;/a&gt; to grab individual starter kits. The starter kits are a work in progress, but each demonstrates the use of one or more APIs in a Windows Store app, and there are kits for both XAML/C# and HTML/JavaScript available. The remainder of the post discusses the first step in creating the starter kit, moving from sample data to live data from an API, in my case, the Meetup.com API.&lt;/p&gt; &lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 10px 0px 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="left" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/image_thumb.png" width="268" height="151"&gt;&lt;/a&gt;The Grid app template works out of the box, thanks to the use of some simple sample data, which is created dynamically by the file data.js. This provides a nice example of abstracting the actual data functionality from your markup and script for your particular page, which is a good practice to follow.&lt;/p&gt; &lt;p&gt;One of the advantages of the abstraction provided by data.js is that you can go from sample data to live data with a few simple steps, thanks in part to the dynamic nature of JavaScript.&lt;/p&gt; &lt;p&gt;The data.js file may seem a little tricky to understand at first, so it may be worthwhile to take a look at some of the important points in data.js, and explain what they do.&lt;/p&gt; &lt;h2&gt;Understanding Data.js&lt;/h2&gt; &lt;h2&gt;&lt;/h2&gt; &lt;p&gt;Some of the functions in data.js are pretty straightforward. For example, towards the end of the file, you'll find a function called generateSampleData which, unsurprisingly, generates sample data as JavaScript objects, first creating an object representing the groups, then creating an object representing the items, associating each of the items with a particular group. So far, so good.&lt;/p&gt; &lt;p&gt;But how does generateSampleData get called? Well, like many of the built-in JavaScript files in the app templates you'll use with Visual Studio, this file uses the immediately invoked function expression pattern, like so:&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;(&lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   &lt;span class="rem"&gt;// code in here is executed when the JavaScript file is loaded&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;})();&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;

&lt;p&gt;So at the time that the app loads data.js (which is referenced in default.html, which is the first page loaded by the app), the code in data.js creates a new WinJS.Binding.List object (which is the object used to bind data to a ListView control), sets up functions for grouping the items, and then calls generateSampleData, and then uses forEach to iterate over the resulting JavaScript data, and adding each item to the binding list.&lt;/p&gt;
&lt;p&gt;Once that's done, the data is ready to go. Because all this code is inside the IIFE function, it's not visible to the outside world by default, so the next section of code takes care of that, by setting up a namespace and providing public names by which the grouped items, the groups, and various helper functions, can be accessed from outside data.js:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;WinJS.Namespace.define(&lt;span class="str"&gt;"Data"&lt;/span&gt;, {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    items: groupedItems,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    groups: groupedItems.groups,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    getItemReference: getItemReference,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    getItemsFromGroup: getItemsFromGroup,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    resolveGroupReference: resolveGroupReference,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    resolveItemReference: resolveItemReference&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;});&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For the ListView control on the main page of the grid app template (groupedItems.html), the ListView is connected to the data via the following line from groupeditems.js:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;listView.itemDataSource = Data.items.dataSource;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Bringing in Live Data&lt;/h2&gt;
&lt;p&gt;So how hard (or easy) is it to bring in live data with as little disruption as possible to the rest of the codebase? Pretty easy, it turns out, and I'll show you, using the &lt;a href="http://www.meetup.com/meetup_api" target="_blank"&gt;Meetup.com API&lt;/a&gt; (you'll need to &lt;a href="http://www.meetup.com/meetup_api/key/" target="_blank"&gt;get your own API key&lt;/a&gt; if you want to try this).&lt;/p&gt;
&lt;p&gt;We're going to modify the existing data.js, so if you want to compare the two later, you may want to make a copy of the file before modifying it. Of course, if you've not done so already, you should start by opening Visual Studio 2012 (the free Express version for Windows 8 apps will do fine), and creating a new app based on the Grid app template.&lt;/p&gt;
&lt;p&gt;Follow these steps to bring in live data from the Meetup.com API:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open up data.js and delete lines 10-14 (the code that calls generateSampleData and iterates over the results):&lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;strike&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="rem"&gt;// TODO: Replace the data with your real data.&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="rem"&gt;// You can add data from asynchronous sources whenever it becomes available.&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    generateSampleData().forEach(&lt;span class="kwrd"&gt;function&lt;/span&gt; (item) {&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        list.push(item);&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    });&lt;/strike&gt;&lt;/pre&gt;&lt;/div&gt;and lines 57-125 (the generateSampleData function itself…some code truncated or omitted for brevity):&lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;strike&gt;    &lt;span class="rem"&gt;// Returns an array of sample data that can be added to the application's&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;    &lt;span class="rem"&gt;// data list. &lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;    &lt;span class="kwrd"&gt;function&lt;/span&gt; generateSampleData() {&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; itemContent = &lt;span class="str"&gt;"&amp;lt;p&amp;gt;Curabitur class..."&lt;/span&gt;;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; groupDescription = &lt;span class="str"&gt;"Group Description: Lorem ipsum ..."&lt;/span&gt;;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;&amp;nbsp;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="rem"&gt;// These three strings encode placeholder images. You will want to set the&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;        &lt;span class="rem"&gt;// backgroundImage property in your real data to be URLs to images.&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; darkGray = &lt;span class="str"&gt;"data:image/png;base64,iVBORw0KG..."&lt;/span&gt;;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; lightGray = &lt;span class="str"&gt;"data:image/png;base64,iVBORw0KG..."&lt;/span&gt;;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; mediumGray = &lt;span class="str"&gt;"data:image/png;base64,iVBORw0KG..."&lt;/span&gt;;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;&amp;nbsp;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="rem"&gt;// Each of these sample groups must have a unique key to be displayed&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;        &lt;span class="rem"&gt;// separately.&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; sampleGroups = [&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;            { key: &lt;span class="str"&gt;"group1"&lt;/span&gt;, title: &lt;span class="str"&gt;"Group Title: 1"&lt;/span&gt;, subtitle: &lt;span class="str"&gt;"Group Subtitle: 1"&lt;/span&gt;, backgroundImage: darkGray, ... },&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;            &lt;span class="rem"&gt;/// code omitted...&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;            { key: &lt;span class="str"&gt;"group6"&lt;/span&gt;, title: &lt;span class="str"&gt;"Group Title: 6"&lt;/span&gt;, subtitle: &lt;span class="str"&gt;"Group Subtitle: 6"&lt;/span&gt;, backgroundImage: darkGray, ... }&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        ];&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;&amp;nbsp;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="rem"&gt;// Each of these sample items should have a reference to a particular&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;        &lt;span class="rem"&gt;// group.&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; sampleItems = [&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;            { group: sampleGroups[0], title: &lt;span class="str"&gt;"Item Title: 1"&lt;/span&gt;, subtitle: &lt;span class="str"&gt;"Item Subtitle: 1"&lt;/span&gt;, ... backgroundImage: lightGray },&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;            &lt;span class="rem"&gt;/// code omitted...&lt;/span&gt;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;            { group: sampleGroups[5], title: &lt;span class="str"&gt;"Item Title: 8"&lt;/span&gt;, subtitle: &lt;span class="str"&gt;"Item Subtitle: 8"&lt;/span&gt;, ... backgroundImage: lightGray }&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        ];&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;&amp;nbsp;&lt;/strike&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;strike&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; sampleItems;&lt;/strike&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strike&gt;    }&lt;/strike&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;
&lt;li&gt;Add a function at the end of data.js (just before the very last line) called getUpcomingMeetups, like so:&lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; getUpcomingMeetups() {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    meetupUrl = &lt;span class="str"&gt;"http://api.meetup.com/2/open_events?text_format=plain"&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;and_text=False"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;limited_events=False"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;desc=False"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;offset=0"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;status=upcoming"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;country=us"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;sign=true"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;city="&lt;/span&gt; + [CITY_FOR_SEARCH]&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;state="&lt;/span&gt; + [STATE_FOR_SEARCH]&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;page="&lt;/span&gt; + &lt;span class="str"&gt;"200"&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;key="&lt;/span&gt; + [YOUR_MEETUP_KEY]&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        + &lt;span class="str"&gt;"&amp;amp;radius="&lt;/span&gt; + &lt;span class="str"&gt;"50"&lt;/span&gt;; &lt;span class="rem"&gt;// or your preferred value&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="rem"&gt;// execute request to the Meetup API&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    WinJS.xhr({ url: meetupUrl, responseType: &lt;span class="str"&gt;"json"&lt;/span&gt; }).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; (d) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; meetups = JSON.parse(d.responseText).results;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;         meetups.forEach(&lt;span class="kwrd"&gt;function&lt;/span&gt; (item) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;             &lt;span class="kwrd"&gt;if&lt;/span&gt; (item.distance &amp;lt; 5) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                 item.group.key = &lt;span class="str"&gt;"0_5"&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                 item.group.title = &lt;span class="str"&gt;"Less than 5 mi"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                 item.group.subtitle = &lt;span class="str"&gt;"Meetups less than 5 miles from "&lt;/span&gt; + [SEARCH_LOCATION];&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;             }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;             &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (item.distance &amp;gt;= 5 &amp;amp;&amp;amp; item.distance &amp;lt; 10) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                 item.group.key = &lt;span class="str"&gt;"5_10"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                 item.group.title = &lt;span class="str"&gt;"5 to 10 mi"&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                 item.group.subtitle = &lt;span class="str"&gt;"Meetups between 5 and 10 miles from "&lt;/span&gt; + [SEARCH_LOCATION];&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;             }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;             &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (item.distance &amp;gt;= 10 &amp;amp;&amp;amp; item.distance &amp;lt; 25) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                 item.group.key = &lt;span class="str"&gt;"10_25"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                 item.group.title = &lt;span class="str"&gt;"10 to 25 mi"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                 item.group.subtitle = &lt;span class="str"&gt;"Meetups between 10 and 25 miles from "&lt;/span&gt; + [SEARCH_LOCATION];&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;             }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;             &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;                 item.group.key = &lt;span class="str"&gt;"gt_25"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;                 item.group.title = &lt;span class="str"&gt;"More than 25 mi"&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;                 item.group.subtitle = &lt;span class="str"&gt;"Meetups more than 25 miles from "&lt;/span&gt; + [SEARCH_LOCATION];&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;             }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;             item.group.description = item.group.subtitle;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;             item.title = item.name;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;             item.content = item.description;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;             &lt;span class="rem"&gt;//item.backgroundImage = "../../images/meetupBadge.svg";&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;             &lt;span class="rem"&gt;//item.group.backgroundImage = "../../images/meetupBadge.svg";&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;             &lt;span class="kwrd"&gt;if&lt;/span&gt; (item.venue) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                 item.subtitle = item.venue.city + &lt;span class="str"&gt;", "&lt;/span&gt; + item.venue.state;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                 list.push(item);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;             }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;        });&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;    },&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;    &lt;span class="kwrd"&gt;function&lt;/span&gt; (e) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;        &lt;span class="rem"&gt;// handle errors&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;    });&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;
&lt;li&gt;Add a line of code at the top of data.js to call the function you just added, like so:&lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;getUpcomingMeetups();&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;If you run the project now (after replacing the placeholders in brackets with valid values), you'll get the following output: &lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/GridMashup1_2.png"&gt;&lt;img title="GridMashup1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="GridMashup1" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/GridMashup1_thumb.png" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you can see, our data shows up, it's already grouped, and if you click or tap either the group heading, or an individual item, you'd see that the data carries through to the group detail and item detail pages of the Grid app template as well. It's not pretty, since &lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Understanding the Code&lt;/h2&gt;
&lt;p&gt;OK, so we can see that it works, but what's actually going on under the covers? Well, the Grid app template home page (groupedItems.html) uses a ListView control that is databound to the instance of WinJS.UI.Binding.List created in data.js. For every item in the list, it renders the markup from an ItemTemplate defined in groupedItems.html. Here's what the item template looks like:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;div class=&lt;span class="str"&gt;"itemtemplate"&lt;/span&gt; data-win-control=&lt;span class="str"&gt;"WinJS.Binding.Template"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &amp;lt;div class=&lt;span class="str"&gt;"item"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &amp;lt;img class=&lt;span class="str"&gt;"item-image"&lt;/span&gt; src=&lt;span class="str"&gt;"#"&lt;/span&gt; data-win-bind=&lt;span class="str"&gt;"src: backgroundImage; alt: title"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &amp;lt;div class=&lt;span class="str"&gt;"item-overlay"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &amp;lt;h4 class=&lt;span class="str"&gt;"item-title"&lt;/span&gt; data-win-bind=&lt;span class="str"&gt;"textContent: title"&lt;/span&gt;&amp;gt;&amp;lt;/h4&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &amp;lt;h6 class=&lt;span class="str"&gt;"item-subtitle win-type-ellipsis"&lt;/span&gt; data-win-bind=&lt;span class="str"&gt;"textContent: subtitle"&lt;/span&gt;&amp;gt;&amp;lt;/h6&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;

&lt;p&gt;&lt;br&gt;As you can see, it's just ordinary markup, with the exception of the data- attributes. The first one (data-win-control) tells Windows (the WinJS library, actually) to treat this section of markup as a WinJS.Binding.Template instance, while the data-win-bind attributes tells the WinJS databinding logic how to match up attributes from the element (for example src for the img element) with the property on the target element to be databound.&lt;/p&gt;
&lt;p&gt;Why is this important? Because it turns out that thanks to the dynamic nature of JavaScript, we can fool WinJS into thinking that the object returned from our API call actually has the properties that the template is looking for, even if they don't actually exist!&lt;/p&gt;
&lt;p&gt;If we go back up to the code for the getUpcomingMeetups function above, here's what's happening, section by section:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lines 2-14: These lines construct the request URL for the API request to Meetup.com. In the example, I'm using the Open Events API, &lt;a href="http://www.meetup.com/meetup_api/docs/2/open_events/" target="_blank"&gt;which is documented here&lt;/a&gt;. The parameters are pretty straightforward, and the result is JSON text containing the information on matching events.&lt;/li&gt;
&lt;li&gt;Line 17: This line is where we make the call to the API, using the WinJS.xhr function. This function is simply a wrapper around the xmlHttpRequest browser function, and returns a &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br211867.aspx" target="_blank"&gt;Promise object&lt;/a&gt; rather than requiring a callback function. So when the request has completed, the anonymous function passed to the .done method will be executed. The use of promises can make your code more readable.&lt;/li&gt;
&lt;li&gt;Line 18: Here, we grab the responseText property from the object returned by the xhr request (d), and call JSON.parse to rehydrate the data into JavaScript objects. If you're using an API and aren't sure what the data will look like, you can place a breakpoint on this line, and when the breakpoint is hit, use the built-in text visualizer (hover over the item you're interested in…in my case d.responseText) to view the data returned, as shown below. With a little experimentation, you'll get the data in the form you need:&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/Debugging1_2.png"&gt;&lt;img title="Debugging1" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Debugging1" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/Debugging1_thumb.png" width="640" height="230"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/Debugging2_2.png"&gt;&lt;img title="Debugging2" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Debugging2" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Windows-Store-Grid-App-Template-to-Live_B64F/Debugging2_thumb.png" width="528" height="480"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lines 20-50: Here, we iterate over the items, set up some grouping info (more on that momentarily), and eventually push the item into the binding list created at the top of data.js. You might notice that the item is only pushed to the list if it has a venue property. The reason for this is that the starter kit I developed also uses the Bing Maps API to find nearby points of interest (by default, coffee shops) for a given meetup event, so it wouldn't make sense to use events that don't actually have a physical location. Drilling down into this code a bit deeper:&lt;/li&gt;
&lt;li&gt;Lines 21-40: This section of code provides hooks for the grouping functions (defined earlier in data.js) to work with. Specifically, it checks the distance property returned by the API, and appends new properties to the group object (key, title, and subtitle) that are expected by the template's databinding logic. Note that if the object in question already has such properties, they'll be overwritten.&lt;/li&gt;
&lt;li&gt;Lines 41-49: This section of code creates some additional properties on the item to match up with what the template expects (the item title, content, and subtitle properties), and as noted before, pushes the item to the list.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;br&gt;By leveraging the dynamic nature of JavaScript to add previously non-existent properties to the received object(s), we are able to make the Grid app template completely functional with live data from the API, and in around 100 lines of code. Not bad.&lt;/p&gt;
&lt;h2&gt;But What About the UX?&lt;/h2&gt;
&lt;p&gt;Well, yeah. At this point our app isn't very attractive, because the items returned from Meetup don't have a backgroundImage property, as expected by the template. And although the API does have a property photo_url that returns the URL to the photo for the event, if it exists, my experience is that very few Meetup events actually have a photo. I'll address how I dealt with this in a future post (though the code above provides a clue).&lt;/p&gt;
&lt;h2&gt;Wrap-Up&lt;/h2&gt;
&lt;p&gt;In this post, I showed how quickly you can go from the Grid App Template in Visual Studio 2012, to a Windows Store app displaying live data from the Meetup.com API. In future posts, I'll explore additional lessons learned and techniques used in building &lt;a href="https://github.com/apimash/StarterKits/tree/master/APIMASH_MeetupPOI_StarterKit" target="_blank"&gt;my MeetupPOI Starter Kit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you're ready to get started building your own app based on this, or other APIs, feel free to download the starter kit and jump in. If you've never written a Windows Store app before, here's what you'll need to get started:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Mac users only:&lt;/b&gt; &lt;a href="http://msdn.microsoft.com/en-US/library/windows/apps/jj945423" target="_blank"&gt;Boot Camp&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-US/library/windows/apps/jj945424" target="_blank"&gt;Parallels Desktop&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-US/library/windows/apps/jj945425"&gt;VirtualBox&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-US/library/windows/apps/jj945426" target="_blank"&gt;VMWare Fusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows 8 (&lt;a href="http://msdn.microsoft.com/en-US/evalcenter/jj554510.aspx?wt.mc_id=MEC_132_1_4" target="_blank"&gt;a 90-day evaluation version available here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200211933" target="_blank"&gt;Visual Studio 2012 Express for Windows 8&lt;/a&gt; (free – Professional or higher editions work, too)&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;To publish to the Windows Store you will also need a &lt;a href="https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/" target="_blank"&gt;Windows Store developer account&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If you are a student, &lt;a href="https://www.dreamspark.com/Student/WindowsStore_Registration_Guide.pptx" target="_blank"&gt;use the DreamSpark benefits for a free account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If you are an MSDN Subscriber, &lt;a href="https://msdn.microsoft.com/subscriptions/windevcenter" target="_blank"&gt;use the one-time free account benefit associated with MSDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Otherwise, the account is $49 per annum, but with your first published app, your cost is covered via the &lt;a href="http://aka.ms/KeepTheCashApps" target="_blank"&gt;Keep The Cash&lt;/a&gt; promotion (subject to &lt;a href="http://build.windowsstore.com/keepthecash/termsandconditions" target="_blank"&gt;Terms and Conditions&lt;/a&gt;)!&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Lastly, for continued learning and access to other programs focused on Windows 8 and Windows Phone development, we highly recommend signing up for the free &lt;a href="http://bit.ly/gd30tolaunch" target="_blank"&gt;App Builder program&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/-YQCpIyZsq0" height="1" width="1"/&gt;</description><pubDate>Fri, 10 May 2013 23:31:59 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/windows-store-app-template-to-live-data-in-3-easy-steps</guid><feedburner:origLink>http://devhammer.net:80/blog/windows-store-app-template-to-live-data-in-3-easy-steps</feedburner:origLink></item><item><title>Friday App Shout-Out: dimCalc8, Truck Class Calculator, and more!</title><link>http://feeds.devhammer.net/~r/devhammer/~3/d8OjQKc3qeM/friday-app-shout-out</link><description>&lt;p&gt;Welcome to another edition of the Friday App Shout-out. This week, I've got a couple of apps related to shipping and trucking, plus a couple of apps from &lt;a href="http://twitter.com/" target="_blank"&gt;twitter&lt;/a&gt; peeps outside of Mid-Atlantic to share. So let's get to it!&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/dimcalc8/f088d4dc-9d3f-4d60-b8cb-e4486fb0c08e" target="_blank"&gt;dimCalc8&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/dimcalc8/f088d4dc-9d3f-4d60-b8cb-e4486fb0c08e" target="_blank"&gt;&lt;img title="dimCalc8" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="dimCalc8" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_ADA8/dimCalc8_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;First up is &lt;a href="http://apps.microsoft.com/windows/en-US/app/dimcalc8/f088d4dc-9d3f-4d60-b8cb-e4486fb0c08e" target="_blank"&gt;dimCalc8&lt;/a&gt;, from a veteran of the Friday App Shout-Out, &lt;a href="http://pc-troubleshooter.com/" target="_blank"&gt;Mark Kloch&lt;/a&gt;. dimCalc8 simplifies the process of calculations relating to shipping packages. A unique feature of this app is support for printing, as shown in the screenshot above. If your work involves shipping and logistics, this app is right up your alley!&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/truck-class-calculator/069f5edc-fd48-44cc-b1a0-aafce98d45ab" target="_blank"&gt;Truck Class Calculator&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/truck-class-calculator/069f5edc-fd48-44cc-b1a0-aafce98d45ab" target="_blank"&gt;&lt;img title="TruckClassCalculator" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="TruckClassCalculator" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_ADA8/TruckClassCalculator_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Of course, if you're shipping packages, you might also need to figure out what class your truck is in when it's all loaded up. Mark's 2nd app in this shout-out, &lt;a href="http://apps.microsoft.com/windows/en-US/app/truck-class-calculator/069f5edc-fd48-44cc-b1a0-aafce98d45ab" target="_blank"&gt;Truck Class Calculator&lt;/a&gt;, handles the task of figuring out the class of a truck based on various inputs.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://www.windowsphone.com/en-us/store/app/i-racer/4418a496-54f9-421f-9715-c9ed104ff1f4?appid=4418a496-54f9-421f-9715-c9ed104ff1f4" target="_blank"&gt;i-Racer&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://www.windowsphone.com/en-us/store/app/i-racer/4418a496-54f9-421f-9715-c9ed104ff1f4?appid=4418a496-54f9-421f-9715-c9ed104ff1f4" target="_blank"&gt;&lt;img title="i-Racer" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 10px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="i-Racer" align="left" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_ADA8/i-Racer_3.png" width="288" height="480"&gt;&lt;/a&gt;Next up is from one of my out-of-town tweeps, &lt;a href="http://twitter.com/jhalbrecht" target="_blank"&gt;Jeff Albrecht&lt;/a&gt;, who put together a simple app, &lt;a href="http://www.windowsphone.com/en-us/store/app/i-racer/4418a496-54f9-421f-9715-c9ed104ff1f4?appid=4418a496-54f9-421f-9715-c9ed104ff1f4" target="_blank"&gt;i-Racer&lt;/a&gt;, for controlling Dagu i-Racer remote control cars via Bluetooth, using the phone's accelerometer. You can see it in action in the video below:&lt;/p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/vOurGKLlLZY" frameborder="0" width="420" allowfullscreen&gt;&lt;/iframe&gt;&lt;br clear="all"&gt;&lt;br&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/basketball-block-out/18ad3f24-7bc8-43b3-9d44-a17205be3ba6" target="_blank"&gt;Basketball Block Out&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/basketball-block-out/18ad3f24-7bc8-43b3-9d44-a17205be3ba6" target="_blank"&gt;&lt;img title="BasketballBlockOutjpg" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="BasketballBlockOutjpg" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_ADA8/BasketballBlockOutjpg_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Last, but not least, is &lt;a href="http://apps.microsoft.com/windows/en-US/app/basketball-block-out/18ad3f24-7bc8-43b3-9d44-a17205be3ba6" target="_blank"&gt;Basketball Block Out&lt;/a&gt;, by &lt;a href="http://www.teamcondie.com/" target="_blank"&gt;Gabe Condie&lt;/a&gt;, another out-of-towner. The app is a simple basketball themed game, in which you attempt to make shots past the various disembodied moving hands (I can see a zombie-themed sequel working well here). If you can't get enough basketball, give this app a shot (SWIDT?).&lt;/p&gt; &lt;h2&gt;Who's Next?&lt;/h2&gt; &lt;p&gt;Would you like to be next? You can get links, videos, and more for free at &lt;a href="http://bitly.com/gd30tolaunch"&gt;App Builder&lt;/a&gt;. Sign up takes only a few seconds, and the resources can help make you the next app rockstar. And if you publish your app (for Windows Store or Windows Phone) between now and June 30th, you may be eligible for $100 per app (up to 10 apps) from the &lt;a href="http://aka.ms/KeepTheCashApps" target="_blank"&gt;Keep the Cash&lt;/a&gt; promotion.  &lt;p&gt;You can also join me for an upcoming &lt;a href="http://usdpe.ohours.org/devhammer"&gt;Office Hours&lt;/a&gt;, where I can provide 1:1 technical advice on building your app and getting it into the Windows Store.  &lt;p&gt;&lt;a href="http://devhammer.net/contact"&gt;Drop me a note&lt;/a&gt; if you're working on a Windows 8 app and have questions or need advice.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/d8OjQKc3qeM" height="1" width="1"/&gt;</description><pubDate>Fri, 10 May 2013 19:01:28 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/friday-app-shout-out</guid><feedburner:origLink>http://devhammer.net:80/blog/friday-app-shout-out</feedburner:origLink></item><item><title>Game (and App) Jam, Windows 8 Style!</title><link>http://feeds.devhammer.net/~r/devhammer/~3/UyY8iRV3yvM/game-and-app-jam-windows-8-style</link><description>&lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Game-and-App-Jam-Windows-8-Style_A08B/AppGameJamBG_2.jpg"&gt;&lt;img title="AppGameJamBG" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="AppGameJamBG" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Game-and-App-Jam-Windows-8-Style_A08B/AppGameJamBG_thumb.jpg" width="600" height="187"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I'm excited to announce a new set of workshops that I've been planning in collaboration with the folks from the &lt;a href="http://www.baltomsdn.com/"&gt;BaltoMSDN&lt;/a&gt; user group and the &lt;a href="http://www.cmap-online.org/codecamp" target="_blank"&gt;CMAP Code Camp&lt;/a&gt;.&lt;/p&gt; &lt;h2&gt;The Series&lt;/h2&gt; &lt;p&gt;The series consists of 3 weekly workshops covering the game development landscape for Windows Store apps (week 1), building Windows Store games with HTML &amp;amp; JavaScript, both natively, and with third party frameworks and tools (week 2), and using the Unity 3D game development tool to build games, and how you can enhance those games with Windows Store features like sharing and live tiles (week 3). And on June 1st, at the CMAP Code Camp (&lt;a href="http://cmapccspring2013.eventbrite.com/" target="_blank"&gt;register here&lt;/a&gt;), the code camp will host a game/app competition, where attendees can show off the games and apps they've built, and compete for a grand prize of a Surface Pro, along with other great prizes.&lt;/p&gt; &lt;p&gt;The workshops will be held at The Greene Turtle in Hunt Valley, MD on Tuesday, May 14th, Wednesday, May 22nd, and Wednesday, May 29th.&lt;/p&gt; &lt;h2&gt;Register Now&lt;/h2&gt; &lt;p&gt;The key step for you is to register, which you can do at the links below. The workshops will include both presentation time, as well as hands-on time, so you can crank on some code with a Microsoft Technical Evangelist (yours truly) on hand for Q&amp;amp;A.&lt;/p&gt; &lt;h3&gt;Week 1: App &amp;amp; Game Development Landscape – Tuesday, May 14th – 6pm-9pm&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.meetup.com/DC-Windows-App-Developers/events/117417342/" target="_blank"&gt;Meetup Link&lt;/a&gt; | &lt;a href="http://aka.ms/Win8JamWk1" target="_blank"&gt;Registration Link&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Week 2: Building Apps &amp;amp; Games with HTML and JS – Wednesday, May 22nd – 6pm-9pm&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.meetup.com/DC-Windows-App-Developers/events/117419422/" target="_blank"&gt;Meetup Link&lt;/a&gt; | &lt;a href="http://aka.ms/Win8JamWk2" target="_blank"&gt;Registration Link&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Week 3: Windows 8 and Unity 3D – Wednesday, May 29th – 6pm-9pm&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.meetup.com/DC-Windows-App-Developers/events/117419942/" target="_blank"&gt;Meetup Link&lt;/a&gt; | &lt;a href="http://aka.ms/Win8JamWk3" target="_blank"&gt;Registration Link&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you want to learn more about how to build great apps for the Windows Store, this is the series for you. And in addition to the opportunity to compete for prizes at CMAP Code Camp, your apps may be eligible for the &lt;a href="http://aka.ms/KeepTheCashApps" target="_blank"&gt;Keep the Cash&lt;/a&gt; promotion, which provides $100 per qualifying app (up to 10 apps for both Windows Store and Windows Phone).&lt;/p&gt; &lt;p&gt;Have questions? &lt;a href="http://devhammer.net/contact" target="_blank"&gt;Drop me a note&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/UyY8iRV3yvM" height="1" width="1"/&gt;</description><pubDate>Thu, 09 May 2013 15:40:45 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/game-and-app-jam-windows-8-style</guid><feedburner:origLink>http://devhammer.net:80/blog/game-and-app-jam-windows-8-style</feedburner:origLink></item><item><title>Microsoft DevRadio: (Part 6) Using Windows Azure to Build Back-End Services for Windows 8 Apps – Adding Authentication</title><link>http://feeds.devhammer.net/~r/devhammer/~3/sIsjrbavmPk/microsoft-devradio-part-6-using-windows-azure-to-build-back-end-services-for-windows-8-apps-%E2%80%93-adding-authentication</link><description>&lt;iframe style="height: 540px; width: 960px" src="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-6-Using-Windows-Azure-to-Build-Back-End-Services-for-Windows-8-Apps--Adding-/player?w=960&amp;amp;h=540" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;p&gt;&lt;b&gt;Abstract: &lt;/b&gt;&lt;br&gt;In Part 6 of of their “Using Windows Azure to Build Back-End Services for Windows 8 apps” series &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117402"&gt;Brian Hitney&lt;/a&gt; and &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117399"&gt;Andrew Duthie&lt;/a&gt;&amp;nbsp; explore the world of built-in support for authentication in Windows Azure Mobile Services. Tune in as they quickly demo for us the process of adding authentication for your mobile and Windows Store apps.&amp;nbsp; &lt;b&gt;&lt;a href="http://bit.ly/YdjEFv"&gt;Check out the full article here.&lt;/a&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;Watch&lt;/b&gt; &lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-1-Using-Windows-Azure-to-Build-Back-End-Services-for-Windows-8-Apps"&gt;&lt;b&gt;Part 1&lt;/b&gt;&lt;/a&gt;&lt;b&gt; | &lt;/b&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-2-Using-Windows-Azure-to-Build-Back-End-Services-for-Windows-8-Apps"&gt;&lt;b&gt;Part 2&lt;/b&gt;&lt;/a&gt; | &lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-3-Using-Windows-Azure-to-Build-Back-End-Services-for-Windows-8-Apps--ASPNET-"&gt;&lt;b&gt;Part 3&lt;/b&gt;&lt;/a&gt; | &lt;b&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-4-Using-Windows-Azure-to-Build-Back-End-Services-for-Windows-8-Apps--Azure-M"&gt;Part 4&lt;/a&gt; | &lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-5-Using-Windows-Azure-to-Build-Back-End-Services-for-Windows-8-Apps--Adding-"&gt;Part 5&lt;/a&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt; After watching this video, follow these next steps: &lt;/b&gt; &lt;p&gt;&lt;b&gt;Step #1 –&lt;/b&gt; &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200154482"&gt;Try Windows Azure: No cost. No obligation. 90-Day FREE trial.&lt;/a&gt;&lt;br&gt;&lt;b&gt;Step #2 –&lt;/b&gt; &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720"&gt;Download the Tools for Windows 8 App Development&lt;/a&gt;&lt;br&gt;&lt;b&gt;Step #3 –&lt;/b&gt; &lt;a href="http://aka.ms/MyGreatIdea"&gt;Start building your own Apps for Windows 8&lt;/a&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"&gt;&lt;b&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3" target="_blank"&gt;&lt;img title="noteicon" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="noteicon" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Microsoft-DevRadio-Part-6-Using-Windows-_E26E/noteicon_7d3478ca-49f3-4bfa-9ff5-8871b0c423da.png" width="15" height="15"&gt;&lt;/a&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;Subscribe to our podcast via &lt;a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838"&gt;iTunes&lt;/a&gt; or &lt;a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4"&gt;RSS&lt;/a&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:&lt;/b&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;Register for our Windows Azure Hands-on Lab Online (HOLO) events today!&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/jj618399"&gt;Windows Azure Hands-on Labs Online&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;Blogs &amp;amp; Articles &lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117402"&gt;Brian Hitney’s blog&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117942"&gt;Peter Laudati’s blog&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117399"&gt;Andrew Duthie’s Blog&lt;/a&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj554226.aspx"&gt;Mobile Services Server Script Reference&lt;/a&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj554220.aspx"&gt;Mobile Services user object&lt;/a&gt; &lt;li&gt;&lt;a href="https://dev.twitter.com/"&gt;Twitter Developer site&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;Videos:&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-How-to-Get-Started-with-Windows-Azure"&gt;Microsoft DevRadio: How to Get Started with Windows Azure&lt;/a&gt; &lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-1-What-is-Windows-Azure-Web-Sites"&gt;Microsoft DevRadio: (Part 1) What is Windows Azure Web Sites?&lt;/a&gt; &lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Part-1-Practical-Azure-with-Jim-ONeil--Azure-Basics"&gt;Microsoft DevRadio: (Part 2) Windows Azure Web Sites Explained&lt;/a&gt; &lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-How-to-Integrate-TFS-Projects-with-Windows-Azure-Web-Sites"&gt;Microsoft DevRadio: How to Integrate TFS Projects with Windows Azure Web Sites&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;Virtual Labs:&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/dd540819.aspx"&gt;MSDN Virtual Labs: Windows Azure&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;Download&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/c139/7ff09dfe-a041-4377-a8f9-ea02c0e3c139/DevRadioAzureWin8Prt6.mp3"&gt;MP3&lt;/a&gt; (Audio only) &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/c139/7ff09dfe-a041-4377-a8f9-ea02c0e3c139/DevRadioAzureWin8Prt6.mp4"&gt;MP4&lt;/a&gt; (iPod, Zune HD) &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/c139/7ff09dfe-a041-4377-a8f9-ea02c0e3c139/DevRadioAzureWin8Prt6_high.mp4"&gt;High Quality MP4&lt;/a&gt; (iPad, PC) &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/c139/7ff09dfe-a041-4377-a8f9-ea02c0e3c139/DevRadioAzureWin8Prt6_mid.mp4"&gt;Mid Quality MP4&lt;/a&gt; (WP7, HTML5) &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/c139/7ff09dfe-a041-4377-a8f9-ea02c0e3c139/DevRadioAzureWin8Prt6_Source.wmv"&gt;High Quality WMV&lt;/a&gt; (PC, Xbox, MCE)&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/sIsjrbavmPk" height="1" width="1"/&gt;</description><pubDate>Wed, 08 May 2013 20:05:49 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/microsoft-devradio-part-6-using-windows-azure-to-build-back-end-services-for-windows-8-apps-%E2%80%93-adding-authentication</guid><feedburner:origLink>http://devhammer.net:80/blog/microsoft-devradio-part-6-using-windows-azure-to-build-back-end-services-for-windows-8-apps-%E2%80%93-adding-authentication</feedburner:origLink></item><item><title>Friday App Shout-Out Bonanza!</title><link>http://feeds.devhammer.net/~r/devhammer/~3/qS-3DPM5gSM/friday-app-shout-out-bonanza</link><description>&lt;p&gt;So, I missed last Friday's Shout-Out, as I was on a road trip with my son, who recently turned 10 (caverns, a civil war museum and a water park, all in the same trip!). So I've got a bunch of apps to share today, both for Windows Store and Windows Phone.&lt;/p&gt; &lt;p&gt;I've got both locally-developed Mid-Atlantic apps, as well as a couple by yours truly and one by one of my peers, but I'll start with the local apps.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/using-c-3-0-data-features/f4f15a45-01ee-4b97-8fb5-e8f23992b9f3" target="_blank"&gt;Using C# 3.0 Data Features&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/using-c-3-0-data-features/f4f15a45-01ee-4b97-8fb5-e8f23992b9f3" target="_blank"&gt;&lt;img title="UsingC#3DataFeatures" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="UsingC#3DataFeatures" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/UsingC_3DataFeatures_1c64af4a-4623-41c6-81dd-6b227cc72ddb.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;First up is &lt;a href="http://apps.microsoft.com/windows/en-US/app/using-c-3-0-data-features/f4f15a45-01ee-4b97-8fb5-e8f23992b9f3" target="_blank"&gt;Using C# 3.0 Data Features&lt;/a&gt;, an app developed by local community member Osama Morad, and it provides access to his video training via a convenient app. Osama runs the local Hands-on SIG for the &lt;a href="http://www.cmap-online.org/"&gt;CMAP&lt;/a&gt; user group, in addition to his training work and app development.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/funky-synth/3f485d19-7f9f-4f10-aecf-4fec8f214dc8" target="_blank"&gt;Funky Synth&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/funky-synth/3f485d19-7f9f-4f10-aecf-4fec8f214dc8" target="_blank"&gt;&lt;img title="FunkSynth" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="FunkSynth" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/FunkSynth_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Looking for a simple synth app to noodle around with? Look no further than &lt;a href="http://apps.microsoft.com/windows/en-US/app/funky-synth/3f485d19-7f9f-4f10-aecf-4fec8f214dc8" target="_blank"&gt;Funky Synth&lt;/a&gt;, by mid-Atlantic developer &lt;a href="https://twitter.com/marklindell" target="_blank"&gt;Mark Lindell&lt;/a&gt;. It offers a handful of nice synth sounds, as well as a couple of unique features…it supports touch, of course, but also supports input via your pc keyboard, for folks without touch (you can have the keys overlaid with key labels if you like). It also works in snapped mode, so you can noodle around and get work done at the same time.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://www.windowsphone.com/en-us/store/app/smart-recorder/88f50b87-1ea8-4364-b2b0-ee3ffa6c9d9c" target="_blank"&gt;Smart Recorder&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/SmartRecorder_WindowsPhone_2.png"&gt;&lt;img title="SmartRecorder_WindowsPhone" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="SmartRecorder_WindowsPhone" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/SmartRecorder_WindowsPhone_thumb.png" width="144" height="240"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/SmartRecorder_WindowsPhone2_2.png"&gt;&lt;img title="SmartRecorder_WindowsPhone2" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="SmartRecorder_WindowsPhone2" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/SmartRecorder_WindowsPhone2_thumb.png" width="144" height="240"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Moving to Windows Phone for a moment, we have &lt;a href="http://www.windowsphone.com/en-us/store/app/smart-recorder/88f50b87-1ea8-4364-b2b0-ee3ffa6c9d9c" target="_blank"&gt;Smart Recorder&lt;/a&gt;, by local developer Kenneth Roe. Like its &lt;a href="http://apps.microsoft.com/windows/en-us/app/smartrecorder/af1d04b7-b2d0-4d62-9394-c703c1f078bb/" target="_blank"&gt;Windows Store version&lt;/a&gt;, Smart Recorder is a rich app for recording, updating, and sharing audio notes. Features the ability to append more audio to an existing note, save notes to SkyDrive, and more.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/messier-object-explorer/6874383c-2500-4346-afc1-a7189823fb99" target="_blank"&gt;Messier Object Explorer&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/messier-object-explorer/6874383c-2500-4346-afc1-a7189823fb99" target="_blank"&gt;&lt;img title="MessierObjectExplorer" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="MessierObjectExplorer" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/MessierObjectExplorer_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Next up is &lt;a href="http://apps.microsoft.com/windows/en-US/app/messier-object-explorer/6874383c-2500-4346-afc1-a7189823fb99" target="_blank"&gt;Messier Object Explorer&lt;/a&gt;, written by my fellow Microsoft Technical Evangelist &lt;a href="http://www.structuretoobig.com/"&gt;Brian Hitney&lt;/a&gt;. Brian is a bit of an astronomy buff (his other app is &lt;a href="http://apps.microsoft.com/windows/en-US/app/dark-skies/4176bcef-efc1-49db-b515-7c8b428d8af7" target="_blank"&gt;Dark Skies&lt;/a&gt;, an app to help discover and share great locations for stargazing), and this new app provides a unique and interesting way of exploring the night sky.&lt;/p&gt; &lt;h2&gt;Color Matcher (&lt;a href="http://apps.microsoft.com/windows/en-US/app/color-matcher/bf70dace-a171-4c5b-b227-0596475bc130" target="_blank"&gt;Windows Store&lt;/a&gt; and &lt;a href="http://www.windowsphone.com/en-us/store/app/color-matcher/c162bbe1-e62d-406d-8d4d-bcd522a1c567?appid=c162bbe1-e62d-406d-8d4d-bcd522a1c567" target="_blank"&gt;Windows Phone&lt;/a&gt;)&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/color-matcher/bf70dace-a171-4c5b-b227-0596475bc130" target="_blank"&gt;&lt;img title="ColorMatcher_WindowsStore" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="ColorMatcher_WindowsStore" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/ColorMatcher_WindowsStore_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Last, but not least, Color Matcher is my first exploration in building cross-platform games using Scirra's &lt;a href="http://scirra.com" target="_blank"&gt;Construct 2&lt;/a&gt; game middleware, and was made possible in part by some &lt;a href="https://github.com/jimoneil/Construct-2" target="_blank"&gt;nice templates&lt;/a&gt; published by another fellow Technical Evangelist, &lt;a href="http://blogs.msdn.com/b/jimoneil/" target="_blank"&gt;Jim O'Neil&lt;/a&gt;. Construct 2 uses HTML5 Canvas and JavaScript under the covers, but abstracts the hard parts into simple use of sprites and events.&lt;/p&gt; &lt;p&gt;I initially created &lt;a href="http://apps.microsoft.com/windows/en-US/app/color-matcher/bf70dace-a171-4c5b-b227-0596475bc130" target="_blank"&gt;Color Matcher for the Windows Store&lt;/a&gt; using Jim's Match Game template, and tweaked it a bit to get something unique. I later decided to try &lt;a href="http://www.windowsphone.com/en-us/store/app/color-matcher/c162bbe1-e62d-406d-8d4d-bcd522a1c567?appid=c162bbe1-e62d-406d-8d4d-bcd522a1c567" target="_blank"&gt;porting the game to Windows Phone 8&lt;/a&gt;, since Construct 2 also supports exporting to that platform, and it was initially rejected, due to lack of support for the back button (in a game, the expected behavior for the back button while playing is either to pause, or return to the title screen). Thankfully, a member of the Construct 2 forums who goes by the handle &lt;a href="http://www.scirra.com/users/thehen" target="_blank"&gt;thehen&lt;/a&gt; (also the creator of &lt;a href="http://www.mortarmelon.com/" target="_blank"&gt;Mortar Melon&lt;/a&gt; for Windows Store, which shows more of what you can do with Construct 2) created a &lt;a href="http://www.scirra.com/FORUM/plugin-windows-phone_topic62454_page1.html" target="_blank"&gt;nifty plugin for Windows Phone 8&lt;/a&gt;, which made handling the back button a breeze.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/squish-a-fruit/800eb06e-3d01-4268-ae17-f5b6884664bc" target="_blank"&gt;Squish-A-Fruit&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/squish-a-fruit/800eb06e-3d01-4268-ae17-f5b6884664bc" target="_blank"&gt;&lt;img title="SquishAFruit" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="SquishAFruit" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out-Bonanza_BF69/SquishAFruit_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;OK, I said mine was last, but I had a late-breaking entry for the shout-out, from my NY co-worker Bob Hunt. Bob's entry is &lt;a href="http://apps.microsoft.com/windows/en-US/app/squish-a-fruit/800eb06e-3d01-4268-ae17-f5b6884664bc" target="_blank"&gt;Squish-A-Fruit&lt;/a&gt;, a simple game made in Construct 2 (using Jim's Whack-a-Rodent template). The gameplay is simple…just tap (or click with your mouse) to squish as many fruits as possible. Miss 3 and you're done. What's neat about this app is that Bob is not a developer…he's an IT Pro evangelist. While I'm sure he does some PowerShell scripting here and there, it's pretty cool that Bob was able to quickly build this game using the templates Jim's provided. A nice demonstration of how approachable Construct 2 is, even for non-programmers.&lt;/p&gt; &lt;h2&gt;Who's Next?&lt;/h2&gt; &lt;p&gt;Would you like to be next? You can get links, videos, and more for free at &lt;a href="http://bitly.com/gd30tolaunch"&gt;App Builder&lt;/a&gt;. Sign up takes only a few seconds, and the resources can help make you the next app rockstar.  &lt;p&gt;You can also join me for an upcoming &lt;a href="http://usdpe.ohours.org/devhammer"&gt;Office Hours&lt;/a&gt;, where I can provide 1:1 technical advice on building your app and getting it into the Windows Store.  &lt;p&gt;&lt;a href="http://devhammer.net/contact"&gt;Drop me a note&lt;/a&gt; if you're working on a Windows 8 app and have questions or need advice.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/qS-3DPM5gSM" height="1" width="1"/&gt;</description><pubDate>Fri, 03 May 2013 20:35:46 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/friday-app-shout-out-bonanza</guid><feedburner:origLink>http://devhammer.net:80/blog/friday-app-shout-out-bonanza</feedburner:origLink></item><item><title>Upcoming Events for April 29th, 2013</title><link>http://feeds.devhammer.net/~r/devhammer/~3/12FX-_1KQAo/upcoming-events-for-april-29th-2013</link><description>&lt;p&gt;Here are the events listed in &lt;a href="http://www.communitymegaphone.com/"&gt;Community Megaphone&lt;/a&gt; for the next couple of weeks for the Mid-Atlantic area, as well as webcasts of interest:&lt;/p&gt; &lt;h2&gt;MD&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6394"&gt;RockNUG Release 6.11&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 08, 2013 6:30 PM, Rockville, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2600+Tower+Oaks+Blvd%2c+Rockville%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RockNUG Release 6.11 on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6394&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Create a Windows 8 App in Minutes &lt;br&gt;- Frank La Vigne &lt;br&gt;&lt;br&gt;What if I told you that you could turn any web site into an app? What if I told you that you could do just that in minutes by creating two XML files? Sounds crazy? Well, it might be crazy -- crazy fast. In this demo, I will show you how I made the "AppCannon" utility which takes two XML files and my Screen Scraper toolkit to make a Windows 8 App Generator. &lt;br&gt;&lt;br&gt;Frank La Vigne helps public sector customers leverage technology in order to better serve their constituents. In the past year, he has focused heavily on Windows 8, leveraging his years spent writing electronic medical records software and handwriting recognition systems. Prior to joining Microsoft, Frank was a Tablet PC MVP and ran several user groups. He is a blogger, conference speaker and published author. He blogs regularly at www.FranksWorld.com, which has been online since 1995. In January, he started Frank's World TV, a video version of his blog, but with more special effects. &lt;br&gt;6:30 - 7:00 n00b Presentation: O is For... - Dean Fiala &lt;br&gt;7:00 - 7:30 Pizza/Announcements &lt;br&gt;7:30 - 9:00 Create a Windows 8 App in Minutes - Frank La Vigne&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6394"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6394"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6394.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;Online&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6352"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 01, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6352"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6352.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;PA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6372"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 30, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6372&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 6 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6372"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6372"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6372.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6203"&gt;Philly Code Camp 2013.1&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Saturday, May 11, 2013 8:30 AM, Abington, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1600+Woodland+Rd%2c+Abington%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Code Camp 2013.1 on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6203&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; This is the semi-annual Philly Code Camp (#PhillyCC) for spring 2013.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6203"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6203"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6203.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;VA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6422"&gt;Creating an Flexible Data Quality Foundation&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 02, 2013 5:30 PM, Roanoke, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=207+Bullitt+Avenue%2c+Roanoke%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Creating an Flexible Data Quality Foundation on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6422&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Data Quality (DQ) tools are typically expensive and difficult to integrate into your ETL and governance plans but it doesn't have to be that way. During this fun, highly-interactive session, Kevin Hazzard (Microsoft Windows Azure MVP and author of the book Metaprogramming in .NET), will show you how to implement a modular, highly resilient DQ foundation from the tools you already own, no matter which version of SQL Server you're using today.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6422"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6422"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6422.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6384"&gt;Intro to TypeScript&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 02, 2013 6:00 PM, Glen Allen, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=4600+Cox+Road%2c+Glen+Allen%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Intro to TypeScript on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6384&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; TypeScript is Microsoft's entry into the JavaScript pre-compiler space. As a javaScript superset, TypeScript compiles to JavaScript and introduces concepts such as strong typing, classes, modules, constructors, namespaces and more to JavaScript development. In this session we will discuss the use cases for TypeScript and investigate the tooling around it as we dig into the fundamentals of this new language.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6384"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6384"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6384.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6313"&gt;How Information Architecture can improve in SharePoint 2013 with Virgil Carroll&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Monday, May 06, 2013 11:30 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=12012+Sunset+Hills+Road%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View How Information Architecture can improve in SharePoint 2013 with Virgil Carroll on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6313&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Agenda &lt;br&gt;&lt;br&gt;11:30 - Pizza and soda &lt;br&gt;11:40 - Intro &lt;br&gt;11:45 - Session &lt;br&gt;12:45 - Sponsor Chat &lt;br&gt;&lt;br&gt;How Information Architecture can improve in SharePoint 2013 with Virgil Carroll &lt;br&gt;&lt;br&gt;In this session, Virgil will walk attendees through the differences between 2007, 2010 and the new SharePoint 2013 from an information architecture perspective. He will identify the new and improved features set such as more flexible navigation structures, cross-site collection publishing, improvements to managed metadata and search. The discussion will wrap up with how businesses can use 2013 to support better user findability and putability. &lt;br&gt;&lt;br&gt;Event venue: Microsoft &lt;br&gt;&lt;br&gt;Hosted by: Reston SharePoint User Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6313"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6313"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6313.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;  &lt;p&gt;Want your events listed? You can &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx"&gt;add them here.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at &lt;a href="http://www.communitymegaphone.com/API.aspx"&gt;http://www.communitymegaphone.com/API.aspx&lt;/a&gt;. You can also &lt;a href="http://devhammer.net/contact"&gt;email me&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/12FX-_1KQAo" height="1" width="1"/&gt;</description><pubDate>Mon, 29 Apr 2013 19:49:25 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/upcoming-events-for-april-29th-2013</guid><feedburner:origLink>http://devhammer.net:80/blog/upcoming-events-for-april-29th-2013</feedburner:origLink></item><item><title>Upcoming Events for April 22nd, 2013</title><link>http://feeds.devhammer.net/~r/devhammer/~3/XnnC4exBrj4/upcoming-events-for-april-22nd-2013</link><description>&lt;p&gt;Here are the events listed in &lt;a href="http://www.communitymegaphone.com/"&gt;Community Megaphone&lt;/a&gt; for the next couple of weeks for the Mid-Atlantic area, as well as webcasts of interest:&lt;/p&gt; &lt;h2&gt;MD&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6312"&gt;Neural Interfaces by Jacob Vogelstein&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 23, 2013 7:00 PM, Baltimore, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1000+Hilltop+Road%2c+Baltimore%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Neural Interfaces by Jacob Vogelstein on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6312&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Jacob Vogelstein is the lead researcher on the Electron Microscopy (EM) Connectome project, an independent research and development (IRAD) initiative to transform detailed pictures of brain structures into a computational model. &lt;br&gt;Although the ability of computers to collect and disseminate information has rapidly advanced in recent years, the machines' ability to correctly process and analyze that information-especially from images and photographs-lags far behind. This creates a problem for organizations with too much image data and not enough human beings to sort through it. &lt;br&gt;http://www.jhuapl.edu/newscenter/stories/st111017.asp &lt;br&gt;&lt;br&gt;Event venue: University of Maryland, Baltimore County &lt;br&gt;&lt;br&gt;Hosted by: CMAP Advanced Topics in Software&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6312"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6312"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6312.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;Online&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6322"&gt;5 T-SQL Features You're Missing Out On&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 23, 2013 11:30 AM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; Are you getting the most out of your TSQL queries? Most people still write queries like they're using SQL Server 2000, but there's lots of new functionality that can make your TSQL simpler to read, write, and support. In this free 30 minute webcast, Kendra Little will introduce you to five cool features that you should think about using to improve your SQL Server queries&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6322"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6322.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6350"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 24, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6350"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6350.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6352"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, May 01, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6352"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6352.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;PA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6371"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 23, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6371&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 5 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6371"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6371"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6371.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6372"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 30, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6372&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 6 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6372"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6372"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6372.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;VA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6384"&gt;Intro to TypeScript&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, May 02, 2013 6:00 PM, Glen Allen, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=4600+Cox+Road%2c+Glen+Allen%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Intro to TypeScript on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6384&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; TypeScript is Microsoft's entry into the JavaScript pre-compiler space. As a javaScript superset, TypeScript compiles to JavaScript and introduces concepts such as strong typing, classes, modules, constructors, namespaces and more to JavaScript development. In this session we will discuss the use cases for TypeScript and investigate the tooling around it as we dig into the fundamentals of this new language.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6384"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6384"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6384.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;  &lt;p&gt;Want your events listed? You can &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx"&gt;add them here.&lt;/a&gt; NOTE: The &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx" target="_blank"&gt;Add Event page&lt;/a&gt; now has (beta) support for importing events from a Meetup.com event ID. Just pull up the page for the meetup you wish to import, copy the number at the end of the URL, and click the import link at the top of the Add Event page, paste in the meetup ID, and click OK. Make sure to double-check the imported data, and fill in any missing information before submitting the event.&lt;/p&gt; &lt;p&gt;You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at &lt;a href="http://www.communitymegaphone.com/API.aspx"&gt;http://www.communitymegaphone.com/API.aspx&lt;/a&gt;. You can also &lt;a href="http://devhammer.net/contact"&gt;email me&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/XnnC4exBrj4" height="1" width="1"/&gt;</description><pubDate>Mon, 22 Apr 2013 12:06:47 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/upcoming-events-for-april-22nd-2013</guid><feedburner:origLink>http://devhammer.net:80/blog/upcoming-events-for-april-22nd-2013</feedburner:origLink></item><item><title>Friday App Shout-Out: LCG Super Word Search</title><link>http://feeds.devhammer.net/~r/devhammer/~3/f9U4dMSIqec/friday-app-shout-out-lcg-super-word-search</link><description>&lt;p&gt;Today's app is hot off the presses…I literally got the email just this afternoon, and it features an app from LCG Technologies, a firm run by local community leader Ed Mullin (from &lt;a href="http://www.baltomsdn.com/"&gt;BaltoMSDN&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Ed, who is also running the &lt;a href="http://www.cmap-online.org/CodeCamp/"&gt;CMAP Code Camp&lt;/a&gt; that's coming up on June 1st (mark your calendars!), let me know about a neat word search game they built.&lt;/p&gt; &lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/lcg-super-word-search/86ae29f2-00e3-49ea-a9c1-ed3b2175e7b1" target="_blank"&gt;LCG Super Word Search&lt;/a&gt; &lt;/h2&gt; &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/lcg-super-word-search/86ae29f2-00e3-49ea-a9c1-ed3b2175e7b1" target="_blank"&gt;&lt;img title="LCGSuperWordSearch" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="LCGSuperWordSearch" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_D73F/LCGSuperWordSearch_3.jpg" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The game is simple and enjoyable, and includes touch support, and fun sound effects when you match a word and when you win the game.&lt;/p&gt; &lt;p&gt;Give it a spin!&lt;/p&gt; &lt;h2&gt;Who's Next?&lt;/h2&gt; &lt;p&gt;Would you like to be next? You can get links, videos, and more for free at &lt;a href="http://bitly.com/gd30tolaunch"&gt;App Builder&lt;/a&gt;. Sign up takes only a few seconds, and the resources can help make you the next app rockstar. &lt;p&gt;You can also join me for an upcoming &lt;a href="http://usdpe.ohours.org/devhammer"&gt;Office Hours&lt;/a&gt;, where I can provide 1:1 technical advice on building your app and getting it into the Windows Store. YumvY's developer took advantage of office hours…you should, too! &lt;p&gt;&lt;a href="http://devhammer.net/contact"&gt;Drop me a note&lt;/a&gt; if you're working on a Windows 8 app and have questions or need advice.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/f9U4dMSIqec" height="1" width="1"/&gt;</description><pubDate>Fri, 19 Apr 2013 19:28:50 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/friday-app-shout-out-lcg-super-word-search</guid><feedburner:origLink>http://devhammer.net:80/blog/friday-app-shout-out-lcg-super-word-search</feedburner:origLink></item><item><title>Upcoming Events for April 15th, 2013</title><link>http://feeds.devhammer.net/~r/devhammer/~3/0Ya0j7cXYFw/upcoming-events-for-april-15th-2013</link><description>&lt;p&gt;Happy (or not) Tax Day!&lt;/p&gt; &lt;p&gt;Here are the events listed in &lt;a href="http://www.communitymegaphone.com/"&gt;Community Megaphone&lt;/a&gt; for the next couple of weeks for the Mid-Atlantic area, as well as webcasts of interest:&lt;/p&gt; &lt;h2&gt;DC&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6331"&gt;Mastering HTTP Handlers in the ASP.NET Web API&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 6:30 PM, Washington, DC&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2400+N+Street+NW%2c+Washington%2c+DC&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Mastering HTTP Handlers in the ASP.NET Web API on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6331&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Writing web services using the ASP.NET Web API can be quite satisfying. For SOAP developers accustomed to strict separations between bindings and contracts, it can also be a frustrating experience. Without proper foresight and planning, the boundaries between controller actions and the transport can get fuzzy, potentially leading to design complications as your application matures. In this code-focused session, you'll learn about one of the Web API's key extensibility mechanisms that can help to separate an application's "plumbing" from its business logic and data-handling concerns. When you've completed this session, you'll understand the Web API's object model and how to write global and per-route HTTP handlers to solve a range of cross-cutting problems. &lt;br&gt;&lt;br&gt;About Kevin Hazzard &lt;br&gt;Kevin Hazzard is a consultant, author and Microsoft Windows Azure MVP from the Richmond, Virginia. He serves as a Director at CapTech Consulting where he designs and implements large-scale SQL Server databases and .NET services for Fortune 500 clients in D.C., focusing on the health care, retail, manufacturing and communication industries. Kevin is the author of Metaprogramming in .NET by Manning, a book that concerns the value of adaptable software design. &lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6331"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6331"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6331.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6336"&gt;JavaScript for Non-Web Apps&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, April 18, 2013 7:00 PM, Washington, DC&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1133+15th+St+NW%2c+9th+Floor%2c+Washington%2c+DC&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View JavaScript for Non-Web Apps on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6336&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; What does it take to author a good jQuery plugin? Trevor Davis, Senior Front-End Developer at Viget will take a look at building jQuery plugins and different styles of JavaScript execution patterns along with a few of the concepts that will help you take your code and plugins to next level. &lt;br&gt;&lt;br&gt;Event venue: WaPo Labs &lt;br&gt;&lt;br&gt;Hosted by: DC jQuery Users Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6336"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6336"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6336.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;MD&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6385"&gt;Tour of Computer Museum at System Source&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Monday, April 15, 2013 6:00 PM, Hunt Valley, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=338+Clubhouse+Road%2c+Hunt+Valley%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Tour of Computer Museum at System Source on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6385&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Bob Roswell, the co-owner of System Source and founder of the computer museum is scheduled to give us a tour. The museum has a large collection of analog as well as digital computers. There are calculating devices from ancient China and South America as well as pieces from the dawn of the computer age. &lt;br&gt;&lt;a href="http://www.syssrc.com/html/museum/"&gt;http://www.syssrc.com/html/museum/&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;Please RSVP via the Meetup URL... &lt;br&gt;&lt;br&gt;Event venue: System Source &lt;br&gt;&lt;br&gt;Hosted by: BaltoMSDN&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6385"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6385"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6385.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6376"&gt;Intro to Windows Phone Development - Building apps and games w/ G. Andrew Duthie&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 6:15 PM, Baltimore, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1020+Hull+St+%23100%2c+Baltimore%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Intro to Windows Phone Development - Building apps and games w/ G. Andrew Duthie on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6376&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; This is Baltimore Mobile's third and final month of our intro series that covered the major mobile operating systems in today's market. Come join Microsoft Technical Evangelist G. Andrew Duthie for a tour of the landscape for developing apps for the latest version of the Windows Phone platform, from native tools like Visual Studio 2012, to third-party frameworks such as YoYoGames' GameMaker, Scirra's Construct 2, and Unity3D. Andrew will share some of the great features of Windows Phone that you can leverage in your apps, from Live Tiles to NFC and more. &lt;br&gt;&lt;br&gt;Meeting Agenda &lt;br&gt;&lt;br&gt;6:15 - 7:00 - Food and Socializing &lt;br&gt;7:00 - 8:15 - Windows Phone - Building apps and games w/ Andrew Duthie &lt;br&gt;8:15 - 9:00 - Wrap-Up and Socializing &lt;br&gt;&lt;br&gt;Sponsors &lt;br&gt;E-Moxie - Meetup, Organization, Giveaways &lt;br&gt;SmartLogic Solutions - Pizza &lt;br&gt;AOL / Advertising.com - Location and Meetup Support! &lt;br&gt;&lt;br&gt;VENUE AND PARKING DETAILS: &lt;br&gt;See Meetup link for details. &lt;br&gt;&lt;br&gt;Event venue: AOL / Advertising.com - Ivory Building &lt;br&gt;&lt;br&gt;Hosted by: Baltimore Mobile&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6376"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6376"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6376.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6381"&gt;DC Unity3D Users Group Area April Meeting&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, April 18, 2013 7:00 PM, Chevy Chase, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=5404+Wisconsin+Avenue%2c+Chevy+Chase%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View DC Unity3D Users Group Area April Meeting on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6381&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building Games for Windows Store and Windows Phone with Unity &lt;br&gt;Join Microsoft Technical Evangelist G. Andrew Duthie for a discussion of the new support (currently in beta) in Unity 4 for building games for the Windows Store, as well as for Windows Phone 8. Andrew will share information on how you can join the open beta for these updates, as well as demo the bits. &lt;br&gt;Learn how you can bring your Unity skills and games to these fast-growing platforms. &lt;br&gt;There will be EATS!!! &lt;br&gt;Microsoft 5404 Wisconsin Ave &lt;br&gt;&lt;br&gt;MPR 5186 &lt;br&gt;&lt;br&gt;Chevy Chase, Maryland 20815 &lt;br&gt;Map and driving directions are available from: &lt;a href="http://www.microsoft.com/about/companyinformation/usaoffices/midatlantic/en/us/washingtondc.aspx"&gt;http://www.microsoft.com/about/companyinformation/usaoffices/midatlantic/en/us/washingtondc.aspx&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;Event venue: Microsoft Corporation &lt;br&gt;&lt;br&gt;Hosted by: Washington, DC Area Unity3D Users' Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6381"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6381"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6381.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6312"&gt;Neural Interfaces by Jacob Vogelstein&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 23, 2013 7:00 PM, Baltimore, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1000+Hilltop+Road%2c+Baltimore%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Neural Interfaces by Jacob Vogelstein on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6312&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Jacob Vogelstein is the lead researcher on the Electron Microscopy (EM) Connectome project, an independent research and development (IRAD) initiative to transform detailed pictures of brain structures into a computational model. &lt;br&gt;Although the ability of computers to collect and disseminate information has rapidly advanced in recent years, the machines' ability to correctly process and analyze that information-especially from images and photographs-lags far behind. This creates a problem for organizations with too much image data and not enough human beings to sort through it. &lt;br&gt;&lt;a href="http://www.jhuapl.edu/newscenter/stories/st111017.asp"&gt;http://www.jhuapl.edu/newscenter/stories/st111017.asp&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;Event venue: University of Maryland, Baltimore County &lt;br&gt;&lt;br&gt;Hosted by: CMAP Advanced Topics in Software&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6312"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6312"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6312.ics"&gt;Add To Calendar&lt;/a&gt; ] &lt;div style="text-align: left; clear: both"&gt;&lt;br&gt;&amp;nbsp;&lt;/div&gt; &lt;h2&gt;Online&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6321"&gt;Tips &amp;amp; Tricks for Dates &amp;amp; Times in SQL Server&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 11:30 AM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; Writing queries with date and time data types can be tricky! Join Kendra to learn tips and best practices for selecting the right data types, choosing the best performing functions to round (or truncate) values, and how to avoid common pitfalls with dates and times in SQL Server. If you have one year of experience writing T-SQL queries, this free 30 minute webcast is for you.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6321"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6321.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6351"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 17, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6351"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6351.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6322"&gt;5 T-SQL Features You're Missing Out On&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 23, 2013 11:30 AM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; Are you getting the most out of your TSQL queries? Most people still write queries like they're using SQL Server 2000, but there's lots of new functionality that can make your TSQL simpler to read, write, and support. In this free 30 minute webcast, Kendra Little will introduce you to five cool features that you should think about using to improve your SQL Server queries&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6322"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6322.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6350"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 24, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6350"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6350.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;PA&lt;/h2&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6370"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6370&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 4 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6370"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6370"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6370.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6371"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 23, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6371&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 5 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6371"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6371"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6371.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6355"&gt;RADNUG April Meeting&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 6:30 PM, Fredericksburg, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=11905+Bowman+Drive%2c+%23501+%2c+Fredericksburg%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RADNUG  April Meeting on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6355&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; We are pleased to announce that Leland Holmquest will be our special guest speaker at our April meeting. &lt;br&gt;&lt;br&gt;Leland will be talking about Project Lily: Kinect enabled virtual assistant &lt;br&gt;&lt;br&gt;Project Lily started as a class project (CS895: Software for Context-Aware Multiuser Systems) at George Mason University. It has since been the basis for other class projects. Lily is intended to be a virtual assistant, trying to closely mimic human behavior and interactions. The Kinect for Windows sensor provides the "eyes and ears" for Lily. The talk will demonstrate some of Lily's capabilities, show some of the design and code behind Lily and briefly explain future intentions. &lt;br&gt;&lt;br&gt;About Leland: &lt;br&gt;&lt;br&gt;Leland Holmquest is a Senior Consultant at Microsoft supporting the US Army. Prior to Microsoft, he was a Software Engineer at the Naval Surface Warfare Center Dahlgren. He earned his Bachelor and Master's Degrees in Information Technology from American InterContinental University and is currently working on a Doctorate degree at Northcentral University. He has a regular column on MSDN Magazine Online and frequently blogs at lelandholmquest.wordpress.com. &lt;br&gt;And his crowning achievement, he is the proud father of two daughters. &lt;br&gt;&lt;br&gt;RADNUG meets at the SimVentions office in Fredericksburg. Thank you to SimVentions for the use of their facility for our group! &lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6355"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6355"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6355.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6311"&gt;Capital Area .NET SharePoint Special Interest Group Meetup&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 17, 2013 7:00 PM, Arlington, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2300+Wilson+Blvd%2c+Arlington%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Capital Area .NET SharePoint Special Interest Group Meetup on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6311&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Topic TBD. &lt;br&gt;&lt;br&gt;Event venue: The Navy League Building, 1st Floor &lt;br&gt;&lt;br&gt;Hosted by: Capital Area .NET SharePoint Special Interest Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6311"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6311"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6311.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt;  &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6264"&gt;NoVA CodeCamp&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Saturday, April 20, 2013 9:00 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=Microsoft+-+12012+Sunset+Hills+Road%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View NoVA CodeCamp on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6264&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; CodeCamp is a coding event by Developers for Developers. See website for full details on the 5 tracks and 25 sessions planned. &lt;br&gt;&lt;br&gt;Register at: &lt;a href="http://novacodecamp2013.eventbrite.com/"&gt;http://novacodecamp2013.eventbrite.com/&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6264"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6264"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6264.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;  &lt;p&gt;Want your events listed? You can &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx"&gt;add them here.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at &lt;a href="http://www.communitymegaphone.com/API.aspx"&gt;http://www.communitymegaphone.com/API.aspx&lt;/a&gt;. You can also &lt;a href="http://devhammer.net/contact"&gt;email me&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/0Ya0j7cXYFw" height="1" width="1"/&gt;</description><pubDate>Mon, 15 Apr 2013 14:03:31 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/upcoming-events-for-april-15th-2013</guid><feedburner:origLink>http://devhammer.net:80/blog/upcoming-events-for-april-15th-2013</feedburner:origLink></item><item><title>Friday App Shout-Out: Weapons, Monsters, and Calculations, Oh My!</title><link>http://feeds.devhammer.net/~r/devhammer/~3/WGQaiOhXFp8/friday-app-shout-out-weapons-monsters-and-calculations-oh-my</link><description>&lt;p&gt;I've got three apps to share this week, one from a developer at a local consulting giant, and two student apps.&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/army-weapon-systems-handbook/d4abfd2c-f734-4ca5-b28c-102cd8730318" target="_blank"&gt;Army Weapon Systems Handbook&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/army-weapon-systems-handbook/d4abfd2c-f734-4ca5-b28c-102cd8730318"&gt;&lt;img title="ArmyWeaponsManual" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" alt="ArmyWeaponsManual" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_E5B9/ArmyWeaponsManual_3.jpg" border="0" height="360" width="640" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ever been curious about the background of the weapons systems used by the U.S. Army? Well, the Army Weapons Systems Handbook app, based on the publication of the same name from &lt;a href="http://www.army.mil/asaalt"&gt;ASA(ALT)&lt;/a&gt;, and brought to my attention by one of the developers, &lt;a href="https://twitter.com/edsnider"&gt;Ed Snider&lt;/a&gt;, was created by &lt;a href="http://www.boozallen.com" target="_blank"&gt;Booz Allen Hamilton&lt;/a&gt; to showcase their ability to deliver polished Windows Store apps. The app makes nice use of imagery, integrates the Search contract to make it easier to locate information of interest, and also supports Semantic Zoom, making it easier to navigate the A to Z list of systems.&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/quadcalc/8bdb851a-8600-41db-bf86-b08dae52dd79" target="_blank"&gt;QuadCalc&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/quadcalc/8bdb851a-8600-41db-bf86-b08dae52dd79" target="_blank"&gt;&lt;img title="QuadCalc" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" alt="QuadCalc" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_E5B9/QuadCalc_3.jpg" border="0" height="359" width="640" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From student developer Ivkaran Sawhney, QuadCalc is a simple app that makes it easier to calculate quadratic equations.&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/room-of-monsters/798fc0c8-7ce3-4dde-97d1-417e05bebe3e" target="_blank"&gt;Room of Monsters&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/en-US/app/room-of-monsters/798fc0c8-7ce3-4dde-97d1-417e05bebe3e" target="_blank"&gt;&lt;img title="RoomOfMonsters" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" alt="RoomOfMonsters" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Friday-App-Shout-Out_E5B9/RoomOfMonsters_3.jpg" border="0" height="360" width="640" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This simple game, developed by CrusaderLord91, who attended last week's MobileDev@TU meetup at Towson University, is a nice example of a game that you can build very quickly using &lt;span style="text-decoration: line-through;"&gt;&lt;a href="https://www.scirra.com/" target="_blank"&gt;Scirra's Construct 2&lt;/a&gt; game development tool. Construct 2 allows you to build games quickly, using visual elements and events, and export the resulting game as a Windows Store (or Windows Phone) app.&lt;/span&gt; CreateJS. [My bad - per the comment below, CrusaderLord91 informs me he wrote the game using &lt;a target="_blank" href="http://createjs.com/"&gt;CreateJS&lt;/a&gt;, which is another great way to build JavaScript-based games for the Windows Store. It's also the basis of the Catapult Wars demo game I use in my series on &lt;a target="_blank" href="http://bitly.com/bundles/devhammer/2"&gt;Building Back-end Data and Services for Windows Store apps.&lt;/a&gt; My apologies for any confusion.]&lt;/p&gt;
&lt;p&gt;The game supports keyboard, mouse, and touch input, and while the game play is very simple (shoot spells at the monsters and kill as many as possible), it comes with a twist&amp;hellip;your spells will continue to bounce around the screen, and they can kill you, too, so the more you use, the more time you have to spend dodging your own weapons.&lt;/p&gt;
&lt;p&gt;If you're interested in building your own game for the Windows Store, &lt;a href="https://github.com/jimoneil/Construct-2" target="_blank"&gt;have a look at the Construct 2 templates published&lt;/a&gt; by my peer &lt;a href="http://blogs.msdn.com/b/jimoneil/" target="_blank"&gt;Jim O'Neil&lt;/a&gt;. They can be a nice way to get started quickly with a variety of game types. Jim also has a couple of documents at the link above that walk through the process of submitting an app based on one of the templates to the Windows Store. And if you submit a qualifying app before June 30th, you may be eligible for a $100 virtual Visa gift card, through our &lt;a href="http://aka.ms/KeepTheCashApps" target="_blank"&gt;Keep the Cash program&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Who's Next?&lt;/h2&gt;
&lt;p&gt;Would you like to be next? You can get links, videos, and more for free at &lt;a href="http://bitly.com/gd30tolaunch"&gt;App Builder&lt;/a&gt;. Sign up takes only a few seconds, and the resources can help make you the next app rockstar.&lt;/p&gt;
&lt;p&gt;You can also join me for an upcoming &lt;a href="http://usdpe.ohours.org/devhammer"&gt;Office Hours&lt;/a&gt;, where I can provide 1:1 technical advice on building your app and getting it into the Windows Store. YumvY's developer took advantage of office hours&amp;hellip;you should, too!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://devhammer.net/contact"&gt;Drop me a note&lt;/a&gt; if you're working on a Windows 8 app and have questions or need advice.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/WGQaiOhXFp8" height="1" width="1"/&gt;</description><pubDate>Fri, 12 Apr 2013 21:03:00 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/friday-app-shout-out-weapons-monsters-and-calculations-oh-my</guid><feedburner:origLink>http://devhammer.net:80/blog/friday-app-shout-out-weapons-monsters-and-calculations-oh-my</feedburner:origLink></item><item><title>Northern Virginia Code Camp...Register Today!</title><link>http://feeds.devhammer.net/~r/devhammer/~3/TQHPTwV92Yg/northern-virginia-code-camp...register-today</link><description>&lt;p&gt;&lt;a href="http://www.novacodecamp.org/" target="_blank"&gt;&lt;img alt="Northern Virginia CodeCamp" src="http://www.novacodecamp.org/Portals/0/NovaCodeCampLogo2013-1.png"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;In just a week from tomorrow, on &lt;strong&gt;April 20th, 2013&lt;/strong&gt;, DC area geeks will gather for the latest Northern Virginia Code Camp. &lt;a href="http://www.novacodecamp.org/"&gt;NoVA Code Camp&lt;/a&gt; has a long history of great full-day FREE developer events, and this year is no exception, with &lt;strong&gt;5 full tracks&lt;/strong&gt; and &lt;strong&gt;25 sessions&lt;/strong&gt; to choose from, you're sure to find something of interest to you.&lt;/p&gt; &lt;p&gt;Registration is open now, so head over to &lt;a href="http://novacodecamp2013.eventbrite.com/"&gt;http://novacodecamp2013.eventbrite.com/&lt;/a&gt; to reserve your spot!&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.franksworld.com/" target="_blank"&gt;Frank La Vigne&lt;/a&gt; and I will both be on hand to help answer questions attendees may have about building apps for the Windows Store and navigating the certification process.&lt;/p&gt; &lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/TQHPTwV92Yg" height="1" width="1"/&gt;</description><pubDate>Fri, 12 Apr 2013 16:16:11 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/northern-virginia-code-camp...register-today</guid><feedburner:origLink>http://devhammer.net:80/blog/northern-virginia-code-camp...register-today</feedburner:origLink></item><item><title>Building Back-end Data and Services for Windows 8 Apps: Adding Authentication</title><link>http://feeds.devhammer.net/~r/devhammer/~3/O-7tnD1CdJ0/building-back-end-data-and-services-for-windows-8-apps-adding-authentication</link><description>&lt;p&gt;In &lt;a href="http://bitly.com/bundles/devhammer/2"&gt;previous installments of this series&lt;/a&gt;, I've shown how you can quickly create REST-based services accessible via HTTP that allow you to easily store and retrieve data in a Windows Store app, using several different approaches including WCF Data Services, ASP.NET Web API, and the new Windows Azure Mobile Services. You can &lt;a href="http://bitly.com/bundles/devhammer/2"&gt;read all of the previous parts of the series here&lt;/a&gt;. I recommend reading the intro post and the post on Windows Azure Mobile Services at a minimum, so you're familiar with the games I'm using to demonstrate the concepts in the series, and with the basics of mobile services.  &lt;h2&gt;Authentication - Advantage: Windows Azure Mobile Services&lt;/h2&gt; &lt;p&gt;As I noted in the &lt;a href="http://devhammer.net/blog/building-back-end-data-and-services-for-windows-8-apps-windows-azure-mobile-services" target="_blank"&gt;post demonstrating Windows Azure Mobile Services&lt;/a&gt;, there are a couple of features in &lt;a href="http://www.windowsazure.com/mobile"&gt;Windows Azure Mobile Services&lt;/a&gt; (hereafter, WAMS or Mobile Services) that make it well-suited for building back-ends for mobile apps (including Windows Store apps), and provide significant advantages in getting your app working quickly, and providing additional needed services. In the &lt;a href="http://bit.ly/TnP5jU" target="_blank"&gt;most recent post in this series&lt;/a&gt;, I showed how to use the built-in support for push notifications. In this post, I'll explore the built-in support for authentication.  &lt;h2&gt;Who Are You?&lt;/h2&gt; &lt;p&gt;Authentication answers the question "who are you?" Its purpose is to identify the user. In order for authentication to be useful, we need to have some trusted source for the user's identity. In a web application, this might be a custom database of usernames and passwords for users who have registered on our site. While we could do the same with apps, the challenge we'd face is that many users today are resistant to creating a new account for each app or web site they use, so if we force them down that path, they may decide to simply uninstall our app and move on to another one that makes fewer demands on them.&lt;/p&gt; &lt;p&gt;So what's an app developer to do? Well, thanks to Mobile Services, you have access to a number of built-in providers for authentication information, and you can choose which ones you want to trust for your app's authentication purposes. The current version of Mobile Services as of this writing has support for 4 authentication providers: Microsoft Account (naturally), &lt;a href="http://twitter.com/" target="_blank"&gt;Twitter&lt;/a&gt;, Facebook, and Google.&lt;/p&gt; &lt;p&gt;Since the majority of app users are likely to have one or more of these accounts, you can make it much easier on yourself (and your users) by leveraging one or more of these providers for your app. And Mobile Services makes it easy to do.&lt;/p&gt; &lt;p&gt;Let's take a look at how to add support for identifying users based on their Twitter accounts, so we can use their Twitter name as the player name in Space Cadet.&lt;/p&gt; &lt;h2&gt;The Overview&lt;/h2&gt; &lt;p&gt;The high-level steps for adding authentication to a mobile service (and its clients) are as follows:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Obtain the necessary key/secret from the provider you wish to use. In the case of Twitter, you can get this by creating an app at &lt;a title="My applications" href="https://dev.twitter.com/apps" target="_blank"&gt;https://dev.twitter.com/apps&lt;/a&gt;  &lt;li&gt;Copy the values for the key and secret to the appropriate fields in the Identity tab of your mobile service.  &lt;li&gt;Restrict permissions as desired at the table level, using the desired table's Permissions tab.  &lt;li&gt;Add authentication to the client app by calling the login function of the mobile service client.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt; &lt;h2&gt;The Walkthrough&lt;/h2&gt; &lt;p&gt;Here are the necessary steps in detail:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Visit &lt;a href="https://dev.twitter.com/apps"&gt;https://dev.twitter.com/apps&lt;/a&gt; (instructions for this step for &lt;a href="http://www.windowsazure.com/en-us/develop/mobile/how-to-guides/register-for-facebook-authentication/" target="_blank"&gt;Facebook&lt;/a&gt;, &lt;a href="http://www.windowsazure.com/en-us/develop/mobile/how-to-guides/register-for-google-authentication/" target="_blank"&gt;Google&lt;/a&gt;, and &lt;a href="http://www.windowsazure.com/en-us/develop/mobile/how-to-guides/register-for-microsoft-authentication/" target="_blank"&gt;Microsoft Account&lt;/a&gt; are available in the mobile services documentation), and log in with the desired Twitter account (if you don't have an account, you can register for one on the site…you will need to confirm your email address before you can move on to the next step).&lt;/li&gt; &lt;li&gt;If you're not already on the My applications page, from the drop-down in the upper right (where your Twitter avatar is), select "My applications" as shown below:&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TwitterMyApps_2.png"&gt;&lt;img title="TwitterMyApps" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TwitterMyApps" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TwitterMyApps_thumb.png" width="240" height="104"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;If you don't already have one that you'd like to use, click the "Create a new application" button, and fill out the following fields:&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Name – the name of the application, which will be shown in authorization screens&lt;/li&gt; &lt;li&gt;Description – text description of the app, which will also be shown to the user&lt;/li&gt; &lt;li&gt;Website – URL to a public-facing website with more info about your app. This could be your main website, or a link to your app's online store URL.&lt;/li&gt; &lt;li&gt;Callback URL – URL for the mobile service you're using (i.e. http://&lt;em&gt;MYAPPNAME&lt;/em&gt;.azure-mobile.net). &lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Read through the terms of service, check the "Yes, I agree" box (assuming you do), and then click the "Create your Twitter application" button.&lt;/li&gt; &lt;li&gt;You'll be redirected to a page that looks something like the following…note the highlighted Consumer key and Consumer secret fields:&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TwitterApp_2.png"&gt;&lt;img title="TwitterApp" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TwitterApp" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TwitterApp_thumb.png" width="530" height="480"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Open the &lt;a href="http://www.windowsazure.com/" target="_blank"&gt;Windows Azure Management portal&lt;/a&gt;, log in, and open the mobile service you want to add authentication to.&lt;/li&gt; &lt;li&gt;Switch to the Identity tab of the mobile service, and paste in the Twitter key and secret to the appropriate fields on the page, and click the Save button at the bottom of the page. IMPORTANT: Treat the Consumer secret as you would a password. Do not share it or post it publicly, and do not use this value in client-side code.&lt;/li&gt; &lt;li&gt;To prevent unauthenticated users from performing specific operations on the mobile service, switch to the Data tab, click the desired table (in my case, the gamescore table, and click the Permissions tab. The default permissions for a table for each operation is "Anybody with the Application Key" which means any client that has been configured with the correct application key (you can get your application key from the Configure area of the mobile service, using the Manage Keys button at the bottom of that page). Let's assume we want to limit inserts and updates to authenticated users, and prevent deleting of data to anyone but scripts and administrators. To do so, we change the permissions on the table as follows, and click Save:&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TablePermissions_2.png"&gt;&lt;img title="TablePermissions" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TablePermissions" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TablePermissions_thumb.png" width="640" height="444"&gt;&lt;/a&gt;&lt;br&gt;The above changes provide authorization for authenticated users to insert or update records, while unauthenticated users are only authorized to read records. At this point, if we run the Space Cadet game project (the same one used in the &lt;a href="http://bit.ly/TnP5jU" target="_blank"&gt;most recent post in this series&lt;/a&gt;), we'll get an exception when the game attempts to update the leaderboard, because the client is no longer authorized to update the data without authentication. Since the demo project doesn't have a global exception handler, if we're debugging, the error will show up in the terminateAppHandler function in base.js, as shown below:&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/terminateAppHandler_2.png"&gt;&lt;img title="terminateAppHandler" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="terminateAppHandler" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/terminateAppHandler_thumb.png" width="640" height="190"&gt;&lt;/a&gt;&lt;br&gt;The solution for this is simple…add code to enable authentication.&lt;/li&gt; &lt;li&gt;In my leaderboardWAMS.js file, I'm going to add a variable called userId to the declarations at the top of the file, and just below the code that initializes the mobile service, I'll place a call to the &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj554236.aspx" target="_blank"&gt;login function&lt;/a&gt;, specifying that I want to login with Twitter:&lt;br&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// existing code to initilize the mobile service client&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;leaderboardClient = &lt;span class="kwrd"&gt;new&lt;/span&gt; Microsoft.WindowsAzure.MobileServices.MobileServiceClient(&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;   &lt;span class="str"&gt;"https://gameleaderwams.azure-mobile.net/"&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   &lt;span class="str"&gt;"dZiAISmMtUyaytLCCsBtWNrwoHKDkI39"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;// Login with Twitter, and don't process additional &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="rem"&gt;// initialization code until the authentication is complete&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;leaderboardClient.login(&lt;span class="str"&gt;"twitter"&lt;/span&gt;).done(&lt;span class="kwrd"&gt;function&lt;/span&gt; (result) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;   userId = result.userId;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;   &lt;span class="rem"&gt;// Replace "gamescore" with your table name, if different&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;   gameScoresTable = leaderboardClient.getTable(&lt;span class="str"&gt;'gamescore'&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;   &lt;span class="rem"&gt;// make sure that the score table has at least one record for the player name / game name combo&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;   gameScoresTable.where({ player: playerName, game: gameName })&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;      .read().done(&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;         &lt;span class="kwrd"&gt;function&lt;/span&gt; (results) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (results.length == 0) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;               &lt;span class="rem"&gt;// initialize table&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;               &lt;span class="kwrd"&gt;var&lt;/span&gt; gameScore = {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                  game: gameName, player: playerName, score: 0, wins: 0, losses: 0, ties: 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;               };&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;               gameScoresTable.insert(gameScore);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            };&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            completed();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;         },&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;         &lt;span class="kwrd"&gt;function&lt;/span&gt; (e) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            showMessage(e.message);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;         });&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;      });&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;/li&gt;
&lt;li&gt;Now if we run the game again, the mobile service client will automatically invoke the correct APIs to prompt the user for Twitter login, as shown below:&lt;br&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TwitterAuth_2.png"&gt;&lt;img title="TwitterAuth" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TwitterAuth" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/TwitterAuth_thumb.png" width="640" height="360"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If we fill in valid credentials, click Authorize app, and then play the game and get a new high score, the game will again be able to successfully update the leaderboard with the new high score.&lt;/li&gt;&lt;/ol&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;A Note About the Client&lt;/h2&gt;
&lt;p&gt;You might have noticed that on line 10 of the code above, we save the value of the userId returned as a result of the login call. While you can use that value for convenience sake, do not assume that it is valid if you send it back to the server. Client data and code should always be treated as suspect, because a determined person can potentially falsify that data and attempt to call your service outside of the normal workflow of your app. While there are mitigation techniques in place in Windows Store apps to make this harder, any client application that sends data to a server is subject to similar concerns.&lt;/p&gt;
&lt;p&gt;Fortunately, mobile services provides a &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj554220.aspx" target="_blank"&gt;user object&lt;/a&gt; on the server side that is available for each request, as part of the Scripts tab on each mobile services table. That user object includes (among other things) a userId property which will contain the user ID provided by the configured authentication provider, assuming the user has authenticated successfully (otherwise, the value of this property will be &lt;em&gt;undefined&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;You could use this property to validate a userID supplied by client code for a given request, or simply use it as the canonical user ID value in your operations. Here's an example of using the Update script to log the userID of the user making the update request:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; update(item, user, request) {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;      console.log(&lt;span class="str"&gt;"updated score record for: "&lt;/span&gt; + user.userId);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;      request.execute();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;

&lt;p&gt;request.execute() is the default code for each server-side script operation, so the relevant code here is line 2, which calls console.log to save the user ID information. This information can then be reviewed on the Logs tab in the root of the mobile service, as shown below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/WAMSLog_2.png"&gt;&lt;img title="WAMSLog" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="WAMSLog" src="http://devhammer.net/Media/Default/Windows-Live-Writer/Building-Back-end-Data-and-Services-for-_C264/WAMSLog_thumb.png" width="640" height="191"&gt;&lt;/a&gt;&lt;/p&gt;







&lt;p&gt;Notice that the log above includes results for both authenticated and unauthenticated users.&lt;/p&gt;
&lt;h2&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;In this post, I've shown you how I quick and easy it is to authenticate users against a third-party provider using Windows Azure Mobile Services. Once you've configured the proper app credentials, the mobile services client takes care of all the heavy lifting of making the appropriate API calls for the app platform you're working with, and returns the user ID and the auth token from the configured service.
&lt;p&gt;You can &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj710105.aspx" target="_blank"&gt;explore more about authentication in Windows Azure Mobile Services here&lt;/a&gt;.
&lt;h2&gt;For Review&lt;/h2&gt;&lt;a name="review"&gt;&lt;/a&gt;
&lt;p&gt;If you haven't already, I highly recommend that you read the rest of the posts in this series: 
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://bit.ly/Win8DataSvc"&gt;Building Data and Services for Windows 8 Apps: Overview&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/TripDM"&gt;Building Back-end Data and Services for Windows 8 Apps: OData - Part 1&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/UZ9Uy7"&gt;Building Back-end Data and Services for Windows 8 Apps: OData - Part 2&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/TEBoHA"&gt;Building Back-end Data and Services for Windows 8 Apps: ASP.NET Web API&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/12oegCY"&gt;Building Back-end Data and Services for Windows 8 Apps: Windows Azure Mobile Services&lt;/a&gt;
&lt;li&gt;&lt;a href="http://bit.ly/TnP5jU" target="_blank"&gt;Building Back-end Data and Services for Windows 8 Apps: Adding Push Notifications&lt;/a&gt; 
&lt;li&gt;Building Back-end Data and Services for Windows 8 Apps: Adding Authentication (this post) 
&lt;li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;What's Next?&lt;/h2&gt;
&lt;p&gt;In the next installment of this series, I'll look at how we can get some additional information about our authenticated user from the configured identity provider, as well as explore how we can use the Live Connect service for single-sign on. I'm also working on a series of episodes of Microsoft DevRadio in which I'll be discussing the concepts of this series, and doing some demos, with my colleagues Brian Hitney and Peter Laudati. I'll post links to the shows once they're available.
&lt;p&gt;While you're waiting for the next installment, why not sign up for &lt;a href="http://bit.ly/gd30tolaunch"&gt;App Builder&lt;/a&gt;? There are lots of great resources available for building Windows 8 apps (and now for Windows Phone 8 as well), including &lt;a href="http://www.generationapp.com/frameworks/#fbid=N7fqwpqoBQU"&gt;new information on a variety of app frameworks&lt;/a&gt; from partners that make it fast and easy to build apps and games for Windows 8. It's free, and you control how often updates are sent, so there's no good reason to pass it up. &lt;a href="http://bit.ly/gd30tolaunch"&gt;Sign up now&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/O-7tnD1CdJ0" height="1" width="1"/&gt;</description><pubDate>Wed, 10 Apr 2013 18:57:57 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/building-back-end-data-and-services-for-windows-8-apps-adding-authentication</guid><feedburner:origLink>http://devhammer.net:80/blog/building-back-end-data-and-services-for-windows-8-apps-adding-authentication</feedburner:origLink></item><item><title>Upcoming Events for April 8th, 2013</title><link>http://feeds.devhammer.net/~r/devhammer/~3/UNzsqRdjWmk/upcoming-events-for-april-8th-2013</link><description>&lt;p&gt;Here are the events listed in &lt;a href="http://www.communitymegaphone.com/"&gt;Community Megaphone&lt;/a&gt; for the next week (or so) for the Mid-Atlantic area, as well as webcasts of interest:&lt;/p&gt; &lt;h2&gt;DC&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6331"&gt;Mastering HTTP Handlers in the ASP.NET Web API&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 6:30 PM, Washington, DC&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2400+N+Street+NW%2c+Washington%2c+DC&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Mastering HTTP Handlers in the ASP.NET Web API on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6331&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Writing web services using the ASP.NET Web API can be quite satisfying. For SOAP developers accustomed to strict separations between bindings and contracts, it can also be a frustrating experience. Without proper foresight and planning, the boundaries between controller actions and the transport can get fuzzy, potentially leading to design complications as your application matures. In this code-focused session, you'll learn about one of the Web API's key extensibility mechanisms that can help to separate an application's "plumbing" from its business logic and data-handling concerns. When you've completed this session, you'll understand the Web API's object model and how to write global and per-route HTTP handlers to solve a range of cross-cutting problems. &lt;br&gt;&lt;br&gt;About Kevin Hazzard &lt;br&gt;Kevin Hazzard is a consultant, author and Microsoft Windows Azure MVP from the Richmond, Virginia. He serves as a Director at CapTech Consulting where he designs and implements large-scale SQL Server databases and .NET services for Fortune 500 clients in D.C., focusing on the health care, retail, manufacturing and communication industries. Kevin is the author of Metaprogramming in .NET by Manning, a book that concerns the value of adaptable software design. &lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6331"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6331"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6331.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6336"&gt;JavaScript for Non-Web Apps&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, April 18, 2013 7:00 PM, Washington, DC&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1133+15th+St+NW%2c+9th+Floor%2c+Washington%2c+DC&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View JavaScript for Non-Web Apps on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6336&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; What does it take to author a good jQuery plugin? Trevor Davis, Senior Front-End Developer at Viget will take a look at building jQuery plugins and different styles of JavaScript execution patterns along with a few of the concepts that will help you take your code and plugins to next level. &lt;br&gt;&lt;br&gt;Event venue: WaPo Labs &lt;br&gt;&lt;br&gt;Hosted by: DC jQuery Users Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6336"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6336"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6336.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;MD&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6363"&gt;CMAP Main Meeting - 'this' Isn't What You Think It Is: JavaScript for Object Oriented Programmers - Joel Cochran&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 09, 2013 6:30 PM, Columbia, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=6751+Columbia+Gateway+Drive%2c+Columbia%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View CMAP Main Meeting - " src="http://communitymegaphone.com/MapTile.ashx?id=6363&amp;amp;w=200&amp;amp;h=200" on - Programmers Oriented Object for JavaScript Is: It Think You What Isn?t this? maps? joel cochran bing&gt;&lt;/a&gt; Topic: 'this' Isn't What You Think It Is: JavaScript for Object Oriented Programmers &lt;br&gt;&lt;br&gt;JavaScript is not just for DOM manipulation: with its growing presence in browsers, on servers, and now the desktop with Windows 8, JavaScript is fast becoming the ubiquitous programming language. Regardless of your background, odds are pretty good that JavaScript will be part of your future. JavaScript has a unique feature set that can make it challenging for object oriented programmers. In this introductory session we'll discuss some of JavaScript's pitfalls and strengths. We'll take a look at strategies for developing JavaScript namespaces, classes, and objects from an object oriented perspective. We'll also discuss some of the more popular JavaScript libraries that you'll definitely want to have in your toolbox. &lt;br&gt;&lt;br&gt;Presenter: Joel Cochran &lt;br&gt;&lt;br&gt;Joel Cochran is a Senior Technology Consultant with Lotic Factor Inc, of Roanoke, VA, a business and technology consulting firm. He is a Microsoft Expression Blend MVP, an ASPInsider, and is currently serving as the INETA Mentor for Virginia. Joel is the author of Expression Blend in Action" by Manning Publications and "The Practical MVVM Manifesto". A technology generalist, he works with technologies such as Windows 8, WPF, ASP.NET MVC4, SQL Server, SSIS, and Azure. His languages of choice are C# and JavaScript. He spends an inordinate amount of time on Twitter (@joelcochran) and far less time on his blog http://joelcochran.com. &lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6363"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6363"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6363.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6375"&gt;RockNUG Release 6.10&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 10, 2013 6:30 PM, Rockville, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2600+Tower+Oaks+Blvd%2c+Rockville%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RockNUG Release 6.10 on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6375&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Give your API a REST with ServiceStack &lt;br&gt;- Jimmy Bosse &lt;br&gt;&lt;br&gt;Single Page Applications have forced many developers to rethink how they build their web applications, specifically with respect to exposing their business tier through APIs. If you have not yet implemented your API, or have started working with WebAPI or *gasp* WCF, you might want to give ServiceStack a try. Using "Plain Old CLR Objects" and a few conventions, ServiceStack lets you can build an API that is easy to read, easy to use, easy to maintain, and easy to test. Come see how you can build a simple single page application with ServiceStack as your API framework. &lt;br&gt;&lt;br&gt;Jimmy Bosse has been working with .NET and C# since 2001. Jimmy became a TDD fanatic in 2005. He loves writing code, watching sci-fi, and riding his electric skateboard. Red Green Refactor! &lt;br&gt;6:30 - 7:00 n00b Presentation: S is For... - Dean Fiala &lt;br&gt;7:00 - 7:30 Pizza/Announcements &lt;br&gt;7:30 - 9:00 Give your API a REST with ServiceStack - Jimmy Bosse&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6375"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6375"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6375.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6360"&gt;PASSDC SQL Server User Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Thursday, April 11, 2013 6:30 PM, Chevy Chase, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=5404+Wisconsin+Ave.+Ste.+700%2c+Chevy+Chase%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View PASSDC SQL Server User Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6360&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Our first meeting! In addition to our featured speaker, we're looking forward to hearing from you about how best this user group can support professionals in the DC area. We'll also have food and raffle three SQL Server books! &lt;br&gt;&lt;br&gt;Featured Presentation: &lt;br&gt;&lt;br&gt;Shortcuts to Building SSIS in .Net &lt;br&gt;&lt;br&gt;Paul Rizza, Senior Consultant Microsoft &lt;br&gt;&lt;br&gt;Using an Open Source project API Library this session will show how SSIS Packages can be created as easily in C# .Net as they are in BIDS. During the session real world examples will be used to show how SSIS Code can be created in BULK.&lt;br&gt; &lt;div style="text-align: left; clear: both"&gt;&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6360"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6360"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6360.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/div&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6376"&gt;Intro to Windows Phone Development - Building apps and games w/ G. Andrew Duthie&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 6:15 PM, Baltimore, MD&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1020+Hull+St+%23100%2c+Baltimore%2c+MD&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Intro to Windows Phone Development - Building apps and games w/ G. Andrew Duthie on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6376&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; This is Baltimore Mobile's third and final month of our intro series that covered the major mobile operating systems in today's market. Come join Microsoft Technical Evangelist G. Andrew Duthie for a tour of the landscape for developing apps for the latest version of the Windows Phone platform, from native tools like Visual Studio 2012, to third-party frameworks such as YoYoGames' GameMaker, Scirra's Construct 2, and Unity3D. Andrew will share some of the great features of Windows Phone that you can leverage in your apps, from Live Tiles to NFC and more. &lt;br&gt;&lt;br&gt;Meeting Agenda &lt;br&gt;&lt;br&gt;6:15 - 7:00 - Food and Socializing &lt;br&gt;7:00 - 8:15 - Windows Phone - Building apps and games w/ Andrew Duthie &lt;br&gt;8:15 - 9:00 - Wrap-Up and Socializing &lt;br&gt;&lt;br&gt;Sponsors &lt;br&gt;E-Moxie - Meetup, Organization, Giveaways &lt;br&gt;SmartLogic Solutions - Pizza &lt;br&gt;AOL / Advertising.com - Location and Meetup Support! &lt;br&gt;&lt;br&gt;VENUE AND PARKING DETAILS: &lt;br&gt;See Meetup link for details. &lt;br&gt;&lt;br&gt;Event venue: AOL / Advertising.com - Ivory Building &lt;br&gt;&lt;br&gt;Hosted by: Baltimore Mobile&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6376"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6376"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6376.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;Online&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6230"&gt;Unlock the Power of Development Through Analytics&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 09, 2013 2:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; Learn the Key to Improving Software Quality, User Experience and Developer Productivity with Real Time Analytics – FREE Webinar &lt;br&gt;&lt;br&gt;Application exceptions offer a clear and undistorted view into an application’s quality, user experience and operational service level. In fact, unhandled, caught and thrown exceptions represent one of development’s only direct sources of user-driven application feedback. Yet, most development teams have no regular access to this vital development resource. In this 60-minute webinar, we demonstrate how PreEmptive Analytics™ for Team Foundation Server (TFS) can improve software quality, user experience and developer productivity. &lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6230"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6230.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6349"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 10, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6349"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6349.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6321"&gt;Tips &amp;amp; Tricks for Dates &amp;amp; Times in SQL Server&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 11:30 AM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; Writing queries with date and time data types can be tricky! Join Kendra to learn tips and best practices for selecting the right data types, choosing the best performing functions to round (or truncate) values, and how to avoid common pitfalls with dates and times in SQL Server. If you have one year of experience writing T-SQL queries, this free 30 minute webcast is for you.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6321"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6321.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6351"&gt;.Net Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 17, 2013 9:00 PM, Online&lt;br&gt;&lt;img style="height: 200px; float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="Online Event Icon" src="http://communitymegaphone.com/Images/Logo_200x200.png"&gt; The .Net Study Group is intended to help software developers increase their understanding of specific Microsoft technologies, eventually leading to Microsoft certification. Meetings will be held online in the evenings, revolving around a specific topic and study material spanning over several weeks. Participants attending are expected to have reviewed the material prior to the meeting, and should be ready to discuss any questions. The moderator will facilitate answering questions and discuss a brief summary of that week’s scheduled content. Please note this is not a class or a presentation but a study group where all members help each other answer questions and learn from each other.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6351"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6351.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;PA&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6369"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 09, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6369&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 3 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6369"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6369"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6369.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6333"&gt;Central PA SQL Server Users Group - April meeting&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 09, 2013 6:00 PM, Harrisburg, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1523+N.+4th+Street%2c+Harrisburg%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Central PA SQL Server Users Group - April meeting on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6333&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; SQL Server Users Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6333"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6333"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6333.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6367"&gt;Philadelphia VFP User Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 09, 2013 7:00 PM, Fort Washington, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=Room+158%2c+DeVry+University%2c+1140+Virginia+Drive%2c+Fort+Washington%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philadelphia VFP User Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6367&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Our speaker is Susan Gausch, Senior Solution Development Manager at SalesForce. She’ll introduce us to SalesForce: &lt;br&gt;&lt;br&gt;Salesforce is an online, web-based, CRM application that runs in "the cloud" allowing users to manage and perform nearly every detail of their job. Located in San Francisco, CA, Salesforce was founded by Marc Benioff and Parker Harris in 1999. Salesforce started out as a business software company distributing its product on a subscription basis. Now it has evolved into the #1 CRM solution in the world. Salesforce is also known for the force.com platform which allows external developers to create add-on applications that integrate seamlessly with Salesforce, enabling full customization to fit any business need. &lt;br&gt;&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6367"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6367"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6367.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6370"&gt;Philly Pluralsight Study Group&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 5:45 PM, Exton, PA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=222+Valley+Creek+Blvd+%2c+Exton%2c+PA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Philly Pluralsight Study Group on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6370&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Building HTML5 &amp;amp; JavaScript Apps with MVVM &amp;amp; Knockout Week 4 of 6&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6370"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6370"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6370.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt; &lt;h2&gt;VA&lt;/h2&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6377"&gt;Office Hours for Windows Store app developers - G. Andrew Duthie&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Friday, April 12, 2013 1:00 PM, McLean, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=1961+Chain+Bridge+Rd%2c+McLean%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Office Hours for Windows Store app developers - G. Andrew Duthie on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6377&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Do you have an app in progress, and need to get a little help with a technical or design question? &lt;br&gt;Or just need a little quiet time to focus on coding? &lt;br&gt;Please join Microsoft Technical Evangelist G. Andrew Duthie for Office Hours. There are a couple of ways to participate: &lt;br&gt;&lt;br&gt;Visit &lt;a href="http://usdpe.ohours.org/officehours/32329"&gt;http://usdpe.ohours.org/officehours/32329&lt;/a&gt; and reserve a slot for your specific app needs. This will ensure that you get specific 1:1 time. &lt;br&gt;Drop by any time during the office hours for a (relatively) quiet spot to work on your app. Please RSVP via meetup so we have an idea who's coming. &lt;br&gt;&lt;br&gt;We want to help you remove any technical blocks to finishing your app and getting it into the Windows Store. &lt;br&gt;Publishing apps can be rewarding...check out Keep the Cash (http://aka.ms/KeepTheCashApps). &lt;br&gt;&lt;br&gt;Event venue: Microsoft Store, in Tysons Corner Mall &lt;br&gt;&lt;br&gt;Hosted by: DC Windows App Developers&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6377"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6377"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6377.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6355"&gt;RADNUG April Meeting&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Tuesday, April 16, 2013 6:30 PM, Fredericksburg, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=11905+Bowman+Drive%2c+%23501+%2c+Fredericksburg%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View RADNUG  April Meeting on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6355&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; We are pleased to announce that Leland Holmquest will be our special guest speaker at our April meeting. &lt;br&gt;&lt;br&gt;Leland will be talking about Project Lily: Kinect enabled virtual assistant &lt;br&gt;&lt;br&gt;Project Lily started as a class project (CS895: Software for Context-Aware Multiuser Systems) at George Mason University. It has since been the basis for other class projects. Lily is intended to be a virtual assistant, trying to closely mimic human behavior and interactions. The Kinect for Windows sensor provides the "eyes and ears" for Lily. The talk will demonstrate some of Lily's capabilities, show some of the design and code behind Lily and briefly explain future intentions. &lt;br&gt;&lt;br&gt;About Leland: &lt;br&gt;&lt;br&gt;Leland Holmquest is a Senior Consultant at Microsoft supporting the US Army. Prior to Microsoft, he was a Software Engineer at the Naval Surface Warfare Center Dahlgren. He earned his Bachelor and Master's Degrees in Information Technology from American InterContinental University and is currently working on a Doctorate degree at Northcentral University. He has a regular column on MSDN Magazine Online and frequently blogs at lelandholmquest.wordpress.com. &lt;br&gt;And his crowning achievement, he is the proud father of two daughters. &lt;br&gt;&lt;br&gt;&lt;br&gt;RADNUG meets at the SimVentions office in Fredericksburg. Thank you to SimVentions for the use of their facility for our group! &lt;br&gt;&lt;br&gt; &lt;div style="text-align: left; clear: both"&gt;&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6355"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6355"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6355.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/div&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6311"&gt;Capital Area .NET SharePoint Special Interest Group Meetup&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Wednesday, April 17, 2013 7:00 PM, Arlington, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=2300+Wilson+Blvd%2c+Arlington%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View Capital Area .NET SharePoint Special Interest Group Meetup on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6311&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; Topic TBD. &lt;br&gt;&lt;br&gt;Event venue: The Navy League Building, 1st Floor &lt;br&gt;&lt;br&gt;Hosted by: Capital Area .NET SharePoint Special Interest Group&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6311"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6311"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6311.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p style="text-align: left; clear: both"&gt;&lt;strong&gt;&lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6264"&gt;NoVA CodeCamp&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Saturday, April 20, 2013 9:00 AM, Reston, VA&lt;br&gt;&lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=Microsoft+-+12012+Sunset+Hills+Road%2c+Reston%2c+VA&amp;amp;lvl=16&amp;amp;sty=r&amp;amp;encType=1" target="_blank"&gt;&lt;img style="float: left; margin: 0px 10px 0px 0px; display: inline; width: 200px" alt="View NoVA CodeCamp on Bing Maps" src="http://communitymegaphone.com/MapTile.ashx?id=6264&amp;amp;w=200&amp;amp;h=200"&gt;&lt;/a&gt; CodeCamp is a coding event by Developers for Developers. See website for calls for speakers, sponsors and registration.&lt;br clear="all"&gt;[ &lt;a href="http://www.communitymegaphone.com/ShowEvent.aspx?EventID=6264"&gt;Event Details&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/GetMapEventID.aspx?EventID=6264"&gt;Map &amp;amp; Directions&lt;/a&gt; | &lt;a href="http://www.communitymegaphone.com/ICS/6264.ics"&gt;Add To Calendar&lt;/a&gt; ]&lt;/p&gt;&lt;br&gt;&lt;br&gt; &lt;p&gt;Want your events listed? You can &lt;a href="http://www.communitymegaphone.com/AddEvent.aspx"&gt;add them here.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can also add your events via the Community Megaphone web service API. You can get more information on the API, and how to sign up, at &lt;a href="http://www.communitymegaphone.com/API.aspx"&gt;http://www.communitymegaphone.com/API.aspx&lt;/a&gt;. You can also &lt;a href="http://blogs.msdn.com/gduthie/contact.aspx"&gt;email me&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/UNzsqRdjWmk" height="1" width="1"/&gt;</description><pubDate>Mon, 08 Apr 2013 15:31:31 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/upcoming-events-for-april-8th-2013</guid><feedburner:origLink>http://devhammer.net:80/blog/upcoming-events-for-april-8th-2013</feedburner:origLink></item><item><title>Quick Hits Issue #6: Gr8 St8 Appathon, Unity Event, and more</title><link>http://feeds.devhammer.net/~r/devhammer/~3/sYvhxFu9r5w/quick-hits-issue-6-gr8-st8-appathon-unity-event-and-more</link><description>&lt;p&gt;In this issue, some upcoming opportunities to learn more about app and game development for the Windows Store.&lt;/p&gt; &lt;h2&gt;Gr8 St8 Appathon&lt;/h2&gt; &lt;p&gt;The brainchild of my fellow technical evangelist, Lindsay Lindstrom, the &lt;a href="http://aka.ms/x4gkf4" target="_blank"&gt;Gr8 St8 Appathon&lt;/a&gt; is a full-day online hackathon, taking place tomorrow, April 6th, from 10am to 6pm EDT. Learn how to quickly build a game for the Windows Store using the free &lt;a href="http://www.scirra.com/construct2/free-edition" target="_blank"&gt;Construct 2&lt;/a&gt; game development tool, and if you're a student, you may qualify for a $100 gift card per app you publish (up to 5).&lt;/p&gt; &lt;p&gt;Lindsay, myself, and others will be available during the event to answer questions, so &lt;a href="http://aka.ms/x4gkf4" target="_blank"&gt;head over to the registration page and sign up&lt;/a&gt;!&lt;/p&gt; &lt;h2&gt;Building Games with Unity 3D – Live Stream&lt;/h2&gt; &lt;p&gt;Tuesday, April 9th, there's an event at Microsoft's Silicon Valley Campus that will provide a ton of information on building games for Windows Phone and the Windows Store using Unity 3D. While it's probably too late to plan to be there in person, Tuesday's event will be live-streamed at &lt;a href="http://channel9.msdn.com/"&gt;http://channel9.msdn.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Unity is a fun and powerful tool for building amazing 3D (and 2D) games, and has been used for a number of awesome games currently in the Windows Store and on Windows Phone. Check out the live stream to learn how to leverage the support Unity 3D provides for the Windows Store and Windows Phone platforms to build compelling and fun games.&lt;/p&gt; &lt;h2&gt;Code Camp Call for Speakers&lt;/h2&gt; &lt;p&gt;If you're very quick (as in submit as soon as I publish this post), you may still have time to get a talk or two in for the &lt;a href="http://novacodecamp.org/" target="_blank"&gt;Northern Virginia Code Camp&lt;/a&gt;, taking place on April 20th. Their &lt;a href="http://novacc.wufoo.com/forms/nova-code-camp-20131-session-submission/" target="_blank"&gt;call for speakers&lt;/a&gt; is open until midnight, April 5th (today). &lt;/p&gt; &lt;p&gt;Additionally, the &lt;a href="http://www.cmap-online.org/CodeCamp/" target="_blank"&gt;CMAP Code Camp&lt;/a&gt; just announced their Call for Speakers, for their Spring Code Camp, which is scheduled for June 1st at Loyola University in Columbia, MD. Possible topics include (but not limited to):&lt;/p&gt; &lt;ul&gt; &lt;li&gt;SQL/Database &lt;li&gt;Windows 8/Windows Phone/ Mobile/Mobile games &lt;li&gt;ASP.Net/Azure &lt;li&gt;SharePoint &lt;li&gt;Programming for kids/Robotics &lt;li&gt;Tools/SDLC/Architecture&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Submit your session(s) here: &lt;a title="http://www.cmap-online.org/CodeCamp/Speakers.aspx" href="http://www.cmap-online.org/CodeCamp/Speakers.aspx"&gt;http://www.cmap-online.org/CodeCamp/Speakers.aspx&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Last Call for App Madness!&lt;/h2&gt; &lt;p&gt;If you're a student and you're considering submitting one or more apps or games for the &lt;a href="http://aka.ms/AppMadnessFacebook" target="_blank"&gt;App Madness Challenge&lt;/a&gt;, you've got less than a week until the promotion ends. The deadline for apps to be published and qualified is April 11th, so don't delay. All the details are at:&lt;/p&gt; &lt;p&gt;&lt;a title="Windows 8 App Madness Challenge" href="http://aka.ms/AppMadnessFacebook"&gt;Windows 8 App Madness Challenge&lt;/a&gt;&lt;/p&gt; &lt;p&gt;That's it for this issue…stay tuned for more next time!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/sYvhxFu9r5w" height="1" width="1"/&gt;</description><pubDate>Fri, 05 Apr 2013 21:47:40 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/quick-hits-issue-6-gr8-st8-appathon-unity-event-and-more</guid><feedburner:origLink>http://devhammer.net:80/blog/quick-hits-issue-6-gr8-st8-appathon-unity-event-and-more</feedburner:origLink></item><item><title>Tweak Touch Behavior in Internet Explorer with User Style Sheets</title><link>http://feeds.devhammer.net/~r/devhammer/~3/5pchNt-ml9A/tweak-touch-behavior-in-internet-explorer-with-user-style-sheets</link><description>&lt;p&gt;As touch becomes a more and more prevalent means of interacting with PCs as well as phones and tablets (I'm typing this on a Lenovo Carbon X1 Touch laptop), developers should be aware of how to create touch-friendly sites and apps that help users make the most of touch-enabled devices.&lt;/p&gt; &lt;p&gt;If you're building apps for the Windows Store, there's &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465415.aspx" target="_blank"&gt;good guidance available on touch interaction design&lt;/a&gt; on the &lt;a href="http://dev.windows.com/" target="_blank"&gt;Windows Store developer center&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;There's also some guidance available for &lt;a href="http://blogs.msdn.com/b/ie/archive/2012/04/20/guidelines-for-building-touch-friendly-sites.aspx" target="_blank"&gt;building touch-friendly sites in Internet Explorer 10&lt;/a&gt;. One interesting piece of that discussion is the –ms-touch-action CSS property, which defines the default behavior for the browser's response to touch.&lt;/p&gt; &lt;p&gt;The reason I'm mentioning all of this is that sometimes the default behavior of the browser may not be what you want…for example, if you're developing a full-screen game using HTML5 Canvas, having double-tap-zoom enabled (which is the default), may have undesired results, particularly when playing the game on a touch-screen device.&lt;/p&gt; &lt;p&gt;If you're a developer, it's easy enough to add an appropriate CSS style rule to prevent double-tap-zoom on the canvas element in your game, like so:&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;#myGameCanvas {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   -ms-touch-action: none;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;


&lt;p&gt;But what happens when you run into a game where the developer hasn't provided such a rule? Sure, you could just write it off and go find another game to play. But what fun would that be?&lt;/p&gt;
&lt;h2&gt;User Style Sheets to the Rescue!&lt;/h2&gt;
&lt;p&gt;A fairly simple workaround is to take a peek at the DOM for the running site, using the IE10 developer tools (just press F12 to launch the tools), and find the canvas element for the game, and write a rule similar to the above that targets the game's Canvas element. Then save that rule in a text file with the .css extension.&lt;/p&gt;
&lt;p&gt;Next, open up the Internet Explorer options dialog, and click the Accessibility button, as shown below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/baee1d8ce11a_C451/Accessibility_2.png"&gt;&lt;img title="Accessibility" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Accessibility" src="http://devhammer.net/Media/Default/Windows-Live-Writer/baee1d8ce11a_C451/Accessibility_thumb.png" width="375" height="480"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then check the "Format documents using my style sheet" checkbox (as shown below), and browse to the location of your .css file. Click OK twice, and just to be on the safe side, close and restart Internet Explorer. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://devhammer.net/Media/Default/Windows-Live-Writer/baee1d8ce11a_C451/Accessibility2_2.png"&gt;&lt;img title="Accessibility2" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Accessibility2" src="http://devhammer.net/Media/Default/Windows-Live-Writer/baee1d8ce11a_C451/Accessibility2_thumb.png" width="564" height="480"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If your selector is correctly targeting the canvas element, you should now be able to play the game without encountering unwanted double-tap zooming.&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;

&lt;h2&gt;A Word of Caution&lt;/h2&gt;
&lt;p&gt;The workaround suggested here is a fairly broad-brush solution, and depends highly on the specificity of the CSS selector used to apply the rule. If the selector isn't correct, the rule won't be applied, but if the selector is too broad (for example, if you applied the rule to all canvas elements) you might find that the workaround prevents double-tap zooming (or other touch behaviors) where you want them to work.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Sure, this is a bit of a hack to be able to play a game. But the User Style Sheets feature of IE can be used to tweak any preferences you might have in terms of CSS to make sites more readable, etc. So it's handy to keep it in your back pocket for when you might need it. Just remember, be specific in your rules, and remember that you have it enabled…just in case you happen to run into other sites where your user style sheet rules apply.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/devhammer/~4/5pchNt-ml9A" height="1" width="1"/&gt;</description><pubDate>Fri, 05 Apr 2013 18:51:00 GMT</pubDate><guid isPermaLink="false">http://devhammer.net:80/blog/tweak-touch-behavior-in-internet-explorer-with-user-style-sheets</guid><feedburner:origLink>http://devhammer.net:80/blog/tweak-touch-behavior-in-internet-explorer-with-user-style-sheets</feedburner:origLink></item></channel></rss>
