.NET Compact Framework and Smart Device Programming

Posted November 21, 2003

Chat Date: October 9, 2003

Please note: Portions of this transcript have been edited for clarity

Introduction**

 

Moderator: mikefos (Microsoft)
Welcome to today's MVP-hosted .NET Compact Framework and the Smart Device Programming features of VS.NET chat!

Moderator: mikefos (Microsoft)
Let’s introduce our hosts for today.

Host: ctacke (MVP)
Hello, I'm Chris Tacke, Windows CE Product Manager at Applied Data Systems and cofounder of OpenNETCF.org

Host: NeilC (MVP)
Hi, I'm Neil Cowburn. I'm a technical author for UK-based tech content provider, Content Master. I'm also one of Co-Founders of OpenNETCF.org.

Host: roof (MVP)
Hi, I'm Larry Roof. I’m the author of the recently released title, "The Definitive Guide to the .NET Compact Framework" from Apress.

Host: Kevin_Boske (Microsoft)
Hi I'm Kevin Boske, I test SQL Server for Windows CE and ADOCE.NET.

Host: PeterFoot (MVP)
Hi I'm Peter Foot, the founder of In The Hand a UK company creating reference software for Smart Devices

Host: Ginny (MVP)
Hi, I'm Ginny Caughey. I'm president of Carolina Software Inc., and we provide vertical market solutions to the solid waste industry.

Host: Kevin_CraigNeable (Microsoft)
Hi, I'm Craig. I'm a technical evangelist with the .NET Smart Devices product groups. I'm here to learn from our MVP gurus...:-)

Host: ChrisF (MVP)
Hi, I'm Chris Forsberg, Mobile Devices MVP focused on .NET CF development

Host: Kevin_markpre (Microsoft)
Hi, I’m the Release Program Manager for the .NET Compact Framework team.

Host: AlexFeinman (MVP)
Hi, I'm Alex Feinman. MVP Windows Media Center and a software engineer. I'm also on the board of OpenNETCF.org

Host: Kevin_CraigNeable (Microsoft)
Hi, I am Amit Chopra, I am a Program Manager on the VSD Team. A very good morning to everyone

Start of Chat

Moderator: mikefos (Microsoft)
Welcome everyone, let’s get started!

Host: Kevin_Boske (Microsoft)
Q: Please tell us SQL CE 3.0 is almost ready?
A: We are working hard on a lot of great new features for SQL Server CE 3.0. You can expect a lot of developer love. That's all I can say right now. Watch this space and Microsoft.public.Sqlserver.CE newsgroups.

Host: Kevin_markpre (Microsoft)
Q: Any news on when sp2 will be re-release or will it be sp3?
A: We will be releasing SP2 in the next few months. The specific date has not been finalized. Once it is released we will make a broad announcement.

Host: AlexFeinman (MVP)
Q: Given a System.Drawing.Bitmap, I'm trying to pass a HBITMAP from managed (C#) to unmanaged (C++) code. https://www.opennetcf.org/Articles/GdiObjects.asp is close, but no cigar. Any other suggestions, and what does Image.GetHowFromImage(bmp) do?
A: Image.GetHowFromImage(bmp) returns internal (not HBITMAP) handle, which is pretty much useless by itself. The only other option of passing a bitmap down to unmanaged code is to transfer it pixel-by-pixel

Host: ctacke (MVP)
Q: So what's the MVPs take on opennetcf.org? Has it been successful so far and worth your investment? It's an awesome resource.
A: Depends on how you define "success." OpenNETCF was a side project started by us to help put info in a consolidated place, and to provide quality code. I think we've done a decent job of that, and the 12k downloads is reassurance. Of course I'd love to spend more time doing stuff, but since its all pro-bono, and we all have day jobs, we'll keep plugging along.

Host: Ginny (MVP)
Q: Can I use VS 2003 and CF to develop an application for a device running CE.Net 4.0?
A: No, the compact framework requires CE 4.1+ and/or PocketPC.

Host: Kevin_CraigNeable (Microsoft)
Q: Is ".NET Remoting" planned on mobile platform?
A: We currently do not have any plans to support .NET Remoting in the .NET Compact Framework.

