Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
Microsoft announced Windows Phone 7 in February, 2010 at Mobile World Congress in Spain. It became immediately apparent that the new announcement was a big one: not only a new version of the Windows operating system, but a complete rebranding with new hardware and development technologies. In a word, the upcoming Windows Phone 7 is unlike any previous mobile Windows version.
Currently, Windows Phone 7 is still in development, and the first phones are about to become available for the holiday season this year. While both users and developers are waiting to get the finished hardware in their hands, development work can already start with emulators.
Editor's Note: For complete reviews of all the leading mobile development platforms, see the Internet.com Special Report "Field Guide to the Mobile Development Platform Landscape".
Introducing Windows Phone 7
Windows Phone 7 (WP7) is the upcoming version of Windows based phones, and is scheduled to be available in Q4 2010. Windows Phone 7 combines new hardware and new development technologies to bring users new experiences in connecting to others and maintaining their personal data.
The biggest change compared to the previous versions of the Windows Mobile platform is the way the new devices are used. Instead of hardware keys, the new Windows Phone 7 devices are operated mainly via touch. Manufacturers are still able to add buttons or keyboards to their devices, but a multi-touch capacity-sensing touch screen will be the main way of interaction. Several pre-defined gestures are recognized by the device and forwarded to applications.
In addition to touch, Windows Phone 7 devices contain a completely new graphical interface code named "Metro". Although the last Windows Mobile versions 6.0 and 6.5 paved the way to more modern interfaces, Windows Phone 7 uses a new design. It is based on the company's Zune HD like user interface and Silverlight technologies to bring slick animations and vector-based graphics to the devices. Microsoft itself describes Metro as "modern, clean and in motion".
Instead of heavy graphics, Metro relies on text and typography. The font used in applications is by default Segoe WP Semilight. The user interface is organized into hubs, which concentrate information on a certain topic into a wide, horizontally-scrolled view (Figure 1). There are six ready-made hubs: People, Pictures, Games, Music + Video, Marketplace and Office.
Microsoft has partnered together with multiple phone manufacturers to bring devices to the market. These include Dell, HP and Toshiba, but also HTC, LG, Samsung and Qualcomm. Carriers like AT&T, Orange, Sprint, T-Mobile USA, Verizon Wireless and Vodafone will take part in the game, according to Microsoft.
Although WP7 can be seen as a palm-sized revolution in Microsoft circles, the competition in the smartphone space is already tough. Today, Apple iPhone and Google's Android based phones are very successful and Windows Mobile phones are in the minority. This is especially true in the worldwide consumer market.
Before Windows Phone 7 was announced, manufacturers were developing many different types of devices to meet the needs of Windows Mobile customers. The previous platform was quite allowing, but this is not the case with WP7. Presently, Microsoft specifies a set of minimum requirements for every device, see Table 1.
First, there's touch. This support must be able to differentiate between at least four different points, and should be implemented using capacitive technology. The screen resolution has also been defined: it must be either WVGA 480 C 800 pixels or HVGA 320 C 480 pixels. Performance levels are controlled as well. The central CPU must be an ARMv7 Cortex/Scorpion based chip or better.
The GPU must follow suit: it must support DirectX 9 hardware acceleration. This is required as the phone relies heavily on graphics; otherwise, the system wouldn't be performing fast enough. Overall, the device must have at least 256 MB of RAM, and 8 GB or more of Flash storage. The phone contains at least three hardware buttons called Back, Start and Search. Pressing the Back button will close the currently running application.
Today, consumers and business users alike expect much more from their phones than just the ability to call or text. They want the phone to be able to take photos, know their location, work in different environments, and more. To meet these needs, Microsoft requires all devices to have several different sensors. These include an A-GPS chip (Assisted GPS, which supplements data with other methods when GPS is unavailable), a compass, and accelerometer, proximity, orientation and light sensors. At least a five megapixel camera is mandatory.
Windows Phone 7's ability to multitask is a heated topic. Windows Phone 7 is only able to run a single foreground application, and switching to another application will suspend the previous one. However, the platform supports a "Push Notification" service, with which an application can get notified over the network of certain events. Writing DLLs, background services or timer activations for applications is prohibited.
Developing for Windows Phone 7
If Windows Phone 7 changes the user experience and the application model significantly, the change developers face is even more radical. In fact, almost all previous technologies have been changed to something else. With Windows Phone 7, the supported technologies for writing applications that run on the phone are Silverlight and XNA. There is no WinForms, no native code, but there's .NET framework. Web applications will continue to run as before using the integrated browser.
To understand where Silverlight and XNA fit, one will first need to understand the two most common usage scenarios for WP7. Firstly, there's the need for communications and business. Just as importantly however, there is the need for entertainment. This is where the two technologies fit: Silverlight is a good choice for more work-oriented applications, whereas XNA is more suitable for games and leisure.
If there are existing Windows Mobile applications for example for Windows Mobile 6, then there is no direct path moving the code forward. Instead, the application needs to be rewritten. For WinForms and .NET Compact Framework developers in general, Silverlight is probably the easiest migration path, as some parts of the background logic could work with small modifications. One migration issue is state management. There is no direct access to the file system; instead, applications must use a feature called Isolated Storage. Isolated Storage creates an application-specific container to place data in.
Compelling user interface development might require learning Microsoft's design product Expression Blend in addition to Microsoft Visual Studio. WP7 currently supports a subset of Silverlight 3's functionality. For example, socket programming support is missing. Although developers can develop their own Silverlight controls, hub and pivot system functionality cannot be directly used in applications.
If Silverlight feels too restrictive for entertainment, then XNA is worth exploring. XNA is probably something that is new for most business developers, but the basics are simple: XNA is Microsoft's loop-based game development platform based on .NET and integrated into Microsoft Visual Studio.
XNA comes with a library of classes and methods for game development in the
Microsoft.Xna.Framework namespace. This library helps developers manipulate graphics, audio and input. Originally, XNA was written to support developing games for the XBox console and to a limited extent, the PC. However with WP7, the same system can be used to create game-like applications for mobile devices.