PDA

View Full Version : VS .NET vs VS C++ 6.0



Halcyon
11-21-2002, 08:42 AM
I know that this is kinda off topic. But i was wondering what you veterans think about .NET.

In you opinion, is Visual Studio .NET better or is Visual Studio C++ 6.0 better? Why?

[This message has been edited by Halcyon (edited 11-21-2002).]

davepermen
11-21-2002, 08:43 AM
i use .net

why? much bether c++ compiler..
and a nice funny ide http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Zeno
11-21-2002, 09:20 AM
I'll avoid .NET as long as possible, but I'm sure I'll be forced to switch eventually.

In the mean time, I use Intel's compiler in VC 6.0 IDE. Their compiler supports all the "extensions" that MS has had time to add as well as most of the C++ standard which MS can't be bothered with (template functionality mostly).

-- Zeno

Coconut
11-21-2002, 09:41 AM
Also due to the economy, my employer has been delaying to upgrade to .NET.
I guess it is highly dependent on applications. For us, there is simply no big reason to do the upgrade now. If I have to pick one to buy one now, I will choose .NET though.

Halcyon
11-21-2002, 10:15 AM
I've also heard that with .net, there can be a lot of problems. Has anyone with .net had any? If so what are they? I compiled all my programs from vs c++ 6.0 in vc .net and it worked just fine.

Humus
11-21-2002, 11:11 AM
.NET ... new improved compiler, new sucky IDE, links to new large MFC files that aren't shipped with any OS out there, so you need to ship them with your app.

So I still use MSVC 6.0

dabeav
11-21-2002, 11:53 AM
I was looking into switching from VC6.0 to .net. I heard all the good things about the advanced optimized compiler. BUT, there is a severly darkside to that. When you compile with .net, it loads all the .net framework data, and such, this seiously kills whatever performance advancements you got out of the compiler to begin with. Plus it links to a BUNCH of crap you dont need by default. I would choose to stick with VC++ atleast untill .net does what it promised to do, which was a write once compile once run on everything (Java style).

thefirstbigd
11-21-2002, 12:53 PM
My 2c: I really like Visual C++ .net, the compiler not only produces faster code, the compiler itself executes faster. It only starts loading framework stuff when you tell it to compile Managed C++ which doesn't apply to Win32 Projects. As for MFC, I've had some huge problems with that, ie not being able to package the runtime and not getting code to run on other machines... but fortunately I don't use MFC much.

Halcyon
11-21-2002, 01:48 PM
How in the world do you add a directory to header files in .net? It's easy in vc++ 6.0.....i can't seem to find it. There is so much stuff in .net too. I mean i'm overwhelmed with it. I only program win32 applications and most of then are just for graphics.

rgpc
11-21-2002, 06:04 PM
Originally posted by Zeno:
but I'm sure I'll be forced to switch eventually.

-- Zeno

Why? VC6 going to wear out? http://www.opengl.org/discussion_boards/ubb/smile.gif

It's not like MS ever fixes any bugs in any of their products so that can't be your reason...

64bit perhaps? http://www.opengl.org/discussion_boards/ubb/wink.gif

Hazem_vb
11-21-2002, 06:42 PM
I think you should use the .Net

Why ??

1)Integration between VS Languages .

How ??

**You can easily write a com component in any VS

language and use it in any VS other language

without any bugs which were famous in Visual

Studio 6.0.

2)Microsoft as i know is now developing OS

"Windows.net" in which all the .NET Application

will be supported .

3)Microsoft is now trying to make the .Net

applications portable applications like "Java"

by coordinating with its partners ...

4)Very Fantastic IDE .

5)Many Other Reasons but really the space is

limited to mention here .

Hazem_vb

An OpenGL Game Developer

Hazem_vb
11-21-2002, 06:47 PM
Originally posted by davepermen:
i use .net

why? much bether c++ compiler..
and a nice funny ide http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Welcome Back http://www.opengl.org/discussion_boards/ubb/biggrin.gif

davepermen
11-21-2002, 07:38 PM
.NET != .NET, dudes

visual studio .net has development tools to develop for the .net platform, namely vb.net and c#.net are made for this only. c++ is supported in 2 ways: managed c++ and the normal c++. managed c++ gets compiled into .net bytecode and fits to the c# and vb classes constructs what ever perfectly, so you can code with what language(s) you want in .net..

