Friday, April 30, 2010

Visual Studio 2010 RTM + Windows Phone 7 CTP April Refresh

Success!

A week after complaining about the fight with VS2010 and WP7CTP, they released an April refresh of the Windows Phone 7 Development Kit CTP that works with the full release of Visual Studio 2010.

I started on my home machine, where I had only ever installed the WP7 CTP with its Visual Studio 2010 Express version. That install had always worked. After an uninstall of that, including the leftover packages listed in the Programs and Features list, I was able to install the following, in this order (I can't say how much the order matters, but this worked for me):

Visual Studio 2010 Professional
Microsoft Windows Phone Developer Tools CTP - ENU
Microsoft Expression Blend Add-in Preview 2 for Windows Phone
Microsoft Expression Blend SDK Preview 2 for Windows Phone
Microsoft Silverlight 4 Tools RC2 for Visual Studio 2010
Microsoft Expression Blend 4 RC
WCF RIA Services Toolkit April 2010

Of course, you might not need all of this -- I'm aiming for a complete development environment -- but all of the above does seem to work together fine.

There are a few issues mentioned in the release notes, one of which doesn't affect me but might affect others: any assemblies signed with Authenticode will fail to load (a workaround is available until a next release of the CTP can be made); and the fact that existing projects, made with the previous release of CTP, will not work correctly because of a new section required in the manifest file. While the release notes spell this out, and Visual Studio will pop up a dialog to this effect, it's not a cut-and-pastable block of text, so I'll provide one here:

<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_LOCATION" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_MICROPHONE" />
<Capability Name="ID_CAP_MEDIALIB" />
<Capability Name="ID_CAP_GAMERSERVICES" />
<Capability Name="ID_CAP_PHONEDIALER" />
<Capability Name="ID_CAP_PUSH_NOTIFICATION" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
</Capabilities>

This should replace the empty <Capabilities> section in the WMAppManifest.xml file of older WP7 projects.


Since this worked so well yesterday, it was on to my work machine this morning. This was the machine that had all of the uninstalls and reinstalls from last week, but had finally gotten up-and-running with WP7 -- just in time for yesterday's announcement. So... I uninstall WP7, clean out every little package as I've done time and time again on that machine, and on the home machine. Install VS2010 and ... failed. Hrm. Reboot, uninstall the few pieces that got put in, reboot, install again... failed. The problem I was seeing is mentioned here and in other places; the one suggestion of turning off the virus scanner didn't apply (don't run one), and neither did the bad-ISO-image one (I had just used the same image two days prior). But, just in case, I went to arrange for another download, and lo! Found out that I have access to VS2010 Ultimate! Yay MSDNAA! After painstakingly waiting for the download and uninstalling the detritus from the last failed attempt at VS2010 Professional, I start the VS2010 Ultimate install, and ... success!

I have no idea whether a re-download of Professional would have solved the problem, or if the Ultimate installer had some smarter checks when installing itself. I don't care, because I'm that much closer! Unfortunately, the install finished at the end of the day, so the install of the abovementioned list of packages will have to wait until Monday.

If anyone out there has any problems with the WP7 setup using the packages as of the time of this writing, please drop me a comment -- especially if you also found a workaround!

Thursday, April 22, 2010

VS2010 + Windows Phone 7 Redux

Err...yeah. That didn't go well at all. After multiple attempts, numerous installs and painstaking uninstalls, no love was found trying to get the Windows Phone 7 CTP to work with Visual Studio 2010 (not the RC, but the release). Granted, I've never seen anything specifically say that the CTP should work with a post-RC version, only RC, so perhaps it's my fault for high expectations. As it is, I'll wait until the Phone devkit is beyond CTP and released for proper inclusion into a full VS2010 -- and then try all over again.

Luckily, I've got an XP virtual machine in which I can run VS2010, for doing non-Phone development. It's just unfortunate that I can't combine all of my development work into a single environment.


On a related note, I finally got to play around with the Visual Studio 2010 Express that comes with the CTP -- I haven't touched Visual Studio for almost ten years, since I was employed as a developer, and even then I resisted embracing the environment (having come from many years of Emacs under *nix development). My C# programming of late has all been under Linux, using Emacs and Mono, but I'm forcing myself to use the correct environment for Phone development, and ... wow.

