We wanted to use aspose.cells for .net component to general excel. Component will be used in web application using. Server side scripting is written in ASP, which calls a .Net Wrapper through CCW.
The .Net wrapper will use the ASPOSE.CELLS API to generate excel.
1) Are there any issues if we use the ASPOSE.CELLS component in web application when concurrent different users are trying to carry out the excel generation operation at the same time. If yes, what all the safety checks / best practise that needs to be followed?
2) Is this component a MTA / STA?. If its STA what will be the performance impact?
3) In the API documentation, the below statments is mentioned
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
In case of web application(as mentioned with the above setup ASP -> CCW -> .Net Comp -> ASPOSE CELL Component), what needs to be taken care so that there are no multi threading issues while coding the app and when deployed in a web server having Microsoft IIS 6.0 / 5.0.
4) Any case studies with the usage of the compoennt in web application will help?
5) We have to support the excel generation in 9 languages like Greek, French, German, Portugese etc..). Are there any known issues / limitation?
6) If you have any best practise document while using this component will be helpful.
It would be very helpful if you could answer each of the points above in detail.
Well, yes, Aspose.Cells does support Multithreading and you may create multi-threaded applications using Aspose.Cells. You can use Aspose.Cells APIs through .Net wrapper class for spreadsheet generation and management. However this are some points to be noted, I try to explain and answer some of your queries:
1). Aspose.Cells library is written in managed C#.NET, So, concurrency and multithreading is not the problem in any respect. For your info, to save memory, there is a global shared string table in an Excel file. So if you change a workbook data concurrently in multi-threads, the result may be unstable. There is also a global section in an Excel file which contains global information of drawing objects. So if you want to change drawing objects settings concurrently in multi-threads, the result may be unstable.
So it is to be noted: the best way to utilize multi-threading is to create a separate Workbook objects in each thread. Your application can handle multi-workbooks at same time. But please don't handle a single Excel file in multi-threads.
3). I think after reading above, you may better understand why Instance members are not guaranteed to be thread-safe.
5). There is not any known issues involved.
6). Please check the components' wiki documentation that best explains the usage of its APIs related the features it provides: