This project is read-only.

CrossNet "Marketing"

Jun 29, 2010 at 12:57 PM
Edited Jul 3, 2010 at 9:00 AM

Hi Olivier,

Thanks for creating CrossNet and releasing it online, I think it is a great idea and has a lot of potential!

I appreciate that the community involvement picking up CrossNet and running with it may not have been as high as you may have hoped to date, I have a few thoughts on this which may be worth considering based on my experience of finding the system.

I eventually stumbled across the CrossNet codeplex pages in March 2010... I had been looking off and on for a period of 2 years prior for any tools that could assist in translating some projects I have worked on from c# to c++ in a way that included a light weight garbage collector - I want to be able to develop in C# but have the code translated/converted to create c++, and then run/compile on windows/linux/freebsd boxes - much like your workflow.

My main drivers and requirements were slightly different than how you currently "position" CrossNet:

  1. Speed/Performance
  2. Security (Seeing reflector with some of the addons which automatically convert and export entire MSIL assemblies to C# is an eye opener for those unaware - I realise there are tools to make this less straight forward, but the point still remains)
  3. Not requiring end users to install Mono/have a specific version of the .net framework installed.
  4. On some platforms Mono might not be available/work too well - older versions of freebsd when I was originally looking for example.

My searches used terms like "c# to c++ translater", "c# to c++ translator", "c# to c++ converter", "c# to c++ convertor"... I didn't come across your site at all. I eventually accidentally stumbled across your site while on another site like codeproject - though not specifically looking for a convertion tool at that point in time. I downloaded CrossNet in March 2010, created a temp directory to play around with one of my projects for a day or so - started looking good but I discovered I had a large task to convert my code in my nunit tests to no longer use extension methods (introduced in .net v3.0). I put that on hold as I had other things come up with work... 3 weeks ago I decided to start back on it... I couldn't remember the temp directory nor the name "crossnet"... spent 1 hour trying to refind the website on the net - went back to all my old search terms and didn't find it there either.  Earlier tonight just bumped into a generated c++ piece of code on my machine with the crossnet header at the top - so starting again with CrossNet. 

The point of all the above is - I think your product is great (obviously alpha at this stage, but huge potential). I believe CrossNet is missing out on a large chunk of potential userbase due to not appear in the search engine results for the way some of the potential users are searching.

Here are some thoughts:

  1. Does coreplex provide you stats with number of visitors over time etc? Perhaps you could consider spending a little more time on adding to the front page other uses and include the keywords I used to see if traffic patterns improve and more interest is shown in the project?
  2. In my view the getting started page should also be directly linked to from the front page and in another colour or something so it stands out more... most people want to jump straight into it - I ended up using the wiki search page looking for "start" after rereading all of the discussion points... I had got distracted with other links on the site and didn't find the Home->Overview->Getting Started path.
  3. Once people find the site, getting them to try the system is another aspect... I appreciate you may not want to spend huge amounts of time due to the levels of interest to date, but just doing a minor refresh to the code... making it work with the latest reflector release with no reported errors and including a visual studio 2008 based solution would prevent the project looking like it hasn't had a release since 2007. Even doing no changes but just a new version number and 2010 upload date can go a long way to avoiding the appearance of an abandoned project ;). I am going to have to hack something up along those lines and would be happy to send it to you if that would save you some time - let me know if you would like me to.

There are lots of other things that could be done (working with gcc, then working against .net v3.5 assemblies would be two features high on my list - threads will become more and more important with multicore processors becoming the norm), but the above 3 points above I think could increase the interest for the least amount of effort on your part.

Thanks again for releasing the tool and all the work you have put in so far!


- Mike

Jun 30, 2010 at 8:32 AM

Hi Mike,

Thanks for the kind words :)

My target audience was more game companies, but you are right - I am not linux guy - I overlooked another potential market (actually maybe bigger :)).

In the past few months, I started to play again with CrossNet (runtime compiling on gcc, not the generated code yet though, 2010, last reflector release...). This has been paused a bit as I recently changed job and moved from FL to WA. Depending how much free time I have with my new employer, I hope to have enough time to continue working on it.

Thanks for the advices on the marketing side, I initially did not want to oversell the project and am not that focused on it, it was mostly a pet project at the time. Also there was some conflict of interests with my previous employer, but it is over now :).

I'll keep your priorities in mind for the next release. I will need help on the GC for the multiple thread though, as it is going to be a real PITA :).



Jul 3, 2010 at 8:56 AM
Edited Jul 3, 2010 at 9:05 AM


No idea why my previous post had all its formatting removed, I have fixed it up now.

Have you considered using a C++ Garbage collection library?

It seems the most commonly used is the Boehm-Demers-Weiser Conservative GC - there is a Wikipedia entry on it, search for "Boehm garbage collector".  Mono even uses it currently (though they are looking to replace it, if it has been okay up until this point it must be pretty reasonable).

Unsure if using this GC would create problems for supporting some platforms you are interested in.  There is also a GC called TinyGC which aims to use the same API as the Boehm GC, run on memory constrained platforms/be small/portable etc, but that doesn't appear to support c++ at this point in time.

Possibly worth considering if you haven't already.

- Mike