I *really* used to despise the Intellisense in Visual Studio, finding it an interfering and distracting nuisance -- it was the first thing I'd change in a new VS install, even before adding my emacs key bindings. But now ... yeah, wow. Because of the "live" nature of the environment, VS can deduce types of variables and provide completion in code that has never been compiled or run, and the method to accept provided completions is definitely more intuitive than it used to be.

This is also my first time doing anything with Silverlight, and thus my first experience using XAML. I'm quite impressed with how useable and interactive the XAML editor is and the immediate view of changes made - it sure beats hitting "compile" every minute to see how things are looking after each change.

I'm sure Visual Studio veterans are laughing at my wide-eyed experiences, but we can't all have experience with everything out there, can we? Well, I'm trying.

Tuesday, April 13, 2010

VS2010 + Windows Phone 7

Catching up on my C#/Silverlight/XNA RSS feeds, I read a Sgt. Conker article regarding Visual Studio 2010 RC and the Windows Phone 7 CTP.

In the past few weeks, I've been having quite the war with the VS2010 Ultimate Beta 2 and the Windows Phone 7 CTP, mainly because they're not compatible, and thus I can only have one installed at a time. On one machine, one of them won out, on the other, the other. That is, until VS2010 RC was released, at which point I uninstalled Ultimate Beta 2 (couldn't upgrade from that), and then ... decided to just install the Phone CTP.


And now I find out that I didn't have to make a decision, but that the CTP *will* work on top of RC just fine, which means I get to uninstall the CTP on two machines, install Visual Studio 2010, and then reinstall CTP on top, with the guidance mentioned in the article above. And, since VS2010 is actually released now (not Release Candidate, as far as I know), I can go directly to that.

All this for the XNA portion of the WP7 tools to tell me that the video card on one of my machines isn't up to snuff, relegating it to Silverlight-only development. And I'm too cheap to go buy a new video card.

So far.

Tuesday, April 6, 2010

Slow start

I've yet to do more than compile a few intro Windows Phone apps and take a look. Part of the reason is that the Windows 7 Phone Series CTP, which comes with Visual Studio 2010 Express, can't co-exist on a machine that already has Visual Studio 2010, which my one machine has. The add-on to the full Visual Studio 2010 that will allow WP7S development hasn't been released yet, so I'm unable to work on that machine.

My first intuition was to run a virtual machine that doesn't have VS2010 installed, but of course the virtualization of the phone hardware doesn't play nicely inside a virtual machine (nor next to a virtual machine, for that matter).

And, my other Windows 7 machine which I purposefully left without VS2010, specifically for WP7S development with the CTP... doesn't have a DirectX 10-compatible videocard, so I can only do Silverlight-related development on that machine -- no XNA.

Not all is lost, however. I've been browsing the UI Design and Interaction Guide for WP7S, which is interesting, if not a bit zealous. I'm also reading the Special Excerpt from Programming Windows Phone 7 Series by Charles Petzold, which works through at a good pace, but would really be more fun if I could play along while reading...

My O'Relly XNA book is being neglected for now because of my lack of an XNA-able videocard. Granted, I could try some XNA development on the non-WP7S machine, but... I haven't. I've got no Silverlight book, and all I've seen available have been for Silverlight 2, and I believe they're calling the WP7S version Silverlight 4, so I don't think I'll be picking up a book on the subject quite yet.

The O'Reilly C# 4.0 in a Nutshell book has been very good, giving me exposure to all sorts of good, new features in C# that I've already forgotten about and will reread about months later and curse not using. I've got a few non-WP7S projects that I'm working on with C#, to get to know the language better so I'm more comfortable when I start doing some phone development.

Expression Blend is being pushed quite a bit as the manner in which you design layouts and UI in WP7S, and I've never touched it before. I've installed it, watched a few videos on Channel9, but that's it. I've never been a good interface designer, and since a phone is all about design, I'm going to be thrown headfirst into it. Luckily, there will be a bunch of Silverlight templates to be used and keep me on track.

I'm hoping in the next week to play with more samples, modify them, and actually get a feeling that I've written my own first WP7S app.