.NET Compact Framework and Smart Device Programming (April 12, 2005)

Posted: April 15, 2005

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

Introduction

RafaelMu - MVP Lead (Moderator):
So at this time I would like to welcome our Experts for today’s chat and I will have them introduce themselves now.

AlexYakhnin_MVP (Expert):
Hi, I am Alex Yakhnin, president of Intelliprog, Inc. and a member of directory board of OpenNETCF.org.

TimWilson_MVP (Expert):
Hi all, my name is Tim Wilson and I'm an independent consultant focusing on .Net technologies and also an OpenNETCF.org Advisory Board member.

nwhite_MSFT (Expert):
Hi, I'm Nick White and I manage the Microsoft Mobile and Embedded Developer Community Relations Program.

Ginny_Caughey_MVP (Expert):
Hi, I'm Ginny Caughey, President of Carolina Software Inc. and a member of OpenNetCF.org Advisory Board.

AlexFeinman_MVP (Expert):
Hello, I'm Alex Feinman - I am a MIcrosoft MVP and a member of the OpenNETCF advisory council

Mark_Arteaga_MVP (Expert):
Hi, I'm Mark Arteaga, President of Neoteric Software and a .NET Compact Framework MVP

RafaelMu - MVP Lead (Moderator):
My name is Rafael M. Munoz, C# MVP Lead, and I will be your moderator for today’s chat, replacing Michael Fosmire

RafaelMu - MVP Lead (Moderator):
At this time, if you have questions please begin.

Start of Chat

AlexYakhnin_MVP (Expert):
Q: Are we going to have typed DataSets in this next version?
A: Yes, typed DataSets will be supported in the V2 of CF

Ginny_Caughey_MVP (Expert):
Q: Can OpenNetCF.IO.Serial be used on a Smartphone to access the serial port service of a Bluetooth device?
A: It should work, but I don't have the hardware to test that so perhaps someone else can verify.

Ginny_Caughey_MVP (Expert):
Q: Ginny. It doesn't work. I have tried on an Orange (UK operator) SPV E200 and SPV M1000. You can open the port and write to it, but you cannot read from it. Is there something blocking the serial port / Bluetooth receive stream, such as active sync?
A: If you can open the port and write to it, I don't know why you couldn't also receive. Are you sure data is there ready to read?

AlexYakhnin_MVP (Expert):
Q: Is there any good sample code on custom ListView control on .net cf?
A: How about ListBoxEx in the SDF?

AlexFeinman_MVP (Expert):
Q: Why is the setup so complicated in the current version? Are there any future enhancements?
A: It's an excellent question. There are some enhancements made into setup projects for devices. In VS2005 there would be a "Smart CAB" project. It generates a CAB that can be installed on the device. Unfortunately there is not going to be a full-blown setup project type that would generate an installable that can be launched from a PC by the end-user. You will need to keep using a third party or your own solution.

Ginny_Caughey_MVP (Expert):
Q: Is there a release date for V2?
A: Not yet, sorry!

DanielMoth_MVP (Expert):
Q: Is there any too , API , CLR that can support normal .NET apps on .NET CF
A: No there isn't. CF assemblies are re-targetable to the desktop but not the other way round. You can easily share the code between the two platforms by maintaining separate projects with the same code files. I have a full description on my blog: https://www.danielmoth.com/Blog/ Specifically for your question: https://www.danielmoth.com/Blog/2004/09/share-code-if-fullframe_17.html

AlexFeinman_MVP (Expert):
Q: Are there any command line arguments to suppress the GUI in ceappmgr.exe but still use it for installation? I'd like to make a better installer without violating the Design for Windows Mobile logo requirements.
A: What kind of GUI do you mean? CEAppMgr does not show that much of GUI.

Markih_MSFT (Expert):
Q: Will these typed DataSets be portable (have the same types and members) between CF and Desktop?
A: For the most part the typed DataSets will be portable, however there are some unsupported attributes that are stripped out in the CF typed DataSet. We recommend creating the typed DataSet in your SmartDevice project and using it in your Desktop application.

