Opinions on using C#.NET

Irrlicht.Net is no longer developed or supported, Irrlicht.Net Cross Platform is a much more complete wrapper. Please ask your C# related questions on their forums first.
Locked
Guest

Opinions on using C#.NET

Post by Guest »

The company I'm currently working for is implementing a new ERP (Enterprise Resourse Planning) software and retiring the old HP3000 MPE-based system. The new software is 100% Microsoft from end to end with a large amount being in .NET.

So, I've been told that I'll be coding applications in either C#.NET or VB.NET within the next 6 months.

I'm a traditional C/C++ programmer with 15+ years experience. In order to get my head wrapped around the .NET framework, I've decided to port my MinGW/Irrlicht-based simulation effort to either C#.NET or VB.NET. I figure that I can learn .NET and get my simulation further along at the same time.

I'm favoring C#.NET over VB.NET and would like to hear from anyone on this board who is using it with Irrlicht. Opinions anyone? Pitfalls? Good/Bad points?

Thanks!
Guest

Post by Guest »

well, i like vb better because that is what I started with, so that is what I know... They are both just as powerful as each other and compile into the same CLR, so it does not matter which one you choose as far as that is concerned. It just a matter of preference, and I'd go with vb, cuz it is syntactically easier.
Foole
Posts: 87
Joined: Mon Aug 29, 2005 10:08 am

Post by Foole »

I would recommend VB.NET to people coming from a VB/Pascal/Delphi background and C# to people from a C/C++/Java background. (btw, it's just called C#, not C#.NET). My preference is C#.

The main differences i've noticed are that VB.NET is not case sensitive and I think it doesn't support operator overloading. I've heard that VB.NET will throw an exception when a variable's value goes too high whereas C# will just wrap around in the same way C/C++ do.

VB.NET does not support unsafe code (eg pointers) and C# does not support late binding.

Lots of nice features are being added to C# in version 2.0 (eg templates). I don't know if any of them are being added to VB.NET.

Hope that helps.
pfo
Posts: 370
Joined: Mon Aug 29, 2005 10:54 pm
Location: http://web.utk.edu/~pfox1

Post by pfo »

I prefer good ol' C++ for coding with Irrlicht, mostly because not everything in .NET is implemented yet, and I don't like the idea of using a wrapper and adding an extra unnecessary code layer on top of something, even if it's really small overhead.

However, at work I use VB.net and I have this to say about it: it's pretty good. I used to use VB6 (hated that....) until we had the opportunity to switch to VB.net. I like VB.net because it's like VB, but it allows for nearly all the features of C++, like encapsulation and inheritange. The Common Language Runtime is also really nice, providing lots of functionality, although where C# and VB.net are concerned, they both use CLR.
VB.NET does not support unsafe code (eg pointers)
True, but I don't think any programmer supports unsafe code :) As far as pointers are concerned, you can use ByRef instead of ByVal when passing parameters, this is like using pointers. I think you can use something like pointers in VB, although we have not needed to do this at work. The true litmus test if VB.net could support pointers would be if you could build a linked list class with it.

If you wanted to get used to .NET, using it w/ Irrlicht might not be the best way, try writing some simple windows apps with it and check out its features. This is where you'll find the most significant differences in development.
austcro

Post by austcro »

You can build a linked list class with vb.net as it stands without using pointers because each object variable is a ref to an object. if you store the ref, then is it not a link to the next object in the list? It would be quite easy to set something like this up. However, there are some great collection objects already included, and with generics coming in .net 2.0 it is only going to get better.

Pretty much everything in the .NET framework is inherited from System.Object. However, there are other aspects of pointers that vb.net does not support like pointer arithmetic etc.

And operator overloading. What an excellent feature. vb.net 2005 will have this and other features that were missed in vs.net 2003. But my pref is c#. I use c# everyday at work and it has not let me down yet. I've gotta agree with your assessment of vb6. I also hated it. This is also why I prefer c# over vb.net as vb.net still has some annoying things left in it from vb6.
Locked