Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>as others have your question mostly covered, I'd just like to quickly comment on your considerations:</p> <blockquote> <ul> <li>Learning .NET might be fun and might result in less code / first steps in a more modern environment.</li> </ul> </blockquote> <p>Totally agreed. It is definitely fun and usually it does result in less code. The investment you make now will certainly benefit you in future projects. It is way faster to program in .Net than in C. Not only it is easier, but it is also safer. You are isolated from many programming errors common in C mostly related to memory mismanagement. You also get a very complete managed API to do stuff you would usually need to build your own framework.</p> <blockquote> <ul> <li>Sticking with what I know will lead to a predictable outcome in terms of effort and function (except for the optional XML stuff)</li> </ul> </blockquote> <p>Hence your indecision. :-)</p> <blockquote> <ul> <li>VB looked great at the beginning until the projects where about 80% done, then the pain started and the DLL coding in C. I am concerned history could repeat itself if I choose .Net. My primary objective is the functionality. Effort is a concern. The XML parsing is optional.</li> </ul> </blockquote> <p>.Net is an entirely different beast from VB. Most of the things you wouldn't be able to do in VB, or at least do them easily, are supported by .Net. For instance, Windows Services are a snap to build in .Net. Socket programming is also supported, but there are very few reasons to do it yourself, as you've got loads of communication APIs with .Net. You've got web-services, .Net Remoting, MSMQ management, and more recently WCF. Proper multithreading is supported by .Net, unlike the idiotic apartment model in VB. In case you really need to go low level, you can also actually use pointers in C#, inside of unsafe code blocks, even though I would never advise to do so.</p> <p>If you really need to do things in C, then integrating is also relatively easy. You can create COM objects and use interop to work with them from .Net. You can also interact directly with plain ol' dlls using DllImport. Using <a href="http://www.pinvoke.net" rel="nofollow noreferrer">www.pinvoke.net</a> makes it easier.</p> <p>When I developed in VB, sometimes I also had to go back to C++ to do stuff that I wasn't able of doing in VB. Since I began programming in .Net, the only extremely rare scenarios I would need to go back to C++ were when I needed to use legacy COM components that used types I was having a hard time to marshal via interop. I wouldn't worry about history repeating itself.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload