We’re in a sort of in-between time at work, so I’ve decided to learn Silverlight programming. I’ve got programming experience but I wouldn’t call myself an experienced developer by any stretch. It’s kind of like being just fluent enough in a foreign language that I can read or listen to it and get the gist of the conversation, but if I had to jump in to add my own thoughts, I’d be stumbling a lot and needing help with some of the translations. I understand programming concepts backwards and forwards, I just need a little help at times converting them from the theoretical to the practical.
I have a project in mind that I’ve been toying with for a while, and decided to take a shot at programming it myself, rather than relying on someone else to implement my ideas. While I do have some friends who could probably teach me, I’m going to see how far I get trying to learn it on my own. I thought it might be fun to document the process as I go.
My first step was to hit the Internet. I launched Bing and typed “learn silverlight” into the window. Voila, a bunch of handy resources, the first of which was Learn : The Official Microsoft Silverlight Site. Right in the middle of the screen was a handy box that said “New to Silverlight? Visit the Get Started section to get up and running quickly.” Hey-o, and away we go! I had already installed Visual Studio 2010, but needed to install the Silverlight 4 Tools for Visual Studio. For some reason this didn’t go smoothly the first couple times. The first time I had to cancel the installation altogether. The second time, the installation completed, but reported errors. Third time was the charm and I was good to go. I started up the video. Got partway in, and realized I’d learn this best if I worked on it along with the video.
Tangent: I’ve heard there are different types of learners: visual learners who need to see things written out to understand them best, auditory learners who grasp concepts more quickly when they hear them explained, tactile learners who need that hands-on experience to really take it in, and logical learners for whom the “why we do it this way” is equally as vital as the “how to do it” itself. (In parallel with that, there are different types of teachers, and it’s not uncommon for a person’s learning style and teaching style to be different. But I’ll save that discussion for another post.) I feel that I’m primarily a hands-on learner, but at the same time I like to have someone explaining things so that I know I’m hands-on-ing correctly. So doing this on my own without a guiding authority is something a little outside my comfort zone.
However, this video was playing right to my preferred learning styles because it was telling me, showing me, and letting me get some hands-on time by working right alongside it. Oh, wait. Did I say “alongside?” Actually no; I was trying to watch the video and walk through the tutorials on the same computer. Flipping back and forth between them wasn’t working out for me. I tried installing Visual Studio 2010 on my laptop, thinking that I’d want it there anyway so that I could take my work home, but the installer doesn’t seem to be working right. (In fact, it’s trying again even as I type this, but the progress bar isn’t showing even a single pixel of advancement.) As a final resort I copied the video to the laptop so that I could run it from there while doing the tutorial on my desktop computer.
Once I got everything set up for smooth productivity, I re-started the video and got to coding. When you create a new Silverlight application, it automatically give you a working mockup, so you can run it like a real web page right out of the box. I ran into a few confusing steps where what was shown in the tutorial didn’t quite match what I was actually seeing in Visual Studio, but that’s likely because something had changed since the tutorial was published — not an uncommon occurrence in the software world. I was able to follow along and create my little Hello World web page and application, even if I did have to stop and rewind a couple times to make sure I’d typed things correctly. Oh, and I kept trying to scroll around inside the video itself. Kind of like trying to interact with a TV show from the couch side of the screen. Yeah, good one, me.
The tutorial doesn’t just show how to lay out buttons and text fields and get them to interact with each other. It even includes a demo for connecting your web application to a database on a web server. I didn’t try coding that part because I’d neglected to download the sample database, but it looked straightforward enough that I think I’ll be able to finish it out later (with help from the video again, I’m sure.) For the moment, I feel like I now have the skills to lay out the user interface for the project I’ve got in mind and possibly get started on hooking up the various elements to each other.