Another alternative is to install the app onto the Surface device via PowerShell. This won’t attach the debugger, but is often an appropriate solution for people who are just testing the app (QA testers, colleagues willing to provide feedback, etc.).

This is a multi-step process. At a high level it goes like this:

Developer packages the WinRT app to a folder on their hard drive, then puts the package on a network share or USB key, etc.

Tester unlocks PowerShell on their device (this is a one-time thing)

Tester gets the WinRT app package and runs a PowerShell script to install the app on their device

Creating the Package

The developer needs to create a distributable package for the app. This is done by right-clicking on the WinRT project in the Visual Studio solution explorer, and choosing Store –> Create App Packages.

This brings up the Create App Package wizard. The first question is whether you want to deploy the the store, and the answer in this case is No.

Next, you’ll be asked where to create the package, how to create the package version number (different from the app version number) and what platforms to target.

When the Create button is clicked, the project is built and packaged, with the results placed in the specified folder.

The top level folder contains an appxupload file that you can safely ignore (it is used for uploads to the store). It also contains a sub-folder with the actual app package.

These are the files you must make available to the tester. You can put these files on a network share, a USB key, a SkyDrive folder, or any other location where the tester can gain access. The Add-AppDevPackage.ps1 file is the PowerShell script the tester will run to install the app.

Unlocking PowerShell

The tester’s device must be able to execute PowerShell scripts before they can install the app. By default PowerShell has security settings that prevent scripts from executing. This TechNet article discusses running PowerShell scripts. In summary, you need to open PowerShell as Admin and run this command:

Set-ExecutionPolicy unrestricted

Be aware that this allows execution of any script, so you do assume some risk by enabling this policy.

Once this has been done your test device is now able to install WinRT apps by executing the PowerShell script generated by Visual Studio.

Installing the App

On the test device you must have access to the contents of the package folder created by the developer in Visual Studio. You might get those files from a network share, a USB key, or other location.

Simply execute the Add-AppDevPackage.ps1 file in PowerShell to install the app.

The script will ask permission to run.

If this device does not have a side-loading unlock key (MAK or developer key), you will be asked if you want to get a developer key. You should answer yes and walk through the wizard to get a developer key for this device. This step will require you to enter your Microsoft Account email address and password. The resulting key will expire after a short period of time (currently three months).

The PowerShell script will then ask for permission to install the certificate for the app. If you’ve already installed the certificate (perhaps you are installing a newer version of the same app) the script will skip this step.

Once the certificate is installed, the script will install the WinRT app itself.

At this point the WinRT app is installed and its tile should appear on the start screen along with all other apps installed on this device.

The user may now run the app like any other app.

Once the developer key for this device expires the app will stop working. Obviously the intent of this installation approach isn’t for the user to run the app forever, but rather so they can test it and provide feedback during the development process.

As we’ve known now for a long time, Silverlight is “dead”. It is in support mode and will be for a decade.

Just like Windows Forms has been since 2005, and WPF is now as well (do you really think Microsoft is going to divert money from WinRT to do anything with WPF at this point??? If so I’ve got this beachfront property for sale…).

As an aside, ASP.NET Web Forms also “died” in 2005, but recently got a major infusion of money in .NET 4.5 – showing that even a “dead” technology can receive a big cash investment sometimes – though it still isn’t clear that this will be enough to breath any new life into Web Forms for most organizations. I suspect it is more likely that this recent investment will just allow organizations with massive Web Forms sites to keep them limping along for another 5-10 years.

If a technology is defined as “dead” when its vendor stops enhancing it and starts maintaining it while they put most of their money into the future, then I must say that I’ve spent pretty much my entire ~25 year career working on dead technologies. And it has been fun!

Although some of us tech geeks like to jump to the next potential upcoming thing, the people who actually fund software projects rarely want to accept that kind of risk. They generally prefer to build applications on stable technology. Most stable technology is “dead” or “dying” based on this idea of “live” technology being rapidly changing and evolving.

Obviously there’s a fine line here.

