null This is the Day #4 post in the article series “7 Deadly Sins for Windows Phone Developers!“.

What is Wrath ?

From http://deadlysins.com:

Wrath is manifested in the individual who spurns love and opts instead for fury.

Why: You’re wired for it. Also, the people around you are pretty damn irritating.

How does Wrath relate to Windows Phone development ?

– uncontrolled rage as developer ..

So, you have decided to spend one of your precious free weekends to code up your dream Windows Phone app. You start, but soon find yourself needing fancy controls, animations or some peculiar tweak. Result – anger. To rub it in, you heard a buddy just made a similar app on a competing platform & is now making buckets of money. *&!@#$%^^& .. right? Well, let’s chill. There are plenty of ways we can help ourselves by taking a look around & not reinventing the wheel. So, let’s see how you, a Windows Phone developer, can avoid Wrath.

  • Toolkits: Think you need a special control for your Windows Phone app? Some custom animation for your pages? STOP & look around! There is plenty of help to prevent you from reinventing the wheel. Some awesome toolkits to choose from for your developer arsenal are the Windows Phone Silverlight Toolkit, Coding4Fun Windows Phone Toolkit, Sterling DB, GZipWebClient & many others.
  • 3rd Party Tooling: Quite a few MSFT partners are making the Windows Phone ecosystem richer by adding a lot of love for developers. These are mostly in the form of custom controls/animations/frames which really make your life a lot easier. Check out Windows Phone specific offerings from Telerik, ComponentOne & Infragistics.
  • Trials & Pricing: Price your work sensibly. If you have spent a lot of effort & think you have a genuinely good app, you absolutely should not give it away for free. Trial mode is a great way to give users a taste of what’s to come & hold back a few features when they actually buy your app. Read both sides of the story here and here .. bottom-line, do what makes sense for your app.
  • Monetization: Along the same lines, if you want to make a free app, there absolutely nothing wrong in putting a few advertisements to earn you a few bucks. Yes, ads are annoying; but users will easily overlook the ads if your content stands out. MSFT’s PubCenter Ad Control is a part of the Windows Phone Mango SDK .. adding it to your apps is as easy as dragging a control & registering your app for ad categories. Another great option is AdDuplex - an ad exchange network where you promote other apps & help fellow Windows Phone developers. If you are picky about Ad revenues & low eCPMs, specially in newer Markets, consider using the Windows Phone AdRotator – a single control that fetches Ads from multiple providers for better utilization of your Ad space.
  • Stay Tuned-in: Mad at yourself for missing out on some latest marketing offer or Windows Phone developer sweepstake? This is a very happening ecosystem & it helps being as plugged-in as possible. Can you spare an hour every week? Do yourself a favor & listen to Windows Phone Dev Podcast for all that’s latest & greatest for Windows Phone users/developers.
  • Just Ask: Stuck late into the night with a roadblock while coding your Windows Phone app? If you have exhausted your own resources, simply ask. Chances are someone else also faced the same quirky problem and there is a way around or there is an awesome open source project to help you out. And the Windows Phone developer community is among the very best you shall get .. we help each other out. So, hit up your fellow Windows Phone devs on StackOverflow or Twitter or some other forum. You’ll be surprised by how far collaboration can get us.

So, next time we get mad, let’s take a step back & evaluate our options. The koolaid isn’t all that bad :) . Pick up some fancy controls & make your dream app .. and then make some money! Hopefully, you come back tomorrow for the Day #5 article in this series of “7 Deadly Sins for Windows Phone Developers!“.

Adios!

null This is the Day #3 post in the article series “7 Deadly Sins for Windows Phone Developers!“.

What is Sloth ?

From http://deadlysins.com:

Sloth is the avoidance of physical or spiritual work.

Why: You’re shiftless, lazy, and good fer nuthin’.

How does Sloth relate to Windows Phone development ?

– failure to utilize resources ..

As highly as you may think of our smartphones, they are still tiny devices with limited memory/processing power & precious battery life. Any work we can offload from our smartphones helps in extending battery life and putting data/common processing out somewhere else aids in multi-user/multi-platform mobile solutions. This is where cloud solutions step in with ubiquitous computing, massive scalability & high availability on a pay-per-use model. Cloud & mobility simply makes sense.