the standart c++ is just like before. it compiles down to an x86 executable. it does _NOT_ use .net, it does _NOT_ use huge mfc libraries if you don't ask for it, it _does_ produce very fast executables (and vc7.1 will be much bether again in that position, 98% c++ iso standard compliant, and inlining from other files, even from libraries.. so you can have optimized math libraries for example, simply link em and get full inlined optimized math routines. quite fun http://www.opengl.org/discussion_boards/ubb/biggrin.gif), compiles very fast, has very good and helpful compiler errors (espencially in templates, where they print out all type parameters..)
the ide is new, different, but by _NO_ means sucky. its very configurable, lets you set everything how ever you want, and thus fits perfectly my needs, your needs, and any others needs, too.
vs.net uses huge harddisk space if not installed correctly, else about one giga for c# and c++, wich is acceptable.. still big..
vs.net uses quite a bunch of resources..
the debugger is bether, too.. (while i don't need to debug often anyways..)

all in all, its a great product. i would never move back to vc6 except i get forced to. but i'm happy as well that i don't need to pay that horrend price for it. half because i can get it illegal for free, half because i can get it cheap due students connections, who get everything cheap from m$..

Licu
11-21-2002, 11:38 PM
I would like to move to .NET but for now it seems that Iím forced to stick to VC6. The main problem is with the current structure of our engine and the way that source safe now operates on directories. It seems that is impossible to add into a project, directories from another location (on the disk) and make them safe source controlled. The SS will copy the files into the directory of the project, so I will get multiple copies in every project that uses these external files. Plus, there are some annoying UI faults like poorly distributed buttons on frequently used dialogs (like the ok button on check out dialog). In average in the new UI I need to double button clicks to make the same thing as in the VC6 (maybe Iím not used with the new interface). But also it has some other major advantages that eventually will me to move to .net.

Licu
11-21-2002, 11:39 PM
I would like to move to .NET but for now it seems that Iím forced to stick to VC6. The main problem is with the current structure of our engine and the way that source safe now operates on directories. It seems that is impossible to add into a project, directories from another location (on the disk) and make them safe source controlled. The SS will copy the files into the directory of the project, so I will get multiple copies in every project that uses these external files. Plus, there are some annoying UI faults like poorly distributed buttons on frequently used dialogs (like the ok button on check out dialog). In average in the new UI I need to double button clicks to make the same thing as in the VC6 (maybe Iím not used with the new interface). But also it has some other major advantages that eventually will me to move to .net.

DJSnow
11-21-2002, 11:42 PM
@Hazem_vb:

>>"...)Very Fantastic IDE..."

if the IDE is so fantastic and great, than i'm wondering why wholetomato, the makers of _rea_fantastiv_ VisualAssist, are providing an additional VS.NET version of their VisualAssist but i thought it is so fantastic ?? http://www.opengl.org/discussion_boards/ubb/wink.gif

davepermen
11-21-2002, 11:52 PM
visual assist is great..
by the ide i mean the visual part of it, the actual possibilities to configure all the windows how you want, etc (espencially for 2monitor platforms its great http://www.opengl.org/discussion_boards/ubb/biggrin.gif)

the text editor with its intellisence is again beaten by visual assist, yeah.. (while it is much bether than the vc6 one anyways..)

Humus
11-22-2002, 04:10 AM
Originally posted by davepermen:
the ide is new, different, but by _NO_ means sucky. its very configurable, lets you set everything how ever you want, and thus fits perfectly my needs, your needs, and any others needs, too.

However I want? Not sure about that. I gave it a try, used it for several weeks until I decided that it's annoying interface never really let me be as productive as in VC6.0.
In VC 6.0, you compile, the output with errors and such ends up in the windows at the bottom of the screen. You hit F4 and go to the error and fix it, compile and run. Go back to the code, hit Esc to get rid of that output window and it goes away immediately. Clean and simple.
VC.NET, errors go into a TODO list instead. I mean, wtf, who doesn't fix his error directly if it doesn't compile? The output window will remain on screen taking unneccesary screen space. The closest to the way I want it I could configure was to let it autohide when it looses focus. But it doesn't hide immediately. It kept annoying me that the window would remain on screen for a second or two every time. It doesn't seam like a big deal at first, but over time it gets increasingly annoying.
Also, it collects all files I have ever opened in that list on the left. Fine for some apps, but doesn't fit with the way I work. I often just open older files to take a look and then close it. I don't feel like cleaning that list over and over again.

First after having tried .NET for some time I really understood how great VC 6.0 really is. The only thing I miss is better ANSI compatibility and a slightly better compiler.

Robbo
11-22-2002, 04:45 AM
I MUCH prefer the .net IDE - I guess those complaining that they are less productive in the new environment are, well, experiencing some kind of cognitive dissonance. I was most comfortable using Turbo C 2.0 - I knew all the hotkeys!

V-man
11-22-2002, 09:26 AM
I'm still using version 6. It does everything I need and Im quite comfortable with it and MFC. This compares to me upgrading my OS. I have XP but I prefer to stick with 2k.

Anyone using .NET for what it's ment for? Planning on moving over to C#?

V-man

davepermen
11-22-2002, 09:58 AM
once i'm dammed to code window-applications (apps with windows) again, yes.. its very easy and handy, and hopefully it will be as crossplatform as currently coding with sdl,stl,gl,etc..

and humus, you can kill the tasklist completely, but i told you that yet.. just for the official place http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Halcyon
11-22-2002, 10:05 AM
WOW...who would have guessed my university was so cool? I was looking into saving up for getting VS .NET, but i just found out our university offers VS .NET Pro for Free. I just got $1000 piece of software for free. And for those who think .NET sucks, they let you get .NET Pro AND VS 6.0 Pro for free. Someone here really likes us computer science majors.

I've been trying .NET out ... I used to have the VS 6.0 intro version. I have to say that .NET is really cool and the IDE is very streamlined. Don't get me wrong though, VS 6.0 is awesome too. But it coudl get old after a while. Might as well move on to the next generation right? http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Coriolis
11-22-2002, 04:43 PM
Originally posted by Humus:
However I want? Not sure about that. I gave it a try, used it for several weeks until I decided that it's annoying interface never really let me be as productive as in VC6.0.
In VC 6.0, you compile, the output with errors and such ends up in the windows at the bottom of the screen. You hit F4 and go to the error and fix it, compile and run. Go back to the code, hit Esc to get rid of that output window and it goes away immediately. Clean and simple.
VC.NET, errors go into a TODO list instead. I mean, wtf, who doesn't fix his error directly if it doesn't compile? The output window will remain on screen taking unneccesary screen space. The closest to the way I want it I could configure was to let it autohide when it looses focus. But it doesn't hide immediately. It kept annoying me that the window would remain on screen for a second or two every time. It doesn't seam like a big deal at first, but over time it gets increasingly annoying.
Also, it collects all files I have ever opened in that list on the left. Fine for some apps, but doesn't fit with the way I work. I often just open older files to take a look and then close it. I don't feel like cleaning that list over and over again.

First after having tried .NET for some time I really understood how great VC 6.0 really is. The only thing I miss is better ANSI compatibility and a slightly better compiler.

I have configured VS .NET to be exactly like VC6 for this. You have to disable the task list automatically coming up when there are errors, and then in Tools / Options / Environment / Keyboard, assign Edit.GoToNextLocation to F4 and Edit.GoToPreviousLocation to Shift+F4.

You can also go to Tools / Options / Environment / General, and uncheck "Animate environment tools". Windows now appear and vanish instantly, without doing the silly scroll onto and off of the screen.

Coriolis
11-22-2002, 05:01 PM
Best things about .NET:
* Find in files works better.
* Intellisense is much improved.
* Compiler is better. I had to work around several nasty MSVC6 compiler bugs in our last project, but haven't found any yet in .NET. Templates work more reliably in .NET than in MSVC6.
* Debugger is much better. The breakpoints and thread windows are dockable. Conditional breakpoints don't pop up a stupid dialog saying "I'm breaking now" every time they break. You can watch a huge array and not wait for a half hour when you want to look at its contents.
* incremental search in a file completely owns
* better compiler warnings / errors.

Worst things about .NET:
* The project settings are a lot more cumbersome to deal with.
* I have to use the mouse more in the IDE, particularly with the project settings.
* It always puts folders at the bottom of the list in the project files window.
* I find it more awkward to edit dialogs in the new IDE, though fortunately I rarely have to do so.
* The IDE always opens the folders in the project file window up to where the current file you are editing exists, so it is not as convenient to use the project file window to open files.
* I haven't found a way to do a "caller's graph" on a function
* MFC applications may need some work before they will compile again without warnings.

GPSnoopy
11-23-2002, 02:39 AM
What I like the most about VC++ 7.0 is the compiler.
It's a lot more compliant to the C++ standard than VC 6.0 was while generating more efficient executable.

The second thing I like the most is the debugger, it's a lot more robust and complete.

VS.NET in averall is also a lot less buggy and cleaner than previous versions. You can say goodbye to sudden crash, memory leaks or other weird behaviors. (with a 10,000 lines project I used to have sometimes a 300 MB memory leak after 3 hours of utilisation ending by a serious crash of VC6)

For two years I used VC 6; now I mainly use 2 C++ compilers: VC 7 and GCC 3.x.
IMHO, when dealing with C++ VC 7 is the best of the 3, after a year of utilisation I only found 2 minor bugs while after a week I already found 3 major bugs in GCC 3.2. I have stopped counting VC 6 bugs a long time ago...

VS.NET isn't perfect but it's hard to understand how someone could prefer VC6 to VC7, I mean it's a bit like developers who prefer to stick with Windows 95 instead of installing Windows 2000 or XP.

I'm really interested in the next version of VC++ (7.1 ?) which should be even more compliant to the C++ standard and bring more efficient executable.


[This message has been edited by GPSnoopy (edited 11-23-2002).]

pkaler
11-23-2002, 10:02 AM
This whole VC6 IDE vs VC7 IDE argument is pretty moot. I haven't used VC7, but have used VC6 quite a bit. I didn't realize how inefficient I was being until I started using Emacs. I am a magnitude more efficient because I do not have to move my hands off of the keyboard. But, to put it lightly, there is a bit of a learning curve.

In terms of bugs. I don't remember having any problems with VC6. What annoyed me most was the standards compliance. How compliant is VC7 with respect to templates?

jwatte
11-23-2002, 05:22 PM
Regarding keyboard vs mouse: I grew up on "vi". I really like the keyboard.

The only research I know about that actually compares keyboard-only vs keyboard-and-mouse concluded that users *think* they are more productive when using keyboard only, because it *feels* slower to move your hand to the mouse, presumably because it's a separate action from just control-meta-cokebottle-typing. However, actually TIMING these (very experienced) users, the research shows that overall, using the mouse is actually faster.

Go figure.

V-man
11-23-2002, 06:43 PM
Originally posted by jwatte:
Regarding keyboard vs mouse: I grew up on "vi". I really like the keyboard.

The only research I know about that actually compares keyboard-only vs keyboard-and-mouse concluded that users *think* they are more productive when using keyboard only, because it *feels* slower to move your hand to the mouse, presumably because it's a separate action from just control-meta-cokebottle-typing. However, actually TIMING these (very experienced) users, the research shows that overall, using the mouse is actually faster.

Go figure.

That study doesn't include typing commands at the command prompt does it? Yuk!

For sure, a full fledged GUI application will require some mouse usage, unless if everything can be fitted on the keyboard and you have good memory.

I'm doing some stuff on Linux as we speak (php and html) and man, is it unproductive. I have to make changed in Emacs, save it, go to my Mozilla and try it out to see if its working right. Some times I have to switch folders in the console (cant use the explorer thingy).

Dont be surprised. I heard that voice operated software leads to unproductivity as well. Anyone used one for programming purposes?

V-man

GPSnoopy
11-23-2002, 11:57 PM
Well, if you absolutely want to use Emacs or VIM, there is a VIM plugin for Visual Studio.

jwatte, I really like this study. http://www.opengl.org/discussion_boards/ubb/wink.gif
The only thing that I can do more quickly in VIM than in VS (or any MS editor) is deleting an entire line; is there any shortcut to do that in VS?

pkaler
11-24-2002, 12:16 AM
What I'm finding is that productivity increases as my memory of hotkeys increases. At first I was using the mouse a lot. Even if you pick up only one hotkey per week. At the end of the year you've become more efficient at about 50 different operations.

Whereas with VC6, after about one week and two years, my level of efficiency is about the same.

Of course the *user* interface is dependant on the *user*. Some people will become more efficent at using the mouse, whereas some will be more efficient using just a keyboard.

All the user interface research that I've seen at universities usually focuses on improving the user interface for the general populous. I haven't really seen someone track one user for a prolonged period of time and see how their efficiency increases.

In terms of html and Emacs, I actually have two buffers open at the same time. And let Emacs render the html. I don't care what the output looks like until the very end. I just want to see the general outline. When I'm done with the particular webpage, I'll put it through the W3C html checker, then Mozilla, then Opera, then IE.

Speaking of web browsers, other members of my family are horribly inefficient at anything other than IE. Because they don't look like applications that are not typical windows applications. Whereas I can't live without tabs and mouse gestures. I'm not so efficient at using pie menus right now. But that will probably increase when my memory gets better.

However, I see Jon's point. Even if I've been away from Emacs for one week. I need my refcard by my side to get me back into the groove. However, I don't really need a refcard to get back into the groove of working in VC6.

I'm also a little biased about research. Having worked in a research lab for a period of time, the researchers are usually only concerned about where their next source of funding is coming from.



I'm doing some stuff on Linux as we speak (php and html) and man, is it unproductive. I have to make changed in Emacs, save it, go to my Mozilla and try it out to see if its working right. Some times I have to switch folders in the console (cant use the explorer thingy).


Usually, I make changes,
C-x C-o (other window)
F4 (reload)

Of course, that might involve some .emacs hacking.

dorbie
11-24-2002, 07:54 AM
Has anyone here tried to move a large project from VisualStudio 6.0 C++ over to .NET? Source control is CVS so that's orthogonal. I'm interested in real world experience on a significant sized complex development. Is there any way to import most of your project stuff?

rts
11-24-2002, 10:05 AM
Originally posted by dorbie:
Has anyone here tried to move a large project from VisualStudio 6.0 C++ over to .NET? Source control is CVS so that's orthogonal. I'm interested in real world experience on a significant sized complex development. Is there any way to import most of your project stuff?

I have imported a very large VS 6 project (thousands of source files) and the only thing that didn't work automatically were the "custom build steps" (we run perl on some scripts to generate some header files).

So, like all things with Microsoft, so close, yet so far.

rts
11-24-2002, 10:08 AM
Originally posted by jwatte:
The only research I know about that actually compares keyboard-only vs keyboard-and-mouse concluded ...

Do you have an actual reference for that? Sorry, I'm not in the habit of just taking people's recollections at face value http://www.opengl.org/discussion_boards/ubb/smile.gif

herc
11-24-2002, 12:24 PM
does anyone out there know how to avoid msvcr70.dll ? i'm programming a game in vc7, using win32 console setting and fltk. i managed to link everything statically (fltk, libpng, libjpeg, sdl, ...), but it seems that i need to provide msvcr70.dll in my package. is there any way to avoid this ?

Humus
11-24-2002, 12:42 PM
Originally posted by herc:
but it seems that i need to provide msvcr70.dll in my package. is there any way to avoid this ?

Use MSVC 6.0 http://www.opengl.org/discussion_boards/ubb/wink.gif

Ack, that was low ...

herc
11-24-2002, 01:33 PM
:-)
but my experience with vc7 : better ide, better compiler but (a little) slower compile times.. -- and much more memory is needed. it is probably a good idea to have 512 mbyte, especially if you use visual assist (wich i liked so much i really paid the 50 dollars) (vc7 i got from university).
but anyway: someone knows an solution to this
msvcr70.dll problem ?

jwatte
11-24-2002, 04:47 PM
gpsnoopy: Deleting an entire line in MSVC is ctrl-left, shift-down, delete. (or whatever you use for start-of-line, select-line-extend-down). That's still slower than "dd" though.

Oh, and how about click-drag, delete? :-)

