Aspose.Cells C++ Linux API

I’ve noticed that the Aspose.Cells API differs between the Windows and Linux
versions. The API diffs are usually small, but highly annoying as they cause
unecessary breakage in our code that is shared between the platforms.

Since you’re re-working your Linux solution I would like to point the following
problem areas I see in my code:

  1. The header structure is different, e.g. the folder Aspose.Cells.Systems is
    called AsposeCells on Linux. Its not the worst issue, but annoying.
  2. The namespace “Systems” on Windows is called “System” on Linux, this
    is highly annoying and forced us to have namespace re-mappings to avoid
    compile issues.
  3. Some APIs are missing in the Linux version, most notable for us “GetPrintingPageBreaks()”.
  4. Some API functions have a new names, such as IFont::SetBold() is called IFont::SetIsBold()
    on Linux, this is also highly annoying and make no sense to me.

What is the reasoning behind all these name changes? It would most likely be much easier
for you to maintain the code and for us, your customers, to maintain our code if you just
kept the same names and structure.

Are you going to change this in the upcoming Linux version?

@patjep,
We have noted your concern and have logged a ticket in our database for further analysis. We will write back here once any update is ready for sharing.

This requirement is logged as:
CELLSCPP-282 - Difference in API for Windows and Linux

@patjep,

We are sorry for your trouble. Actually the Windows and Linux versions are not synchronized. We are planning to release Aspose.Cells for C++ for Linux v21.6 to synchronize with Windows version. The release is expected in June, 2021.

@Amjad_Sahi ,

Okay, that sounds good. Can I expect the new Linux version to be fully
compatible with the Windows version or do you expect some discrepancy
between the APIs?

@patjep,

We will try our level best to synchronize the Linux version with Windows version as much as we can. Once the release will be published then you may test it and let us know your feedback.

@Amjad_Sahi ,

If you aren’t able to port some of your features I would appreciate it if you could
make sure to document the differences. A big part of my pain working with the
Linux version is lack of documentation.

For instance, according to the included docs (.chm file) it clearly states that the License class is available. It turns out that the header file is missing so there is no obvious way for me to license
the product. I’ll try copy the Windows license file as there seems to be License
symbols available in the binary file (libAspose.so).

Either way. It looks to me like the docs included in the Linux version has been generated
on Windows and then got shipped with the Linux version, which really isn’t compatible with
the provided documentation.

@patjep,
We have noted your comments and have logged them along with the ticket.

@patjep,

Please note, we will add docs for Linux version which would be same to Windows.

Hope, this clarifies your doubts.

@Amjad_Sahi ,

I do not think it would be necessary to maintain multiple versions of your documentation.
But if you use the same documentation then there should be clear notes that says, e.g.
“Does not work on Linux” or similar when an API is not available on both platforms.

In the current state of the API on Linux it would definitely be necessary to maintain
two different doc versions as even the namespaces are different, let anlone many missing
(or changed) classes and methods. But if the two are really similiar it should work with
just one version of the API documentation.

@patjep,

Thanks for your suggestion.
Since we want to keep synchronization with both versions, so the Docs for Linux will be the same to Windows. But we will still maintain a document (.chm file) in Linux release package accordingly as some users might use Linux binary only.

@patjep
Please try our latest version
Aspose.Cells for C++ 21.6.0(Linux)

@xinyazhu

I will try the new version as soon as possible.