OK, here’s what I plan to build. I play this CCG (collectible card game) called Magic: The Gathering. As a collectible game, you wind up with a lot of cards that you own and you have to keep track of. If you’ve played, you know what I’m talking about, and if you haven’t, well I’m not going to waste time explaining the whole game ;). However, the idea is to write a program to track the cards I own and help build new decks for playing.
On the one hand, this is a fairly simple database type program that shouldn’t take too much effort to build. On the other hand, it’s a program that leaves a lot of room for playing around with the technology I plan to learn: WPF and CSLA.NET. All of the data access will allow me to work with CSLA.NET, while the artistic nature of CCGs will allow me to build a nice UI using WPF.
I started out by downloading the latest Orcas CTP. I used the VPC image, so I also grabbed Virtual PC 7 to install on my nice new Vista box. I chose to use the VPC image because this is CTP software. There’s a very real chance that installing it on a "production machine" will lead to real problems with that machine. I’ve done this in the past, and though the problems I encountered I could fix, there was still lost productivity time, and I know I was lucky that it wasn’t worse. So, I’d highly recommend you take the VPC route as well if you’re going to play around with this stuff.
I followed the directions for getting the image up and running, but I made a couple of tweaks. First, I created another VHD (virtual hard disk) and mounted it as a second drive on the virtual machine. This is where I’ll put all of my data, including the VS projects themselves. This way, when new CTPs are released, I can easily get up and running with the new image with out losing any of my work. The other change I made was to increase the RAM usage of the virtual machine. I’ve got 2GB of physical RAM, so I let the VPC image use 1GB of RAM. This should make the experience much nicer.
Next, I downloaded CSLA.NET and unpacked it to the data drive. Then I opened the solution, let the conversion happen, changed the build type to Release and built the whole project. I then copied all of the built library files to a "ThirdParty" directory I created on the data drive. This will be where I put all external library files for use by other projects.
Now we should have everything ready to start building our application. So, I created a new WPF application project, called it "mtgbinder", and made sure it was being created on our data drive. Once it was created, I went into the project’s properties and changed the default namespace to "Mtg.Binder". This meant I had to search for "mtgbinder" and change it to "Mtg.Binder" in all of the appropriate places as well. By the way, this illustrates what I think is a bug in Orcas. The generated Application.xaml file refers to the "x:Class" as just "App", but I’m pretty sure it has to be "Mtg.Binder.App". In another project I tried to add a Startup handler, and the project would fail to build unless I added the namespace here.
Now we have a starting place for our application. That’s enough for this post.