So, if you are a Windows Phone developer, have you considered leveraging Windows Azure to augment your Windows Phone solutions? If your answer is anything other than “I went with Amazon/other cloud providers ..”, it is not satisfactory. Here are few ways Windows Phone developers can get around being a Sloth & consider utilizing Azure’s cloud infrastructure for their Windows Phone applications:

  • Windows Azure: Learn more about it here. Read up on the possibilities with features, subscriptions, business model & how to get started as a developer. Hint – it is very easy!
  • Freebies: As with anything, try it out first & see if it makes sense. There are free Azure Trials for you to play around with. Also, if you have MSDN Subscriptions, significant Azure benefits would come free .. learn more here.
  • Data: This is the crux of any mobile app – relational or non-relational. Family members will want to share data between apps running on their devices. You, as a developer, will want to support multiple platforms to maximize your reach. Both of these suggest that data could be cached on devices; but needs to be stored centrally. Enter Azure. Relational data goes into SQL Azure & non-relational data goes into Blobs/Tables .. both with massive scalability & high availability.
  • Glance & Go: Remember the “Really” commercials for Windows Phone? Push Notifications in Windows Phone is one of it’s best-selling features and epitomizes the Glance & Go approach. Why the need to launch an app when a simple Live Tile suffices? With Mango, the flipping Live Tiles are also an opportunity for developers to be creative in what gets pushed out as Live Tiles .. invite your users back into your app. Azure can serve as the perfect backend to your Windows Phone app; one that hosts services that wake up to send Push Notifications as Tiles/Toast/Raw to registered phones running your app. And you can fine-tune exactly how much backend horsepower you need depending on your user-base.
  • Scalability: You make a seasonal app, like ones that go with NFL season. Or you make an app that skyrockets in downloads but slows down within a month. If your Windows Phone app was leveraging any other backend for services/data, how else will you scale up & down? You might either lose users or overpay your ISP/ for hardware. This is where Azure gives you on-demand elasticity so you pay for only what you consume.
  • OData: Accept it .. we’ll live in a hybrid mobile platform world for a very long time. Wouldn’t it be nice to not have to re-invent your data access layer between iOS/Android/Windows Phone apps? Enter OData – the Open Data Protocol. Based on the simple premises of HTTP and Atom/JSon, OData acts an platform-independent data interchange protocol. Like RSS for real updateable data. And it comes with proxy-building libraries for various ecosystems. So, do once & apply to all platforms .. really. Check out details about OData on it’s home site or the many articles we’ve written up on Silverlightshow.
  • CDNs: Yes, you can host your application backend with your local ISP or even under your desk. But if you are serving up imagery, maps, media or anything heavy, and you have users all over the world, our app will see lag. This is just because of the physics of delivering content across continents. Wouldn’t it be nice to serve up the content from some servers close to where the user is? Enter Azure Content Delivery Network .. an unique advantage of cloud infrastructure that includes edge cache nodes across the world. Your content essentially gets cached & Azure does the DNS magic to serve up requests closest to where the user of your app is. Very easy to set up & must-take-advantage of cloud computing. Learn more here & here.
  • Azure WP7 Toolkit: To make it a little easier for Windows Phone developers to leverage Azure, the Azure DPE team has done a lot of work around toolkits & helper libraries. There are now Azure Toolkits for Windows Phone, iOS & Android. So, no matter what mobile platform you are building your apps in, it should be easy to leverage Azure, since these toolkits essentially abstract out some of the Azure intricacies for the mobile developer. The Azure Toolkit for WP7 (details here) has awesome templates which give you a great starting point if your Windows Phone app had to use SQL Azure, Tables, Blobs & Push Notifications from the cloud. Get the bits, start a New Project & hit F5!
  • ACS, Notifications & Nugets: Is the full Azure Toolkit for WP7 too much for your scenario? Worry not, as MSFT has also released individual features as Nugets (details here), for easy consumption. Need to authenticate users to your app using federated identity from Google/Live/Faceboook etc? There is a Nuget that just does ACS (Access Control Service) through Azure .. this is superbly easy way to leverage the user’s existing identity by allowing Azure to act as a broker for tokens. Need to send out Push Notifications to your apps .. there is a Nuget for that too. So, grab what you need & fire away.
  • Live APIs: Use SkyDrive? Yeah, who doesn’t like 25 Gigs of free cloud storage? Chances are your Windows Phone users with Live IDs already use SkyDrive. If you need to augment storage in your app & push something off to cloudverse, why the need to spin up storage yourself when there’s SkyDrive? MSFT recently opened up Live APIs & a SDK which give you secure access to user’s SkyDrive & much more through the Live Services suite. More details here, along with this article on how to leverage SkyDrive SDK from your Windows Phone App.
  • Reuse: So, you know all about Push Notifications & the MSFT Push Notification Service (MPNS) for Windows Phone. Building Metro apps for Windows 8? Thankfully, the Push Notification architecture is quite similar & your knowledge/services could be easily leveraged. So, why not build one backend to feed both Windows Phone & Metro Apps? There is even a Azure Toolkit for Windows 8 (details here) to help you out.