AlexFeinman_MVP (Expert):
Q: How do I pass arguments to an imported C# API in VC client through variants. example please
A: If you mean calling a C# callback, the same rules that govern the transition from managed types to unmanaged apply here. I.e. you create your callback definition using marshallable types as parameters, and then use these types' unmanaged equivalent to invoke the callback on the unmanaged side

PeterFoot_MVP (Expert):
Q: Will the ComboBox support DropDownStyle other than DropDownList ?
A: Yes in V2 the editable DropDown style is supported

RafaelMu - MVP Lead (Moderator):
If you are just joining us...Welcome to our chat featuring our .NET Compact Framework MVPs and distinguished members of the .NET CF Team. Today’s topic is “.NET Compact Framework and Smart Device Programming”. Our experts are currently working on questions. If you just joined us and would like to ask a question make sure that after you type your questions in the send box, select the Submit a Question radio button and click SEND. Questions sent directly to the Guest Chat room will not be answered by the Experts, but we encourage other community members to assist.

DanielMoth_MVP (Expert):
Q: Will design-time binding be supported on CF Windows Forms?
A: Yes, as far as I know.

Ginny_Caughey_MVP (Expert):
Q: Will design-time binding be supported on CF Windows Forms?
A: Yes, that should be available in VS 2005 and .NetCF version 2.

DanielMoth_MVP (Expert):
Q: is there any chance that Whidbey Beta 2 will arrive before March 50th? ;)
A: Yes and no ;-)

AlexFeinman_MVP (Expert):
Q: Alex, it prompts the users with a couple of installation related questions and you have to run it several times separately if you need to install a suite of programs. This is not desirable to a end-user. Most would like a click once and be notified when th
A: I see what you mean. No, I don't know of such switches

Ginny_Caughey_MVP (Expert):
Q: Will CF 2.0 support SQL CE databases being modified programmatically on the desktop? If yes, will this have to wait for the next version of SQL CE?
A: SQL CE 2.0 can only run on CE devices, so the answer is not for that one. SQL Mobile however can be modified from the desktop and from desktop-based tools in Visual Studio 2005. I should also add that you won't be able to use SQL Mobile as part of a desktop app - just the desktop-based tools in VS 2005.

PeterFoot_MVP (Expert):
Q: OpenNetCF: If I start my OpenNetCF App, it displays an error, until I Install the OpenNetCF.SDF.... cab file, then it works properly. Is there some static linking involved? How can I build the App (VS.NET) so that it installs all dependencies?
A: Either build your setup routine on the desktop so that the SDF is installed prior to your application, or you can install all of the referenced OpenNETCF.* dlls within your cab by manually altering the .INF file. You may also need to edit the vsdsetup.ini which is built into the cab so it doesn't indicate this external dependency

Ginny_Caughey_MVP (Expert):
Q: Will there be support for other remote Data Providers besides SQL Server?
A: In .NetCF version 2? Only SQL Server and SQL Mobile/CE will be supported in the box as far as I know. What data provider would you be interested in? Perhaps a 3rd party will provide it.

AlexFeinman_MVP (Expert):
Q: Continuation to c# callback. If one of arguments to calback ** is written ** in managed world/c# api, is there special consideration on VC client side. Any example or pointer please
A: The same rules stay. Whatever this argument is, it must be a marshallable type (like a structure with appropriate [MarshalAs] attributes as necessary). What you need to do is to take it backwards. Ask yourself, what unmanaged type this structure would have represented if you were writing a PInvoke definition of an existing data structure. Then on the C side work with your C# data object as if it were that structure

DanielMoth_MVP (Expert):
Q: Is there support for localized UI elements? (Something such as desktops satellite assemblies)
A: Yes. That is in there today with CF 1.0

