Wednesday, April 25, 2012

Azure Tools

I was reading some things on Azure today and found links to a couple Azure tools.  One issue is that the MMC plugin will only install if you have the Azure SDK 1.4 installed. Well, the SDK is up to 1.6 now so it won't install.  But you can keep an eye on it for the future.

Azure PowerShell cmdlets

Azure mmc plugin

Saturday, April 14, 2012

WP7 Tutorial 1 - Getting Started

Getting started with developing for WP7 is actually pretty simple for a .NET developer or a new programmer.  The tools are free, the simulator is terrific, and there are more and more WP7 phones in the market now.  Microsoft has done a great job providing a development environment that is easy to use.  I want to go over the steps in getting going with WP7 development as well as what the basic project types are. 


As I said, the tools are free for starting with WP7 development.  You can get the tools from here... On the left hand side you will see the area for downloading the free tools
In the Windows Phone SDK 7.1.1 you will get the following:
  • Microsoft Visual Studio 2010 Express for Windows Phone
  • Windows Phone Emulator
  • Windows Phone SDK 7.1 Assemblies
  • Silverlight 4 SDK and DRT
  • Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0
  • Microsoft Expression Blend SDK for Windows Phone 7
  • Microsoft Expression Blend SDK for Windows Phone OS 7.1
  • WCF Data Services Client for Window Phone
  • Microsoft Advertising SDK for Windows Phone
For the SDK you will need a Vista or Win7 PC.  This means that you cannot install the phone sdk on an XP system. 
Supported operating systems: Windows 7, Windows Vista
  • Windows® Vista® (x86 and x64) with Service Pack 2 – all editions except Starter Edition
  • Windows 7 (x86 and x64) – all editions except Starter Edition
  • Installation requires 4 GB of free disk space on the system drive.
  • 3 GB RAM
  • Windows Phone Emulator requires a DirectX 10 or above capable graphics card with a WDDM 1.1 driver
Keep in mind that if you already have Visual Studio 2010 installed the SDK will tie to that SDK instead of Visual Studio 2010 Express.  A word of warning about this however - when I was helping Microsoft at a local university with a WP7 event, we had to make sure that SP1 was installed on all of the Visual Studio 2010 installs.  Doing this on 50 machines did take a while and I want to save everyone the time.  At the university they also had it setup to reset the machines back to a default VS2010 install on a reboot.  This means that the service pack and phone SDK needed to be installed over and over again. Finish installing the tools like you normally would to let you start making WP7 apps.


AppHub is the name of the site that you will use to submit apps and keep track of all of them.  This is the site.  When you sign up on AppHub you can make WP7 and XBox 360 games.  Joining AppHub is not free.  It is $99 per year, but Microsoft has deals every now and then to be able to get that fee back. You can make an unlimited number of paid apps and up to 100 free apps for WP7 and up to 10 games for the Xbox LIVE Indie Games.  Apps are certified by Microsoft to make sure that copywritten material is not included and that the apps are appropriate for the region of the world you are releasing them.  Another nice thing is that Microsoft will certify who you are.  As a developer, this can be a pain in the neck, but from the user point of view it means that you will never get an app that says that it is from Bank of America when it really is from a guy in New Jersey just trying to get your account info and passwords.  This actually happened on another phone store. As a paid member of AppHub, you can have up to three WP7 devices on your account and can developer unlock them.  Of course for some people, like students, a $99 fee is a little steep.  Microsoft has a program for students and educators called Dreamspark.  This program is similar to microsoft's BizSpark program, where the student can get all of the developer tools from Microsoft for free but it also allows the student to tie a single WP7 device to their developer account.  Microsoft is actually very generous to students and I know that I have handed out about 60 WP7 phones over two different university events.  If you are a student, see if there is a local event for you to get a phone, but you can at least sign up for Dreamspark and get all of the tools first.

No Phone -> No Excuses

