| By Amit Chopra | Article Rating: |
|
| May 11, 2005 09:00 AM EDT | Reads: |
24,912 |
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!
A Quick Look at the Managed IDE Enhancements
The Visual Studio 2003 (VS2003) Smart Device Application Wizard that allowed platform and application types to be selected has been replaced by a streamlined integration of various device project types into a new Project Wizard along with the other types of projects.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.
Microsoft Device Emulator
The Microsoft Device Emulator is a desktop application that emulates the behavior of a Windows CE- or Windows Mobile-based hardware platform. Using the Device Emulator, you can run, test, and debug without having a physical device connected to your machine. The most significant emulator enhancement has been that it emulates ARM processors rather than x86 processors for high-fidelity emulation.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.
Developing for Devices in C++
Developing for devices in C++ is by far the biggest of the product's enhancements, allowing device developers to build applications that run on Windows Mobile devices. All our current embedded Visual C++ developers can now take full advantage of VS2005 features and enhancements.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.
Native Device Compilers
The device compilers do not offer all desktop compiler features such as Profile Guided Optimization and Named Return Value Optimization in this release.
Enhancing the Device-side Runtimes
In this release, we are bringing the Microsoft Foundation Classes (MFC), Active Template Library (ATL), portions of the Standard C++ Library (SCL), including Standard Template Library (STL)), and additions to the C-Runtime (CRT) to the VS2005 code base. The runtimes will be subsetted for size and performance, and optimized for devices. These native runtimes won't be factored any differently among Windows CE-based devices, so you can rely on the same functionality of these runtimes across these device platforms.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.
Mixed Native and Managed Development
In Visual Studio 2005, developers will be able to create managed, native, and mixed-mode applications for devices and desktop platforms in the same IDE. This feature will make it easier to share code across projects, manage solutions, and save worrying about installing different toolsets. You'll now have the luxury of being able to choose the language that best meets your needs, and enjoy a first-class development experience.Debugging
The Debugger team made sure that the device debugger feature-set not only matches that of the desktop debugger, but also improves the performance and reliability of the device debugging experience, despite the cost of exchanging data over USB. From the ground up, a lot of thought and effort went into the design and implementation in the debugger back-end technologies to ensure an end-to-end deterministic, non-hanging debugging experience.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.
Data
Writing mobile applications for the enterprise is first and foremost about providing mission-critical data to workers in more convenient and useful ways. With performance enhancements to the data access framework, new WYSIWYG data design tools, enhancements to the local data engine, a uniformed programming model on laptops, tablets, and Windows Mobile Pocket PCs and Smartphones, and greatly enhanced Synchronization to back-end servers, VS2005 offers the richest set of tools for creating database applications.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.
Deployment Project Support
VS2005 now includes a template that lets developers create a CAB file to deploy Pocket PC, Smartphone, and other Windows CE-based applications, so all the packaging work can be done directly in the Visual Studio IDE. A CAB file is created by adding a Smart Device CAB Project to your existing solution, then adding the files, shortcuts, and registry entries to it using the same user interface as with desktop setup projects. Building the CAB project creates the CAB file that can be deployed to the device.Remote Tools
Embedded Visual C++ included Remote Tools that enabled remote file, registry viewing, heap walking, process viewing, message spying, and screen capture. The Visual Studio 2005 Beta 2 release includes these in Visual Studio for the first time, giving you great control over and visibility of what is happening on your device.Tell Us What You Think
This article is intended to provide a high-level overview of the new device development features you can look forward to in the upcoming beta 2 release of VS 2005. The Visual Studio for Devices team is eager for your feedback. You can contact us through the Microsoft product feedback center at http://lab.msdn.microsoft.com/productfeedback/, or through our team blog at http://blogs.msdn.com/vsdteam/.
Published May 11, 2005 Reads 24,912
Copyright © 2005 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Amit Chopra
Amit Chopra is the release program manager for the Visual Studio for
Devices team. He also manages the sustained engineering efforts for
eMbedded Visual C++ 4.0 and Visual Studio 2003. He can be contacted at achopra@microsoft.com.
- Kindle 2 vs Nook
- Practical Approaches for Optimizing Website Performance
- SQL Anywhere Server and AJAX
- PowerBuilder Top Feature Picks
- The Difference Between Web Hosting and Cloud Computing
- PowerBuilder 12 and .NET
- Contrary Opinion: Why Silverlight is Good for Adobe
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- Cloud Computing Best Practices
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Rich Content Rotator for ASP.NET
- RIAs for Web 3.0 Using the Microsoft Platform
- Kindle 2 vs Nook
- Practical Approaches for Optimizing Website Performance
- Social Media Terrorists
- SQL Anywhere Server and AJAX
- SYS-CON's Cloud Expo Adds Two New Tracks
- PowerBuilder Top Feature Picks
- The Difference Between Web Hosting and Cloud Computing
- Google Maps and ASP.NET
- Crystal Reports XI & How It Has Changed
- Converting VB6 to VB.NET, Part I
- Creating Controls for.NET Compact Framework in Visual Studio 2005
- Where Are RIA Technologies Headed in 2008?
- How to Write High-Performance C# Code
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Implementing Tab Navigation with ASP.NET 2.0
- i-Technology Photo Exclusive: Bill Gates & Steve Jobs In "Nerds"
- .NET Archives: Getting Reacquainted with the Father of C#



