You can also map LineDelete to some key; the default is for that command to be un-mapped. (Tools/Customize/Keyboard/Edit)

rts: that's a good habit. And, no, I don't have the reference available. I read the research when I was into designing UI for apps for the Mac in the early '90s. Maybe some old Apple developer site might still link to it?

gibber
11-24-2002, 11:34 PM
herc wrote
but it seems that i need to provide msvcr70.dll in my package. is there any way to avoid this?


Yes, make sure you link to "Single threaded" and not "Single threaded DLL" default libraries. If the dependecy appears to be elsewere, Dependecy walker can help.

I switched to VS.NET about 4 months ago. Its great. The IDE crashes now and then, but its never caused me to loose work. (could be my code, but VC5 NEVER crashed)

[This message has been edited by gibber (edited 11-25-2002).]

herc
11-25-2002, 12:49 AM
@gibber: i already do this: i link to "multithreaded [debug]" and not dll, this avoids the need of "msvcp70.dll", but msvcr70.dll is still needed. strange... (ok, probably i need to include msvcrt.lib manually - i will test it this evening)

herc
11-25-2002, 05:57 AM
i've tested it: even if i include msvcrt.lib manually to the "additional deps" field, my program complains about a missing msvcr70.dll. grrr....

gibber
11-25-2002, 08:06 AM
herc:

There are alot of threads on google groups about this, search for "msvcr70.dll" and "msvcp70.dll". Assuming you are not using MFC or managed extensions, you can create an .exe that is free of these dependencies. Use DW (1) to check if it is your app that depends on the .dll or some other .dll could be loading it.

1) http://www.dependencywalker.com

FoxDie
11-25-2002, 09:49 AM
Don't forget on GNU/Linux

herc
11-25-2002, 10:55 AM
@gibber: thanks alot!

Coriolis
11-25-2002, 04:21 PM
When I want to delete an entire line I just press "Ctrl+L". This works in VS6 and in VS7.

kansler
11-25-2002, 10:49 PM
I just use the visual.net c++ compiler with the vc6 developer studio. Works great and I don't have to switch to a new working environment. I also do alot of work on a win98 machine, while the visual.net ide only works on win2000.