Some people will say that they can't develop a WP7 app because they don't have a smart phone or they have a different brand of smart phone.  Well I want to say that this is not true.  The emulator that comes with the tools is extremely good.  For many types of applications, you can do most of your development and work with just the emulator.  For my first three apps in the store, I did not have a phone to use at all.  Obviously if you are making a huge game then you want to test it on a real device, but many apps don't need this.


Finally I am getting to the actual making of an app.  When you start up a new project in Visual Studio you get a dialog that looks like this. 
I highlighted the two different types of projects that are available for WP7.  The first is Silverlight for Windows Phone and the second is XNA Game Studio 4.0.  In this tutorial, I am only going to be going over the Silverlight projects.  I will have another tutorial later with XNA. Under Silverlight for Windows Phone, you will see a lot of different project types.  You might now see as many as I have shown here.  This does not mean that you are missing something.  If you look at the left hand side of this dialog you will see that it has a section for Online Templates.  This is a great feature of Visual Studio 2010.  You can get other project types from an online gallery of templates.  There are other things like online controls, and more that you can also download, but that is another tutorial.

Windows Phone Application

This application type is one of the simplest.  It is just a single window.  You can then add controls to the window like you would any other Silverlight app.  Some of my apps use this type because they are a simple interface for the user.

Windows Phone Databound Application

This application type is a very generic list of data. The data is typically a data bound list from some source, possibly online or entered from the user. 

Windows Phone Panorama Application

Panorama applications are a unique app type to WP7.  It has a large panorama image in the background that will scroll as you scroll the display left or right.  This way the user can have an easy way to move from screen to screen with a simple swipe.  My Thoughts and Prayers app uses this type of project.

Windows Phone Silverlight and XNA Application

This project type is new to the 7.1 Windows Phone SDK.  Before the Mango release last yet, you had to pick either a Silverlight project or an XNA project.  The issue with an XNA only project is that you have to make your own buttons, text, and sliders and all other controls.  This can be time consuming with a Button class just sitting there in the Silverlight that could be used.  This allows you to use the Silverlight controls with an XNA project running in the background.  This way menus, high score lists, etc can be written with standard Silverlight controls and that makes it easier for developers.

Video Demonstration

I am working on a video of this tutorial with samples of each of these project types.  I will put it up on YouTube on my channel and link to it here.  I will keep the videos short and sweet since I know that videos that are 30 minutes are both hard to sit thru and hard to edit.  ;-)

More to Come

In the coming weeks I am going to be adding many, many posts and demos on WP7 apps.  After I get all of the basic Silverlight posts out that I am wanting to get done, I will start on the XNA side of things as well.  Keep checking back for updates and for the video tutorials to help you to see each step of the way.  I know that some of these have helped me in the past.

Thursday, April 12, 2012

Free SQL 2012 Ebook

Microsoft Press has an Ebook available in PDF, ePub, and mobi formats introducing the new SQL Server 2012.

Free SQL ebook

March AppRochester Presentation (WP7)

I wanted to share the presentation that I had put together for the March AppRochester meeting.  Todd did the tips on iOS, but then I did the tips for WP7.

Tips and Tricks for WP7

Monday, April 9, 2012

WP7 Video Lessons

I am going to start recording some short video tutorials on programming for WP7. There are many different things that I have done on a WP7 that could be good lessons for others.

I am also going to look to my group AppRochester to make some videos and blog posts for other platforms such as iOS and Android. I could do those as well using MonoTouch and Mono for Android, but there is a good training section on their website for people to use.

Depending on how well these go I might also do some around Windows Azure and SQL Azure. If there is something that you want a video or a blog post on about WP7 programming, please let me know.

The first one coming soon is getting started with WP7.  I will be going over how to get started with WP7 programming, including where to download the needed tools and what are the basic project types.

Wednesday, April 4, 2012

Azure Prices Falling Again

I am abit slow in this but I wanted to post that the prices on Azure have dropped again. Microsoft is keeping the rates similar to what Amazon is charging for AWS.

