Managed code / unmanaged code interoperability
Some of the customers of ours still have many projects for which original development began 20 or 30 or so years ago! It is hard to maintain and extend such software. It is impossible or economically not viable to migrate at once from old programming languages and environments. So to extend such software it is easier to hire us and develop the new features in .NET. There are several ways of connecting old code written in C/C++/Delphi/Visual Basic/Clarion with the new C#/XAML code. We use two technologies: C++/CLI wrappers and Unmanaged Exports. Both solutions were trialed by fire in real world applications. Using those methods were not only able to extend an old application with .NET functionalities but also to inject WPF based controls into unmanaged windows making the transition seamless for the end user. Doing this the managed methods are not exposed as such. Instead, inverse P/Invoke thunks, automatically created by the common language runtime, are exported. These thunks provide the same marshaling functions as conventional P/Invoke, but in the opposite direction. Technically the main idea is to decompile an already compiled module into IL code, change module’s VTable and VTableFixup tables and recompile the DLL. This operation can be performed invisibly to the developer by using NuGet package called UnmanagedExports. Using C++/CLI wrapper eliminates the need of IL manipulation as the tables are automatically created using C++/CLI.
One of our interop projects is currently in production in a large Swiss credit bank. In this project we integrated a BPMN engine into existing Clarion application.
Another large project that uses interoperability layer is a software for civil engineering that calculates the constructions made from concrete.
We are actively developing software around interoperability like an unmanaged wrapper over the .NET version of SAP CrystalRepors reporting solution or an Entity Framework generator for Clarion data dictionaries.
At CODEFUSION we invest in modern technologies. Today we carry in our pocket or backpack devices far more efficient than the desktop computers we used to use. Our strategic decision was to join the trend and create software for smartphones and tablets.
For one of our Polish customers, we created a mobile client application for a transaction system. We provide apps for the four main mobile platforms: Android in Java, iOS (iPhone) in ObjectiveC, Windows Phone in C# and Symbian in C++. For one of our German customers, we created a prototype of the tablet based mPOS business application – Mobile Point of Sale.
Business sector: finance
In partnership with C.I.C Software GmbH, we have established ourselves as a notable presence in Europe, focusing in the German speaking regions. System integration is most definitely one of our specialties. We use EAI, SOA* and other cryptic acronyms in our work with banks, leasing firms and car manufacturers (financing car turnover). Our software manages massive event driven data processing. We are currently entering the area of financial systems through mobile, online banking.
Most of our solutions for finance are based on the Oracle database and Microsoft .NET technologies involving Windows Services for data processing and SOAP or Microsoft WCF for communication.
Business sector: industry
Our Stuttgart, Germany partner GBUmbH is a leading provider for process optimization software in Germany. GBUmbH provides complex solutions for various industry and decision process optimization areas. That includes (but is not limited to): pharmaceuticals, food manufacturers and heavy industry.
CODEFUSION, working together with GBUmbH, is present in the world of big industry. We are working on geo data visualization through aiding decision-making using GUI tools to interpret the raw geo data in large scale factories and industries. The GIS solution we are co-creating interprets the GPS signals and event driven RFID communications. The real time data is visualized on the Internet (with Microsoft Silverlight technology) and on the local dispatcher’s computer (Windows based using Windows Forms and Microsoft WPF).
Busines sector: tourism
The Internet gained importance in tourism much earlier than in other industry branches. It is a major medium for placing orders or contacting customers and agents. From the technology point of view, tourism demands innovative approaches and swift solutions. We’ve learned that during our long cooperation with our local partner Almatur-Opole Sp. z o.o. In a project for incoming tour organizers we’ve developed a multi-technology environment (Microsoft .NET, RubyOnRails, PHP) that gathers and processes data from various booking systems and helps to organize the work of several agents in Poland and abroad.
Our Microsoft WCF based system is designed to deliver data for distributed clients in various configurations. It is open and scalable. Our built-in web content system makes it possible to utilize (affiliate) booking systems in three different modes (easy to set up for clients with different technology know-how).
While carrying out industrial software development for our larger clients, we don’t forget about our smaller customers on the grass roots level. We strive for the cutting edge of new technology, and create websites of various sizes and complexities, with the end user in mind. We invest in well-established, proven technologies like WordPress and Joomla! Web shops that we create are based on Magento. We work together with exceptional graphic designers and combine their designs with our web expertise to provide beautiful and stable web experiences.
CCRM/I – application for CRM systems and call-centers for importing mass amounts of data. ASP.NET plus background batch processing.