<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Many Niches &#187; Windows Phone</title>
	<atom:link href="http://www.manyniches.com/category/windows-phone/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.manyniches.com</link>
	<description>Jack of All Trades, Master of Some</description>
	<lastBuildDate>Mon, 14 Nov 2011 21:12:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Windows Phone Dev Ecosystem &#8211; One Year On</title>
		<link>http://www.manyniches.com/windows-phone/windows-phone-dev-ecosystem-one-year-on/</link>
		<comments>http://www.manyniches.com/windows-phone/windows-phone-dev-ecosystem-one-year-on/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 21:11:52 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/windows-phone-dev-ecosystem-one-year-on/</guid>
		<description><![CDATA[The title is a bit misleading as I have been in role for close to two years, but Windows Phone has been in market for a year.&#160; During the course of the past year, I learned quite a few things, and have been asked a number of questions from the community.&#160; I wanted to take [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fwindows-phone-dev-ecosystem-one-year-on%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fwindows-phone-dev-ecosystem-one-year-on%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>The title is a bit misleading as I have been in role for close to two years, but Windows Phone has been in market for a year.&#160; During the course of the past year, I learned quite a few things, and have been asked a number of questions from the community.&#160; I wanted to take this time to share some of those learnings, and answer a variant of the most common question I get (both internally and externally): “how are you guys doing this?”</p>
<p>Upon starting in role, the person who recruited me for the position (<a href="www.twitter.com/ckindel">Charlie Kindel</a>) walked me through <a href="http://ceklog.kindel.com/2011/06/14/the-5-ps-achieving-focus-in-any-endeavor/">what he calls the 5Ps</a>.&#160; This served as a very useful framework for thinking through how our team was going to tackle the very real problem of being in last place for developer ecosystems, and building excitement and driving recruitment for a pre-released mobile OS.</p>
<p>When we first met as a team, we sought to lay out what we though were the foundational principles for our work.&#160; This is essential, as it makes it very easy to say “NO” to things when you have clear principles.&#160; Since our fiscal year runs Jul to Jun, we have refactored our team principles for our current fiscal year.&#160; We did this based on the experience of the year we had behind us.&#160; With that in mind, I wanted to share some of the principles from the last fiscal year.&#160; No real corporate secrets here, and in fact, some people will say that this is just common sense.&#160; Maybe so, but the results have been building, with the new <a href="http://www.appcelerator.com/company/survey-results/mobile-developer-report-nov-2011/report/">IDC/Appcelerator</a> report out (expected <a href="http://allthingsd.com/20111114/developers-interest-growing-in-windows-phone-waning-in-blackberry/">press coverage</a>), and it looks like interest in Windows Phone development is at an all time high.&#160; Awesome.</p>
<p><strong>Inspire Developers</strong></p>
<p>The problem facing our team was essentially one of a cold start reboot.&#160; We had to start with a completely new dev platform, new tooling, and the fallout of a clean break from Windows Mobile 6.x, making many of those developers angry.&#160; The bottom line message for the team, and our extended team in our DPE org (Developer &amp; Platform Evangelism), was to build the message and demonstrate the clear opportunity of building on Windows Phone.&#160; For the first year, this involved heavy upselling of our investment in the long term success of Windows Phone.&#160; However, it also necessitated that we have improved reach and effectiveness with our outbound communications.&#160; This meant landing our stories with the press, but also engaging with developers on a 1:1 basis where possible.&#160; An impossibility to execute with our team alone, the partnership with our DPE org led to the creation of our mobile champs program.&#160; Having local feet on the street in the countries where we were selling phones was critical for developer support.</p>
<p><span id="more-506"></span>
<p><strong>Make Developers Rich &amp; Famous</strong></p>
<p>It’s long been one of my driving assertions that developers care about two things: making money or getting noticed for their work.&#160; Scoble once quipped that it was about getting paid or getting laid.&#160; Same difference.&#160; Here’s the thing: it’s not all about sales of apps.&#160; That matters – absolutely matters – but we can also do other things.&#160; We don’t need any more web traffic.&#160; Any chance we can take to redirect web traffic to a partner/developer is one we should take.&#160; Same thing for speaking opportunities, inclusion in press, conferences, etc.&#160; People know who we are.&#160; They don’t know who the developers are.&#160; Investing in them early pays off huge dividends later.&#160; We focused on ensuring that put the developers and apps in the spotlight.&#160; You will even see this in our newest round of commercials.</p>
<p>Beyond simply shining attention on the developers, we wanted to work with them to find ways to monetize their work, and that included ways to work with them to envision completely new business models.&#160; We’ve had some interesting conversations on that front, though for confidentiality reasons I can’t discuss them here.&#160; Needless to say, the attention units spent on developers for the Windows Phone platform was critical to our success.</p>
<p><strong>Search &amp; Discoverability</strong></p>
<p>From day one on the job, I told the team to stop creating content.&#160; We had people who had historically been goaled on such things as “create 10 case studies.”&#160; Why?&#160; Who saw them?&#160; What customer were they serving?&#160; Instead, we chose to focus on one simple dictum (use of Google intentional, since at the time, 70%+ of <em><u>developers</u></em> used Google): “If you cannot come up with the Google query for which your content surfaces in the top 10 links, DO NOT CREATE THE CONTENT.”</p>
<p>As part of a whitepaper I wrote when I took over the role, I included the following (modified pronouns):</p>
<blockquote><p>Whereas developers once turned to books for their learning process, search is now the primary means by which they get answers.&#160; The relevance and authority of a source discovered via search has been solved for them by the position in the search results; the author is almost irrelevant, as long as they can solve their problem. The faceless millions of bloggers/developers, not us, collectively produce the user manual they reference for our development platform.&#160; Their screen has room for 10 links. Their patience has room for clicking through to one, maybe two, additional pages of links. Exist in that space or we don’t exist at all.&#160; Though they start with search, the pervasiveness of social networking brings the expertise and influence of others closer than ever to their project spaces, and they rely on those social connections as trusted sources for how to solve their problems. They hope to be sought out as an expert someday.</p>
</blockquote>
<p>The world has changed from a publish and forget medium (books) to publish and connect one. Any successful community must support the platforms by creating living content, and connecting that content to other content created by other members in the community.&#160; This is a subtle, but very important, shift which has taken place over the last decade.</p>
<p><strong>Simplicity &amp; Removing Friction</strong></p>
<p>Charlie taught me a great saying: never show your organizational boundaries to your customers.&#160; He’s right.&#160; Yes I run the developer experience team for Windows Phone, but really, I work on Windows Phone, and that’s all customers care about.&#160; They don’t care about my title, or my org.&#160; They care about the problem they have in front of them, and not much else.&#160; I know it sounds crazy, but focusing on solving customer problems wins hearts and minds.</p>
<p>Beyond that, we have driven a hard core focus on reducing the number of steps it takes to get to the right answer.&#160; We haven’t been 100% successful, and we still have a ways to go, but much of the content created, access to tools, etc, have all been dramatically reduced in terms of click-time commitment.&#160; We also have spent a great deal of time on ensuring that we have ample code samples available for our developer community.&#160; We know devs are short on time, and having easy to find, and approachable, samples makes their lives a lot easier.</p>
<p>For this principle, it comes down to showing them the way, not showing them how smart we are.&#160; In many cases, they are smarter.&#160; We just have access to information they may not.&#160; Get it to them and watch what happens.</p>
<p><strong>One Year On</strong></p>
<p>Yes, we have recalibrated our principles as a result of what we have learned over the year.&#160; The essence remains largely the same, though I can say that we have made them more focused.&#160; What has made me happier than anything is the level of support from the community.&#160; Heck, I might even go so far as to say we have fan boys.&#160; The 38% of devs who are expressing that they are “very interested” is a nice data point, but we have a long long way to go before I will be happy.&#160; The addition of Nokia as a key ecosystem partner is a huge win for us, it further validates our model, and developers agree.</p>
<p>The number one principle for this year is: be highly available.&#160; We’ve learned quite a bit over the last year, but more than anything else, I have learned that if you make yourself available to the community, and do your honest best to invest in helping people out, and getting their questions answered, it will pay off in spades.</p>
<p>Helping out devs and being available means a lot of things.&#160; Here’s a great anecdote to show what I mean.&#160; When an android developer was showing me his app at a conference, I asked if I could give him feedback.&#160; They guy next to him was incredulous that I gave him honest feedback about how to make the app better, and that I didn’t try to sell him on Windows Phone.&#160; Why would I do that?&#160; He’s already invested in Android.&#160; I wanted to validate that investment, and give him useful information.&#160; If I could help make him successful on Android, my hope is that when he considers his next platform, he puts Windows Phone first because one of us stopped to help him out.&#160; Trying to convince him he made a bad choice with Android can only end in tears, and he may walk away thinking that we are jerks.&#160; I gave him my info and told him when he was ready to get started on Windows Phone to give me a holler, but I definitely wanted to hear from him when his app landed in the Android marketplace.</p>
<p>Being highly available means publishing your email (ThePhone [at] Microsoft), your phone (425-985-5568) and being on Twitter enough to answer the @ replies (man, this is where the integration with Twitter on Windows Phone Mango comes in SOOOO handy).&#160; <strong><u><em>Invest</em></u></strong> in the community.&#160; It’s very easy for someone to hate a company, but very hard to hate a person.&#160; We are putting a human face on developer platform for Windows Phone with the likes of Ben Lower (@<a href="http://www.twitter.com/benlower">benlower</a>), Cliff Simpkins (@<a href="http://www.twitter.com/cliffsimpkins">cliffsimpkins</a>), Larry Lieberman (@<a href="http://www.twitter.com/LarryALieberman">LarryALieberman</a>), Matt Bencke (@<a href="http://www.twitter.com/bencke">bencke</a>) and the countless other mobile champs in the field.&#160; It’s been a great ride thus far, and looking forward to the next year of phone availability.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/windows-phone-dev-ecosystem-one-year-on/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>Windows Phone Is Hiring &#8211; On My Team</title>
		<link>http://www.manyniches.com/windows-phone/windows-phone-is-hiring-on-my-team/</link>
		<comments>http://www.manyniches.com/windows-phone/windows-phone-is-hiring-on-my-team/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:42:41 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/windows-phone-is-hiring-on-my-team/</guid>
		<description><![CDATA[Subject: Ms. Muffet would run scared from you. Why Miss Muffet? Because we are looking for someone who has unbelievable _web_ skills.&#160; Get it?&#160; Web…Spider? No? #facepalm Befitting our desire to stand out with our job postings, I give you one rendered in tweets: Our team has a serious bunch of people who take #winning [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fwindows-phone-is-hiring-on-my-team%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fwindows-phone-is-hiring-on-my-team%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Subject: Ms. Muffet would run scared from you.</p>
<p>Why Miss Muffet? Because we are looking for someone who has unbelievable _<i>web</i>_ skills.&#160; Get it?&#160; Web…Spider? No? #facepalm</p>
<p>Befitting our desire to stand out with our job postings, I give you one rendered in tweets:</p>
<p>Our team has a serious bunch of people who take #winning very seriously&#8230;but we have no tigers&#8217; blood #ImportTariff</p>
<p>Specifically, we are on the Windows Phone Apps org, and we are responsible for the App Plat and the breadth dev ecosystem #WhupAppsForShort</p>
<p>We are looking for an amazing web technologist who wants to advance to state of the web on mobile devices #LovesWindowsPhone</p>
<p>Our purpose is clear: “Cultivate a developer ecosystem that delivers outstanding mobile experiences.”&#160; #TopThatGoogle</p>
<p>You will have broad responsibility: ensuring top 20 web sites look great on WP &amp; educating breadth web devs about the same #YouAreABeautician</p>
<p>You will find those places where WindowsPhone web stands out against the competition, and shine a light on it #CompeteToWin</p>
<p>You must have the mind of a genius but the heart of a teacher, because we have to reach loads of web devs #ScaleItUp</p>
<p>This will be an incredibly challenging position, requiring lots of cross group collaboration #TheWhatAndTheHow</p>
<p>There are 2 screening questions: 1) do you code as a hobby &amp; 2) have you successfully marketed a dev platform before? #HardToFind</p>
<p>The person who thinks they can and the person who thinks they can&#8217;t are both right #WhichOneAreYou</p>
<p>You can read about the <a href="http://bit.ly/uPn02d">job here</a>: #WhatAreYouWaitingFor</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/windows-phone-is-hiring-on-my-team/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Happy Developers</title>
		<link>http://www.manyniches.com/windows-phone/happy-developers/</link>
		<comments>http://www.manyniches.com/windows-phone/happy-developers/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 23:44:13 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/happy-developers/</guid>
		<description><![CDATA[A little nerd humor for the day. I got asked by some executives to “prove” that what we were doing was working.&#160; That wasn’t so hard.&#160; The next question was “how would you show return on investment for additional budget.”&#160; I thought on it for a few moments, and wrote the following on the board.&#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fhappy-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fhappy-developers%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>A little nerd humor for the day. I got asked by some executives to “prove” that what we were doing was working.&#160; That wasn’t so hard.&#160; The next question was “how would you show return on investment for additional budget.”&#160; I thought on it for a few moments, and wrote the following on the board.&#160; The engineers got it.</p>
<p><a href="http://www.manyniches.com/wp-content/uploads/2011/03/DevelopersHappy.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 3px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DevelopersHappy" border="0" alt="DevelopersHappy" src="http://www.manyniches.com/wp-content/uploads/2011/03/DevelopersHappy_thumb.png" width="484" height="144" /></a></p>
<p>That’s a screen grab from Visual Studio, which is now my desktop image.</p>
<p>I later shared this with some of my developer buddies.&#160; What ensued is also pretty funny:</p>
<p>Friend 1: “Shouldn’t that be a property (e.g., Developers.AreHappy)?”</p>
<p>Friend 2: “It could be a complex function returning different values depending on the level of Developer.Fickle property.&quot;</p>
<p>Friend 1: “The <a href="http://en.wikipedia.org/wiki/Fxcop">FxCops</a> will come after you for violating policy <a href="http://msdn.microsoft.com/en-us/library/ms182181.aspx">CA1024</a>.&#160; To Friend 2’s point, you could get a reprieve if making devs happy is a time-intensive operation. If that’s the case, however, you should review your entire architecture and implementation.”</p>
<p>I love my nerdy friends.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/happy-developers/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Crawling the Windows Phone Marketplace</title>
		<link>http://www.manyniches.com/windows-phone/crawling-the-windows-phone-marketplace/</link>
		<comments>http://www.manyniches.com/windows-phone/crawling-the-windows-phone-marketplace/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 19:21:28 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[crawl]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[marketplace]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/crawling-the-windows-phone-marketplace/</guid>
		<description><![CDATA[I have been asked by a few people how sites like WP7AppList get their data.&#160; The Windows Phone Marketplace, which you access on your PC via Zune software, uses XML to get data over the wire.&#160; I wanted to share a couple of code snippets which might help an erstwhile data junkie on their way.&#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fcrawling-the-windows-phone-marketplace%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fcrawling-the-windows-phone-marketplace%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I have been asked by a few people how sites like <a href="http://www.wp7applist.com">WP7AppList</a> get their data.&#160; The Windows Phone Marketplace, which you access on your PC via Zune software, uses XML to get data over the wire.&#160; I wanted to share a couple of code snippets which might help an erstwhile data junkie on their way.&#160; This code works.&#160; It may not be the most elegant solution, but it works, and I wanted to share it with others in case they wanted to see how to parse the XML, or how to write LINQ queries against it.</p>
<p>Caveat – this is a geek enthusiast post.&#160; I used <a href="http://www.fiddler2.com/fiddler2/">Fiddler</a> to figure out how to parse the XML.&#160; This was something I did over Christmas break to give me a project about which I could be excited, and learn some more about parsing XML with LINQ.&#160; I also wanted to do some large database stuff, and this crawler throws off a ton of data.&#160; I did not use an proprietary knowledge about how our backend systems are working.&#160; This is all done against the public XML feeds.</p>
<p>First up, we are going to need to create some data structures to catch all of the inbound data.&#160; You can use anonymous types with LINQ, but I liked having a measure of control, and having the ability to handle null values and potential errors in the feed.</p>
<p><span id="more-494"></span>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> ZestAppData
{
    <span class="kwrd">public</span> <span class="kwrd">string</span> Title { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> Id { get; set; }
    <span class="kwrd">public</span> DateTime ReleaseDate { get; set; }
    <span class="kwrd">public</span> DateTime Updated { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> Version { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> ShortDescription { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">decimal</span> AverageUserRating { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">int</span> UserRatingCount { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> ImageId { get; set; }

    <span class="kwrd">public</span> IList&lt;ZestCategory&gt; Categories = <span class="kwrd">new</span> List&lt;ZestCategory&gt;();
    <span class="kwrd">public</span> IList&lt;ZestPublisher&gt; Publisher = <span class="kwrd">new</span> List&lt;ZestPublisher&gt;();
    <span class="kwrd">public</span> IList&lt;ZestOffer&gt; Offers = <span class="kwrd">new</span> List&lt;ZestOffer&gt;();
}

<span class="kwrd">public</span> <span class="kwrd">class</span> ZestCategory
{
    <span class="kwrd">public</span> <span class="kwrd">string</span> Id { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> IsRoot { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> Title { get; set; }
}

<span class="kwrd">public</span> <span class="kwrd">class</span> ZestOffer
{
    <span class="kwrd">public</span> <span class="kwrd">string</span> OfferId { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> MediaInstanceId { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">decimal</span> Price { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> PriceCurrencyCode { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> LicenseRight { get; set; }
    <span class="kwrd">public</span> List&lt;<span class="kwrd">string</span>&gt; PaymentType = <span class="kwrd">new</span> List&lt;<span class="kwrd">string</span>&gt;();
}

<span class="kwrd">public</span> <span class="kwrd">class</span> ZestPublisher
{
    <span class="kwrd">public</span> <span class="kwrd">string</span> Id { get; set; }
    <span class="kwrd">public</span> <span class="kwrd">string</span> Name { get; set; }
}</pre>
<style type="text/css">
<p>.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; }</style>
<p>&#160;</p>
<p>You are also going to want to have a bunch of variables defined for the URLs where the XML is coming from, the XML namespaces, etc:</p>
<pre class="csharpcode"><span class="kwrd">const</span> <span class="kwrd">string</span> BaseAppsUrl = <span class="str">&quot;http://catalog.zune.net&quot;</span>;
<span class="kwrd">const</span> <span class="kwrd">string</span> BaseImageUrl = <span class="str">&quot;http://image.catalog.zune.net&quot;</span>;

<span class="kwrd">const</span> <span class="kwrd">string</span> ZestVersion = <span class="str">&quot;/v3.2/&quot;</span>;
<span class="kwrd">const</span> <span class="kwrd">string</span> ZestImageVersion = <span class="str">&quot;/v3.0/&quot;</span>;

<span class="kwrd">const</span> <span class="kwrd">string</span> BaseApps = <span class="str">&quot;apps/&quot;</span>;
<span class="kwrd">const</span> <span class="kwrd">string</span> BaseImage = <span class="str">&quot;image/&quot;</span>;

<span class="kwrd">const</span> <span class="kwrd">string</span> BaseAppsResource = <span class="str">&quot;?clientType=WinMobile%207.0&amp;store=Zest&amp;orderby=downloadRank&quot;</span>;
<span class="kwrd">const</span> <span class="kwrd">string</span> BaseCommentsResource = <span class="str">&quot;/reviews/?store=Zest&amp;chunkSize=10&quot;</span>;
<span class="kwrd">const</span> <span class="kwrd">string</span> BaseImageResource = <span class="str">&quot;?width=240&amp;height=240&quot;</span>;

ZestCrawlEntities ZestCrawlContext;

XNamespace ns = <span class="str">&quot;http://www.w3.org/2005/Atom&quot;</span>;
XNamespace zestns = <span class="str">&quot;http://schemas.zune.net/catalog/apps/2008/02&quot;</span>;

<span class="kwrd">public</span> <span class="kwrd">string</span> LangCode = <span class="str">&quot;en-us&quot;</span>; <span class="rem">//setting the default value</span>

<span class="kwrd">public</span> List&lt;<span class="kwrd">string</span>&gt; ValidLangCodes = <span class="kwrd">new</span> List&lt;<span class="kwrd">string</span>&gt;(
    <span class="kwrd">new</span> <span class="kwrd">string</span>[] {  <span class="str">&quot;en-us&quot;</span>, <span class="str">&quot;en-gb&quot;</span>, <span class="str">&quot;de-de&quot;</span>,
                    <span class="str">&quot;fr-fr&quot;</span>, <span class="str">&quot;es-es&quot;</span>, <span class="str">&quot;it-it&quot;</span>,
                    <span class="str">&quot;en-au&quot;</span>, <span class="str">&quot;de-at&quot;</span>, <span class="str">&quot;fr-be&quot;</span>,
                    <span class="str">&quot;fr-ca&quot;</span>, <span class="str">&quot;en-ca&quot;</span>, <span class="str">&quot;en-hk&quot;</span>,
                    <span class="str">&quot;en-in&quot;</span>, <span class="str">&quot;en-ie&quot;</span>, <span class="str">&quot;es-mx&quot;</span>,
                    <span class="str">&quot;en-nz&quot;</span>, <span class="str">&quot;en-sg&quot;</span>, <span class="str">&quot;de-ch&quot;</span>,
                    <span class="str">&quot;fr-ch&quot;</span> });

<span class="kwrd">public</span> <span class="kwrd">string</span> AppAfterMarkerUrl { get; set; }
<span class="kwrd">public</span> <span class="kwrd">bool</span> HasMoreApps = <span class="kwrd">true</span>;
<span class="kwrd">public</span> <span class="kwrd">string</span> AppsResponseString { get; set; }
<span class="kwrd">public</span> XElement ReturnedAppsXml;</pre>
<style type="text/css">
<p>.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; }</style>
<p>&#160;</p>
<p>Have a look at the ValidLangCodes list.&#160; that’s the coding we have on the URLs for country specific data.&#160; So if you want to get the data from Mexico, us “es-mx.”&#160; The first two letters are the language code, and the second two are the country code.&#160; If an app is listed in the feed, it is active.&#160; The list returned is ordered, meaning the first app is ranked #1.&#160; I am pulling the ALL APPs list, which is the orderby clause on the BaseAppsResource.</p>
<p>The ZextCrawlContext is the ADO.NET DB model.&#160; Create your own and stuff the data however you want.</p>
<p>Now that we have the code segments, you are going to need a way to get the XML from MSFT servers.</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> GetAppsResponse()
{
    <span class="kwrd">string</span> FullUrl;
    <span class="kwrd">bool</span> done = <span class="kwrd">false</span>;

    <span class="kwrd">if</span> (!String.IsNullOrEmpty(AppAfterMarkerUrl))
    {
        FullUrl = AppAfterMarkerUrl;
    }
    <span class="kwrd">else</span>
    {
        FullUrl = BaseAppsUrl + ZestVersion + LangCode + <span class="str">&quot;/&quot;</span>
            + BaseApps + BaseAppsResource;
    }

    <span class="kwrd">while</span> (!done)
    {
        <span class="kwrd">try</span>
        {
            var request = WebRequest.Create(FullUrl) <span class="kwrd">as</span> HttpWebRequest;
            request.KeepAlive = <span class="kwrd">false</span>;

            var response = request.GetResponse() <span class="kwrd">as</span> HttpWebResponse;

            <span class="kwrd">if</span> (request.HaveResponse == <span class="kwrd">true</span> &amp;&amp; response != <span class="kwrd">null</span>)
            {
                var reader = <span class="kwrd">new</span> StreamReader(response.GetResponseStream());
                ReturnedAppsXml = XElement.Parse(reader.ReadToEnd());
                done = <span class="kwrd">true</span>;
            }
        }
        <span class="kwrd">catch</span>
        {
            Console.WriteLine(<span class="str">&quot;yeah, your connection was likely aborted&quot;</span>);
            done = <span class="kwrd">false</span>;
        }
    }
}</pre>
<style type="text/css">
<p>.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; }</style>
<p>&#160;</p>
<p>Now comes the fun part.&#160; Remember, the XML is coming over the wire, and it comes 100 elements at a time.&#160; So you have to parse the stream, stuff them somewhere and get the next stream.&#160; Included in the XML returned is the token for how you request the next bit of XML. (note, yes I know I am using RegEx where I could be using String.Replace; also sorry about the wonky formatting, but my blog has width issues)</p>
<pre class="csharpcode"><span class="kwrd">public</span> IEnumerable&lt;ZestAppData&gt; GetAppEntries()
{
    <span class="rem">//first we have to parse the feed which came back</span>
    IEnumerable&lt;ZestAppData&gt; entries =
        from e <span class="kwrd">in</span> ReturnedAppsXml.Elements(ns + <span class="str">&quot;entry&quot;</span>)
        select <span class="kwrd">new</span> ZestAppData
        {

            Title = e.Element(ns + <span class="str">&quot;title&quot;</span>).Value,

            Id = Regex.Replace(e.Element(ns + <span class="str">&quot;id&quot;</span>).Value, <span class="str">&quot;(urn:uuid:)(.)&quot;</span>, <span class="str">&quot;$2&quot;</span>),

            ReleaseDate = DateTime.Parse(e.Element(zestns + <span class="str">&quot;releaseDate&quot;</span>).Value),

            Updated = DateTime.Parse(e.Element(ns + <span class="str">&quot;updated&quot;</span>).Value),

            ShortDescription = e.Element(zestns + <span class="str">&quot;shortDescription&quot;</span>) == <span class="kwrd">null</span>
                ? <span class="str">&quot;&quot;</span> : e.Element(zestns + <span class="str">&quot;shortDescription&quot;</span>).Value,

            AverageUserRating = <span class="kwrd">decimal</span>.Parse(e.Element(zestns + <span class="str">&quot;averageUserRating&quot;</span>).Value),

            UserRatingCount = <span class="kwrd">int</span>.Parse(e.Element(zestns + <span class="str">&quot;userRatingCount&quot;</span>).Value),

            Version = e.Element(zestns + <span class="str">&quot;version&quot;</span>).Value,

            ImageId = Regex.Replace(e.Element(zestns + <span class="str">&quot;image&quot;</span>).Element(zestns + <span class="str">&quot;id&quot;</span>).Value, <span class="str">&quot;(urn:uuid:)(.)&quot;</span>, <span class="str">&quot;$2&quot;</span>),

            Categories = (
                from category <span class="kwrd">in</span> e.Elements(zestns + <span class="str">&quot;categories&quot;</span>).Elements(zestns + <span class="str">&quot;category&quot;</span>)
                select <span class="kwrd">new</span> ZestCategory
                {
                    Id = category.Element(zestns + <span class="str">&quot;id&quot;</span>).Value,
                    Title = category.Element(zestns + <span class="str">&quot;title&quot;</span>).Value,
                    IsRoot = category.Element(zestns + <span class="str">&quot;isRoot&quot;</span>).Value
                }).ToList(),

            Publisher = (
                from publisher <span class="kwrd">in</span> e.Elements(zestns + <span class="str">&quot;publisher&quot;</span>)
                select <span class="kwrd">new</span> ZestPublisher
                {
                    Id = publisher.Element(zestns + <span class="str">&quot;id&quot;</span>).Value,
                    Name = publisher.Element(zestns + <span class="str">&quot;name&quot;</span>).Value
                }).ToList(),

            Offers = (
                from offer <span class="kwrd">in</span> e.Elements(zestns + <span class="str">&quot;offers&quot;</span>).Elements(zestns + <span class="str">&quot;offer&quot;</span>)
                select <span class="kwrd">new</span> ZestOffer
                {
                    OfferId = offer.Element(zestns + <span class="str">&quot;offerId&quot;</span>).Value,
                    MediaInstanceId = offer.Element(zestns + <span class="str">&quot;mediaInstanceId&quot;</span>).Value,
                    Price = <span class="kwrd">decimal</span>.Parse(offer.Element(zestns + <span class="str">&quot;price&quot;</span>).Value),
                    PriceCurrencyCode = offer.Element(zestns + <span class="str">&quot;priceCurrencyCode&quot;</span>).Value,
                    LicenseRight = offer.Element(zestns + <span class="str">&quot;licenseRight&quot;</span>).Value,
                    PaymentType = (
                        from paymenttype <span class="kwrd">in</span> offer.Elements(zestns + <span class="str">&quot;paymentTypes&quot;</span>).Elements()
                        select paymenttype.Value).ToList()
                }).ToList()
        };

    <span class="rem">//now I need to get the AfterMarkerUrl from the XML feed</span>
    var afterMarker =
        from e <span class="kwrd">in</span> ReturnedAppsXml.Elements(ns + <span class="str">&quot;link&quot;</span>)
        <span class="kwrd">where</span> e.Attribute(<span class="str">&quot;rel&quot;</span>).Value == <span class="str">&quot;next&quot;</span>
        select (<span class="kwrd">string</span>)e.Attribute(<span class="str">&quot;href&quot;</span>).Value;

    <span class="kwrd">if</span> (afterMarker.Count() &gt; 0)
    {
        AppAfterMarkerUrl = BaseAppsUrl + afterMarker.Single();
    }
    <span class="kwrd">else</span>
    {
        HasMoreApps = <span class="kwrd">false</span>;
    }

    <span class="kwrd">return</span> entries;
}</pre>
<style type="text/css">
<p>.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; }</style>
<p>Now you have all the data you need to crawl the marketplace whenever you want.&#160; The LINQ stuff is really, really fast.&#160; Crawling the marketplaces can be a bit slow.&#160; I crawl each one individually when my code runs, and I store app lists for each of the markets.</p>
<p>One of the mistakes I made was having ZestAppData.Udpated be a DateTime and not a Date.&#160; I only crawl once per day, so I don’t need all the extra data.&#160; The Zest feeds update daily, I think every couple of hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/crawling-the-windows-phone-marketplace/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>More Revenues For Windows Phone 7 Developers</title>
		<link>http://www.manyniches.com/windows-phone/more-revenues-for-windows-phone-7-developers/</link>
		<comments>http://www.manyniches.com/windows-phone/more-revenues-for-windows-phone-7-developers/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 17:36:27 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/more-revenues-for-windows-phone-7-developers/</guid>
		<description><![CDATA[We’ve made no secret of the fact that we believe we have a great platform for developers.&#160; The canvas we have delivered is enabling amazing creativity to flourish.&#160; Some developers, however, have taken a wait and see approach to developing for Windows Phone.&#160; For those who have taken the plunge, some developers are making more [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fmore-revenues-for-windows-phone-7-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fmore-revenues-for-windows-phone-7-developers%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>We’ve made no secret of the fact that we believe we have a great platform for developers.&#160; The canvas we have delivered is enabling amazing creativity to flourish.&#160; Some developers, however, have taken a wait and see approach to developing for Windows Phone.&#160; For those who have taken the plunge, <a href="http://www.everythingwm.com/fruit-ninja-over-7-times-more-revenue-on-windows-phone-compared-to-android/2011/03/09/">some developers are making more money on Windows Phone 7 than Android</a>, even though we have less handsets in market.</p>
<p>Yes, this is a data point of one, but it’s a public data point about which we can talk.&#160; There are many more stories like this on the horizon, but this is the first one that is verified by a third party.</p>
<h3>Fruit Ninja has made 7x more money on Windows Phone 7 than Android.</h3>
<p>That is the claim of the article.&#160; Why is this?&#160; There are many potential reasons, and I don’t want to venture into what could quickly devolve into a discussion based on opinions.&#160; What we can say is that the <a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/03/08/an-update-on-windows-phone-marketplace-new-tips-policies-and-regional-access-program.aspx">data shows that the Windows Phone Marketplace works for developers</a>.&#160; It shows that customers of Windows Phone are spending money to buy apps.&#160; It shows that that Windows Phone has great potential.</p>
<p>UPDATE (03/09/11 11:20A): The Xylogic data is what it is.&#160; I won’t vouch for it, so short of taking this post down, I can only say that I cannot verify their Android data.&#160; Is it a fair assumption that any overstatement/understatement they make for Windows Phone is same for Android?&#160; Maybe.&#160; I am not going to surface Fruit Ninja numbers as that’s not my place.&#160; Unless Xylogic made a mistake in our favor (overstating $$ on Windows Phone) and against Android (understating $$ on Android), the ratio will hold.</p>
<p>Besides, and here’s the point that everyone seems to be missing – we have sold way fewer phones and Android.&#160; Way.&#160; Even if we were at parity on revenues, which platform is more appealing?&#160; Don’t let the source of the data get in the way of the undeniable fact: the dynamics and structure of the marketplace on Android creates a challenge for developers to make money.&#160; When Angry Birds can’t make money with per unit sales, that’s a sign. [END UPDATE]</p>
<p>We are still learning, and will continue to share what we learn with our developer community about what apps are working, how to market their apps, get noticed, etc.&#160; However, the fact remains that for this developer, Windows Phone 7 has been well worth their time.</p>
<p>The smart money is to bet on the train that is leaving the station, not the one that’s gone.&#160; Again, public data point of one, but this train is picking up steam.&#160; As CNet noted, <a href="http://news.cnet.com/8301-30686_3-20040926-266.html?tag=topImage2">our mobile fortunes are tied to app developers</a>.&#160; Getting developers info like this is incredibly important to demonstrating that Windows Phone is a viable, credible, profitable platform for developers.&#160; We will turn ourselves inside out to get developers whatever they need to be successful.</p>
<p>Still on the fence?&#160; If you are an Android developer, and looking for a switch, reach out to us.&#160; For developers committed to building on Windows Phone, we will take care of you.&#160; Every developer matters.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/more-revenues-for-windows-phone-7-developers/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>New Markets Open Up For Windows Phone 7 Developers</title>
		<link>http://www.manyniches.com/windows-phone/new-markets-open-up-for-windows-phone-7-developers/</link>
		<comments>http://www.manyniches.com/windows-phone/new-markets-open-up-for-windows-phone-7-developers/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 17:05:59 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/new-markets-open-up-for-windows-phone-7-developers/</guid>
		<description><![CDATA[Today, we posted a new article up at the Windows Phone Developer Blog about how developers are having great results using the Trial API and Microsoft Mobile Ad control.&#160; The most astonishing piece of data for me what that more than half of the Trial API apps convert to a sale within one day, and [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fnew-markets-open-up-for-windows-phone-7-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fnew-markets-open-up-for-windows-phone-7-developers%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Today, we posted a new article up at the <a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/03/08/an-update-on-windows-phone-marketplace-new-tips-policies-and-regional-access-program.aspx">Windows Phone Developer Blog</a> about how developers are having great results using the Trial API and Microsoft Mobile Ad control.&#160; The most astonishing piece of data for me what that more than half of the Trial API apps convert to a sale within one day, and most of those within 2 hours of the download.</p>
<p>While the stories of existing devs having great success is music to my ears, what’s really exciting for me is the expansion of the geographies which can support developers.&#160; We have just announced our Global Publishing Program, which allows us to extend the ability to be a published Windows Phone 7 developer to countries where we do not yet have Marketplace.</p>
<p>Publishers will sign up to support an entire region, allowing developers to submit applications to Marketplace through the publisher.&#160; We have launched with our first partner, <a href="http://www.yallaapps.com/">Yalla Apps</a>, a new publisher supporting the Middle East and Africa region.&#160; So what new countries can we support?&#160; Here’s the list:</p>
<p>Afghanistan, Algeria, Angola, Bahrain, Benin, Botswana, Burkina Faso, Cameroon, Cape Verde, Central African Republic, Chad, Comoros, Congo, Côte d&#8217;Ivoire, Cyprus, Democratic Republic of Congo, Djibouti, Egypt, Equatorial Guinea, Ethiopia, French Polynesia, Gabon, Gambia, The, Ghana, Guinea, Guinea-Bissau, Iraq, Israel, Jordan, Kenya, Kuwait, Lebanon, Lesotho, Liberia, Libya, Madagascar, Malawi, Mali, Mauritania, Mauritius, Mayotte, Morocco, Mozambique, Namibia, New Caledonia, Niger, Nigeria, Oman, Pakistan, Palestinian Authority, Qatar, Reunion, Rwanda, Saudi Arabia, Senegal, Seychelles, Sierra Leone, Somalia, South Africa, Swaziland, Tanzania, Togo, Tunisia, Turkey, Uganda, United Arab Emirates, Yemen, Zambia, Zimbabwe</p>
<p>Turkey, Saudi Arabia, Pakistan, Israel &amp; Egypt were our top 5 countries in terms of <a href="http://create.msdn.com/">tools downloads</a> from that list, representing multiple tens of thousands of developers.&#160; Now each and every one of them can start publishing their amazing apps and games for Windows Phone.&#160; This also means that the 3 developers in Somalia, 2 in Equatorial Guinea and Swaziland, and the 1 developer in Central African Republic, who have downloaded our tools, well, we now have a solution for you.&#160; In fact, if you are one of the 8 developers in one of those countries, reach out to me – I’d love to hear your story.</p>
<p>More country support is coming.&#160; We are listening to each and every one of you and working like mad to ensure that every developer who wants to build for Windows Phone 7 can.&#160; Every developer matters.</td></p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/new-markets-open-up-for-windows-phone-7-developers/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Building the Platform, One Dev at a Time</title>
		<link>http://www.manyniches.com/windows-phone/building-the-platform-one-dev-at-a-time/</link>
		<comments>http://www.manyniches.com/windows-phone/building-the-platform-one-dev-at-a-time/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 03:47:01 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/building-the-platform-one-dev-at-a-time/</guid>
		<description><![CDATA[Last week when I read Jamie’s excoriation of the Blackberry Playbook dev platform (so many people forwarded it to me), it made me sad.&#160; Sad because a developer was hitting friction on a platform on which he clearly wanted to develop apps. Tyler Lessard from RIM responded to this open air criticism, and I give [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fbuilding-the-platform-one-dev-at-a-time%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fbuilding-the-platform-one-dev-at-a-time%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p align="left">Last week when I read <a href="http://blog.jamiemurai.com/2011/02/you-win-rim/">Jamie’s excoriation of the Blackberry Playbook dev platform</a> (so many people forwarded it to me), it made me sad.&#160; Sad because a developer was hitting friction on a platform on which he clearly wanted to develop apps.</p>
<p align="left"><a href="http://devblog.blackberry.com/2011/02/thanks-for-the-open-letter-to-rim-developer-relations/">Tyler Lessard from RIM responded</a> to this open air criticism, and I give him points for his embracing this publicly.&#160; I look forwarded to meeting Tyler at some point in the future.</p>
<p>There are some in the community that said Jamie was bitching and moaning.&#160; He was.&#160; They say he gave up too easily.&#160; Perhaps.&#160; This issue does elucidate a more pressing issue, which is the plethora of choices available to the discerning developer, and the decreasing ability to get it wrong if you are a platform provider.&#160; Further, with Twitter and blogs being so public – they are forever etched in stone people! (i.e. the search index) – it’s hard for a platform provider to not to feel like they are under constant and heavy fire.</p>
<p>Yet, the very tools which quickly bring scorn and ire to some can provide for a happy ending to others.&#160; In just under 4 hours, I was able to reach out to someone in another country, whom I have never met, and had never heard of prior to last week, and prompt him to action.</p>
<p><a href="http://www.manyniches.com/wp-content/uploads/2011/02/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 3px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.manyniches.com/wp-content/uploads/2011/02/image_thumb1.png" width="444" height="88" /></a></p>
<p><a href="http://www.manyniches.com/wp-content/uploads/2011/02/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 3px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.manyniches.com/wp-content/uploads/2011/02/image_thumb2.png" width="444" height="86" /></a></p>
<p>Even if we build the platform one developer at a time, that’s one more developer than we had last week.&#160; Every developer matters.&#160; Every. Single. One.&#160; I effing love my job.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/building-the-platform-one-dev-at-a-time/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Windows Weekly &amp; DotNetRocks</title>
		<link>http://www.manyniches.com/windows-phone/windows-weekly-dotnetrocks/</link>
		<comments>http://www.manyniches.com/windows-phone/windows-weekly-dotnetrocks/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 23:31:37 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[.net rocks]]></category>
		<category><![CDATA[leo laporte]]></category>
		<category><![CDATA[paul thurrott]]></category>
		<category><![CDATA[windows weekly]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/windows-weekly-dotnetrocks/</guid>
		<description><![CDATA[It’s not often I find myself kerfuffled, but that’s what happened when I was permitted to be a guest to discuss Windows Phone 7 on Windows Weekly, hosted by Leo Laporte and Paul Thurrott.&#160; I’ve been a long time listener of several of the TWiT network podcasts, and fondly remember staying up late in grad [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fwindows-weekly-dotnetrocks%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fwindows-weekly-dotnetrocks%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><img style="margin: 0px 5px 5px 0px; display: inline" title="" alt="" align="left" src="http://twit.tv/files/imagecache/coverart/coverart/podcast_17_3.jpg" width="120" height="120" />It’s not often I find myself kerfuffled, but that’s what happened when I was permitted to be a guest to discuss <a href="http://twit.tv/ww174">Windows Phone 7 on Windows Weekly</a>, hosted by <a href="http://www.leoville.com">Leo Laporte</a> and <a href="http://www.winsupersite.com">Paul Thurrott</a>.&#160; I’ve been a long time listener of several of the TWiT network podcasts, and fondly remember staying up late in grad school to catch <a href="http://en.wikipedia.org/wiki/Dev_Null">Dev Null on “The Site”</a> on MSNBC.&#160; It was a lively conversation, and I have received many emails from people I don’t know with their thoughts on the show and WP7.&#160; I love hearing from the community, and really look forward to meeting more developers building cool apps and games.</p>
<p><a href="http://www.manyniches.com/wp-content/uploads/2010/09/image6.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://www.manyniches.com/wp-content/uploads/2010/09/image_thumb6.png" width="244" height="58" /></a>We also sponsored a couple of <a href="http://www.dotnetrocks.com/">.Net Rocks</a> shows with Carl and Richard (<a href="http://www.dotnetrocks.com/default.aspx?showNum=595">show 1</a>) so that we could talk about the tools release, but more importantly so that we could enable 6 developers to talk about what they are building for Windows Phone 7.&#160; We really wanted to give a microphone to devs doing cool stuff; specifically guys who are working without the aid of PR firms and other means to get the opportunity to promote themselves.&#160; We know that there are going to be many apps built for Windows Phone 7 by small teams, and we really want to help get them noticed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/windows-weekly-dotnetrocks/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Seattle Area Developers &#8211; GDGT Event</title>
		<link>http://www.manyniches.com/windows-phone/seattle-area-developers-gdgt-event/</link>
		<comments>http://www.manyniches.com/windows-phone/seattle-area-developers-gdgt-event/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 15:05:44 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[epic]]></category>
		<category><![CDATA[GDGT]]></category>
		<category><![CDATA[nerdosity]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/seattle-area-developers-gdgt-event/</guid>
		<description><![CDATA[Stop the presses!&#160; I’ve got some news.&#160; The great team at GDGT is coming to Seattle, and they are having a bit of a party and meetup.&#160; There should be a great deal of nerdosity going on there, which is awesome in its own right.&#160; This will be further accentuated by the fact that the [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fseattle-area-developers-gdgt-event%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Fseattle-area-developers-gdgt-event%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://www.manyniches.com/windows-phone/seattle-area-developers-gdgt-event/" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div>
<p>Stop the presses!&#160; I’ve got some news.&#160; The great team at <a href="http://www.facebook.com/event.php?eid=135148676504452">GDGT is coming to Seattle</a>, and they are having a bit of a party and meetup.&#160; There should be a great deal of nerdosity going on there, which is awesome in its own right.&#160; This will be further accentuated by the fact that the Windows Phone 7 team will be there to show off some devices.</p>
<p>Under normal circumstances, that would be pretty cool.&#160; However, we’re not in the “pretty cool” business here.&#160; I think I have made it clear, we are in the <a href="http://www.manyniches.com/windows-phone/windows-phone-7-device-requests/">epic shit business</a>.&#160; Apparently, the nerdosity is expected to flow especially high at this event, and the request was made for the developer platform team for Windows Phone 7 to make an appearance.&#160; Challenge thrown down.&#160; Challenge accepted.&#160; Challenge contorted into something all together different.</p>
<p>Since announcing the email alias to which you can <a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx">send your device requests</a> (about 2 weeks ago), we’ve been blown away by the response.&#160; We’re still making our way through those requests, getting them into a CRM system and assigning them to our field evangelists.&#160; That’s a tale of logistical complexity for another day.&#160; However, the whole point of having preview devices is to get them into the hands of developers, right?&#160; So we have two things to share.</p>
<p>First, if you are a developer in the area, and want to come to the event, bring your laptops with your Windows Phone 7 XAPs.&#160; We will have phones on site to which you can deploy your code.&#160; You can see it running on a real Windows Phone 7.&#160; You get to share it with the crowd.&#160; That’s not bad, but certainly not epic.&#160; No, no.&#160; Epic is in reserve for those true hackers who show up with the goods.&#160; For those who have got the best XAPs, we are bringing a couple of phones with us, and some developer agreements to sign.&#160; That’s right…the “A” gamers will be walking out with phones on which to continue their coding.</p>
<p>Are you game?&#160; Spread the word, and see you there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/seattle-area-developers-gdgt-event/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Employee Developer Program</title>
		<link>http://www.manyniches.com/windows-phone/employee-developer-program/</link>
		<comments>http://www.manyniches.com/windows-phone/employee-developer-program/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 17:38:58 +0000</pubDate>
		<dc:creator>Brandon Watson</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[employees]]></category>
		<category><![CDATA[moonlighting]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://www.manyniches.com/windows-phone/employee-developer-program/</guid>
		<description><![CDATA[In the last couple of days since Andy’s announcement that all employees would get free Windows Phone 7s, we’ve seen a lot of buzz about the offer, including some around why we were doing it. So why did we do it?&#160; Put simply, we did it for the employees.&#160; If you speak to any software [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 5px; margin-right: 5px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Femployee-developer-program%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.manyniches.com%2Fwindows-phone%2Femployee-developer-program%2F&amp;source=BrandonWatson&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://www.manyniches.com/windows-phone/employee-developer-program/" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div>
<p>In the last couple of days since Andy’s announcement that all employees would get free Windows Phone 7s, we’ve seen a lot of buzz about the offer, including some around why we were doing it.</p>
<p>So why did we do it?&#160; Put simply, we did it for the employees.&#160; If you speak to any software developer or hacker, they will tell you that they love writing code.&#160; They love solving problems.&#160; They love creating things.&#160; They love sharing their work with their friends and peers.&#160; They love the satisfaction of seeing something work on a screen.&#160; Unfortunately, when you work for a company, most of them generally have pretty stringent rules about moonlighting, and the ownership of IP.&#160; For software companies, this usually includes code and side projects.&#160; Microsoft is no different.</p>
<p>With this new mobile app era upon us, the Windows Phone team felt it important that we enable our own employees to participate.&#160; There are so many talented, technical people at Microsoft.&#160; It’s not just professional software developers…many Microsofties love coding, and they work on projects in their spare time.</p>
<p>We believe most Microsofties <strong>want</strong> to write apps for Windows Phone 7.&#160; Before last week, and the changes announced in our policies, they couldn’t.&#160; They would not have been able to profit from those projects.&#160; We made these changes specifically to address the desire of our own employees to express themselves in code in the app marketplace.&#160; A funny thing happens when you remove friction and barriers among a group of creative people.&#160; I can’t wait to see what they create.</p>
<p>The internal response has been overwhelming.&#160; I can’t count the number of languages in which we heard “thank you” while at our global sales summit last week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manyniches.com/windows-phone/employee-developer-program/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

