.NET Components for Mobility

Beta 3 released

Last post 11-30-2006 3:53 PM by Andy Hume. 0 replies.
Page 1 of 1 (1 items)
Sort Posts: Previous Next
  • 11-30-2006 3:53 PM

    Beta 3 released

    Locked Reply Contact

    Beta 3 in now available for download.

    The headline changes are firstly two items for the on the Compact Framework: a fix to the GET operations, a major workaround to allow Folder Listing, and full testing of all the features on that platform. Other additions are access to the Length (etc) header when doing a GET, and support for TCP/IP connections in the TransportConnection library.

    Note it only remains "Beta" due to the Compact Framework support (code added to workaround the DOCTYPE flaw in its framework libraries, dodgy Samples, etc), the desktop support should be considered 'final'.

    In more detail, from the readme:

    What’s new

    In the core library, In brief:

    • Access to the response metadata headers in a GET request is provided via the ResponseHeaders property on ObexGetStream.  This can be used to find the length of the object being downloaded.  See the FolderExplorer2 sample which uses this feature to update the progress bar.
    • GET (GetTo/Get) did not work on the NETCF; failing with an InvalidCastException.  This has been fixed.
    • Code to run the NUnit-based unit-tests on the NETCF has been created to ensure the code quality of the complete library on that platform.
    • The Folder Listing parser failed on the NETCF when reading listings from most peer devices.  This is due to a lack of support for DTDs in the NETCF XmlTextReader class, if used on a document that contains a DOCTYPE element it throws a NotSupportedException. This is bad, as the Folder Listing document is defined in the OBEX specification by a DTD and all the documents I've see do contain the document type declaration.  This has been worked-around by creating code to strip any DOCTYPE element from received documents.
    • It also has been reported that some devices produce Folder Listing XML documents containing null bytes.  When first writing the parser I had been aware that some devices included null bytes at the end of the document, and thus the parser is careful to read no further that the document end tag.  However due to reports of some documents having null bytes in the middle of the document has meant creating another bit of ‘stripping’ code.  This is disabled by default as I’ve seen no such documents showing this. This applies to both platforms.
    • The SetPath, SetPathUp, and SetPathReset methods have been changed to set the flag that indicates not to create a folder when it doesn't already exist by default.  This was done particularly to suit some device types which prompt the user to allow an 'up' change even though the parent folder does exist. This could be a breaking change for code which uses the SetPath(String) method in particular. The method which used to take boolean arguments for the flags have also been changed to use enum values instead.
    • There has been one breaking change in the Pdus namespace, the values of the ObexPduType enum have changed. So don't redirect a application compiled against Beta 2 to this version, instead recompile. I aim for this to be the last such change.
    • Class documentation has been completed on all the main library classes, in particular on the ObexPduFactory class.
    • The class methods meant only for ‘advanced’ usages have been marked as such; firstly with the text “[Advanced usage]” in their parameter documentation, and secondly with System.ComponentModel.EditorBrowsableState.Advanced to control their appearance in Intellisense.

    In the samples, in brief:

    • The NETCF Windows Forms samples in the previous version were pretty much useless.  Whilst the library (and the command-line program) did work, the UI samples (and the IrDA-specfied tests) did not — due to threading issues.  The samples have now been recreated in a full version of VS, tested, and they all seem to work fine in the emulator. However a beta tester reports that they do not work for him on a real device. As the complete source for the samples is included, can any Compact Framework experts give me any recommendations for changes so that they do work.
    • Both the GuiObexSessionConnection class and the ConsoleMenuObexSessionConnection in the TransportConnection library now support TCP/IP connections.  They connect to the specified default port of 650, with the GuiObexSessionConnection class displaying a prompt dialog box for the IP Address or hostname, and the ConsoleMenuObexSessionConnection class prompts on the console. With Alan's help support for both IPv4 and IPv6 has been verified.
    • A new Forms Control ProtocolComboBox is included in the TransportConnection library, it represents a drop-down list from which the user can select Bluetooth, IrDA, or TCP/IP.  It returns the selected protocol as a System.Net.Sockets.ProtocolFamily value.  All the UI samples have been updated to use this control.
    • FxCop has been run on the library and all major recommendations followed.

    Sadly as noted there there still seems some problems in the Samples for the Compact Framework, which don't appear when using the emulator.  Any feedback, or offers of PocketPC devices, would be very much appreciated.

    Andy

Page 1 of 1 (1 items)
Copyright © 2001-2010 In The Hand Ltd. All rights reserved. Terms of Use and Privacy Policy.