Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VS6 vs. Dot Net

3 views
Skip to first unread message

Allan Cady

unread,
Jan 3, 2003, 4:53:16 PM1/3/03
to
Can someone explain to me the motivation to upgrade from VS6 to .Net
for general desktop application development? (Or refer me to some
good reading material?) So far, I don't see it.

And relevant to this group [ATL] in particular, how does ATL/WTL fit
in with .Net?

I've been working with Visual Studio 6 for a couple years now,
developing on and for Windows 98 and 2000. I think I've developed a
reasonably good understanding of the broad landscape of VS6 for
developing desktop applications. I'm competent with C, C++, and
Visual Basic, and have a working understanding of the COM/ActiveX
development model. Recently I've been really impressed with what I've
seen of the ATL/WTL framework.

A while ago, I bought and installed Visual Studio .Net (Academic
Edition). I got a copy of Jesse Liberty's book, "Programming C#"
(chose it because it's the first text for the C#/.Net class series
offered by our local university extension.) I've read substantial
portions of this book, and tried a few of the tutorials.

I still haven't found any compelling reason to think that I would
benefit much by switching to VS .Net for upcoming development. I
would be interested to get some feedback from folks who have learned
both versions of Visual Studio, regarding the benefits of VS .Net for
general app development.

Liberty's book suggests that, if you're going to develop "managed
code", there's not much point in bothering with either C++ or VB... he
says C# is the way to go, and that makes sense to me. I've heard
others say that managed C++ or VB are more trouble than they're worth.
The consensus also seems to be that COM/ActiveX are "deprecated"
technologies in .Net; so far, it's hard for me to see how that can be,
given that Windows is really built on COM.

The latest distribution of WTL indicates that it supports .Net. But
if Liberty's opinion of managed C++ is right, is there really much
reason to bother using the two together?

So can someone enlighten me? What am I missing, happy here in my
Visual Studio 6 world?

And one last question... is it possible to build a non-managed C++ app
using VS.Net? In other words, would it be easy or possible to port an
existing C++ app from VS6 to VS.Net, without having to turn it into
"managed code"?

Thanks,

Allan

ccallen

unread,
Jan 3, 2003, 5:09:45 PM1/3/03
to
What I would like to know is how many employers out there are using
..netstudio in the dev departments, and list it as a requirement for emp's or
contractors? All of the interveiws I have gone on lately have been for
straight C++ / ATL. I asked an agent about how many .net jobs he has been
seeing out there, He said "Oh, .net would be great to have". But when I
pressed him, he says that he hasnt been getting too many .net jobs lately.

Conan

"Allan Cady" <alla...@yahoo.com> wrote in message
news:d563b154.03010...@posting.google.com...

Thore B. Karlsen

unread,
Jan 3, 2003, 5:56:11 PM1/3/03
to
On 3 Jan 2003 13:53:16 -0800, alla...@yahoo.com (Allan Cady) wrote:

>Can someone explain to me the motivation to upgrade from VS6 to .Net
>for general desktop application development? (Or refer me to some
>good reading material?) So far, I don't see it.

It's worth it if only for the better C++ conformance, which will get
even better in VC++ 7.1. Many annoyances have been eliminated,
particularly as pertains to the standard library.

>And relevant to this group [ATL] in particular, how does ATL/WTL fit
>in with .Net?

ATL is improved, some classes that were previously MFC only are now
shared between ATL and MFC. WTL also works like a charm.

[...]

>The latest distribution of WTL indicates that it supports .Net. But
>if Liberty's opinion of managed C++ is right, is there really much
>reason to bother using the two together?

Supporting .NET as in .NET the framework, or .NET the development
environment? Those are two different things. WTL supports .NET in the
sense that it adds wizards (never used them) to the development
environment.

>So can someone enlighten me? What am I missing, happy here in my
>Visual Studio 6 world?
>
>And one last question... is it possible to build a non-managed C++ app
>using VS.Net? In other words, would it be easy or possible to port an
>existing C++ app from VS6 to VS.Net, without having to turn it into
>"managed code"?

Of course. Anything else would be unthinkable.

As for the other .NET languages, I've only played with C# a little, but
it doesn't really solve any problems for me so I haven't used it much.

--
Be seeing you.

David JD Bell

unread,
Jan 3, 2003, 5:41:59 PM1/3/03
to
While .net has some nice features, I don't see any compelling reason to use
it at this point. If you were starting a new desktop app it would definitely
be worth considering, but I don't think I would upgrade an application
written in VS6.

