Saturday, September 17, 2011

Developing Windows Phone Application

Developing a full-fledged Windows Phone app in one week – that’s pretty ambitious, right?
Last week, at the Academy of Interactive Entertainment (AIE)’s weekly Summer Cyber Camp, a team of talented high and middle school students set out to do just that. I followed them for one week, documenting the process of creating their 3D game for Windows Phone 7 (WP7), called Color Break. Some of the students began with minimal programming experience while others had been using C# for a few years. At the end of the week, however, they were all capable of writing code, creating graphics, and incorporating more advanced concepts such as physics into the game. By Friday, they’d finished and ported the application to the phone - just five days later (check out the app in action in the video)! It just goes toshow that whether you’re an absolute beginner or a seasoned expert, developing for the WP can be a simple, fun, and extremely educational process. One student, who had never even coded in C# before, began developing a first person shooter. As a college student myself, I was impressed.
So, how do you get started? Well it’s simple – check out http://create.msdn.com to access the plethora of resources, downloads, and tutorials. If you’re a student, there are also a ton of free, easy-to-use WP-related development tools available, including:
- Dreamspark ( http://dreamspark.microsoft.com ), to get access to Visual Studio 2010 Professional, the IDE that the students are using in this video.
- The Windows Phone Student Developer page ( http://www.microsoft.com/student/en/us/techstudent/handson/phone-development.aspx ) for resources as well as a student developer account to get started.

Friday, September 9, 2011

Windows 7 Problem Steps Recorder

How do I use Problem Steps Recorder?
You can use Problem Steps Recorder to automatically capture the steps you take on a computer, including a text description of where you clicked and a picture of the screen during each click (called a screen shot). Once you capture these steps, you can save them to a file that can be used by a support professional or someone else helping you with a computer problem.
Notes:
When you record steps on your computer, anything you type will not be recorded. If what you type is an important part of recreating the problem you're trying to solve, use the comment feature described below to highlight where the problem is occurring.
Some programs, like a full-screen game, might not be captured accurately or might not provide useful details to a support professional.

Thursday, September 8, 2011

Bringing Hyper-V to “Windows 8”

In this post we talk about how we will support virtualization on the Windows "client" OS. Originally released for Windows Server where the technology hasproven very popular and successful, we wanted to bring virtualization to a core set of scenarios for professionals using Windows. The two most common scenarios we focused on are for software developers working across multiple platforms and clients and servers, and IT professionals looking to manage virtualized clients and servers in a seamless manner. Mathew John is a program manager on our Hyper-V team and authored this post. One note is that, as with all features, we're discussing the engineering of the work and not the ultimate packaging, as those choices are made much later in the project. --Steven PS: We didn't plan on doing so many posts in a row so we'll return to more sustainable pace -- sorry if we inadvertently set expectations a bit too high. We're getting ready for BUILD full time right now!!
Whether you are a software developer, an IT administrator, or simply an enthusiast, many of you need to run multiple operating systems, usually on many different machines. Not all of us have access to a full suite of labs to house all these machines, and so virtualization can be a space and time saver.
In building Windows 8 we worked to enable Hyper-V, the machine virtualization technology that has been part of the last 2 releases of Windows Server, to function on the client OS as well. In brief, Hyper-V lets you run more than one 32-bit or 64-bit x86 operating system at the same time on the same computer. Instead of working directly with the computer’s hardware, the operating systems run inside of a virtual machine (VM).
Hyper-V enables developers to easily maintain multipletest environments and provides a simple mechanism to quickly switch between these environments without incurring additional hardware costs. For example, we release pre-configured virtual machines containing old versions of Internet Explorer to support web developers. The IT administrator gets the additional benefit of virtual machine parity and a common management experience across Hyper-V in Windows Server and Windows Client. We also know that many of you use virtualization to try out new things without risking changes to the PC you are actively using.
An introduction to Hyper-V
Hyper-V requires a 64-bit system that has Second Level Address Translation (SLAT). SLAT is a feature present in the current generation of 64-bit processors by Intel & AMD. You’ll also need a 64-bit version of Windows 8, and at least 4GB of RAM. Hyper-V does support creation of both 32-bit and 64-bit operating systems in the VMs.
Hyper-V’s dynamic memory allows memory needed by the VM to be allocated and de-allocated dynamically (you specify a minimum and maximum) and share unused memory between VMs. You can run 3 or 4 VMs on a machine that has 4GB of RAM but you will need more RAM for 5 or more VMs. On the other end of the spectrum, you can also create large VMs with 32 processors and 512GB RAM.
As for user experience with VMs, Windows provides two mechanisms to peek into the Virtual Machine: the VM Console and the Remote Desktop Connection.
The VM Console (also known as VMConnect) is a consoleview of the VM. It provides a single monitor view of theVM with resolution up to 1600x1200 in 32-bit color. Thisconsole provides you with the ability to view the VM’s booting process.
For a richer experience, you can connect to the VM usingthe Remote Desktop Connection (RDC). With RDC, the VM takes advantage of capabilities present on your physical PC. For example, if you have multiple monitors, then the VM can show its graphics on all thesemonitors. Similarly, if you have a multipoint touch-enabled interface on your PC, then the VM can use this interface to give you a touch experience. The VM also has full multimedia capability by leveraging the physical system’s speakers and microphone. The Root OS (i.e. the main Windows OS that’s managing the VMs) can also share its clipboard and folders with the VMs. And finally, with RDC, you can also attach any USB device directly to the VM.
For storage, you can add multiple hard disks to the IDE or SCSI controllers available in the VM. You can use Virtual Hard Disks (.VHD or .VHDX files) or actual disks that you pass directly through to the virtual machine. VHDs can also reside on a remote file server, making it easy to maintain and share a common set of predefinedVHDs across a team.
Hyper-V’s “Live Storage Move” capability helps your VMs to be fairly independent of the underlying storage. With this, you could move the VM’s storage from one local drive to another, to a USB stick, or to a remote file share without needing to stop your VM. I’ve found this feature to be quite handy for fast deployments: when I need a VM quickly, I start one from a VM library maintained on a file share and then move the VM’s storage to my local drive.
Another great feature of Hyper-V is the ability to take snapshots of a virtual machine while it is running. A snapshot saves everything about the virtual machine allowing you to go back to a previous point in time in the life of a VM, and is a great tool when trying to debug tricky problems. At the same time, Hyper-V virtual machines have all of the manageability benefitsof Windows. Windows Update can patch Hyper-V components, so you don’t need to set up additional maintenance processes. And Windows has all the same inherent capabilities with Hyper-V installed.
Having said this, using virtualization has its limitations. Features or applications that depend on specific hardware will not work well in a VM. For example, Windows BitLocker and Measured Boot, which rely on TPM (Trusted Platform Module), might not function properly in a VM, and games or applications that require processing with GPUs (without providing software fallback) might not work well either. Also, applications relying on sub 10ms timers, i.e. latency-sensitive high-precision apps such as live music mixing apps, etc. could have issues running in a VM. The root OS is also running on top of the Hyper-V virtualization layer, but it is special in that it has direct access to all the hardware. This is why applications with special hardware requirements continue to work unhindered in the root OS but latency-sensitive, high-precision appscould still have issues running in the root OS.
As a reminder, you will still need to license any operating systems you use in the VMs.
Here’s a quick run-through of how the Hyper-V works inWindows 8.