AlexFeinman_MVP (Expert):
Q: Will SQL Mobile be able to synchronize to a SQL Server 2000 database?
A: If you mean replication, it is already there in SQL CE 2.0.

AlexFeinman_MVP (Expert):
Q: Continuation to C# Callback in VC: Any coding example or pointer
A: Come to MEDC'05. I promise a lot of examples.

nwhite_MSFT (Expert):
Q: What is MEDC'05
A: MEDC 2005 brings together developers, engineers, and business managers to share experiences and learn first-hand from peers and experts about the Windows Embedded and Windows Mobile platforms.

PeterFoot_MVP (Expert):
Q: What is MEDC'05
A: Full details are here:- https://www.medc2005.com/

DanielMoth_MVP (Expert):
Q: Is windows CE 5.0 going to be the successor to Windows Mobile 2003? I heard CE5 was for robots & specialized hardware only, is this correct?
A: Windows CE 5.0 is the next version of the core WinCE OS which PPCs are based on. Today Windows Mobile is based on CE 4.2

Markih_MSFT (Expert):
Q: Is v2 going to support changing CurrentThread.CurrentCulture?
A: no

DanielMoth_MVP (Expert):
Q: Daniel: OK, I understand that, thanks. So is there a windows mobile 5.0 in the works?
A: I don't believe there is public information confirming (or denying) that...

DanielMoth_MVP (Expert):
Q: will .NETCF 2 support thread.Name or thread.Join?
A: Yes

Ginny_Caughey_MVP (Expert):
Q: Will it be possible to synchronize (merge replications style) sql mobile with sql server 2000/2005 without the need for IIS?
A: You still need IIS for merge replication and RDA with any version of SQL Server.

BillRyan_MVP (Expert):
Q: If Bill Ryan were a dog, what kind of dog would he be?
A: Some sort of mutt, why do you ask?

DanielMoth_MVP (Expert):
Q: Is there a plan to add more code samples to use the OpenNetCF frameworks site ? There are very few samples last I checked.
A: Which area/namespace/class are you interested in?

DanielMoth_MVP (Expert):
Q: Daniel, the RAPI/Activesync eventing system. It doesn’t work very reliably for me and I was hoping some detailed samples would clear stuff up.
A: I suggest you post to the CF newsgroup the code you have tried and where it is going wrong, one of us will look at it then. Your request for samples is noted ;)

Ginny_Caughey_MVP (Expert):
Q: What are the best learning resources for someone new to CF development to get up to speed quickly?
A: I like the QuckStart tutorials that come with Visual Studio. There's also tons of sample code a lists of books at www.opennetcf.org.

AlexFeinman_MVP (Expert):
Q: I developed an application with CF and SQLCE replicating to SQL Server 2000. I've been wondering if it wouldn't have been better if I used one large DataSet and synchronized via RDA. Any guidelines on choosing an approach or the other?
A: Replication advantage is that it deals with conflicts (to a point). It is also much harder to configure and maintain. Another thing about replication is that it works on the table lever. RDA is faster and allows executing specific queries, giving you finer grain control. There is also an option of using a web service which let's you use any kind of a database, not only SQL server

PeterFoot_MVP (Expert):
Q: Any way of knowing the process ID in WinCE (I want to kill a process). Also, how can I build TSR progs , I mean will the nature be of the prog (on .NET CF)diff in any aspect than a TSR built on a .NET
A: You can P/Invoke the Toolhelp API to get currently running processes and their IDs etc. There is a wrapper in the OpenNETCF Framework in the OpenNETCF.Toolhelp namespace

AlexFeinman_MVP (Expert):
Q: Are there any plans to improve Activesync to allow 1) multiple concurrent device connections, and 2) opening a TCPIP connection *from* the desktop to the handheld
A: 1) This is something that has been requested and Microsoft is aware of it. No plans were announced with regard to lifting this restriction. 2) I don't believe this is being considered