I used to mainly VB stuff, and for me VB.net has some real disadvantages.
Firstly you can't copy/paste code between VBA & VB.net as you could with
VB5/6 becasue the .net syntax is significantly different ... This is
something I used to do all the time testing the code in the client apps VBA
editor before moving to VB proper. Secondly, the biggest loss is that
edit-and-continue in VB.net is almost useless IMO because it needs to
recompile.

Also I still don't understand MS's strategy with all these .net languages.
My understanding is that under the hood they are all semantically exactly
the same because they all resolve back to the common language runtime (CLR).
So what is the point in releasing new ones (C# and J#)? I believe C# is
closest to the CLR so maybe that's the long term prime language?

Anyway to get to your VC questions, VC++ is the only .net that let's you
write unmanaged code. If you switch off .net in the compiler you can write
VC/MFC/ATL/WTL 7 as if .net doesn't exist. So you would port to VC7, not
VC.net I think. ATL has some new bits & pieces. Others may correct me, I
don't think WTL supports .net at all, but then why would you write a neat
little WTL app only to tag the 20 Mb .net runtime on to it?

BTW I think you can have VS6 & VS.net on the same computer if you upgrade.
Do this.

HTH

David Bell


"Allan Cady" <alla...@yahoo.com> wrote in message
news:d563b154.03010...@posting.google.com...

Igor Tandetnik

unread,
Jan 3, 2003, 6:06:13 PM1/3/03
to
> Others may correct me, I
> don't think WTL supports .net at all, but then why would you write a
neat
> little WTL app only to tag the 20 Mb .net runtime on to it?

WTL7 supports .NET in the sense that WTL programs can be compiled by
VC.NET compiler (WTL3 could not, since it is relying on some quirks of
VC6 corrected in VC7). WTL7 is designed for unmanaged code, it does not
use .NET framework in any way.

Well, presumably one can compile any valid C++ program by managed C++
compiler and it is supposed to produce a managed assembly that works
exactly as the original. I don't quite see why anybody would want to.
OTOH, it is probably useful to be able to just plug your old C++ non-GUI
code into your shiny new WinForms app, to do some calculations or
something.
--
With best wishes,
Igor Tandetnik

"For every complex problem, there is a solution that is simple, neat,
and wrong." H.L. Mencken


deligentman

unread,
Jan 3, 2003, 6:22:00 PM1/3/03
to

C++ and ATL is 2 different things
if you love C++ you can completely eliminate ATL and WTL because C++ can
take you somewhere else (like symbian).
but for the time being ATL and WTL can do the most work for the exsiting
systems developed using ATL and WTL
because there are increasing number of good programmers.

I don't see any C# and .net requirement or shall let others open the
Pandoras Box.

existing systems convert to C# and ported to .net I ask why? I dont need it
....oh yeah web services and interoperability
do everybody need that? I dont need it if I do need it then it will be a new
system and I 'll design it and find the best solution
architecture does it has to be C#? in that CASE no bs.

Isnt it a real hell being forced into this and that simply because being a
programmer?

Del.

"Allan Cady" <alla...@yahoo.com> wrote in message
news:d563b154.03010...@posting.google.com...

Jon Davis

unread,
Jan 3, 2003, 7:39:28 PM1/3/03
to
> Anyway to get to your VC questions, VC++ is the only .net that let's you
> write unmanaged code.

C# (which on the whole is managed) does support unmanaged pointers.

Jon


Jon Davis

unread,
Jan 3, 2003, 7:41:28 PM1/3/03
to
Yeah, Visual C++ .NET can compile unmanaged code. Its output is faster and
is more standards compliant than ever, especially in the 2003 version.

Jon


"Allan Cady" <alla...@yahoo.com> wrote in message
news:d563b154.03010...@posting.google.com...

ccallen

unread,
Jan 3, 2003, 7:54:19 PM1/3/03
to
Better optomizations are a big thing with the new compiler too.

Conan

"Jon Davis" <j...@REMOVE.ME.PLEASE.jondavis.net> wrote in message
news:eq4NGo4sCHA.2168@TK2MSFTNGP12...

Alexander Nickolov

unread,
Jan 3, 2003, 9:04:35 PM1/3/03
to
Well, there are no benefits other than this being a new release. OTOH,
there are some setbacks in the IDE (poorer resource editor for example).
You may expect better code optimizer, and the next VC 7.1 will add
extensive C++ standard support. I'd suggest you wait till VC 7.1 (aka
VS.NET 2003) comes out...

As far as managed vs unmanaged code - well, the main benefit of
managed code is you can use WinForms for desktop development.
It's up to you to decide whether that buys you into .NET or not...

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnic...@mvps.org
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================

"Allan Cady" <alla...@yahoo.com> wrote in message news:d563b154.03010...@posting.google.com...