Host: AlexFeinman (MVP)
Q: Is it true AT&T will release a Smartphone to be available on October 21, 2003, any others?
A: No dates were announced, but AT&T has this information: https://www.attwireless.com/specials/mpx200.jhtml

Host: Kevin_Boske (Microsoft)
Q: What about SQL CE on Smartphone?
A: SQL Server CE is not currently supported on the Smartphone.

Host: Kevin_Boske (Microsoft)
Q: We know that, how hard would it be to get SQL CE to load on the Smartphone?
A: Fairly difficult. Certainly, we are thinking about SQL Server CE on the Smartphone. If you have a specific scenario in mind, please feel free to whisper me. We would love to know more about your plans.

Host: ctacke (MVP)
Q: Will Smartphones have touch screen in future?
A: I've not heard any announcements for touchscreen support but there's nothing inherent in the OS that prevents it, so it's really up to the OEMs.

Host: AlexFeinman (MVP)
Q: I believe Pocket PC 2003 has something of a configuration manager class that lets you configure various things. Or is it just Smartphone?
A: If you are talking about DMProcessConfigXML API, yes, it is available on all WM2003 platforms. The difference is that regular PPC cannot be configured OTA, while Smartphone and PPCPE can

Host: ctacke (MVP)
Q: We need help improving performance of our .net CF application running on the PPC (ARM). We have used the form load tips but the performance is still really slow. We searched for some profiling tools but could not find any. Any hints?
A: There are other strategies for improving apparent load speed such as launching a C++ app that shows a splash screen and in turn launches the CF app, or using background threads to create objects that aren't immediately needed at startup. It's a pretty broad question, posting to the newsgroups for follow on would probably be a good idea.

Host: Ginny (MVP)
Q: Are there any best practices for loading a large amount of data into a datagrid?
A: For best performance, only load the amount of data that would be visible plus a little more, then bring in more as needed.

Host: Kevin_CraigNeable (Microsoft)
Q: Hello! Any plans for global exception handling support (e.g. Application.ThreadException)?
A: Currently this is not in the plan for the next version of the .NET Compact Framework.

Host: PeterFoot (MVP)
Q: Anyone know of a Smartphone with a built in GPS?
A: Currently no, your choices are to investigate whether your operator exposes a location API or whether there is a SDIO solution with drivers for the Smartphone OS

Host: ctacke (MVP)
Q: Is CF datagrid going to be always the same (fast but poor functional) or are planned some enhancements?
A: Microsoft has made no announcements, but market conditions will likely provide a more robust replacement for those with greater needs whether Microsoft does or not.

Host: AlexFeinman (MVP)
Q: Is it possible to send direct APDU calls using the SIM Manager API?
A: If you are asking, whether APDU is supported by SIM manager, you should probably ask this in one of the Smartphone forums. If you know there is such API, you can probably P/Invoke it from CF app.

Host: Kevin_CraigNeable (Microsoft)
Q: I'm asking Microsoft about the chances of having a .NET Compact Framework certification?
A: If you are talking about Microsoft Certified Professional training and certification, there are no current plans. If you are talking about application certification, there already is a method for certification of applications. You can learn more about the latter of these at https://www.microsoft.com/mobile

Host: AlexFeinman (MVP)
Q: Is there any work on speech recognition on the CF?
A: The Microsoft Speech SDK which is in public beta, offers Pocket IE SALT plugin. I'm not aware of any API-accesible implementation at this point

Host: ctacke (MVP)
Q: I need to insert 3500 records into a SQLCE database. What is the best way to do that in the .Net environment?
A: I'd say using replication to push a snapshot would be the easiest.

Host: Kevin_Boske (Microsoft)
Q: Please give us an update on the next release of SQL CE. There are a lot of features I am hoping for here.
A: I can't confirm anything about future products. What features are tops on your list? If you are interested, please send mail to me (kboske@microsoft.com) and I'll make sure to get you information on our upcoming betas.

