Visual Studio Professional Edition purchase

H

Helpful person

I am considering buying visual studio and need some advice as to
whether this is really what I need. First a little about me and what
I am looking for.

I am an engineer with a lot of computing experience (not professional,
self taught). I grew up with Fortran and progressed to Visual Basic 6
and HTML (if you can call HTML programming). I know enough about
object oriented programming to know that my knowledge is very
limited. With VB 6 I have created objects at run time, menus, used
error trapping, API calls, created graphics and input / output in the
form of files and printer. I have not used databases (do not think I
need to). With VB 6 it is easy to create and layout forms which I
find very nice, although once designed I generally prefer to populate
my forms at run time for versatility.

VB 6 is an old program and has been superceded by VB.net My knowledge
of the various flavors of C are zero. I think it's about time I got
away from VB and learnt to use C. My present belief is that this
should not be too difficult.

Here are my questions:

I understand that Visual Studio includes the following:
Visual C++
Visual C#
Visual Basic.net
Is this correct?

Does Visual C++ and Visual C# include an easy way to create forms (by
which I mean windows).

I find the VB 6 online help adequate to do anything I need. I assume
that is true for the other languages. Is that correct?

What is the main difference between C++ and C#?

I understand that Visual Studio wraps all the languages together in a
development environment. Is there a significant learning curve to
understand this? (I am a quick learner, usually stumped when I have
difficulty understanding unfamiliar jargon).

Is there a good book that is recommended? I hate the beginner books
(although I might need one). I have previously used one from Head
Start for Visual Basic which I liked as a starter book (except for its
verbosity). Any suggestions?

All help is appreciated.

Thanks

www.richardfisher.com
 
S

sloan

Are you a student?

Some student editions (VS2005 Standard comes to mind) ... are free. Depends
if your college/university participates (they may have opened up the program
a little more loosely in the past months as well).




Why don't you try the express editions first?

http://www.microsoft.com/Express/

You can learn to program with these and your final app has no license
restrictions (i.e. you can sell (or give away etc.) the application you
have
created with these).
Thanks, looks like a good idea. Should get me started before
purchasing. However, the student edition of Visual Studio is very
cheap.

www.richardfisher.com
 
C

Cor Ligthert[MVP]

I write it often like this.

Visual Basic for Net and C# are the children from VB6 and C++

One has some more from the father and one has some more from the mother.

There is also a child which is only a child from C++ that is C++ managed
code.

In the latter three you are in fact creating forms and things like that
almost exact in the same way as you did with VB6.

Beside that there is in Visual Studio the original C++ as it was in Visual
Studio 6 using MFC.

It is not my goal to start a discussion, so if you should go to a C language
is your own decission and it is never wrong to learn both languages.

You can see VB and C# as a daughter and a son, which one is the daughter and
which one is the son I leave to your own expirience.

Cor
 
H

Helpful person

Basically, yes.  The IDE has some editor support for other "languages" as  
well, but in terms of full-featured coding and debugging, that's what  
comes in the box.


All three languages are supported with .NET.  .NET supports two main  
forms-based APIs: Forms and WPF.