Ginny_Caughey_MVP (Expert):
Q: Will ActiveSync have a managed API to work with ?
A: You can use the RAPI class on www.opennetcf.org as a managed wrapper for the Activesync remote API.

DanielMoth_MVP (Expert):
Q: How do you define a blittable type?
A:https://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconblittablenon-blittabletypes.asp

AlexFeinman_MVP (Expert):
Q: Will v2 have anything from the System.Management (WMI) namespace?
A: There is no WMI on the CE platform. The answer is - no

DanielMoth_MVP (Expert):
Q: More on blittable types: Are blittable types same for .NET and .NET CF?
A: Looking at that list it seems so, yes.

PeterFoot_MVP (Expert):
Q: Will v2 have anything from the System.Management (WMI) namespace?
A: What specific features from System.Management do you want to access? - there are probably alternative means...

Mark_Arteaga_MVP (Expert):
Q: Will it be possible to write an ActiveSync provider (such as AvantGo or outlook ) in managed code ? Why is this still an arcane area where only unmanaged code can tread?
A: Currently that is not possible and don't think it will be possible with future versions. You can use the Desktop Comminication Lib rom OpenNETCF.org and detect when a device is connected through Activesync and do what you need to do.

Ginny_Caughey_MVP (Expert):
Q: Will v2 support custom written merge replication like functionality between SQL Mobile and SQL 2000/2005 without the use of IIS?
A: No, you'll still need IIS. Setting up merge replication is quite a bit easier with SQL Mobile and VS 2005 however.

AlexFeinman_MVP (Expert):
Q: I am using Message queue for inter process communication in my embedded VC++ application. I am not able to access the data on the queue in the second process where I need the data. ReadMsgQueue fails giving a 1460 ERROR_TIMEOUT message, am I missing something?
A: Could you ask this in the public newsgroup, preferably with code snippet? It would be easier to troubleshoot in that forum.

DanielMoth_MVP (Expert):
Q: Are there any sample code for using Message Queue for interprocess communication?
A: For IPC the most efficient mechanism is Point-to-point message queues, is that what you mean? In the mean time you may post your code at the newsgroup and I can see where it is going wrong...

AlexFeinman_MVP (Expert):
Q: Will .netcf 2 and/or opennetcf get support for cameras? I’ve successfully used Cowburn’s managed wrapper for the camera on htc/qtek 2020 but the same code doesn’t work for different devices.
A: Not CF 2.0 per se. You need the OS support for that and drivers to be standardized. This is not going to happen in the existing version of the devices. The announcements for the next version have not been made. Stay tuned.

Mark_Arteaga_MVP (Expert):
Q: Are there any plans in having MCP exams for the CF?
A: There was some talk about it but nothing ever came of it. Currently I don't think there are any plans for it.

PeterFoot_MVP (Expert):
Q: PeterFoot_MVP: Listing software installed, memory cards available (somewhat like drives in desktop) and data about them, data about the device, OS, etc.
A: Software Installed can be either gathered through the Registry or for some Windows Mobile devices through the XML Configuration API. All memory cards are folders within the root folder with the Temporary attribute, so you can use System.IO functionality to list them. For device data take a look at the code in OpenNETCF.EnvironmentEx which has a number of useful added properties. These are all useful suggestions for future OpenNETCF classes - Thanks

BillRyan_MVP (Expert):
Q: Any example for a .net cf webservices consumer app?
A: Casey's site www.brains-n-brawn.com has more than a few and they are pretty interesting examples. Code project has a few as well.

AlexFeinman_MVP (Expert):
Q: Is there any event logging (like the desktop) for CE? If there is, will v2 support System.Diagnostics.EventLog?
A: No, there is no event log in Windows CE. For the logging options take a look at the open-source project Log4Net

PeterFoot_MVP (Expert):
Q: How is one to simulate a LONG press on HTC devices? keybd_event with pausing in between the calls does not work...
A: My understanding is that it does work, except for some specific hardware buttons, such as the Call and Hangup buttons. I'm not aware of a workaround though