Jill Penn

unread,
Jan 4, 2003, 12:13:58 AM1/4/03
to
Jon, I don't think this is true. There's a difference between unmanaged
code and unsafe code.

C# can only produce managed code. C# supports unsafe blocks for writing
unsafe code.. this is when you can use pointers.

Manager C++ can *only* create unsafe code. You cannot create safe code with
Managed C++ (as of 1.0 anyway)

However, Visual Studio C++.NET can also create unmanaged code, which is
another word for straight - native code that Visual C++ 6.0 and prior
produced.

unmanaged code does not require the .NET runtime. Manage code, unsafe or
not, requires the .NET runtime.


"Jon Davis" <j...@REMOVE.ME.PLEASE.jondavis.net> wrote in message

news:eZ1L$m4sCHA.2332@TK2MSFTNGP12...

Jill Penn

unread,
Jan 4, 2003, 12:15:26 AM1/4/03
to
Managed C++ is also the only managed compiler from Microsoft that has an
optimizer.

However, for new development, I would pick C# of Managed C++, which means,
as you hinted, Managed C++ is really only interesting for legacy source
code.


"Thore B. Karlsen" <s...@6581.com> wrote in message
news:uq4c1vs1su37lt8nl...@4ax.com...

Thore B. Karlsen

unread,
Jan 4, 2003, 1:11:54 AM1/4/03
to
On Sat, 04 Jan 2003 05:15:26 GMT, "Jill Penn"
<jill_av...@yahoo.com> wrote:

>Managed C++ is also the only managed compiler from Microsoft that has an
>optimizer.
>
>However, for new development, I would pick C# of Managed C++, which means,
>as you hinted, Managed C++ is really only interesting for legacy source
>code.

Well, if the choices are between managed languages, perhaps. But not
everyone has the "luxury" of being able to choose to develop in a
managed language for new development. It is completely inappropriate for
a whole range of applications.

--
Be seeing you.

Jill Penn

unread,
Jan 5, 2003, 12:38:55 AM1/5/03
to
Thore B. Karlsen <s...@6581.com> wrote in message news:<bluc1v0iq787oarrv...@4ax.com>...

Yes, that's what I met to say. I have .NET on the mind right now.
For managed code, C# is a better choice than C++.

Allan Cady

unread,
Jan 5, 2003, 11:21:15 PM1/5/03
to
OK, very interesting response to my post, thanks all.

Here's what I get out of everyone's contributions:

1) Yes, I can compile existing C++ apps as unmanaged code,
and I can expect better optimizations and C++ standards
compliance than with 6.0

2) Everyone seems to agree that managed C++ or managed VB
aren't worth the bother.

3) The latest ship of WTL (7.0) is updated to work with VC7,
but only works for unmanaged apps

And here are my followup questions:

1) How do you "switch off .net" for C++?

2) Are there any good books on unmanaged C++ with VS7? Liberty's
book doesn't seem to address this at all (it's a C# book, so
no surprise there.)

3) Nobody addressed my comment about COM as a deprecated
technology. Is it going away? Take, for example,
DirectX. Is it being supplanted by something new
and non-COM for .Net? How about OLE-DB or ADO?

(My original comment: "The consensus also seems to be that

COM/ActiveX are "deprecated" technologies in .Net; so far, it's
hard for me to see how that can be, given that Windows is

really built on COM.")

Thanks,

-Allan

Daniel O'Connell

unread,
Jan 6, 2003, 12:02:42 AM1/6/03
to
switching off the .NET for the C++ compiler shouldn't be hard, little more
than an option\project type(as i remember, anyway).

As for COM in .NET, its supported, but i think it will slowly be supplanted
just as a good number of things were

ADO.NET replaces ADO, in the .NET scheme, and OleDb is implemented as
calling back to COM,
Sql server, My Sql, and Oracle all have various fully managed(ie, not COM)
ADO.NET implementations

Directx9 provides managed wrappers to COM, as to how long they will stay
with COM, it is unknown to me.
However, Longhorn is supposed to start incorporating managed code into the
OS, which i would consider the first death claxon of COM.

the new sql and exchange servers, i believe, will start providing managed
interfaces in addition to the COM ones in existance(and i'd imaigine,
somewhere down the line, they will slowly phase COM out of the picture)

Your right, however, COM is very inherent, it won't go away tommorow,
but, if .NET keeps its momentum, it very well may go away in the predictable
and near future.

Also, a .NET assembly can be registered to act as a COM component, which
helps provide interoperability, and also points to the fact taht COM isn't
just gonna disappear.


"Allan Cady" <alla...@yahoo.com> wrote in message
news:d563b154.03010...@posting.google.com...

David JD Bell

unread,
Jan 6, 2003, 12:44:52 AM1/6/03
to
> And here are my followup questions:
>
> 1) How do you "switch off .net" for C++?

