.NET Compact Framework
Posted April 24, 2003
Chat Date: April 17, 2003
Please note: Portions of this transcript have been edited for clarity
Chat Participants:
- Ben Albahari, Program Manager on the .NET Compact Framework Team
- Jamie de Guerre: Program Manager on the .NET Compact Framework team
- Kevin Boske: Test Engineer with SQL Server CE
- Xin Yan: Developer on the Visual Studio for Devices team
- Craig Neable: Program Manager with Visual Studio for Devices and the .NET Compact Framework
- Scott Smith: Program Manager in the Visual Studio for Devices Group
Moderator: Mike (Microsoft)
Welcome to today's Chat. Our topic is the .NET Compact Framework and the Smart Device Programming features of VS.NET. Questions, comments, and suggestions are welcome.
Let’s introduce our hosts for today.
Host: Ben (Microsoft)
Hi. I'm Ben Albahari, a Program Manager on the .NET Compact Framework Team.
Host: Jamie (Microsoft)
Hi! My name is Jamie de Guerre. I am a Program Manager on the .NET Compact Framework team. I joined the team about 2 years ago and have been working on Performance, GUI and Phone Features.
Host: Kevin (Microsoft)
Hi, I'm Kevin Boske, I'm a Test Engineer with SQL Server CE. I test merge replication, security and the System.Data.SqlClient and System.Data.SqlServerCE namespaces.
Host: Xin (Microsoft)
Hi, My name is Xin Yan, I am a developer in Visual Studio for device team.
Host: Craig (Microsoft)
Hi, my name is Craig Neable. I work as a program manager with Visual Studio for Devices and the .NET Compact Framework.
Host: Scott (Microsoft)
Hi, I’m Scott Smith, Program Manager in the Visual Studio for Devices Group.
Moderator: Mike (Microsoft)
Welcome everyone, let’s get started! (except for you Mr Tacke) ;-) !
Host: Craig (Microsoft)
Q: I am a newbie, how do I know to use ce.net or sql.ce 20 for a Compaq IPAQ?
A: Windows CE .NET is the latest version of the Windows CE operating system. This is not the same operating system that runs on the current versions of Pocket PC. You may run the .NET Compact Framework on top of the Pocket PC, and you may use it to access SQL Server CE Edition v2.0 to store data locally.
Host: Craig (Microsoft)
Q: Does Microsoft plan on publishing any white papers or how-to's specifically for the Compact Framework?
A: Absolutely! Our intention is to give our development community as many resources as they can in helping them to build applications. Thanks for the question (and thanks to those who have contributed to this content... ;-))
Host: Jamie (Microsoft)
Q: Is there any plan for Palm OS runtime for .NET
A: The .NET Compact Framework has been designed as portable runtime environment that is capable of being run on different operating systems and processors. At this point, we have released support for Pocket PC and Windows CE.NET devices. In the future we will evaluate support for new devices, however, we have not made any announcements around this yet.
Host: Xin (Microsoft)
Q: I found that DOTNET MessageWindow does not work property across thread, but if I use PostMessage from p-invoke, it works fine across thread A: In .Net Compact Framework use Control.Invoke to execute a delegate on the thread that owns the control's
A: In .Net Compact Framework uses Control.Invoke to execute a delegate on the thread that owns the control's underlying window handle.
Host: Kevin (Microsoft)
Q: Why do I need embedded visual 3.0 to work with compact framework?
A: You don't need eMbedded Visual Tools 3.0 to work with the Compact Framework. You need Visual Studio .NET 2003. EVT 3.0 is for device development without the .NET Compact Framework.
Host: Jamie (Microsoft)
Q: I attended MDC, how can I get the workshop tutorials?
A: The content will be available on a conference DVD that is being sent to attendees.
Host: Craig (Microsoft)
Q: Is Smart Device Programmability (SDP) going to be available to single-language tool owners, or will full-blown Studio be required?
A: The first version of the .NET Compact Framework will not be available in single language (Standard) versions of Visual Studio .NET 2003.
Host: Scott (Microsoft)
Q: Is the VS 2003 Dev Env the solution of choice now for Pocket PC development?
A: VS 2003 is the best environment for building managed code applications. Note that for native code development you will still need to use eVC.
Host: Craig (Microsoft)
Q: Is the CF SDK going to be available as an independent download so developers can compile from the command line without having a Microsoft development environment?
A: There have been no plans announced to release an independent .NET Compact Framework SDK.
Host: Jamie (Microsoft)
Q: Invoke in modal form does not work properly, would like to know when it will be fixed? I have a chicken and egg situation, where I use MessageWindow to work around invoke in modal form.
A: There is an issue with modal forms currently and this is probably what you are running into. We are planning to fix this is an upcoming Service Pack.
Host: Ben (Microsoft)
Q: How often do you expect to release support for new devices as they are released?
A: We will support new versions of devices such as Pocket PC with new versions of Visual Studio.
Moderator: Mike (Microsoft)
Q: When will be presented the release version of VS.NET 2003? What are the new features of it in comparison with the beta version?
A: April 24th will be the release date.
Host: Kevin (Microsoft)
Q: Does the compact framework for Pocket PC support all the same languages as VS, ie C3, VB, C++?
A: The Compact Framework is supported with VB.NET and C#. Native C++ development (without the .NET CF) is available through eMbedded Visual Tools 3.0 or 4.0
Host: Jamie (Microsoft)
Q: I currently use eVB 3.0 for CE development. Will my project transfer nicely into VS 2003 or will I have to do some major modifications on it?
A: eVB projects and code will not transfer easily to C# or VB.NET projects for the .NET Compact Framework. If you have existing applications that you are maintaining, in most cases you will want to leave those in eVB. However, if you are starting new projects, the .NET Compact Framework and Visual Studio .NET is a great option.
Host: Craig (Microsoft)
Q: How do you decide whether to implement functionality in CF, or leave it to third parties (e.g. gzip libraries, SSL (other than https), embeddable WinMe control, etc).
A: There are many, many factors that contribute to how you would want to decide whether to build your own, or to buy a component from another vendor. The basic decision comes down to price - your time vs. the cost of the component. If you feel you can easily build the component and the cost to your business is low or can be distributed over many projects (reused internally), you might want to consider building it yourself. If on the other hand it's a very specialized component that would not be trivial to build yourself, you may want to look for a high quality third party vendor. Hope this helps.
Host: Craig (Microsoft)
Q: [Followup] Actually, the question was how do YOU (MSFT) decide what goes into CF? E.g. gzip - I know I can license it from a 3rd party, but I'd be much happier if it was built into CF. Thx.
A: Ah, my apologies. The way we generally decide what features go into the .NET Compact Framework is to weigh customer demand for individual components vs. the size that those components will take in memory. We generally try to offer components that are in very high demand, without adding undue amounts of size that will take up precious memory on resource constrained devices. With respect to compression utilities, this is something that we do hear requests for from time to time, and we may consider including it in future versions. No specific decisions have been made around this functionality as of yet, though your request is duly noted...:-)
Host: Scott (Microsoft)
Q: Is VS 2003 required for the .Net Compact Framework? I know that there was a beta for VS .net, but it is not longer available. Do I need to upgrade to VS 2003 to get the .net compact framework?
A: Visual Studio 2003 is the way to develop for the compact framework. Smart Device projects for PocketPC and Windows CE are included by default. However you can get the redist of NETCF from the web.
Host: Xin (Microsoft)
Q: How can you debug in C# using the emulator?
A: You need Visual Studio.Net 2003 to debug Pocket PC applications written in C#. It's pretty straight forward, very similar to desktop. You can set break point, step into, etc.
Host: Jamie (Microsoft)
Q: How can a dot net application running on a pocket PC receive the WM_HIBERNATE message?
A: I’m not totally sure on this, but this is a great question and I’d like to follow up with you on this. Could you post this question again to our newsgroup on microsoft.public.dotnet.framework.compactframework and I’ll dig up a good answer for you!
Host: Craig (Microsoft)
Q: Are there any plans to support SDP in future versions of the VS.NET 'Standard' editions?
A: Unfortunately, as Visual Studio .NET 2003 is just now on the eve of being release, it is too early for us to announce any plans about future releases of Visual Studio .NET and what specific features they might concern.
Host: Jamie (Microsoft)
Q: Will debugging support for CE.NET be integrated into the release of Studio 2003? Currently we must use the WinCEConfig add-on.
A: These features will not be built into the Visual Studio .NET 2003 product, you will need to continue to use the Add-on that we have provided. We are planning to integrate these features into the next version of Visual Studio .NET.
Host: Ben (Microsoft)
Q: Are there plans to make assemblies build against the full framework retargetable to the CF (provided the app uses only CF-available methods)?
A: There are no plans to do this - but the other way around works today.
Moderator: Mike (Microsoft)
Q: What are the major differences between Pocket PC, Pocket PC Phone Edition and SmartPhone?
A: There are a number of significant differences. You might check out the Mobility website for more information: https://www.pocketpc.com
Host: Craig (Microsoft)
Q: Some function like String.SubString() does not work in immediate window during debug time in NETCF, is it a known bug?
A: Not that we know of, but we always love to hear about things we can fix...:-)
Host: Jamie (Microsoft)
Q: Will we see a QFE any time soon for PB that actually builds a CF SDK that actually shows up in the Studio 2003 IDE?
A: Are you referring to the SDK Roller features? To get your PB image to work with Visual Studio .NET I believe you do not need to use the SDK Roller.
Host: Jamie (Microsoft)
Q: Jamie - yep, that's what I mean. It will roll an SDK that you can install. The only apparent effect is a decrease in available drive space.
A: Let’s follow up offline on this, I believe the SDK Roller does not need to be used to get your Windows CE.NET images working with Visual Studio .NET and only needs to be used for eVC.
Host: Scott (Microsoft)
Q: Are there any differences between Final Beta and the release of Visual Studio .Net 2003 regarding CF?
A: The Final Beta and the RTM version of Compact Framework are equivalent in functionality. However you do need to upgrade to the RTM version of Visual Studio 2003 in order to release applications.
Host: Craig (Microsoft)
Q: Does VS 2003 come with the necessary tools to develop solutions for Smart Cards?
A: No, Visual Studio .NET 2003 does not include any tools for Smart Card development.
Host: Craig (Microsoft)
Q: When will we see a "richer" version of CF (in terms of controls)?
A: We're constantly adding and considering more functionality including more controls for the .NET Compact Framework. Subsequent versions of the .NET Compact Framework will include enhanced functionality in the Windows Forms namespace.
Host: Kevin (Microsoft)
Q: Studio does not display sqlceException message, but if I catch the exception in debug, I can watch exception structure and get some meaningful message, is there something I can do to let Studio to "understand" sqlceException?
A: Make sure you have the appropriate ssceerror20xx.dll on your device. (where xx is the language (en = English, jp = Japanese) Also, make sure that you are stepping through the errors collection properly. Take a look a the ShowErrors() function in the SQL Server CE Books Online.
Host: Craig (Microsoft)
Q: Have you done any tests with CF and PXA255 processor? What speed improvement can we expect?
A: The .NET Compact Framework indeed runs on the XScale processor. At runtime, the .NET Compact Framework treats the XScale as an ARM processor, so you can expect whatever speed improvements this processor provides when code is run in ARM mode. Intel probably has more complete resources that describe the performance characteristics of the processor running in ARM mode.
Host: Craig (Microsoft)
Q: Can we expect a version of the framework for XScale processors?
A: We currently have a version of the .NET Compact Framework for XScale processors, that execute code on the processor in ARM mode. We have not announced any plans for a non-ARM XScale specific version of the .NET Compact Framework.
Host: Ben (Microsoft)
Q: Are there any plans to publish more information about the architecture of some of the CF classes? For example, I'd love to get at the actual data for a Bitmap (like the full framework exposes).
A: We would like to improve our bitmap support in the future. We refrain from encouraging people to use underlying architecture (more complicated, not so portable).
Host: Xin (Microsoft)
Q: My debug output from a C# CF app (Console.WriteLine) doesn't appear anywhere. What am I doing wrong?
A: If you are debugging PocketPC application, or for some reasons console is not available, Console.Write will do nothing. If you just want to debug something, the best way I found is to use Visual Studio .Net 2003 debugger which works pretty good.
Host: Scott (Microsoft)
Q: Why don't you make the changes at Designer level so we won't have to do it manually and any time we change something in designer to re-do all the optimization? I was reffering to optimization of forms loadtime.
A: This is an area we are working on for the next version of Visual Studio.
Host: Jamie (Microsoft)
Q: Break points don't work with C# and the emulator - what setting am I missing ?
A: Hrm. This should work without doing any special settings. When you deploy your application make sure you’re deploying by pressing “Start (F5)” and not “Start Without Debugging (Ctrl/F5)”.
Host: Craig (Microsoft)
Q: When will the NetCF support development for Smartphones?
A: The .NET Compact Framework will be supported on the next version of SmartPhone. We have not yet announced any dates for when this will be available.
Host: Scott (Microsoft)
Q: Does Visual Studio have any features that enable third parties to plug in new project types or device emulators for smart device programming?
A: This is possible to do with Visual Studio 2003, however we currently don't have tools to make this easy. We are working to make this much more straightforward in the next version.
Host: Kevin (Microsoft)
Q: We have several customer reports that SQLCE seems to clobber our .NetCF control (2 dlls, one Win32, the other handles all P/Invokes), perhaps some sort of memory overwrite problem. Who can I contact to get help with this?
A: You can contact Microsoft PSS, or the Microsoft.Public.SqlServer.CE newsgroup. I'd be happy to chat with you about this offline. I'd like to get more details.
Host: Xin (Microsoft)
Q: When will Studio offer designer-supported custom control generation (without all the fun machinations)? Is this more likely to be an SP fix or a next-full-version fix?
A: Custom control support improvement is not a SP fix currently. We are working on it for the next version of VS.
Host: Ben (Microsoft)
Q: The great limitations of the Bitmap class (no rotation, etc.) actually encourages people to try to use the underlying architecture. Exposing the Bits[] array would be *hugely* beneficial (so I don't have to roll a whole new class).
A: Your point is well taken. I'll make sure our GUI team hears this request.
Host: Craig (Microsoft)
Q: I suppose that you know that CF on XScale at 400MHz is running 2 times slower then an ARM SA 1110 at 203 MHz! The SA 1110 is out of production... How can you explain a customer that the framework on XScale is very very slow?
A: There have been reports from most of our customers about performance on XScale processors. However, these reports have been consistently on the order of 25% slower, not by a factor of 2 as you report. Another thing to note is that this has been reported equally in both native applications and managed applications, and our testing therefore indicates this is not specifically a .NET Compact Framework issue. If you are having such drastic problems, my first suggestion would be to check with the OEM of your device for any software updates that may increase performance on your specific device.
Host: Jamie (Microsoft)
Q: Are there any plans for an eVB to .NETCF migration tool. At least for the forms?
A: No, there are no plans for a tool like this.
Host: Ben (Microsoft)
Q: I have a base form (derived from System.Windows.Forms.Form) that several other forms are derived from. Is there away to use these derived forms with the windows designer?
A: There is no way currently to do this. I recommend that you approach the problem using composition rather than inheritance (e.g. have a helper class that modifies a form).
Host: Scott (Microsoft)
Q: You say it's not easy, which I accept. Nothing ever is in v.1. Do you have any docs or whitepapers for providing the hints on where to begin?
A: We are working directly with a few customers, but don't currently have any whitepapers published.
Host: Kevin (Microsoft)
Q: I have seen multiple posts that the Insert/Update in CF with Sql Server CE are more slower than doing that in compiled language. Are you aware of these differences of speed?
A: We are aware of issues in performance, particularly on XScale devices (see posts on Xscale).
Host: Craig (Microsoft)
Q: How Can I make a deployment setup to smartdevices that include sqlce libraries
A: In order to create a deployment setup that includes SQL Server CE, you will need to write your own setup code. There is no way, in Visual Studio .NET to automatically create a setup that does this.
Host: Xin (Microsoft)
Q: I tried to create an application with ILASM some time ago. It works fine on the emulator. But it hangs while starting on my iPAQ. Any ideas?
A: It's not a good idea to write code in ILASM directly. The reason yor code runs on emulator but not on iPAQ may because they have different timing or different memory conditions. Again, the best way is to use C# or VB.Net.
Host: Scott (Microsoft)
Q: is eVB dead should I avoid using it?
A: eVB is supported for development for PocketPC 2002, and 2003. (however you'll need to install the eVB runtime on PPC 2003). eVB won't be supported for future releases. VB .NET is the right tool for VB development moving forward.
Host: Jamie (Microsoft)
Announcement: On Monday 4/21 we will be enabling a new "forums feature" on smartdevices.microsoftdev.com. This will be a great place to go to ask more questions about the .NET Compact Framework and Visual Studio .NET for devices features, very similar to our existing newsgroup. Microsoft employees from both the NetCF and VSD teams will be participating in these forums on a regular basis, alongside our skilled community of MVPs.
Moderator: Mike (Microsoft)
Thanks for joining us today and thanks for the questions. A special thank you to all our hosts today: Craig, Scott, Jamie, Kevin, Ben, Xin. It's time for us to go now.
For further information on this topic please visit the following:
Newsgroups: Mobile and embedded application development topics
Embedded Transcripts: Read the archive
Website: Visit the Mobile & Embedded Developer Center
Top of page