Ginny_Caughey_MVP (Expert):
Q: How does the unit testing story look like on .netcf 2 ?
A: I'm not aware of any announcements in that area.

Markih_MSFT (Expert):
Q: Will the DataGrid support editing in v2?
A: No.

Mark_Arteaga_MVP (Expert):
Q: Is there any event logging (like the desktop) for CE? If there is, will v2 support System.Diagnostics.EventLog?
A: OpenNETCF.org provides an eventlog that outputs to an XML file. OpenNETCF.Diagnostics.EventLog. Also check out my article at https://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnnetcomp/html/instnetcfapp.asp for sample usage

PeterFoot_MVP (Expert):
Q: Perhaps I have misunderstood blittable types, are you sure that a long(int64) value is blittable in .NET CF? I'm trying to call a native function with a long value (__int64 in C++) but I get a "Not Supported Exception".
A: You can only pass types up to 32bit by value. Longs (64bit) must be passed by reference.

DanielMoth_MVP (Expert):
Q: Perhaps I have misunderstood blittable types, are you sure that a long(int64) value is blittable in .NET CF? I'm trying to call a native function with a long value (__int64 in C++) but I get a "Not Supported Exception".
A: Long you have to pass byref...

AlexFeinman_MVP (Expert):
Q: That's a bit insane ,but I'm looking for a way to show one of those word balloons in my CE app ,but I can not find any. Can somebody give me a shout?
A: OpenNETCF SDF has support for Notification class. Check it out at https://www.opennetcf.org/PermaLink.aspx?guid=d57ace50-2762-4b19-b07d-39421829d410. (Thanks to Peter Foot for implementing the classes)

AlexYakhnin_MVP (Expert):
Q: That's a bit insane ,but I'm looking for a way to show one of wthose word balloons in my CE app ,but I can not find any.Can somebody give me a shut?
A: And keep in mind that will work on Pocket PC's only - not on the plain WinCE devices.

PeterFoot_MVP (Expert):
Q: Peter: It does not work for any long presses, Not even the * (T9) button
A: We had problems trying to simulate the call button press and hold (for speaker phone). I will take another look later, and if I find any alternatives I will post them to my blog.

Ginny_Caughey_MVP (Expert):
Q: Can we add photoshop page into my .Net project
A: I haven't tried that. What would you like to do with it?

Ginny_Caughey_MVP (Expert):
Q: Ginny, what is the link to your blog? I already subscribe to Daniel's and Peter's blogs
A: Sorry but I don't have a blog yet. Maybe I should?

RafaelMu - MVP Lead (Moderator):
Q: When is the next CF chat?
A: I don't have an exact date at this time but for the last information on chats check out https://msdn.microsoft.com/chats/

RafaelMu - MVP Lead (Moderator):
There are a couple of questions in the queue and our experts are working on them now...and that will wrap up our chat

PeterFoot_MVP (Expert):
Q: When is the next CF chat?
A: I think it's June 14th - they are normally monthly, but next month is MEDC

AlexFeinman_MVP (Expert):
Q: Is there a plan to write a "Installer" class in OpenNetCF ? I am using Installshield right now but would rather go "open".
A: I do have such plans, but I can't promise any particular time frame - a lot of things are going on.

Ginny_Caughey_MVP (Expert):
Q: Will .NET CF support measurement of reaction time to a precision of ~1 millisecond? That is, will it let me measure the time from the appearance on the screen of a picture (or some text) to the time that a user presses a button in response, +/- 1 msec?
A: I don't believe the hardware can provide that degree of accuracy.

RafaelMu - MVP Lead (Moderator):
Times up and I would like to thank our .NET Compact Framework MVPs and distinquished members of the .NET CF Team for joining us today, they did an awesome job getting to all the questions. We hope to see you back in the future when we have more .NET Compact Framework chats.

Thank you all for coming.

Top of Page Top of Page