About Adeptive Software
Adeptive’s leading product, ResWare™ V3.0, is a real estate process flow software package that can be customized to manage any workflow process in the industry. We were previously using Microsoft Word and Excel automation for generating templates and Ghostscript to generate PDFs. We began having serious performance problems recently, where Word would hang, causing all sorts of problems.
Requirements Scenario
We were using Microsoft Word and Excel to dynamically generate documents by manually populating Word merge fields and Excel cells with data pulled from our database on the fly. This was implemented using COM interop objects with C#.
This was ugly to say the least, as the COM bridges cause memory issues (every object needs to be explicitly released). This would often cause Word and Excel instances to be left hanging around on the server, which was also not good. In addition, we were using Ghostscript to convert Word and Excel documents to PDF on the fly. The approach we were using did not exactly lend itself to a high-volume,multi-threaded, scalable approach.
We wanted to remove the server-side dependency on Word, Excel, and Ghostscript. In various technical bulletins, Microsoft has made it very clear that Word and Excel are not designed to be used in a server environment, and should not be used for that sort of thing.
We discovered this was the case when we tried to use Office to do just that, in a high-load environment. We managed to work around most of the issues with clever code, but Word and Excel still caused problems, especially as the load went up. Word would crash randomly or, even worse, generate a popup that would freeze the entire template generation. We eventually came to the conclusion that our approach was not scalable to the levels we needed. At this point, we did our homework and turned to the Aspose product suite.
Solution Implementation
We recorded all of our PDF generation and Word and Excel template populations to use the Aspose components.
Recoding did not take long at all. The APIs are very clean and intuitive, and the documentation is excellent. Redistribution was simple, as each component has a single DLL with no dependencies. It’s pretty much just plug-and-play! Re-writing the code, which would have taken several man-months to develop, took just two man-weeks to entirely swap out. We only wish that we had known about Aspose when we started developing the product five years ago!
When we were using Word and Excel, we had to start our server process on the console, since Word and Excel were occasionally throwing up pop-up dialogs. If the server process was running as a service, the pop-ups wouldn’t be visible, and the server would come to a screeching halt. In addition, the calls that had to be made to Ghostscript also generated DOS windows. Whereas Aspose is all DLLs and we finally don’t have pop-ups, windows, or other craziness to worry about and we were able to change the server into being a service, at last!
Lastly, the support provided by Aspose was exceptional, even before we had bought the product and were simply evaluating its use. Questions posted in their support forum were responded within hours, usually with a required solution. I can’t stress enough how important this is. Other 3rd party providers’ “support” is laughable compared to what we received. No waiting for months for a solution and a new build!
Benefits
Once implemented, we immediately noticed a 4x speed increase in the template population and PDF generation. Our template generation is very reliable now, and we’re confident that we can handle the load that our larger clients demand.
We don’t even need Microsoft Office installed on the server anymore! Our clients are much happier and we receive fewer support calls, which obviously saves time and money.
I can honestly say that I haven’t had a better outcome with any 3rd party provider (and we’ve had to use our fair share of them)!