I highlighted the areas below where the prices are dramatically different then before.  With this an extra small compute instance is now as low as $15 a month.  For databases, it is a flat fee of $5 a month for up to 100M in the database.  That s not a bad size.  If you compare it to the 1G for $10 it does seem abit high, but overall many databases will only need a few M of size.

Another big thing is that Microsoft is now making it simpler to do something for longer term.  They give you a discount if you sign up for blocks of 6 months at a time.  You can get 15% off, so a small compute instance would be $72 instead of $90 a month, but you have to do it in those blocks.  One bad thing here is that there is no discount on the extra small instance, it is $15 a month if you are doing month to month or in 6 month blocks.

Azure Compute Time

Virtual Machine SizeCPU CoresMemoryCost Per Hour
Extra SmallShared768 MB$0.02
Small11.75 GB$0.12
Medium23.5 GB$0.24
Large47 GB$0.48
Extra Large814 GB$0.96

SQL Azure

Database SizePrice Per Database Per Month
0 to 100 MBFlat $4.995
Greater than 100 MB to 1 GBFlat $9.99
Greater than 1 GB to 10 GB$9.99 for first GB, $3.996 for each additional GB
Greater than 10 GB to 50 GB$45.954 for first 10 GB, $1.998 for each additional GB
Great than 50 GB to 150 GB$125.874 for first 50 GB, $0.999 for each additional GB

Azure Storage

Standard pay-as-you-go pricing for storage
$0.125 per GB stored per month based on the daily average
$0.01 per 10,000 storage transactions

I definitely like the competition in price that all of the new cloud providers are giving us today.  I for one use Azure for my Thoughts and Prayers mobile app for the back end.  I use .NET for all of my coding and Azure has made it simple to use .NET in the cloud.  Of course Microsoft understand that not everyone wants to use .NET today so they also now are offering support for node.js, java, or php.

MVP - but not what you think

MVP can stand for many things - Most Valueable Player, Most Valuable Professional, etc. but running a mobile device user group, I get people coming to me with idea after idea of app products. Some of them are great, but some of them are not really positioned to do well. So here I will refer to MVP as Minimal Viable Product.  I will define this as the minimum that a product needs to have to be useful for someone.  Notice that I did not say that it is useful to everyone.

In the development community, many apps get something called feature creep. This means that features keep getting into the application before it gets released. One company I worked for had a medical device and we were almost ready to start selling it. The managers went to a trade show and then came back with a dozen of so new features that needed to be in the first release or "Nobody will buy our product". Needless to say that project was not a run-away success.

The concept of MVP here is that you don't know the direction that a project will take after the users get their hands on it. And in the mobile app community the needs and wants of users changes quickly. I will use one of my apps as an example. My app is called Poker Hand Rankings. It is a little app that just puts the different poker hands in order and explains them. This makes it easy for a beginning poker player. I could have picked to make an app where people could play poker online against each other or against multiple computer players. I choose to put out a simpler app and get it out faster. I am using the old "Release early. Release often" idea for this app. Of course I have not done that many updates so I am not really releasing often.

But now, people are asking if the app can have the ability for them to practice playing poker as well. So what I am doing is putting in a section where you can play video poker. This is still easier than an system where you play online with others, so I am keeping it more MVP.

Another thing that limiting your apps does is to let you add new features pretty quickly. Many mobile stores have a section for updates and put your app back at the top of the list for a short time. This also makes it seem that you are working really hard on improving the app as often as possible - even if it is just you doing everything.

So I usually recommend to people to put out a mobile app out quicker.  Limit the features and get it out the door.  Then listen to your customers as you enhance it.  Get started instead of waiting for your idea to get done.  Get started with a MVP.

New CodePlex project release

I thought that I had release my Kinect voice control demo on CodePlex, but someone posted a message that they were waiting for the release.

This is a sample of both a PowerPoint plugin and how to do voice recognition with the Kinect. It was developed for a demo for a couple of user groups that I speak at. Have fun with it.