In a C++ project Switch the Project|Properties|Use Managed Extentions to
"No"


>
> 2) Are there any good books on unmanaged C++ with VS7? Liberty's
> book doesn't seem to address this at all (it's a C# book, so
> no surprise there.)

I'm still waiting, but I think VC++ 6 bboks would have 95% of the unmananged
functionality covered. I would like to see an ATL/WTL 7 book though. I
bought one COM/ATL3 book and it was fine, but won't get any more until they
are upgraded becasue ATL got quite a few enhancements


> 3) Nobody addressed my comment about COM as a deprecated
> technology. Is it going away? Take, for example,
> DirectX. Is it being supplanted by something new
> and non-COM for .Net? How about OLE-DB or ADO?

I'm not really qualified to comment, but MS ovbiously intends .NET to take
over from where COM left off, in application & component developement. Until
then there is COM Interop which makes a bridge between the two, not always
successfully.

David Bell


Allan Cady

unread,
Jan 6, 2003, 1:56:45 PM1/6/03
to
"Daniel O'Connell" <onyxki...@attbi.com> wrote in message news:<S58S9.577977$WL3.170239@rwcrnsc54>...

> ADO.NET replaces ADO, in the .NET scheme, and OleDb is implemented
> as calling back to COM

> Sql server, My Sql, and Oracle all have various
> fully managed(ie, not COM) ADO.NET implementations

Interesting... it sounds like it would be most helpful for me to learn
about how .Net works to support code sharing.

Thanks...

Allan

Daniel O'Connell

unread,
Jan 6, 2003, 3:00:35 PM1/6/03
to
it is an interesting arena, always worth reading about if nothing else, ;)

"Allan Cady" <alla...@yahoo.com> wrote in message
news:d563b154.03010...@posting.google.com...

Jon Davis

unread,
Jan 6, 2003, 6:24:05 PM1/6/03
to
> ADO.NET replaces ADO, in the .NET scheme,

Not exactly. ADO classic is still in use; Microsoft doesn't tout it anymore
but ADO.NET lacks the cursor engine that ADO classic was. ADO.NET is really
only good for data retrieval and offline browsing.

And fortunately, ADO classic, even if still COM based, has its own namespace
in the .NET framework.

Jon


Alexander Nickolov

unread,
Jan 6, 2003, 9:56:44 PM1/6/03
to
Actually, any C++ book covers over 100% of regular C++ as supported in
VC 7.0. It doesn't have much better standard compliance than VC 6.0 did,
thus lots of valid C++ code won't compile with it (and some incorrect
code will compile, but that's another story...). Wait for VC 7.1 to have
closer to 100% standard compliance.

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnic...@mvps.org
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================

"David JD Bell" <davidbell_AT_hotmail_DOT_com> wrote in message news:eW#GuaUtCHA.2344@TK2MSFTNGP10...

Alexander Nickolov

unread,
Jan 6, 2003, 10:02:03 PM1/6/03
to
I doubt MS can buy game developers into .NET in the foreseeable
future, so DirectX will probably stay firmly rooted in COM. Besides,
.NET simply can't fulfill the performance requirements DirectX was
designed to achieve... A .NET wrapper for DirectX is an interesting
idea, but without practical applications in sight.

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnic...@mvps.org
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================

"Daniel O'Connell" <onyxki...@attbi.com> wrote in message news:S58S9.577977$WL3.170239@rwcrnsc54...

Jon Davis

unread,
Jan 7, 2003, 1:31:55 AM1/7/03
to
Considering the C# demos I've observed in the DX9 SDK, I can can imagine
quite a few game and multimedia uses for DX9 in .NET. The performance hit
is very real, but for basic functionality, it is sustainable on an adequate
PC.

For instance, a 3D game written in C++ that manages to get 120 fps on a 1GHz
computer and only 80 fps for the same game written in C#, well, that's not
even observable by the human eye, for the same reason why 70-80Hz is the
maximum monitor refresh rate that the human eye can see.

Jon


"Alexander Nickolov" <agnic...@mvps.org> wrote in message
news:#5MqJkftCHA.1620@TK2MSFTNGP11...


I doubt MS can buy game developers into .NET in the foreseeable
future, so DirectX will probably stay firmly rooted in COM. Besides,

..NET simply can't fulfill the performance requirements DirectX was

Daniel O'Connell

