Visual Studio 2005 (VS2005) includes a broad spectrum of new and enhanced features targeted at managed and native development for Smart Devices including Windows CE- and Windows Mobile-based Pocket PCs and Smartphones. When the Devices Team started working on this project, the team's key goals were to ensure that device developers could benefit from the enhancements to the Visual Studio IDE and the runtimes. We wanted to preserve people's investments in existing skills while enhancing the native development experience (for our current embedded Visual C++ developers), delivering robust connectivity layers that can work with a multitude of devices, providing high-fidelity emulation that could truly emulate current device CPUs, and take advantage of new features of device operating systems and runtimes. The information below will help you become familiar with the rich set of features for device developers scheduled for the beta 2 release of VS2005, reiterating Microsoft's commitment to making applications for Windows Mobile fun and easy!
VS2005 provides out-of-box support forWindows Mobile 2003-based Pocket PCs and Smartphones, while Windows CE 5.0 and other device SDKs can plug in seamlessly to VS2005. We continue to support managed development for the Visual Basic and Visual C# languages. For managed development we now support developing for both version 1.0 and 2.0 of the .NET Compact Framework.
The next most noticeable change in the development experience is our new forms designer toolset with skin support, and the ability to support various device form factors, resolutions, and orientations. Device developers will also benefit significantly from the inclusion of device-specific snippets that enable quick and easy access to common programming tasks. Since not all Methods and Properties are supported on the .NET Compact Framework, better filtering support has now been added to show only those that are relevant to the classes and types supported in the .NET Compact Framework.
The designer also provides rich design-time support for some of the new controls introduced in Version 2.0 of the .NET Compact Framework, such as LinkLabel, DateTimePicker, MonthCalendar, WebBrowser, and Notifications.
Device Forms in design time support anchoring and docking the controls, and can switch between portrait and landscape mode. This means that a developer can see how his user interface will respond to changes in orientation without deploying a device or emulator. Docking and anchoring makes it easier to develop applications that respond to orientation changes by docking controls to one or more sides of the form and anchoring them to other controls.
Developers using Visual Studio.NET 2003 told us that they wanted to be able to build device user-interface controls in the tool. In Visual Studio 2005, you can create user controls for devices the same way you do on the desktop.
The emulator now also supports synching up with ActiveSync, enabling the creation of an Active Sync Partnership to the emulator and synchronizing to it like a real device. This feature debugs applications that depend on device-desktop synchronization. The Device Emulator is highly configurable and lets developers specify ROM sizes and simulate a storage card by mapping a shared folder on the disk, zoom, and set orientation.
VS2005 Beta 2 also includes a Device Emulator Manager that facilitates starting, connecting to, and managing Device Emulator instances on your development computer.
Similar to desktop projects, native device project templates are also integrated into the New Project Dialog Box, and include templates for ATL, MFC, and Win32 applications and DLLs.
VS2005 supports seven code (class) wizards and will be the first toolset to let developers have one native project that targets both device and desktop platforms. It allows developers to maintain a core common code while customizing the UI for various form factors and the handling of various data entry mechanisms.
VS2005 offers excellent support for single projects targeting multiple device platforms. Not only do we generate template code that is IFDEF'ed based on the platform, we can also create and let you maintain a resource file for each platform, making it extremely easy to develop a single project that can be compiled for and run on both Pocket PCs and Smartphones, and behave correctly on those devices.
The device compilers do not offer all desktop compiler features such as Profile Guided Optimization and Named Return Value Optimization in this release.
The VS2005 native device runtimes will also have some degree of awareness for GUI vs. Headless, COM vs. DCOM, AYG Shell vs. non-AYG Shell, and various platforms. Awareness lets the runtimes adapt as appropriate to these various possibilities. In ATL, this is primarily done via #IFDEF in the headers, so that once compiled, the application will behave correctly on the configuration it was compiled for. In MFC, these checks are done at runtime, so that correct behavior is exhibited during execution.
ATL 8.0 for devices includes enhancements such as improved security/robustness, ActiveX Control hosting, Web Services client, CImage (bitmap support), New classes for managing arrays, lists, and trees, enhanced string manipulation. and conversion.
Some of the new native debugger features that weren't available in embedded Visual C++ (eVC) are now available in Visual Studio 2005, such as robust JIT debugging, k-dump post-mortem debugging, thumb-code debugging, ROM/shared DLL stepping, expression evaluation visualization for STL, Windows Messages debugging, and debugging over KITL transport.
A new feature in managed debugging (available only for .NET Compact Framework v2 processes only) that was not available in VS2003 is Attach-to-Process.
Creating a solution that uses Microsoft SQL Server 2005 Mobile Edition (SQL Mobile) is very similar in experience to how a developer would build a desktop database application. Developers can create a SQL Mobile database on their desktops and use powerful data design and query tools that are tightly integrated with VS2005. The SQL Mobile database (.sdf) files can then be deployed to the device along with the rest of the solution.