First Public Release of csPorter for C++

Share on FacebookTweet about this on TwitterShare on LinkedIn
Since the reveal of an innovative software development product demands its existence in various popular programming languages/platforms, the code porting has become really a great challenge. As we already shared that we were working over a code porting solution to convert C# codebase to C++, we are pleased to launch its first version, csPorter for C++ 18.9. It is a solution for fully automated code conversion between C# and C++. It will enable developers to port their C# projects/applications to C++ codebase with full control and it will save their time and efforts used for manual porting process. The csPorter for C++ consists of three components; Porter, GUI and Library. The Porter is a command line application used to port C# code to C++. The csPorter for C++ GUI is an application provides graphical interface to the Porter for porting C++ Projects in user-friendly environment. And the CsPorter for C++ provides a special support library which comes in pre-compiled form for all supported platforms and exposes equivalents for .NET native types that can be used by both ported code and user code that works with it. API Preservation, Type System Reproduction, Memory Management, Ported Code Overriding are some of the salient features of the csPorter for C++. Please check documentation for complete list of the features. The following sections describe some of the features of the csPorter for C++.

Source Code to Source Code

The csPorter for C++ application needs source code of C# project for porting rather than compiled assembly. This allows reproducing even internal classes and routines in the same way in ported C++ code as they are implemented in original C# code. It is impossible to use the csPorter for C++ on IL code produced by C# compiler. Once you have converted your project to C++, you can build it for any of supported target platforms.

External Dependencies

C# code can have dependencies from the libraries you don’t have source for, or there can be legal situation preventing one from porting the code. In such cases, there is a way to substitute manually written code as a replacement for dependency code which is not available for porting. There are special rules for how to implement your API in such a way so it can be used with ported code. Except for API, there are no requirements on how to implement such parts of the code, so you can use third party library available on your target platform.

Unit Tests

The csPorter for C++ application support to port C# unit tests written using the NUnit and XUnit frameworks to C++ and run tests on ported code. Ported tests can then be run on ported code. So, if original code is covered with unit tests, ported code is also covered.

Documentation

You can get detailed information about the csPorter for C++ by visiting the documentation. It is a complete guide about the application which helps you understand the application and convert your C# projects to C++ codebase with ease.

Got Questions?

We’re open to feedback! Visit the csPorter for C++ forum and tell us what we can do to make the csPorter for C++ application fit your needs better. You can share your findings, difference of results, new feature requests and inquiries with us via this forum. This will help us improve the overall Product quality and usability in terms of usage.

Resources

  • Product Home Page– Gives you detailed overview about the csPorter for C++
  • Online documentation – Complete help documentation.
  • Download– Download latest release of the csPorter for C++
  • API Reference Guide– Details of the namespaces and classes of the API linked with the ported C++ Code
  • GitHub Examples– Provides ready to port Example Projects
  • Support Forum– Write to us if you have any query or inquiry about the csPorter for C++
  • Blog – Do not limit yourself, enable Blog subscription and keep yourself updated with the latest news on the csPorter for C++
  • Video Tutorials – Watch csPorter for C++ video tutorials

Start a Free Trial Today

Start a free trial today – all you need is to sign up with the csPorter. Once you have signed up, you are ready to try the csPorter for C++ and port your C# projects to C++. You can easily download the csPorter for C++ Application for evaluation. The evaluation download is the same as the purchased download.  The evaluation version (without a license specified) provides full product functionality, but it limits the input C# project structure. If you want to test the csPorter for C++ Application without the evaluation version limitations, you can also request a 30-days Temporary License. Please refer to How to get a Temporary License?
Posted in CodePorting.Native Product Family | Tagged , , , , | Leave a comment

Launching csPorter for C++ – A Tool for Auto Porting of C# Projects to C++

Share on FacebookTweet about this on TwitterShare on LinkedIn
Code porting has become very popular and high demanding among the Software development community to present their solution for multiple platforms. The csPorter team is going to reveal a smart code porting tool, csPorter for C++. It is an application which automatically ports C# projects to C++ with high accuracy. It saves hundreds of development hours and money that helps to release the same version of the software for different platforms. It converts C# codebase to C++ in such a way that it can be used by C++ developers in the same way as if it was originally developed in this language. This product has already been extensively used to port many .NET Products to C++ codebase. The csPorter for C++ provides complete documentation, working examples and free support so that developers can learn it quickly and use with ease.

csPorter for C++

The main goal of the csPorter for C++ is to port an existing enterprise level C# project to C++ libraries automatically. The input for the csPorter for C++ is a C# project and a configuration file that contains options governing different aspects of the conversion process. Its output is a set of .cpp and .h files and a set of Cmake configuration files which can be used to generate project files and makefiles and build the sources for one of the supported platforms/compilers. It is designed to keep the memory footprint as small as reasonably possible. For this purpose a .NET to C++ API bridging library is distributed with the ported C++ Project. The ported C++ code relies on the bridging library that provides .NET-like APIs for C++ and follows the same design principles regarding speed and memory usage. Following are some key features of the csPorter for C++:
  • Source code to source code
  • API preservation
  • Type system reproduction
  • Memory management model
  • Porting control
  • Support library
  • Typemap
  • Ported code overriding
  • Satisfying External Dependencies
  • UnitTests Porting

How It Works?

The csPorter for C++ provides two different options to port C# code into equivalent C++ code. You just need to download latest release of the csPorter for C++ and use any option of your choice. 

Initial Release Availability

We are currently working on finalizing the csPorter for C++ release process and intend to share this publicly soon. So, stay tuned for further news about this upcoming porting application. You can reach us on csPorter forum for your queries related to the product and we will be more than happy to assist you in this regard.
Posted in CodePorting.Native Product Family | Leave a comment