Target stable technology that is too old and you really are in trouble. Windows Forms is an example of this, because its underlying technology has no migration path to a WinRT future. Although a lot of organizations have massive investments in Windows Forms, I would hope that they’d shy away from starting new development on this extremely stable, but now too old, technology.

Target stable technology that is new, but old enough to be stable and life is generally pretty good. WPF and Silverlight (for smart clients, not for cross-platform RIA) are examples of this. The reason is that these technologies (especially Silverlight) have a good migration story to a WinRT future. A lot of organizations are investing in WPF, and that’s good. But I’d be shocked if Microsoft invests anything in WPF going forward – its future is the one Windows Forms has enjoyed since 2005 – stable maintenance of the technology. Perfect for building critical business apps. Organizations also have large investments in Silverlight, and as long as the intent was smart client development (not cross-platform RIA) it seems to me that they are in the exact same place as everyone using WPF. Arguably better, because Silverlight is much closer to WinRT than WPF.

If you are using Silverlight for cross-platform rich web development, then I do agree that the news is not good. The current alternative appears to be HTML 5, though it is also clear that this is an expensive alternative with an unsure future. Just like every other silver bullet to write once and run anywhere, I think you have to go into such a venture expecting a lot of cost and pain. There’s no widely successful example in the history of computing that indicates otherwise…

The final option is to target “live” technologies. You know, the ones where vendors are dumping huge amounts of money, and where the technology and platform are changing rapidly. Things like HTML 5 and WinRT are examples of this. As a tech geek I love it when organizations want to do this sort of thing, because the challenge is high and we all get to learn a lot of new stuff. Of course the development costs are also quite high because we’re getting paid to learn this new stuff. And the overall costs for the software are high because the technology/platform isn’t stable and the app probably needs to be rewritten (in whole or part) every few months to deal with platform changes.

Some organizations are willing to accept the costs and inconvenience associated with using “live” technologies. But most organizations don’t have the time or money or risk tolerance, and are far better off targeting “dead” technologies like WPF and Silverlight. They just need to be careful to have strategic migration plans so they can get off those technologies before they reach the point of where Windows Forms is today.

There’ve been a variety of articles and blog posts about the Microsoft Surface, with people expressing pleasure or disappointment as they’ve played with the device.

I thought I’d share my experience with the Surface RT, having now used it for a few weeks.

First though, it is important to understand that I’ve been running Windows 8 full time for months on my laptop and on my Intel-based tablet. When I started running Win8 I consciously chose not to run any of those apps to make Win8 act more like Win7. I never tried to make WinXP look like Win98, or Win7 look like WinXP, so why would I try to make Win8 look like an obsolete OS? Embrace the new, that’s my view!

Also, it is important to understand that I had an iPad at the beginning. That was comparable to the Surface, in that there were basically no iPad apps – just the ability to run iPhone apps on the iPad, which was a really lame experience. So my iPad experience was that the device was reasonable for web browsing and limited entertainment, but had no practical value at all – because it had no Office, or Lync, or other useful apps. I fully appreciate that now, years later, the iPad does have useful apps and can be useful for something other than entertainment and games. But it is important (I think) to appreciate that my iPad experience is directly analogous to my Surface experience – I used both at the start of their existence. (as an aside, I gave my iPad to my wife, because I saw no reason to lug around another entertainment device as I travel)

Given that background, I’ll start by saying that I use my Surface RT every day. A lot. And I like it. I do also find it frustrating at times.

I find it useful for web browsing, entertainment, and productivity.

From an entertainment perspective, it has a bunch of games, it has Netflix and Hulu and Xbox music/video. And it browses the web, which is also entertainment. The only thing I’m missing is Amazon streaming video, which is Amazon’s loss in terms of competing with Netflix/Hulu, so they better get a WinRT app out ASAP or they’ll probably lose me as a Prime customer. Not a customer totally though, because I’m a Kindle addict and occasionally use the Kindle app on the Surface. I still prefer my Kindle Touch though, because eInk is way superior to the shiny-screened Surface or iPad.