In addition, with C++ you also can write MFC applications, an alternative 
"forms-based" environment that pre-dates .NET.  And of course, with C++ 
you can write Windows GUI applications using the native Win32 API (but I  
wouldn't characterize that as "easy"...not like the .NET GUI APIs are).


Depends on your definition of "adequate".  But yes, if you're okay with 
the existing VB6 docs, you'll probably find the .NET documentation  
adequate as well.


THE "main difference"?  I'm not sure there's a good answer to that  
question.  There are lots of subtle and important differences.  But, if I  
had to pick one, I'd say it's the way that object references are handled. 
In C++, pointers rule the world.  In C#, an encapsulated version of a  
pointer, called a "reference", is the dominant data type.

Part of the difficulty of answering the question is that using C++/CLI,  
you have access to managed data structures as well as convention C++ data 
structures.  In C++/CLI, there's a managed "reference" type just as there  
is in C#.  Likewise, just as in C#, the dominant memory management API is  
the garbage-collected environment .NET provides, you have access to that  
 from C++/CLI, as well as the conventional malloc/free and new/delete  
memory management.

If you anticipate having to interact with unmanaged code regularly, then  
C++ is probably the way to go.  It has more flexibility in that area.  
But, taking advantage of the flexibility means more complicated programs, 
and the syntax for using the managed environment from C++ is IMHO awkward,  
at least as compared to the languages where that support is baked-in.

Given all that, I'd say it's more likely you really would prefer VB.NET or  
C#.  VB.NET is going to be closer to what you're already using, but it's  
never a bad thing to learn a new language, and IMHO C# provides not only a  
somewhat more rigorous environment (helpful in avoiding silly bugs), the  
language has a lot of depth, offering constructs that simply don't even  
exist in VB.NET, or which are awkward to use in that language.


All languages are available in the single IDE.  But I'd say if anything,  
the IDE doesn't really merge them so much as it provides equal access to  
each.  A given project can still only be one language, though a "solution"  
(a higher-level wrapper that can contain multiple projects) can of course 
support multiple languages.  If you're only ever using one language, the  
other ones are available, but not omnipresent.  I don't think it's  
confusing at all.

Pete- Hide quoted text -

- Show quoted text -

Thank you very much for your descriptions. I'm still not sure whether
to go with C++ or C#. I'll have to browse for more information and
take a guess. Thanks again for answering an almost impossible
question.

www.richardfisher.com
 
B

Ben Voigt [C++ MVP]

In addition, with C++ you also can write MFC applications, an alternative
"forms-based" environment that pre-dates .NET. And of course, with C++
you can write Windows GUI applications using the native Win32 API (but I
wouldn't characterize that as "easy"...not like the .NET GUI APIs are).

Direct use of the Win32 API is not very convenient as you say, but enables
having a very small executable that needs no extra libraries and frameworks
installed -- quite beneficial in certain cases. Probably not the way to go
for a large application with a complex GUI, but great for an automatic
updater, or a tool for collecting system information to diagnose why the
fancy app isn't running right.
 
T

Tim Roberts

Helpful person said:
VB 6 is an old program and has been superceded by VB.net My knowledge
of the various flavors of C are zero. I think it's about time I got
away from VB and learnt to use C. My present belief is that this
should not be too difficult.

Well, this is a C# newsgroup, but I would point out that virtually
everything you can do in C# can also be done in VB. There are automated
translators that can convert one to the other. It's NEVER a bad idea to go
learn something new, but if you are just trying to create programs, VB.Net
might be a good way to go.
Does Visual C++ and Visual C# include an easy way to create forms (by
which I mean windows).

VB.Net and C# both use Windows Forms, so window management is quite similar
in both, and window creation in the IDE is identical. With C++, you have a
number of alternatives, but the learning curve is steeper.
I understand that Visual Studio wraps all the languages together in a
development environment. Is there a significant learning curve to
understand this? (I am a quick learner, usually stumped when I have
difficulty understanding unfamiliar jargon).

If you used VB6, then the Visual Studio IDE will feel famililar. The menus
have been rearranged, but the concepts are similar.
 
P

Pavel Minaev

Well, this is a C# newsgroup, but I would point out that virtually
everything you can do in C# can also be done in VB.  There are automated
translators that can convert one to the other.  It's NEVER a bad idea to go
learn something new, but if you are just trying to create programs, VB.Net
might be a good way to go.

On a side note, VB 2008 is actually a language better than C# for
certain applications - particularly for XML processing, thanks to
XLINQ syntactic sugar, and XML literals. It's a bit like poor man's
XQuery.
VB.Net and C# both use Windows Forms, so window management is quite similar
in both, and window creation in the IDE is identical.  With C++, you have a
number of alternatives, but the learning curve is steeper.

It should be noted that C++/CLI also fully supports WinForms
development (complete with visual form designer).
 

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

Top