Extention with libraries - problem to load dll
Question

Hello!

First of all, forgive me (and correct me) when I am not using correct terms or naming, I am very new to OutSystems (and .NET for that matter).

I had to build a .NET extention using Zbar, OpenCV (Emgu) to detect any type of barcodes on a page.
If it helps: it's for a reactive application, on premise, OS11.

I had quite a bit of problems getting it compiled, it was too heavy and I bumped into memory problems:


Our OutSystems coach took a look at it, and we had to remove quite a lot before it was possible to even upload/save the extention. However, even though it compiles/builds/... in Visual Studio, when I try to use it in OutSystems, it gives me the next error:



So, I went back to Integration Studio and Visual Studio, and I didn't find de libzbar-0 dll anymore. Probably it got removed when cleaning up the bin-folder. I added it again, but it doesn't solve it.
(the list is too big, so I snipped out the two ZBar dlls).


After some more problems with the OutOfMemory errors in Integration Studio, it's available to use. Nonetheless, the error stays the same: "Unable to load DLL 'libzbar-0". It is included in the package. Getting closer to the delivery deadline, I am at my wits end. :)

Anyone any idea how I can troubleshoot this? Or what I did do wrong?


Thanks in advance!

have a nice day,
Marie-Lynne



Hello Marie-Lynne Block,

Looks like you are trying to use OpenCV library in your Outsystems extension. From what I know its a very heavy library that takes a lot of storage and memory. 

For the out of memory exception and the step at which you got the error looks like your local machine is running out of memory trying to save the extension before upload to server. 

Even though it may be possible to run the OpenCV via extension after a lot of struggle, I wouldn't recommend as every minor change goes through the heavy processing. Please do note Outsystems stores every version of your extension for rollback scenarios as well which might add up to your environment storage space too. 

From my point of view, What i would recommend though is to use an external service(Off the shelf) or host your custom solution(use OpenCV library and expose as an api) to do the image processing or and consume that from Outsystems application which might be a better way to do it.




Hi,

Thanks for taking the time to answer. I completely agree with you. It are very heavy libraries and the .NET versions aren't as performant if you compare it for example with the Python libraries on which they are based on.

I did try out IronPython, but in the end it didn't change much in memory and "weight" of the extension. It wasn't a very successful in running either. (But, that's probably my fault)

I did consider your idea of an external service. However, we are the prototype within the company on making everything (or as much as possible) in OutSystems, so it would have been nice if it would be possible. But I think, we have to consider limitations as well and this might be a good example of where an external service is a better choice. And in extension to that: Python isn't a 'supported' technology (can be used as an exception, though). So that was another factor for us deciding on a .NET-extension for OutSystems. Or at least to try to work out something.

But yes, I think we should look at some other options now.

Thanks for your answer! Appreciate it!

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.