From a productive web browsing perspective I find IE10 to be just fine. I am able to use all the sites I need for work, including msdn.com, SharePoint, yammer, skydrive, Google drive, etc. The browsing experience is generally fast enough to be pleasant, with the exception of yammer’s text editing where they run really intensive js scripts for every keystroke. I haven’t tried their site on the iPad, but I suspect it is laggy there too due to this intense use of scripting.

In terms of pure productivity, the Surface is pretty good. I use Word and Excel pretty much daily, reading and editing documents from SkyDrive and collaborating with colleagues on projects. Lync and Skype both work well for telecom (which is important because Magenic’s entire “phone system” is Lync). I’ve used PowerPoint a little, but generally find editing presentations to be easier when using a full-size keyboard/mouse and my big monitors on my main computer. Using Word and Excel on the Surface (with its keyboard) is perfectly fine though, and I use those apps a lot.

I also use OneNote a lot. Much of my life exists in Outlook and OneNote. As a result the Surface provides me with access to much of my life through OneNote. I use the WinRT app, and I’m not sure I’ve even run the OneNote app from Office on my Surface.

The apps I have running on every one of my Win8 devices include:

Office

OneNote for WinRT

Tweetro

Skype

Lync

Feed Reader

Remote desktop

News/Weather/Stocks

Xbox Music/Video

Netflix

Hulu

Youtube player

Khan Academy

Calc

File Manager

TED Talks HD

All My Storage (at least until there’s a real DropBox app)

Bing

What is missing, and this is a big hole for me, is Outlook. The email client in Win8 is pretty lame. Perhaps adequate for casual email use, but not remotely adequate for productivity users. It has poor calendar integration, no Lync integration, no flagging of emails. It just isn’t even close to Outlook. Similarly the Calendar app on Win8 is lame. Well, it is worse than lame – it is really hard to read or use. Again, it also has no Lync integration and is largely useless for ‘real work’. Although I do use both the email and calendar apps, the experience is frustrating at best.

Similarly, the WinRT Lync app doesn’t compare to the real Lync client on an Intel machine. It is a limited subset of functionality. Fine for making and receiving calls, but extremely poor for collaboration scenarios where you need to share your screen.

I do wish that the SkyDrive app supported interaction with shared folders. When I’m collaborating with people on projects we often use shared folders in SkyDrive, but the SkyDrive app for WinRT doesn’t understand that concept, forcing me to drop into the browser to access those documents.

Finally, there is a general lack of apps in the Microsoft Store. This is directly comparable to my iPad experience (remember, at the start of the iPad’s existence) – with the notable exception that Surface comes with Office, so the single biggest set of apps I need are available right now on the Surface, unlike with the iPad (even today there’s no actual Office there, nor the amazingly smooth integration with SkyDrive).

For me, the big missing apps in WinRT include:

Outlook

Full featured Lync

DropBox

Yammer

TripIt

Amazon streaming video

Quicken

In short, at this comparable point in time with the iPad I gave the device away because it was just more weight to carry for little value. But I find my Surface RT continually valuable and have no plan to stop using it. The fact that it has Office and that it smoothly integrates into the SkyDrive ecosystem along with my desktop, laptop, and phone (WP8) makes it incredibly useful. I move seamlessly between my various devices, able to view and edit my documents regardless of where I am or what size screen I’m using.

So yes, I really like my Surface RT. There’s some frustration, but not nearly as much as when I was a month into using the iPad.

I have high hopes for Windows 8, WinRT, and Surface (and similar devices).

Stephen Sinofsky’s departure from Microsoft was rather unexpected, but not unpleasant news, at least from my perspective as a business developer.

Before I explain that, let me say that I really love Windows 7, and feel that it is the best version of Windows ever released. I also really like Windows 8, and have high hopes for its future. These successes are to Sinofsky’s credit to be sure.

As a business developer however, I have been extremely disappointed in Microsoft over the past couple years as Sinofsky ‘flexed his muscles’ within the organization.

Enterprises require predictability and some reasonable level of transparency. Microsoft provided neither of these over the past couple of years. The complete ‘blanket of silence’ surrounding anything to do with Windows 8 was stifling. As a result people at Microsoft were unable to talk about anything useful at all for an extremely long time. The future of .NET, Visual Studio, Blend, and many other key developer technologies became completely opaque.

