Let's start by taking a look at the versions of Visual Studio that we can use for developing software for Windows Phone.
We can develop either
using Visual Studio 2010 Express for Windows Phone, which is available
free of charge, or by using one of the full versions of Visual Studio.
Both products will produce the same resulting games and applications.
Visual Studio 2010 has system requirements that necessitate a reasonably
modern PC, running either Windows Vista with Service Pack 2 or Windows
7. Both x86 and x64 versions of the operating system can be used, but
the Starter Editions of Windows are not supported. A DirectX 10 or later
graphics card with a WDDM 1.1 driver is required for developing games
using XNA. In practice, this requirement will be met by most graphics
cards from the last couple of years, although many mobile graphics chips
present in laptop computers might lack these capabilities.
There is no support for
developing for Windows Phone in earlier versions of Visual Studio. The
good news is that Visual Studio 2010 will install side by side with
earlier versions of Visual Studio without causing any problems, so if
you need to keep Visual Studio 2005 or 2008 on your PC, you can.
1. Language Choices
.NET development offers the choice
of a number of different languages including C#, VB, and C++.
Currently, however, only C# is supported for Windows Phone development.
Microsoft is promising support for VB in the near future, so check the
latest version of the development environment if you want to use VB for
your development.
If you are already
familiar with VB, you should find that both reading and writing C# will
come naturally with a little practice.
2. IDE Features
As would be expected from
Visual Studio, a number of very useful features are available to help
develop and debug Windows Phone applications.
2.1. Emulators
Visual Studio offers a
Windows Phone emulator to help test and debug your programs. Although it
is essential to use a real device regularly during your application
development process to ensure that everything works properly on actual
hardware, being able to use the emulator for general coding and testing
is extremely useful. A screenshot of the Windows Phone emulator is shown
in Figure 1.
The emulator offers a full
implementation of the physical device and is capable of running genuine
Windows Phone applications. It offers access to a number of features of
the device, including the ability to simulate networking, screen
rotation, and touch screen input using the mouse cursor. (In fact, if
you are developing on a Windows 7 computer with a touch-enabled screen,
you can perform touch and multitouch operations on the emulator by
touching your PC screen.)
Running your application in
an emulator is as simple as can be: just select to use the emulator
within the Visual Studio IDE and start your application. The emulator
will appear, and your program will run.
When we fire up the emulator
shortly, note that it takes a little while to initialize itself. This
would get frustrating very quickly when you are in a repeat
modify/compile/test cycle, but the emulator can be left running in the
background when you stop your code from executing and will then resume
much more quickly the next time you begin a debug session. When the
emulator's Close button is clicked, it will prompt for confirmation that
the emulator is really no longer required, which is very useful
protection against accidentally closing the window without actually
meaning to.
2.2. Silverlight Page Designer
A fully featured page designer
is available to lay out windows and controls for use within Silverlight
programs. The designer goes as far as to display an image of the device
around the edge of your page to help visualize its appearance.
Silverlight pages can be
created and modified by either using the designer or by editing the
underlying eXtensible Application Markup Language (XAML, which is
generally pronounced "zammal"). Visual
Studio will display both the designer and the XAML editor as
side-by-side panels within the IDE, as shown in Figure 2,
and any change made to either will be immediately reflected in the
corresponding panel. This provides a very flexible mechanism for page
design, allowing each panel to work together to perform their actions
more efficiently.
2.3. Breakpoints
Another extremely useful tool
is Visual Studio's breakpoint feature. No doubt familiar to any desktop
developer, breakpoints are fully supported for Windows Phone
development, too, and can be used both when running against the emulator
and against a physical device. It can be extremely useful to break into
your code, examine your variables, and step through the instructions
while watching the results on a real device on the desk next to you.
2.4. Debug Output
Access to the Visual
Studio Output window is available from Windows Phone applications
running inside the IDE. Text can be written to the Output window at any
time, allowing you to easily keep track of what your program is doing.
Pairing this with the ability to have two independent screens (your PC
screen and your mobile device screen) makes this tool particularly
powerful.