none
Is source code available for System.Data.SqlServerCE.dll and its unmanaged DLL dependencies for platform builder?

    Question

  • Has anyone been able to get source code for the above?

    I have platform builder for ce 5.0 and I don't see any source code for my SQLCE Mobile (3.0 ) DLL's there, but I do see source code for other platform catalog items.

    Clarification : When I said dependencies, I meant just the other 7 sqlce unmanaged DLL's.
    • Edited by _3AM Wednesday, February 10, 2016 7:22 PM
    Wednesday, February 10, 2016 7:03 PM

Answers

  • Hi _3AM,

    It was actually a change in the VS compiler for ARM that broke compatibility.  It required a change to the ABI in Windows CE 8 (Compact 2013) in order to leverage the newer Neon features.  This also cut out support for a bunch of older ARM chips that were not VFP3 D32 compatible.

    X86 is not RISC like ARM so compatibility is not so easily broken so there are far more factors to your question than you imagine.  Yes, it is possible but far less likely on an X86 desktop than a restricted memory embedded device that has to decide what to support in a limited amount of space and limited processing power.

    Sincerely,

    IoTGirl  

    • Marked as answer by _3AM Tuesday, January 24, 2017 7:54 PM
    Tuesday, January 24, 2017 6:17 PM

All replies

  • Has anyone been able to get source code for the above?

    I have platform builder for ce 5.0 and I don't see any source code for my SQLCE Mobile (3.0 ) DLL's there, but I do see source code for other platform catalog items.

    Wednesday, February 10, 2016 7:08 PM
  • Hi _3AM,

    SQL CE comes from the SQL Team and I believe it was distributed only in Binary form.  Many items in CE are distributed this way such as drivers that are private to the OEM and the .Net Compact Framework that was provided by the Visual Studio Team.

    Sincerely,

    IoTGirl


    Wednesday, February 10, 2016 7:23 PM
  • I appreciate the Follow-up IoTGril,

    I just have to explore all my options before retracting back to developing on CE7 vs CE2013.

    We have a desktop software version tied to the embedded device that is currently being revamped in VS2015 and I would like to use VS2015 for CE2013 as well.

    Fortunately,  the BSP provider we are looking at has BSP's for both CE7 and CE2013.

    We do not want to go back and update the older CE5 device executables in-field (nightmare), and that is why I am stuck on these SqlServerCE DLL's, for backward compatibility.

    So I guess I will leave this thread unanswered for a few days to see if someone can magically come with some source code. Maybe for a price ?!?!?

    Wednesday, February 10, 2016 7:42 PM
  • Hi _3AM,

    It is very unlikely this source code is available outside Microsoft and, as the version of SQL CE you are targeting is so very old, I doubt is has been touched within Microsoft since the CE 7 timeframe.

    My suggestion would be to use the suggestion given to you in the other thread and convert the database to SQLite. That will get you an open solution that is also portable cross platform and you will have full source available to you.

    Sincerely,

    IoTGirl

    Wednesday, February 10, 2016 7:58 PM
  • Hi IoTGirl,

    I'd be more inclined to make the jump to SQLite if I knew there was a chance of Interop (binary compatibility) breaking in the windows desktop environment the way it happened in the transition from ce7->ce2013 in the CE environment. Do you imagine something like that could be coming down the pipe in the desktop environment?

    Thanks in advance.


    • Edited by _3AM Thursday, February 11, 2016 1:15 PM
    Wednesday, February 10, 2016 11:58 PM
  • Hi _3AM,

    SQLite is public domain so you can recompile it as you see fit therefore should never be in the position of only having a binary like you are in the SQL CE scenario.

    Take a look at http://www.sqlite.org/ to find out more about the Public Domain license.  Note that they do offer prebuilt binaries but you have quite a few options there as well.

    Sincerely,

    IoTGirl

    Thursday, February 11, 2016 6:52 PM
  • Sorry IoTGirl,

    I don't think I asked my question properly.

    What I meant is:

    Do you imagine Microsoft breaking Interop & binary compatibility in SqlServerCe sometime in the future in the desktop windows environment the way it happened in the CE environment?  Is that in the realm of possibilities?

    • Marked as answer by _3AM Thursday, February 11, 2016 8:45 PM
    • Unmarked as answer by _3AM Friday, February 12, 2016 8:12 PM
    Thursday, February 11, 2016 7:05 PM
  • Hi _3AM,

    I am afraid I don't have any insight into what might happen in the future for SQL Compact but my answer still stands for any case where you only have a binary. If you don't have the source for a component you may eventually wind up in a situation where you can't use that binary without recompiling. For example if you move a desktop driver to a mobile phone, the mobile phone is likely ARM and not X86 so you need to recompile.

    Sincerely,

    IoTGirl

    Thursday, February 11, 2016 8:03 PM
  • We are talking about going from Arm to Arm on CE , where MS broke binary compatibility from CE7 to CE2013.

    I understand and agree with what IOTGirl is saying, but going from X86 to Arm is a little extreme. I was really

    asking if I stay on X86 for the desktop, and a new windows desktop update comes out for Win10 for example , could

    that break binary compatibility.

    Tuesday, January 24, 2017 2:12 PM
  • Hi _3AM,

    It was actually a change in the VS compiler for ARM that broke compatibility.  It required a change to the ABI in Windows CE 8 (Compact 2013) in order to leverage the newer Neon features.  This also cut out support for a bunch of older ARM chips that were not VFP3 D32 compatible.

    X86 is not RISC like ARM so compatibility is not so easily broken so there are far more factors to your question than you imagine.  Yes, it is possible but far less likely on an X86 desktop than a restricted memory embedded device that has to decide what to support in a limited amount of space and limited processing power.

    Sincerely,

    IoTGirl  

    • Marked as answer by _3AM Tuesday, January 24, 2017 7:54 PM
    Tuesday, January 24, 2017 6:17 PM