As a result, many organizations developed strategies to move their business development away from dependencies on Microsoft, at least in terms of any client software development.

If there was any ray of hope over the past couple years, it was in the server and cloud space. This is where all the best known developer advocates inside Microsoft moved to, if they stayed at Microsoft at all. As a result, many organizations felt comfortable using ASP.NET and other server-side technologies, but generally started assuming Windows would no longer be a viable target for client-side software.

Obviously this is horrible for Microsoft, and yet it is a direct result of Sinofsky’s influence on the company.

Even today the story around deployment of business applications to the WinRT platform is at best incomplete, and I think is more accurately described as non-existent. Sinofsky’s apparently dismissive attitude toward anything outside the consumer space has left Microsoft increasingly irrelevant to anyone considering building smart client applications.

In short, the one true stronghold where Windows is currently dominant has been largely abandoned by Microsoft, effectively pushing us all toward building HTML 5 cross-platform apps that don’t rely on Windows at all.

Clearly this is one of the primary areas that Sinofsky’s successor must address and correct – unless Microsoft really does intend to abdicate the business client to commodity browser-based devices (can you say Chromebook?).

Personally, and based on no knowledge of the new people in charge, I am hopeful that they will restore some level of predictability and transparency to the Windows platform and the related development platform. This will help restore some confidence around the idea of building applications for Windows in the small, medium, and enterprise spaces. And I am hopeful that they’ll develop a real strategy and mechanism for deploying business applications to the WinRT platform so Windows 8 can become relevant to more than just the consumer space.

All that said, and for all my criticisms of Sinofsky’s brutal blanket of silence and alienation of the developer community inside and outside Microsoft, he really did something that had to be done – reimagine Windows to bring it into the future. Windows 8 and WinRT really might be the future of smart client development for most organizations.

The foundation is there, and it is now up to his successors to make it viable.

In 2008 my wife decided to give them a try with their paid service. Every year since then she has tried to cancel the paid service. Every year they renew it anyway, and continue to increase the price each time.

This year we tried disputing the credit card charge. They sent the credit card company (Discover) a bunch of screen shots of the ancient transaction from 2008, but none of the subsequent requests for cancelation. I strongly suspect they’ve “lost” all our requests to cancel their service (which we never found remotely useful in the first place).

Discover sided with classmates.com and insists that the transaction is legal.

As a merchant, I find that the credit card companies never side with me. <scarcasm>Apparently I need to create better screen shots to send in the case of disputes, because that seems to be the trick to screwing over your customers.</sarcasm>

At this point I think we’ll end up canceling the credit card completely. Not only because Discover is assisting what seems like criminal theft of our money, but also because 12 months from now when classmates.com tries to steal some more money, they won’t be able to complete the transaction against a long-canceled credit card.

What recourse do I have as an individual in this case? In terms of raw cost, it’ll take thousands of dollars to sue classmates.com to get my $40/year from them, so it makes more financial sense to allow their continued theft of my money. Certainly there’s no way to get back the latest $40 theft…

At the .NET Rocks Road Trip event in Charlotte, NC this week an attendee asked if there’d be a way to run the new Windows Store apps on Windows 7.

These are apps running on the new Windows Runtime (WinRT) platform.

Basically the question was whether Microsoft would issue an update so WinRT apps can run on Windows 7.

My answer, which got a great laugh, but is actually serious, is that Windows 8 is the update to Windows 7 that allows it to run WinRT apps.

I acknowledge that this answer is loaded with humor. But I am also serious in my answer.

I’ve been running Windows 8 full time for a few months now, and haven’t run into any issues with Windows 7 apps not working on Windows 8 (except for a couple odd-ball Steam games that I suspect break some Win32 programming rules). All my work software, all my business software, and my important games (Battlefield 3, XCOM, Supreme Commander, L4D2) all work fine on Windows 8.

Windows 8 turns out to be a slightly faster version of Windows 7, that can also run WinRT apps. Hence, Windows 8 is the upgrade to Windows 7 that allows you to run Windows Store apps.