unread,
Jan 7, 2003, 2:27:03 AM1/7/03
to
While, while not exactly replaced
i'd certainly simply avoid using it,
ADO was a PIA in the beginning, let alone having to deal with it later on.

"Jon Davis" <j...@REMOVE.ME.PLEASE.jondavis.net> wrote in message
news:uOOuDrdtCHA.1668@TK2MSFTNGP09...

David JD Bell

unread,
Jan 7, 2003, 7:37:33 AM1/7/03
to
Wonder what the performance hit is on unmanaged C++ vs managed C++?
Presumably the same?

David Bell


"Jon Davis" <j...@REMOVE.ME.PLEASE.jondavis.net> wrote in message

news:OvTOxZhtCHA.2620@TK2MSFTNGP11...

David JD Bell

unread,
Jan 7, 2003, 7:35:01 AM1/7/03
to
I don't think that holds up. If you want to write the latest & greatest game
you'll use all the processing power you have, be it for better rendering or
whatever. Inevitably the extras will bring your C++ down to 80 fps, which
leaves C# at either running at 50 or compromised in some other way to get an
acceptable frame rate.

David Bell

David JD Bell

unread,
Jan 7, 2003, 7:36:10 AM1/7/03
to
Meant to add you also use the new keyword __gc when declaring managed
classes.

deligentman

unread,
Jan 7, 2003, 7:50:31 AM1/7/03
to
I 've read even most of C# is written in C++.
It could be good to develop high level business apps and I dont think adobe
would write their PS app in C#

del.

"Jon Davis" <j...@REMOVE.ME.PLEASE.jondavis.net> wrote in message
news:OvTOxZhtCHA.2620@TK2MSFTNGP11...

Allan Cady

unread,
Jan 7, 2003, 2:56:06 PM1/7/03
to
There's an interesting topic -- is the .Net development environment
itself a managed application? (My guess, yes.) Is C# written in C#?
(Maybe not.)

Somewhere back in the 80s, in some programming class, I remember a
discussion about the process of "bootstrapping" a new language,
meaning implementing the compiler in the language it compiles. At the
time, this was considered some kind of benchmark of the quality of the
language (this was back when people were arguing about which was
better, C or Pascal). There's been a lot of water under the bridge
since then -- I don't know if the computer scientists think this is
matters anymore.

My impression from the programmers I've talked to who work for
Microsoft, is that they consider C++, and specifically their in-house
development system, to be the state of the art for developing
efficient, reliable apps. I'm pretty sure there is still some
development going on there in C, too -- at least there was a couple
years ago.

"deligentman" <delig...@nope.com> wrote in message news:<uT856tktCHA.1848@TK2MSFTNGP09>...

deligentman

unread,
Jan 7, 2003, 6:35:05 PM1/7/03
to

> There's an interesting topic -- is the .Net development environment
> itself a managed application? (My guess, yes.) Is C# written in C#?
> (Maybe not.)
>

http://www.research.att.com/~bs/applications.html

> Somewhere back in the 80s, in some programming class, I remember a
> discussion about the process of "bootstrapping" a new language,
> meaning implementing the compiler in the language it compiles. At the
> time, this was considered some kind of benchmark of the quality of the
> language (this was back when people were arguing about which was
> better, C or Pascal). There's been a lot of water under the bridge
> since then -- I don't know if the computer scientists think this is
> matters anymore.
>

True, I 'm quite positive C# will do a difference but its not something new
its a copy of bunch of exsisting technologies.

If you look at Bjarens Stroustrop's C++, Alexsander Stephanov's STL library,
James Goslin's Java,
or Guido Von Rossum's Phython true creative people are backing and behind
them.
Microsoft can do something better.

> My impression from the programmers I've talked to who work for
> Microsoft, is that they consider C++, and specifically their in-house
> development system, to be the state of the art for developing
> efficient, reliable apps. I'm pretty sure there is still some
> development going on there in C, too -- at least there was a couple
> years ago.
>

good on you is it really? pretty interesting!

regards
del.

Jon Davis

unread,
Jan 7, 2003, 8:27:38 PM1/7/03
to

"David JD Bell" <davidbell_AT_hotmail_DOT_com> wrote in message
news:uhLkkkktCHA.2124@TK2MSFTNGP12...

> I don't think that holds up. If you want to write the latest & greatest
game

Yes but what if you just want to write "a game", one that sells a few
copies?

Jon


David JD Bell

unread,
Jan 8, 2003, 2:19:42 AM1/8/03
to

That would be Horses for Courses :-)


"Jon Davis" <j...@REMOVE.ME.PLEASE.jondavis.net> wrote in message

news:O0bmyUrtCHA.2492@TK2MSFTNGP11...

0 new messages