Anybody try C#?

I'm heading up this project at work that we recently decided to go with C# as our primary language.

To make a long story short, the project started out in Java, and after a couple of months of development, certain decisions were made on a wide range of things, and we basically had to go back to the drawing board, particularly because there was going to be a need for a lot of native code.

I had already done quite a bit of JNI/C++ code in order to access a bunch of Windows function calls, but there were a bunch of other things that were added that were never part of the design, and they all relied upon COM.

Anyhow, I've been doing C# development for the past couple of weeks, and I must admit that I'm very impressed with it thus far. In terms of addressing things that have been lacking in C++, I feel that they've definitely done a good job. The language is so much like Java, it's almost ridiculous. But this is a good thing in my book, because the learning curve was basically zero.

I've already played around with a bunch of unmanaged/managed C++ code, getting it to work correctly from C#...so that much is a snap. The User Interface concepts are like a cross between that of JBuilder and Delphi...

Overall, I like it a lot, and look forward to developing this project. Has anybody else taken a walk down this dark road yet? I'm curious as to what others think...
 
C# The good & The bad

Well,


I started doing some experiments with C# a while ago and had some quit remarkable results.

Speed: C# did as everyone expects loose a bit speed against c++ but much less than expected. It was a tradeoff I was willing to make in order to have a clean windows API & great language constructs.

Memory: This was a very big dissapointment. I made the most simple C# application you could make to display a string in a window. I compared it to the default win32 c++ application which did exactly the same. C# needed 8mb of memory while c++ only needed 600kb of memory. I lanuched a few of these windows as I wanted to see whether this was because of the overhead of running a .NET runtime and this was a sort of global memory pool: not at all: each application required it's 8mb of memory. This was a small dissapointment but as memory is becoming less of a problem again this was a tradeoff I was willing to make.

The only thing I want to see now in C# is support for templates & more API bindings (OpenGL ...); when these things happen I will for sure say goodbye to c++. (Also be sure to check out gomono.com as these guys have a great linux implementation of .NET)

Jurgen
 
Well thee fact that it is very much like Java is a good reason for it not to be around, but MS wants to proprietarize for market control purposes.

I've poked around with C#, it's good, but so is Java. *shrug*
 
The more I use C#, the more impressed I am with the massive amount of flexibility.

I think that's the real distinguishing factor right now. C# can pretty much work with just about any chunk of code, and you have a ton of functionality at your disposal...right out of the box.

The .NET IDE is also way bad ass as well. There are some things that I still like better in JBuilder, but the one deal I couldn't stand was the performance. Not only that, but JBuilder has been this memory hog for as long as I can remember...and they've been blaming Sun for it all along.
 
Typedef Enum,

Wow, I didn't think people liked JBuilder. ;)

After using Forte CE, I was convinced it's a better editor. The GUI building is ass, however.

I haven't messed around with the IDE that much, what's so special, except for the fact that MS makes a very bad ass editor - at least of C++.
 
I work for my school with visual.net on a project wich include a graphical interface (made in C#) and the main code, with the DB acces, ... in C++ .

It's amazing what you can do with this tool, and the C# really impressed me :eek: . Without any help ,except one of two shearch in the .NET index, for our first project, we made in 4 hours a small explorater thaks the facility of C# :eek: .
 
The best Java editor, in fact the best code editor you will ever find, is from IntelliJ. Go to IntelliJ.com/.net/.org and download the 3.0 EAP of IDEA.

It does all of the normal Intellisense/Code sense stuff, but has three more levels higher. For example, it audits your code as you type, suggesting alternatives. It can automatically suggest variable names, casts, generate stub implementations of interfaces as you type.

It has dozens of refactorings. You can rename a method, and it will rename every single call to that method everywhere. I mean, there are just way too many things to list.

When you run it and the type of the day pops up, just read all of them.

I can type code almost 3 times faster with IntelliJ now, and it accelerates alot of laborious issues like writing try/catch/finally blocks (just highlight some code and hit Alt-Insert, surround-with try/catch, etc)


And it even has Emacs keybindings!
 
C# is pretty darn flexible. Ill give you that.
Hey does anyone know any good C# forums?
I am about to take me MCSD exam 70 316 for C# and am a bit screwed.
I need more garbage on ADO.

Oh and one things that dissapoints me about C#, is that fact that they didnt really include a true (Open GL, DX) graphics library in .NET.

Hopefully they will release DX compatability soon, cuz currently the Open GL wrappers, are pretty darn slow.

And yeah, who else out there is seriously giving C# a go?
 
JacksBleedingEyes said:
Hopefully they will release DX compatability soon, cuz currently the Open GL wrappers, are pretty darn slow.

They already have, DirectX9 has full .NET support. It comes with "managed DX" components, and a whole SDK full of C# documentation and samples.
 
I like C# better than Java, because it isn't as restrictive (still, static typing and real object orientation just don't mix IMHO).
However, both languages are too verbose, unflexible and semi-object-oriented for my taste. I'll stick to C++ for performance intensive tasks and use Ruby (now THAT'S one well-designed and powerful object-oriented language) for everything else.
 
In theory, C# _could_ be platform independent, provided a .NET runtime were provided for Linux/etc.

With that said, there are initiatives out there to bring .NET to Linux. I believe there are at least 2 such projects right now, and posisbly more.

I've now been using C# since about the beginning of October, and it's a damn fine language. In fact, I just fired up JBuilder just to do some comparisons, and it's really amazing how my head will get hazy when I've been away from something for just 2-3 months. Prior to transitioning to C#, I had pretty much been doing Java for the previous 18 months straight.

Anyhow, now that I've had a chance to really test drive C#, there's a lot of stuff to get into. I've included some managed C++ code, incorporated some COM objects, as well as better understanding the various Attributes (especially for the nifty PropertyGrid component).

If there's one thing I would really like to see addressed, it would be graphics performance. I'm slowly getting to the point where I really need to do some serious profiling to see how/where I can better my code, as it gets too choppy.

The IDE is really nice. BUT, there's one thing I really wish they would implement. You have no way of seeing component hierarchy, similar to JBuilder. IE JBuilder uses a Tree so you can see the relationship between all UI components for a given class/component.
 
Back
Top