dotnet newbie question

J

Jenny

I have been programming in C++/MFC/ATL for nearly 8 years now. I'm in the
process of learning .NET and am wondering if I should use VisualC++.Net or
C#. Are there any advantages/disadvantages going with one not the other OR
does it not really matter????

Thanks in Advance

Jenny.
 
M

Manish Agarwal

Conceptwise both languages are totally different. Your question is something
like VC++ or Java
 
A

Andreas Huber

Jenny said:
I have been programming in C++/MFC/ATL for nearly 8 years now. I'm
in the process of learning .NET and am wondering if I should use
VisualC++.Net or C#. Are there any advantages/disadvantages going
with one not the other OR does it not really matter????

I would recommend to use C# (better CLR integration than C++) unless there
are strong reasons not to do so. The IMO two most important are:

- C++ legacy code that cannot be thrown away. Two scenarios: Managed C++
calls old legacy C++, Hybrid (managed wrapper around old C++ code, new code
in C#).
- Performance. As was discussed in another thread, C# can be slower for some
tasks. The discussion reached the conclusion that C++ should be preferred
for projects where hardware cost makes a significant part of the overall
project costs. This is the case for some number crunching applications and
some embedded systems.

HTH,

Andreas
 
G

geiger

hey
I don't think so - C# and C++ are very similar languages, but C# is
definitely more simply.
One of suppose dot net platform is "language is only syntax" ... unimportant
is if you write in C++ or C# because your managed code is compiled just
during starting your application.
C# is my choice ( VC++ .net 2002 don't have itegrated WindowsForms editor,
VC# 2002 of course have it )....
Sorry for my english - I'm elementary.

Przemek Mañkowski
Poland
 
A

Alvin Bruney

I think you should get away from the C++ personally, and get into C# full
fledged. The syntax is simpler for one, which leads to less programmatic
errors. It's less frustrating in a nutshell and there is tighter integration
with .NET since there is less unmanaged code to muck with in C# as opposed
to C++. On the other hand if you are into time critical systems etc, .NET
C++ is the way to go.
 
P

Philip Braun

I am currently in that transition myself. Let me just note that .Net is not
a mature environment by any means yet. There are some things that have not
been included thus far. As an example, try to find any class in C# that can
open and use a serial port with, without using P/Invoke in the currently
available versions of .Net.

If you have any device interaction, sticking with C/C++ is a much better
bet. Although C# can do it, you will be calling C/C++ routines. If your
product is an office use only type program, then C# may be just for you. It
all depends on how much work you want to do. If your considering a re-write
in anycase to take advantage of the features that you now know about as
requested by your customer(s), then attempt to note which technology will be
around the longest and try to use that one. It looks like .Net is not a
flash in the pan and will cause another round of re-writes by the industry.

Phil
 
A

Alex Bendig

Jenny,

Of course every language comes with their own set of advantages and
disadvantages. One nice thing about the .Net environment is that you can
easily mix modules of different languages. Thus, you may as well start out
with C++, as you know it already and then gradually transition to C#, if you
want to.

C# certainly appears as a language with an easier syntax and stronger OOP
integration.

Of course, you can also find numerous comparisons of for example C# and C++
and C# and Java on the Net, two of which are below:

http://genamics.com/developer/csharp_comparative.htm
http://www.developerfusion.com/show/1743/

Regards,
Alex
 
F

Falcon Kirtarania

Just to step in here, would somebody mind telling me what the equivalent to
free(void *) or delete(void *) is in C#?
 
J

Jon Skeet

Jon Skeet said:
You just make sure the object no longer has any live references to it -
either by letting them go out of scope (normal) or by explicitly
setting variables to null (quite rare).

I posted this rather quickly - I should explain that the memory used by
an object isn't instantly reclaimed at this stage. It's collected when
the garbage collector (GC) collects the generation that the object
belonged to. Look up garbage collection in the MSDN for more
information.
 
J

Jan Roelof de Pijper

My two cents: At the moment, a commitment to C# seems to be a commitment to
the MS Windows platform. If you are or get proficient with C++, you leave
open your access to other platforms, such as Unix, Linux, Mac, whatever. At
the same time, you can still fully participate in .NET. So, opting for
VC++.NET may be the more difficult choice, but gives you maximum
flexibility.

Jan Roelof
 
B

bob holder

Jan Roelof de Pijper said:
My two cents: At the moment, a commitment to C# seems to be a commitment to
the MS Windows platform. If you are or get proficient with C++, you leave
open your access to other platforms, such as Unix, Linux, Mac, whatever. At
the same time, you can still fully participate in .NET. So, opting for
VC++.NET may be the more difficult choice, but gives you maximum
flexibility.

Jan Roelof

Well spoken Jon. The ability to program cross platform with C/C++ on unix,
linux, windows, embedded, etc opens all doors. Sticking with C# is much too
restrictive these days.
bob
 
K

K_Lee

bob holder said:
Well spoken Jon. The ability to program cross platform with C/C++ on unix,
linux, windows, embedded, etc opens all doors. Sticking with C# is much too
restrictive these days.
bob


Other questions for dotnet:

1) Which Windows platform does it support without the user downloading a
the dotnet framework? Win9x? WinNT?, Win2k, or is it XP only?

What's the smallest user OS requirements (without patch) for me to deploy a
dotnet app?



2) When I tried to instead some sample app a while back, it requires me to
download about few differents frameworks, patches to OS, etc before I can even
run the application. Is that still the case if I want to run any dotnet
application?

If so, the framework is as bad if not worst that Java.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top