Tell me I didn’t make my case? :) So, go ahead .. give Azure a shot when it comes to building a supporting backend for your Windows Phone app. Off course, if it is viable & makes sense for your solution. Hopefully, you come back tomorrow for the Day #4 article in this series of “7 Deadly Sins for Windows Phone Developers!“.

Adios!

null This is the Day #2 post in the article series “7 Deadly Sins for Windows Phone Developers!“.

What is Envy ?

From http://deadlysins.com:

Envy is the desire for others’ traits, status, abilities, or situation.

Why: Because other people are so much luckier, smarter, more attractive, and better than you.

How does Envy relate to Windows Phone development ?

– jealousy, feelings of deprivation ..

Are you jealous of other successful Windows Phone App developers? Think you/your app isn’t getting the attention it deserves? Well, you may not be alone; and there’s definitely something we can do about it. Here are few ways Windows Phone developers can get around Envy:

  • Opportunity: Remember, we all started the same with the new Windows Phone ecosystem & you have equal opportunity compared to other app developers on the platform. And it is still a newer Marketplace; so if you write something really cool & follow it up right, you will shine!
  • ISV: Individual Software Vendor. That is what Microsoft calls us individual developers who produce Windows Phone apps for the Marketplace. Did you notice the word Vendor? Yes, it started with the Apple store; but still pretty exciting to have an immediate consumer base across the world for your code. Accordingly, a Vendor outlook needs to developed, where we are answerable to our users. We need to support & nurture our user/consumer base through detailed appropriate communication, visibility, regular updates etc.
  • Is your App discoverable? : Your million-dollar idea had a spark when it first launched; but is it discoverable now amidst hundreds of similar apps? Steps need to be taken to continually make our app discoverable in the Marketplace. Releasing to newly open Marketplaces, Search keywords, social buzz .. anything helps.
  • App Connect: Did you know your app could be featured in the user’s Bing searches for tight integration? This, is called Search Extensibility or App Connect and in my opinion, a great way to showcase your app & keep bringing your users back into the app. More info & code samples here & here.
  • Marketing: So, you spent a lot of late-nights coding up your dream app & just published to the Marketplace. Wait, you’re job is not done. Careful marketing will get you spikes of app downloads at the beginning & persistent numbers as your features/user base grows. Talk about your app to anyone who would listen. Get in touch with the MSFT User Community (@usercommunity) to make sure your apps are showcased.
  • Brand: Your app has greater chance of a loyal user base if users see your app as a brand and it is up to you to position your app accordingly. Start by making Twitter/Facebook profiles for your app, to give yourself an official channel to communicate with your users. Heck, make a website for your app for immediate brand recognition through screenshots/feature highlights. This WP7 App Site template on Codeplex is a great way to start.
  • App Reviews: If you think your app is nice & polished and you want an immediate burst of users, don’t be shy to reach out to WP7 sites like http://www.wpcentral.com/ or http://wmpoweruser.com/. App reviews by these heavily-followed sites will give your app immediate recognition & downloads.
  • Promotions: Once in a while, MSFT or partners may run campaigns like this or this. Make sure you don’t miss these golden chances, as featured apps in the Marketplace skyrocket in downloads.

That’s all I got for today. So, let’s put our Envy aside and do everything we can to get our Windows Phone apps the recognition they deserve. And it takes one tap from the user to uninstall .. so let’s continue doing all that we can to keep our app a first-class citizen on users’ phones. Hopefully, you come back tomorrow for the Day #3 article in this series of “7 Deadly Sins for Windows Phone Developers!“.

Adios!

null This is the Day #1 post in the article series “7 Deadly Sins for Windows Phone Developers!“.

What is Pride ?

From http://deadlysins.com:

Pride is excessive belief in one’s own abilities, that interferes with the individual’s recognition of the grace of God. It has been called the sin from which all others arise. Pride is also known as Vanity.

Why: Well-meaning elementary school teachers told you to “believe in yourself.”

How does Pride relate to Windows Phone development ?

– Overconfidence, failure to acknowledge, boasting ..

