VS .NET vs VS C++ 6.0

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

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?

Originally posted by Humus:
[b] 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.[/b]

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.

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.

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).]

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?

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.

Originally posted by jwatte:
[b]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.[/b]

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

Well, if you absolutely want to use Emacs or VIM, there is a VIM plugin for Visual Studio.

jwatte, I really like this study.
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?

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.

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?

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.

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

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 ?

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

Ack, that was low …

:slight_smile:
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 ?

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? :slight_smile:

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?

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).]

@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)

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…