Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

switch from .NET to something else ???

doe544
2010-11-18
2013-06-12
  • doe544
    doe544
    2010-11-18

    In the Help forum I found the Narocad on Linux thread. Is it possible to switch from .NET/Mono to something else? Is there an alternative out there in the open source world? The screenshots looks really awesome but I couldn't install narocad on XP SP2 I guess it has something to do with the .NET framework (xp tells me .net 3.5 is installed but some programs show that only 2.5 is installed). As this project is not that old would it be possible to move away from .NET/mono to make this nice program work on all platforms fine??

     
  • bxtrx
    bxtrx
    2010-11-18

    The short answer: yes it is possible to make it work on any platform :) we just need a cool developer that has some free time (around 1 year) to make that happen. There are other alternatives to .Net/C# (for example QT).

    Best regards,
    Mihai

     
  • LordCip
    LordCip
    2010-11-18

    Hi Doe,

    It is practically impossible to make it run for now out of .Net (or probably in close future to Mono) runtime. To be honest, I think that NaroCAD cannot make it without .Net and there are also some free CAD systems that did it without .NET (FreeCAD is a good alternative).
    NaroCAD uses internally advanced controls and technologies that have to be practically rewritten to make into another platform. Does it worth to be written in C++? Why not in Javascript?
    Anyway, before discussing which is the best runtime to run at, I recommend to you to download .Net framework from here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en and try after this NaroCAD. Hopefully you will like it and who knows, to say to others about it…

     
  • doe544
    doe544
    2010-11-19

    "There are other alternatives to .Net/C# (for example QT). "
    I only have low coding skills in C++ and Java and don't know much about the whole libraries out there. Is .Net/C# or QT just used for the GUI so it can be replaced with wxWidgets (or something else) or would that not work?

    "FreeCAD is a good alternative"
    Yes. NaroCAD and FreeCAD are the two CAD programs I try to tinker with :)

    "Does it worth to be written in C++? Why not in Javascript? "
    For me the answer is clear: YES :P . Just kidding. When I started to "learn" Java after learning the (real) basics of C++ I thought "what the heck is this" instead of just using "cout" I had to use "System.out.println (or what ever it is)" . As you can see I favor C++ :) .

    "I recommend to you to download .Net framework from here: "
    Thanks for the link. Will try to install that one.

     
  • LordCip
    LordCip
    2010-11-19

    Hi Doe,

    C++ is nice language. Sadly is hard to be managed without years of strong skills in programming, so probably that's why C# is better to be used on a larger scale applications. I could say to you some reasons why is better to use JavaScript (that is different from Java) or Python (which are dynamically typed languages). Some evidence that a language as Python or JS are better to be used are: Firefox (they use XUL to define UI elements which are Xml + callbacks in JavaScript) and Python is used in FreeCAD for callbacks. NaroCAD uses WPF because the interface is defined declaratively in XML (language named as XAML).
    C# even  may be more verbose than C++ (you should write std::cout to be more correct, using namespace std is a bad practice in large C++ programs as they slowdown the compilation speed and not only), it have some areas which is really much more concise than C++: to define delegates, properties, to not do memory management explicitly, to use collections, and so on.
    For example this C++ code: std::vector<int> intList; for(std::vector<int>::iterator iter = intList.begin(); iter != intList.end(); ++iter) {…} is in my view an awful code.
    C# equivalent: var intList = new List<int>(); foreach(var intValue in intList) {…} is much more clear and concise.
    So I encourage you just to try to take Visual C# Express 2008 and TortoiseHG and take a look on code. May be hard to read at first time, but you may find really cool things inside it, and who knows, you may take an area you like, and contribute to all community.

     
  • doe544
    doe544
    2010-11-19

    "you should write std::cout to be more correct"
    thanks for the hint

    "var intList = new List<int>(); foreach(var intValue in intList) {…} "

    sound like
    intList = {}
    for 1, #intList do

    end

    in Lua (tried some hello world stuff)

    "and who knows, you may take an area you like, and contribute to all community. "
    I guess my coding skills aren't enough for such a big (and complicated :) ) project.

    Maybe on day "a cool developer that has some free time" appears out of nowhere ;)
    (not me:) )

    btw. When trying to start NaroCAD first time I get a "AppShell" error and NaroCAD tells me that I have .NET2.0.5… installed.
    But when looking into the Sosftwaremanager (or whatever it is called) of XP it tells me that I have .NET 2.0, 3.0 and 3.5 installed.