Host: Kevin_CraigNeable (Microsoft)
Q: Any chance of a 2003 Smartphone coming out in the US this year?
A: When any Smartphone release will actually hit the streets is dependent on OEMs and mobile operators releasing hardware running the release. Please see Alex's response earlier in the chat about the ATTWS release of Smartphone in the US. Unfortunately we don't have any further information to give. When there is new information, the mobile operators, like ATTWS, will make the appropriate announcements.

Host: ctacke (MVP)
Q: In last chat you suggested to down load CSV component from OpenNetCF. Where do I place the OpenNETCF.Data.CSV.dll?
A: Like any .NET assembly, you can place it in your app directory or the Windows folder of the device.

Host: ChrisF (MVP)
Q: Is someone using a third party datagrid?
A: ComponentOne recently released their FlexGrid (https://www.componentone.com/products.aspx?ProductCode=1&ProductID=106)

Host: ctacke (MVP)
Q: Any chance of getting Debug.Print, etc., to work in .NET Compact Framework applications?
A: There have been no announced plans for it.

Host: roof (MVP)
Q: Do you still need to include System.SR.dll to get better exception messages?
A: Yes, you do.

Host: PeterFoot (MVP)
Q: Where should a Designer control really go? GAC vs the Program Files\MicrosoftVisual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\WindowsCE\Designer Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\Designer Where do designer controls go?
A: Place them in Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\WindowsCE\Designer - you will also need to customise your toolbox to add the control to your toolbox

Host: ChrisF (MVP)
Q: Sorry, let me rephrase this. I am shipping a Designer control. Where should the MSI install it, in the GAC or the aformentioned directory.
A: You should install it in the "\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\Designer\" directory.

Host: ChrisF (MVP)
Q: Ok, then why doesn't the designer control show up in the "Customize Toolbox" dialog?
A: You have to "Browse" for it, and then it will appear in the list.

Host: NeilC (MVP)
Q: Chris, this is lame! All the Microsoft ones show up, why can't ours?
A: There could be a problem with your code. If you would like to post some code to the newsgroup, or to me directly (neilc@opennetcf.org), we can pick things up from there.

Host: ctacke (MVP)
Q: Do you need to call dispose on objects that support close? I heard various thoughts. There seems to be some confusion here.
A: In theory it shouldn't matter, the GC should take care of object disposal. In reality, it's a good idea to clean up manually in case the class you're using has a "feature" like the current Form class.

Host: Kevin_markpre (Microsoft)
Q: Will SP1/SP2 become part of PPC2003 so we don't have to ship these?
A: SP1 was delivered to PPC 03 venders through a PPC 03 OS update. Check with your PPC Venders for more details.

Host: AlexFeinman (MVP)
Q: And should you since set a reference to an object to null to help with garabage collection? Again heard various things here.
A: If you have any pending references to an object, it will not be collected. When you go out of scope, it is an equivalent of setting the obj reference to null, so you don't have to do that explicitly. Calling dispose on those objects that support it help to deallocate resource that will be otherwise tied up until the object is GC'd

Host: ctacke (MVP)
Q: I'd really appreciate a Microsoft example of a best practices for loading a lot of records, say thousands, into a DataGrid using some sort of DataCache class, that uses paging etc. So far we have seen parts and pieces and I think one base would help.
A: I've not seen a "best-practice" example for this from anyone. I think you should seriously recconsider your UI design if you're trying to put that much data in a control. It's just not manageable for a user.

Host: ctacke (MVP)
Q: I have recently moved away from using XML as a store for settings in favour of the registry due to speed concerns, was this a wise course of action?
A: The registry is fine for smaller amounts of data. It really depends on your app, but for configs, etc. you're probably just fine.

Host: roof (MVP)
Q: Soon mini/micro hardware keyboards will be available for PPCs also. Does CF has got any dormant support for two-key pressess (like CTRL-S or ALT-E) besides stylus presses?
A: While I haven't performed any actual trapping tests for particular keystroke combinations, common combinations (CTRL-C, etc.) do work within the NETCF controls. You should be able to test out your desired key sequences within the emulator.

Host: Kevin_markpre (Microsoft)
Q: Are there any plans to support MouseDown/Up, Click events for controls like the TreeView?. Anything to be able to detect that an already selected node has been tapped? (AfterSelect is not good enough)
A: I can not comment on any new features, however this is good feedback, why do you believe AfterSelect is not good enough?

Host: Kevin_markpre (Microsoft)
Q: On AfterSelect. If a node is already selected and you tap on it again there is no event or way of detecting that. Unless I missing something…. Am I?
A: Yes your right, why do you need to detect a selected node being selected again?

Host: Kevin_markpre (Microsoft)
Q: Need to detect already selected node. If for example as a result of the NodeClick a menu is popped up OR a new form is displayed OR a background comms request is sent...I can think of other examples but all of the previous ones can apply in my app...
A: Thanks that helps. This type of feedback is great and helps us to prioritize our new feature sets.

Host: AlexFeinman (MVP)
Q: What is the best way to transfer data from PocketPC to a host through a web service? Transfering dataset? Or a byte array? An object? Has someone tried to pass through a web service a class containing a dataset?
A: DataSet is very easy to transfer using web service, so I'd say it's a preferred way. The downside is that it is "chatty" - has a lot of overhead. If you are really concerned with the bandwidth try using binary format and sockets. If I remember correctly, MapPoint.NET uses custom objects in the web service.

Host: ctacke (MVP)
Q: How can I automate preinstalling the .NET compact framework before installing my smart device application. I.E. run appman twice; first with the .NET compact framework cabs and then second with my smart device app.
A: You can either use a 3rd party tool that builds a desktop install package that integrates into ActiveSync, or you can "uncompress" the CF CAB and include it's contents in your own. On that subject, it *would* be nice if Microsoft provided the CF uncompressed along with a REG file for any necessary registrations (hint, hint).

Host: Kevin_Boske (Microsoft)
Q: Smartphone doesn't have SQL CE support at the moment, I heard a rumour that it will eventually be released, any ideas when and will the functionality be the same across the platforms?
A: I can't confirm anything about future products. The goal is to have the same functionality across devices.

Host: Kevin_CraigNeable (Microsoft)
Q: When can we expect to see some real world Microsoft developed applications like Pocket Streets, Pocket Money etc. delivered in a Compact Framework format?
A: Like with every application that's written in native code, developers must choose whether it's worth the expense of re-writing an application to get the benefits of writing in managed code. We will make the same decisions on an application by application basis. When it makes sense to do this for our device applications, we will do so, but we don't currently plan to "convert" all device applications to managed code necessarily. Many new applications that are written for devices will use the .NET Compact Framework. Two examples of new applications that we are working on internally that use purely managed code are ones from MapPoint .NET and a client for the Microsoft CRM platform.

Host: AlexFeinman (MVP)
Q: I want to auto-upgrade my app and components (e.g., newest SP of the .NET CF). I thought of launching a secondary updating app, but I can't write it in C# if I'm planning on updating the .NET CF right? Any comments/ideas?
A: If everything is alright, there should be an article shortly on MSDN which shows how to do it.

Moderator: mikefos (Microsoft)
Q: Is Microsoft planning on providing any more support for Windows CE for Automotive? There is almost none available.
A: I'm not sure what type of support you're referring to. Microsoft does have a commitment to Windows CE for Automotive: https://www.microsoft.com/windowsautomotive/default.mspx

Host: Ginny (MVP)
Q: Is there continued aggressive and full support and development of evb and evc?
A: Don't look for new versions of eVB in the future. Since C++ is always necessary, there will be continued enhancements to C++ support.

Host: Kevin_CraigNeable (Microsoft)
Q: Is there continued aggressive and full support and development of evb and evc?
A: As Ginny mentioned, We are committed to support our native development tools until most of the features / functionality of these tools become part of future versions of VS. eVC will see Service Packs in the near future to support new platforms, but nothing is planned for eVB right now.

Host: Kevin_Boske (Microsoft)
Q: I really like the CF. Our PocketTerra field data collection component set is really excellent and all because of CF and SQLCE.
A: Thank you, Roger. I'll pass this on to the SQL CE team.

Host: Kevin_markpre (Microsoft)
Q: What happend to .net CF SP2? Why was it recalled?
A: SP2 was released with a recall class bug. Once found, the NETCF team pulled the bits and started working on a fix.

Host: AlexFeinman (MVP)
Q: What is the CFQuery[Processor Name].dll used for when install the .NET compact framework? Is it required?
A: It's an unmanaged dll used by CF setup to determine device CPU architecture (via RAPI calls). It is required by the setup.

Host: ctacke (MVP)
Q: Is there a way to use Bluetooth within the emulator?
A: Yes, but it's not at all easy. If you have serial Bluetooth hardware you could write a driver to talk with it. Alternatively you could write a virtual Bluetooth driver that "mimics" the actual hardware behavior. In any case it's going to be faster and cheaper to just use a real device.

Host: Kevin_Boske (Microsoft)
Q: Any plans to be able to make sdf files on the desktop with SQL CE 3.0?

Host: Kevin_Boske (Microsoft)
A: I love the enthusiasm CJ! I would love to tell you about all of our new features. But, all I can say is that we have listened and added features we feel developers will love.

Host: AlexFeinman (MVP)
Q: When I fill a DataSet with a schema on the CF, it doesn't get relations. What’s wrong?
A: You may want to post more extended question with some details in the public NG

Host: roof (MVP)
Q: Are there any plans to add printing support to the .NET Compact Framework. I realize this is a failure of the OS, but I think it is a serious loss not having it. Why force developers to reinvent such a basic item?
A: There are no plans to add printing support to NETCF. If you are not already aware, there are a few third-party options available including PrinterCE .NET and HP's Mobile Printing Toolkit.

Host: ChrisF (MVP)
Q: Do you have any CF book to advice?
A: Here's a couple:

https://www.paulyao.com/cfbook/

https://www.microsoft.com/mspress/books/5960.asp

https://www.sams.com/catalog/product.asp?product_id={7F723732-3021-4B0A-BEE0-56792D36B8B4}

https://www.apress.com/

https://www.apress.com/book/bookDisplay.html?bID=151

Host: AlexFeinman (MVP)
Q: Will there be support for zip files in CF soon?
A: There is an open-source zip library: https://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx

Host: ctacke (MVP)
Q: Since there are no plans for global exception handling support, shouldn't there be a way to substitute/suppress the default error dialog? Can you comment on any plans for that?? Again, I have more info on a scenario in my post to the ng...
A: You can get near global exception handler by just using a try/catch block in Main around App.Run

Host: Ginny (MVP)
Q: Is there a way to have strongly typed datasets in .Net Compact Framework?
A: You can use xsd.exe to generate code for a strongly typed dataset, but you will need to remove code such as [Serializable] that is not supported on CF.

Moderator: mikefos (Microsoft)
Q: How distant is a standardized MS API for GPS location services? Is it not currently true that a GPS is not a shared resource; that is, if an app1 has opened a GPS device then app2 is locked out?
A: We understand that this is a frequently requested feature, but we're not prepared to make any statements at this time.

Host: ctacke (MVP)
Q: Does CF natively support .cab files generated from desktop?
A: If you mean CE install cabs, then you can P/Invoke CreateProcess to run them through wceload.exe. If you mean generic CAB container files, then no.

Moderator: mikefos (Microsoft)
Q: microsoft.public.dotnet.framework.compactframework only goes back about a month: anyway this could be increased? Anyway old messages could be restored. It seems a valuable resources is disappearing each day.
A: We understand that this is currently the case and it is being discussed internally.

Host: Kevin_Boske (Microsoft)
Thanks for attending. if you have SQL CE questions, please come see us at microsoft.public.sqlserver.ce

Moderator: mikefos (Microsoft)
Thanks for joining us today and thanks for the questions. A special **thank you** to all of our MVP hosts today; Larry, Alex F, Chris T, Chris F., Peter, Ginny and Neil. As well as our Microsoft hosts; Craig, Kevin and Mark. It's time for us to go now.

Moderator: mikefos (Microsoft)
If you have further questions regarding the Compact Framework, please check out: news://msnews.microsoft.com/microsoft.public.dotnet.framework.compactframework

For further information on this topic please visit the following:

Newsgroups: Mobile and embedded application development topics

Mobile and Embedded Transcripts: Read the archive

Website: Visit the Mobile & Embedded Developer Center

Top of pageTop of page