Many of us swear & stand by our code with confidence. While that’s not a bad thing, let’s not be a victim of overconfidence in writing a solid Windows Phone apps & then continue delivering updates without breaking functionality. Here are few ways Pride can come in the way of Windows Phone developers, preventing us from delivering a quality product to our users:

  • OverConfidence in MarketPlace submissions: Check, check & check again on Application Certification Requirements before being trigger-happy on submitting your hard work to the Marketplace.
  • Did you know about the Marketplace Toolkit?: Run checks locally & submit to Marketplace with confidence. A full article detailing use of Marketplace Toolkit is here.
  • Not using Emulator Tools: Windows Phone Mango SDK brought along several enhancements to the Emulator VM that allows for better testing locally. Make sure to use them if they fit your app; a great article about Emulator Tools can be found here.
  • Why are you not using Beta testers?: Also new, is the way to publish your app to a closed group for testing/feedback before final release. This could be greatly beneficial in flushing out bugs & issues, if you have a trusted group of testers; more details about Beta Testing can be found here.
  • Unit Test before shipping: This is specially true as you ship updates to your app; it is important to start building a battery of Unit tests to make sure core functionality is intact. The Silverlight Unit Test Framework bits (details here) should help.
  • Device + Mom Testing: Your pride in how well the code runs in the Windows Phone emulator should not be a replacement for on-device testing, which is critical before any Marketplace submission. Physical devices often have quirks that expose edge conditions; additionally you get to see for a couple of days how your app feels in your palms. It is a great practice to have the emulator & device in contrasting theme/accent color for thorough testing. Also, a lot of users of your app may be non-techies, who may have different expectations on UX than we developers do. So, make sure you have your Mom or some non-developers test your app for feedback.
  • Use the Isolated Storage Explorer: Need to see how your app behaves as files/folders change in your Isolated Storage over time? Make sure to utilize the handy Isolated Storage Explorer to test out conditions of change in the isolated storage; details of usage here.
  • Being Aware of common certification/UX glitches:

    — Back Navigation
    — App Exit
    — Requisite Artwork
    — No-connectivity mode
    — Improper App activation coming out of Tombstoning
    — Declarations/User Permissions for using Location/Push Notification services
    — Non-Metro look & feel (great resource here)

That’s it for not allowing “Pride” to step in the way of being an awesome Windows Phone developer. Probably lot more to add; but need for brevity & my thought process are calling it quits for the day. Hopefully, you come back tomorrow for the Day #2 article in this series of “7 Deadly Sins for Windows Phone Developers!“.

Adios!

December 19, 2011. It’s Holiday Party time at the Central Ohio Windows Phone User Group (http://cowpug.org/). With BBQ food, custom shirts & cakes, it’s time to celebrate the first 6 months of our user group – a wonderful group of passionate Windows Phone developers.

However, despite the Holiday spirit, it is our single monthly meetup .. so something productive was called for before we started the good times. Just for kicks, I did a 30 minute talk titled “7 Deadly Sins for Windows Phone Developers!”. Nope, nothing religious or biblical about it :) . This was a short talk built by simply drawing pointers from past Windows Phone development experiences .. some common sense Do’s & Dont’s. I believe it was well-received or may be the folks at COWPUG are way too lenient with me. Anyways, I had some fun mapping the 7 Deadly Sins to what we developers should stay away from while developing for the Windows Phone ecosystem. Accordingly, I thought it might be a curious exercise to take the 7 slides for each of the “cardinal sins” for WPDevs and make a short article series out of it.

So, here goes. This post is the introduction to the series & will serve as the indexed home for the article series posts. Today, we begin with what the 7 Deadly Sins are. During each of the next 7 days, you’ll see a post each day which takes one sin & translates it to some no-no’s for Windows Phone developers. I might make a few pointed comments, which I hope you would not take personally .. I am in violation of several principles we will talk about in my own Apps, which I am trying to fix. This is barely an attempt to summarize some best practices & great tools at our disposal as Windows Phone developers. These posts would not have any code to show; rather tons to links to point you to awesome resources. Would really appreciate if you point out resources I may be missing out.

So, what are the 7 Deadly Sins ?

null

From Wiki:

The 7 Deadly Sins, also known as the Capital Vices or Cardinal Sins, is a classification of objectionable vices that have been used since early Christian times to educate and instruct followers concerning fallen humanity’s tendency to sin. The currently recognized version of the sins are usually given as pride, envy, sloth, wrath, greed, gluttony and lust.

In each of the next seven posts, we will pick up one of these cardinal sins & see how it relates to Windows Phone Development:

Again, at the end of the series, all posts would be indexed here. Hope this would be a fun exercise. Thank you very much for reading.

Adios!

