Proof of Concept Windows Service

Have you ever created an app that would "own" the device it's running on? Maybe it's a full-screen notification and marketing app to run in your atrium or at a conference. Maybe you are creating a point-of-sale system for use in your store. Maybe you are a teacher and you want your students to focus on your classroom app, and not everything else on the machine. Enter SingleProcessMonitor. This project is a Windows service that monitors running processes in an interactive session, and logs off the user when a target process is closed (or crashes).

This service is written in C# on .NET 3.5. That means that this should run out of the box on Windows 7 or later. If you look at the MonitoredProcessName in the VDIMonitorService class you can edit the name of the process you want to monitor. Install the service with InstallUtil and you should be in business. Or download the code on CodePlex and get a jump start on your custom solution.

Investing in your Windows apps

Before I get started, please note that the Keep the Cash promotion is only available to developers in the United States. I apologize in advance to my international readers.

KeepTheCash_BuildBanner

 

As you gathered from reading the links above (or the images with $100 bills), Microsoft is offering developers who publish apps for the Windows Store or Windows Phone Store $100 per app, up to a maximum of $2000 (if you publish 10 apps each for the Windows Store and Windows Phone Store). While some writers have complained that this is not enough to fund a new app (it’s really not), or that it will encourage more shovelware (both of the app stores are curated, and apps do get rejected), I think it’s important to look at this from another point-of-view.

 

This program encourages developers to release a Minimum Viable Product. As long as the apps meet all of the certification guidelines, they are eligible for the promotion. This should encourage developers to quickly focus on what their app is great at. Publishing the app is not the end, (although the team should take this chance to have a celebration), but rather the beginning of a conversation with the app users. How can we best continue the conversation after version 1.0 has shipped? I think this promotion offers new app publishers a little cash to invest in their success. I’ve listed some ideas for keeping the momentum after the app has been published.

    Marketing

  1. Advertise your app Where are users going to find out about your app? Facebook, Twitter, New Releases in the store? Consider targeted ads so users who are already using your target devices see ads for your app.
  2. Buy a website/domain Invest in a domain for your app to provide a level of polish that users can see you are investing in sustaining the app. Users who click for more information will notice that they are going to a site dedicated to your app. A support email address with the app name gains more trust than appsupport12345@hotmail.com.
  3. Email campaign Another way to raise awareness about your app is to launch an email marketing campaign. Obviously, developers with an existing product or brand will have a friendlier audience than developers launching a brand new product.

    Developer Productivity

  4. Pay for Azure notifications. I picked notifications, but Windows Azure offers all sorts of mobile services (in addition to the more traditional IaaS offerings). If you are a small development shop, it helps to focus on what you are good at, and outsource other infrastructure tasks.
  5. Buy custom graphics As you can probably gather from my suggestion, I don’t have a lot of artistic talent. Maybe that isn’t your shortcoming. You can always outsource parts of your application/business to take the stress off of having to manage those things. That gives you more time to focus on what you do best.
  6. IDE plug-ins  I’m a huge fan of refactoring tools. They take a lot of the needless pain out of improving your codebase. I’m most familiar with ReSharper, but there are plenty of others. Anything that takes the drudgery out of coding and helps you think and develop with greater efficiency is worth a look.

    Improved Quality

  7. Outsourced testing/logging Companies like Appfail and Airbrake make it easy to collect exception data, and even easier to generate reports to identify trends and keep you feedback lops tight!
  8. Offer bug bounty
  9. Debugging device How does your app behave on devices with low memory? Do your graphics look as good on a smaller screen? Unlocked phones are coming down in prices daily, and an extra device for debugging never hurts.
  10. Hallway usability Do you perform “hallway usability testing” Is your local barista sick to death of you? Does your significant other go into hiding when you start coding? Why not offer people a few dollars and perform Skype usability testing? I’ve seen developers get their sites translated this way. It might take a while, but you’re meeting new people along the way.

Study Notes for 70-484 – Touch Interactions

Touch Interactions

Another area to review is the gestures and touch interactions supported in Windows Store apps. Microsoft was kind enough to layout the basic uses of the supported gestures. If you are interested in extending the controls, (or just want to learn a bit more), I’d encourage you to read the Design guidance for Windows Store apps.

IC567996[1]

These topics will be covered in the 70-484 exam. This topic falls in the Program the User Interaction Skills Measured for that exam. The best way to get started studying is to download and review the Windows 8 gestures sample.

MSDN Links

  1. Windows.UI.Input Namespace: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.input.aspx
  2. ManipulationUpdatedEvent: http://msdn.microsoft.com/en-us/library/windows/apps/br242026.aspx
  3. GestureRecognizer : http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.input.gesturerecognizer.aspx
  4. User interaction overview: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465397
  5. Quickstart: Touch input http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465387#using_manipulation_events