Dashboard Fail

Last summer I wrote a bunch of Windows 8 apps. It was part of some promotion from Microsoft. Deployed around eight apps or so. Sold a few. Made a bit of cash. Nothing serious. The best thing about putting my apps on sale was that it motivated me to get my own domain to host my web pages.

I used to check out my earnings every so often using the Microsoft Dashboard for developers. It showed how many copies of my apps sold. Recently I logged into my dashboard. The thing said the dashboard was upgrading. Okay. Turns out I can no longer view my dashboard.

Been working with Microsoft to try to get the problem resolved. Recorded my experience a few times with a tool. Tried different browsers and machines (it does not work using IE). Got a request to upgrade my browser. Umm no thanks. Not going to try that just to see what happens.

Then I get an email from Microsoft support saying that since I was not willing to upgrade my browser, they are done trying to help resolve my issue. LOL wut? I work on resolve software and system problems myself. So I can spot when somebody knows an issue, and when somebody is stumbling around guessing what might affect a problem.

Guess what Microsoft seems to be doing? Making some guesses. Come on. Dig in and figure out what is wrong with your web site. I mean it is serving people developing for Microsoft. Don't you want to keep those people happy and writing more apps for your operating system? Sheesh.

Universale Apps

You can now have a single solution that targets both Windows Phone and Windows 8.1 at the same time. Allegedly you will also be able to target XBox in the future. This is called universale apps. I like the sound of that. My current projects only support Windows 8.1. It would be nice if the same build can crank out Windows Phone or XBox targets too.

The way it works is that you have one solution with with multiple projects in it. Two of the projects are for Windows Phone and Windows 8.1. The other is a shared project. The shared project name ends with shproj. The shared project is like a library and does not output a package. It also cannot be the startup project in Visual Studio.

Speaking of VS, you need Visual Studio 2013 Update 2 to be able to do universal apps. Of course you will also need to be developing on Windows 8.1. Me, I like to code in C++. However if you write code in JavaScript, you can utilize third party frameworks. You know that is popular in the JavaScript world.

Azure

The folks at my company are getting stoked on Microsoft technologies recently. I have seen a bunch of emails about training up on the latest Microsoft offerings. My boss even said we should see if we could get certified in some of these technologies. So when I saw an article in a magazine about Azure, I read on.

There are a host of technologies in the Azure world to help you serve up web sites. They got the database covered with Azure SQL Database. It is a cloud based database. But it support relational queries. Deep down underneath there is a SQL Server Database there.

They have a separate Azure Blob Storage to deal with storing of files. That feels like a different idea to me, as I normally just stick blobs in my Oracle database. Then again, I deal with a user base on the order of 1000 or so. Blob Storage has its own set of ideas such as accounts and containers.

Next up we got Azure Queue Storage. I have also see it referred to as Azure Storage Queue. This is the standard queuing idea where you store a bunch of messages that will later be worked asynchonously.

Microsoft has the Azure Traffic Manager to direct users to destinations of choice. This lets you use multiple sites to serve up your web pages. And you can do an upgrade while keeping your systems and sites online.

Finally I want to mention Web Jobs. This is the Azure way to run background tasks. They can be regularly scheduled tasks. Web Jobs has its own SDK that you will want to become familiar with. So much to learn.

The Windows 8 Platform

Windows 8 is Microsoft's latest operating system. There is a Start Screen instead of a Start button. There is a virtual keyboard available. Rectangular icons called tiles are shown on the Start Screen. Tiles represent apps. Tiles that show changing info are live tiles.

There is a Charms Bar on the right hand of the screen. Apps open up to fill the whole screen. Apps can also be displayed side by side. Apps can use a touchscreen. Apps need a minimum of 1024 x 768 screen resolution. There is a new picture password for logging into Windows. The old school Windows desktop is an app.

Apps are sold in the Windows App Store. You need an account to upload apps to it. Looks like Windows 8 is the future. It may take a while for it to catch on.

Final Thoughts on Windows 8 App Dev


There are a bunch of image sizes associated with Windows 8 apps. Your logo is 150 x 150 pixels. The small logo is 30 x 30. The splash screen is 620 x 300. And the store logo is 50 x 50. You should also have some promotional images. At the very least you should provide one that is 414 x 180.

Your app has to pass tests from the Windows App Certification Kit (ACK). This tool laucnhes your app. This must be the release version of your app. I use version 2.2 of the ACK to do my business. Don't worry too much. Visual Studio will guide you through running it before uploading to the Windows Store.

You must register as a Windows Developer to upload your apps to the Windows Store. Normally this costs $49 for an individual account. A corporate account will oost you $99. I think these are the yearly fees. I hear you can get a free account if you are a student and you can prove it. At least you used to be able to get a free student account.

Watch out. A human reviews your app for inclusion in the Windows 8 Store. You app has to "provide real value" or it could get rejected. At least one of mine got rejected. I gave up on that app. Other more worthwhile apps that initially got rejected eventually got through. Some I am still working on.

Windows App Basics


There is a new keyword called partial. It tells you a class definition is in multiple files. Next there is XAML for the UI. It stands for eXtensible Applicaiton Programming Language. It is based on XML. While we are talking about buzzwords, let's defined WPF. Previously this was called WinFX. It is part of the .NET framwork 3.0. It stands for the Windows Presentation Foundation. Whew.

Now let's talk about a Grid. This is a panel. In fact it is derrived from the Panel class. The thing acts as a container. You can like this to an HTML table. You build your apps with Visual Studio. That deploys them to Windows 8. Then you can launch them from the Start Screen.

You place elements on your UI. These are things like text blocks or images. They are not controls per se. You use the elements to build controls. XAML creates the controls for you. Or you could opt to do it just with code. Function MainPage() creates the controls. The XML gets parsed during compile time. That generates a source file.

Charles Petzold, in his book, recommends you use XAML. But you don't have to. You can create a new app. You must handle the OnLaunched event. You can just use the context yourself to handle everything. I never did though.

Wrting Windows 8 Apps


Initially I had some problems finding information about writing Windows 8 Apps. Well I had problems finding good information. Then I discovered "Writing Windows 8 Apps With C# and XAML" by Charles Petzold. I wished it was written with C++ in mind. However it was written by the master and I was happy about that.

I have mentioned before that you need a Windows 8 developer account to upload apps to the Windows 8 Store. Windows 8 apps run in a full screen normally. You can only get the apps from the Windows Store. You deploy the apps to the store using Visual Studio itself.

Windows RT runs the Windows Store apps. This is the Windows Runtime. It is a new object oriented API. Inside it is based on the Component Object Model (COM). Hey. Old goodies do not die. They just get repackaged. WinRT is kind of like SilverLight I hear. I could not say as I am not familiar with SilverLight. Apps are not managed code. The namespaces begin with Windows.UI.Xaml.

To recap your options, you can build a Windows 8 app with C++ and XAML, C# and XAML, VB and XAML, or JavaScript and HTML5. The C++ is C++/CX, which stands for C++ with Component Extensions. It is a special type of C++. On the JavaScript side, you use Win JS which stands for the Windows Library for JavaScript. Yep. Intuitive.