[Roadsign Courtesy: http://salary.com/]

CodeMash V2.0.1.2

Posted: January 15, 2012 in Articles, Other Fluff
Tags: , ,

1200 tickets sold in under 20 minutes! That’s the kind of excitement & passion the CodeMash conference generates during the 3 days of geekdom every January. Where else would you be in shorts in the middle of a blizzard in frigid northern Ohio! Where else would you find so many stars under one roof! This year was simply bigger & better at the newly-expanded Kalahari resort in Sandusky OH. CodeMash 2012 was an enormous success, thanks to the untiring work of a small group of volunteers .. kudos geeks & geekettes.

While there were the usual stellar sessions & world-changing conversations, here are some of my personal high points:

  • For folks heading up to CodeMash from Columbus OH, there just isn’t an easy way to get to Sandusky without stepping off the highways onto small country/rural roads. The last couple of trips have always been in the middle of snowstorms, making the drive tricky. This year, we had a little respite with unusually warm weather & no snow. So, the drive up wasn’t bad; the drive back — not so much, with a few inches of snow! Guess it’s part of the Codemash culture!
  • The renovated Kalahari looked quite nice, with the expanded Convention Center easily offering more room for close to 1400 folks to stretch legs.
  • I know we are supposed to create & give back, rather than consume. However, I wasn’t speaking .. so why not throw repentance away for a few days, eat/drink & take it all in. Have some fun!
  • First evening: Sat in a corner bar with the two flamboyant Azure MVPs Michael Collier (@MichaelCollier) & Brent Stineman (@brentcodemonkey), and we just chatted for hours over unending beer. Good times!
  • I was staying at an offsite hotel (yeah, don’t ask) and really liked the Shuttle setup, so we didn’t have to drive & dash across the cold parking lot. Thanks organizers.
  • Bacon — plenty of it everywhere, breakfast or other times.
  • I thought Ted Neward’s (@tedneward) keynote was entertaining. Yes, some folks didn’t like the profanity; but c’mon, we’re adults & sometimes you know what you getting into. It was interesting.
  • Really enjoyed the fact that so many Microsofties made the trip across to attend CodeMash. Pretty darn AWESOME to meet & talk to Scott Hanselmann (@shanselman) .. what a smooth operator. The other time, almost bumped into a skinny guy .. ahem, Jon Skeet (@jonskeet).
  • Always nice to meet fellow Windows Phone developers & share war stories. And there was plenty of WPDev love .. sign of times changing. Also, you may have noticed using mobility with Azure makes me a happy camper .. so specially nice to meet THE Wade Wegner (@wadewegner).
  • The Breakfast, Lunch & Dinners served were quite nice .. thanks to Kalahari’s catering. They mostly managed to keep up with hundreds of hungry geeks. And the dessert bar on Day 1 — awesome! It’s ok steak-loving gents; ok to like some sugar once in a while.
  • The WiFi — yes it worked, unbelievable.
  • The Pecha Kucha — had my reservations at first, but it turned out great. Between Scott Hanselman’s coordination & sheer brilliance from Leon Gersing (@rubybuddha) and Mel Grubb (@melgrubb), it was quite entertaining. Reminded us of humility, passion, fun & enthusiasm that keeps us on the path of software craftsmanship.
  • Lock-picking training from Gabrielle Sempf (@gabriellesempf). Yeah, she showed us how we live in our little bubble of safety called locks in our homes.
  • Hanging out with fellow Sogetians, especially Nihar Shah (@niharshah), Susan Yount (@susaninfj) & Mike Yotive (@myotive), who somehow know how to make me laugh.
  • Seeing the usual rockstars — David Giard, Bill Sempf, Sarah Dutkiewicz, Chris Woodruff, Keith Elder, Jeff Blankenburg, Clark Sell, Mike Lutton, Rich Dudley, Brian Prince etc. Always lots to learn from them, as well as scores of friends that I got to catch up with.
  • Favorite session: SignalR talk by Brady Gaster (@bradygaster).
  • Drinks & plenty of it .. let’s not go there ok?

Now, my one little contribution to this year’s CodeMash was a small article in the conference magazine, called the Mashed Code Magazine (@mashedcodemag). Cheers to Nick Watts (@thewonggei) and the editorial team for pulling off a polished magazine for 2012. I wrote a rather fanboyish Windows Phone Mango article for your reading pleasure .. you owe it to yourself to try a Windows Phone, if you haven’t already :) . Link below .. download as pdf or in eBook format & enjoy!

In all, another GREAT CodeMash. Cheers to all & we shall meet again next year!

Adios.