The Beta of the Windows Phone 7 Developer tools has just been released. Many of the changes from the CTP we've been using seem to be geared to allowing those who have actual devices to use them. Unfortunately that doesn't include me.
Other changes include controls and control templates, both of which I've got no real understanding of yet, since that's all Silverlight and I'm still a Silverlight newbie, still focusing on learning some XNA.
The scary part about this, if you've read my previous posts on the matter, is that I have to uninstall the CTP versions of things and reinstall this version. Wish me luck!
Monday, July 12, 2010
Wednesday, July 7, 2010
XNA progress
One of the good and bad things about Windows Phone 7 is that it has two development APIs to choose from -- Silverlight and XNA. This is good because it allows for flexibility to choose the right tool for the job, but bad because I know neither of them, and thus have to learn both of them to have the understanding of the platform that I want.
Silverlight frightens me, though, because it's heavily about layout, which I've never been good at. My blogs are only tolerable because they come with templates, and anything else I design hasn't a whiff of design, layout or interface. This is a problem I'm going to have to overcome, in time, but for now, I'm learning some XNA, which lets me ignore such things and just draw pretty graphics all over the screen -- art being something else I'm hopeless at, so will be using liberated assets from the internet and elsewhere.
To learn XNA, I've been reading the O'Reilly Learning XNA 3.0 book, wishing that there was a 4.0 version out already. There are a few blogs out there that are trying to help developers make the transition, and a few others that are trying to point out the Windows Phone-specific differences for XNA development. But for now, I'm going through the examples in the book as Windows Phone 7 targets and dealing with any discrepancies as I find them.
One of the first examples (that does anything interesting anyway) is putting an animated sprite on the screen, and then using various input devices to move it about. While they provide animation spritesheets with the downloadable content for the book, I have other assets that I prefer to use. After a little bit of customizing of the example code (which I've now noticed I'll be changing in the next chapter), I ended up with something that I'm pleased with.
Now really, this is not much of an accomplishment -- this is chapter 3 of the book, and all it lets you do is move the ogre (his colours look fine on my screen; I haven't figured out why FRAPS doesn't capture it properly) around with mouse and keyboard. Well, it would if it was a regular XNA app, but the XNA KeyboardState doesn't translate well to the phone emulator, and the mouse interaction on the phone requires your finger on the screen, thus clicking-and-holding the mouse button, instead of just moving it. But even though this is currently a trivial result, it definitely helps drive me to learn more, especially because seeing this with the alternate graphics helps to drive my other project as well.
Up next: collision detection. But instead of some spinning ball from the book, perhaps I need... fire!
Silverlight frightens me, though, because it's heavily about layout, which I've never been good at. My blogs are only tolerable because they come with templates, and anything else I design hasn't a whiff of design, layout or interface. This is a problem I'm going to have to overcome, in time, but for now, I'm learning some XNA, which lets me ignore such things and just draw pretty graphics all over the screen -- art being something else I'm hopeless at, so will be using liberated assets from the internet and elsewhere.
To learn XNA, I've been reading the O'Reilly Learning XNA 3.0 book, wishing that there was a 4.0 version out already. There are a few blogs out there that are trying to help developers make the transition, and a few others that are trying to point out the Windows Phone-specific differences for XNA development. But for now, I'm going through the examples in the book as Windows Phone 7 targets and dealing with any discrepancies as I find them.
One of the first examples (that does anything interesting anyway) is putting an animated sprite on the screen, and then using various input devices to move it about. While they provide animation spritesheets with the downloadable content for the book, I have other assets that I prefer to use. After a little bit of customizing of the example code (which I've now noticed I'll be changing in the next chapter), I ended up with something that I'm pleased with.
Now really, this is not much of an accomplishment -- this is chapter 3 of the book, and all it lets you do is move the ogre (his colours look fine on my screen; I haven't figured out why FRAPS doesn't capture it properly) around with mouse and keyboard. Well, it would if it was a regular XNA app, but the XNA KeyboardState doesn't translate well to the phone emulator, and the mouse interaction on the phone requires your finger on the screen, thus clicking-and-holding the mouse button, instead of just moving it. But even though this is currently a trivial result, it definitely helps drive me to learn more, especially because seeing this with the alternate graphics helps to drive my other project as well.
Up next: collision detection. But instead of some spinning ball from the book, perhaps I need... fire!
Thursday, May 6, 2010
Slow Progression
I'm definitely not whipping out any Twitter apps or 3D games, but I'm finally getting my feet wet with Windows Phone 7 development.
I finished the Windows Phone 7 Training Kit "Hello Windows Phone" lab the other day (link at the right) only to have them release three more labs as part of the April release update. It rushes you through a lot of the Expression Blend and Silverlight stuff, which is the material I know absolutely nothing about, but I can always go back and tinker. For now, it's all magic.
I got my new DirectX 10-capable video card yesterday, which meant I was able to continue going through Charles Petzold's preview of his Programming Windows Phone Series book (link at right) at the XNA portion where I stopped. I then spent the rest of the evening trying to figure out why the project wasn't doing what it should; it wasn't failing with an error about my lack of video card support, as it did before... near the end of the evening I remembered seeing something flash by my RSS feed about an update on Petzold's blog, and sure enough, he had updates to the sourcecode that included fixes for changes to the April CTP release. This will teach me not to a) not read the release notes for the CTP; and b) not read my Windows Phone 7 RSS feed before coding. If you're wondering: XNA apps now require setting the back buffer size, which was missing in the original code.
I've (re-)started reading the two preview chapters of O'Reilly's Learning Windows Phone (link at right) as well, now that I have a working system. It's very introductory, and will likely have me do similar things as the Training Kit's first lab did, but since I'm still just ramping up my development here, repetition is probably good. It's unfortunate that that book isn't slated for publication until November 2010 -- I expect/hope that I'll be well-versed enough in WP7 development that the book will be useless to me by that time.
If you're just getting started with Windows Phone 7, the Windows Phone 7 in 7 series of tutorials (link at right) is a good way to get a glimpse at the layout, design and environment of WP7 development. As the name hints, each video is seven minutes long, so it won't kill you to watch them all.
Did you get the hint that this post was largely about the sets of links on the side of the blog? I'm aiming to keep those as current as possible with any information that gets published about WP7, whether design or development. If this interests you, please return often, and if you have links that you think I'm missing, please let me know.
I finished the Windows Phone 7 Training Kit "Hello Windows Phone" lab the other day (link at the right) only to have them release three more labs as part of the April release update. It rushes you through a lot of the Expression Blend and Silverlight stuff, which is the material I know absolutely nothing about, but I can always go back and tinker. For now, it's all magic.
I got my new DirectX 10-capable video card yesterday, which meant I was able to continue going through Charles Petzold's preview of his Programming Windows Phone Series book (link at right) at the XNA portion where I stopped. I then spent the rest of the evening trying to figure out why the project wasn't doing what it should; it wasn't failing with an error about my lack of video card support, as it did before... near the end of the evening I remembered seeing something flash by my RSS feed about an update on Petzold's blog, and sure enough, he had updates to the sourcecode that included fixes for changes to the April CTP release. This will teach me not to a) not read the release notes for the CTP; and b) not read my Windows Phone 7 RSS feed before coding. If you're wondering: XNA apps now require setting the back buffer size, which was missing in the original code.
I've (re-)started reading the two preview chapters of O'Reilly's Learning Windows Phone (link at right) as well, now that I have a working system. It's very introductory, and will likely have me do similar things as the Training Kit's first lab did, but since I'm still just ramping up my development here, repetition is probably good. It's unfortunate that that book isn't slated for publication until November 2010 -- I expect/hope that I'll be well-versed enough in WP7 development that the book will be useless to me by that time.
If you're just getting started with Windows Phone 7, the Windows Phone 7 in 7 series of tutorials (link at right) is a good way to get a glimpse at the layout, design and environment of WP7 development. As the name hints, each video is seven minutes long, so it won't kill you to watch them all.
Did you get the hint that this post was largely about the sets of links on the side of the blog? I'm aiming to keep those as current as possible with any information that gets published about WP7, whether design or development. If this interests you, please return often, and if you have links that you think I'm missing, please let me know.
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!
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.
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.
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.
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.
Subscribe to:
Posts (Atom)