Dear Experts,
I really confused..what is the different between VB6 and VB.NET...when we have to choose vb6 and when we have to use vb.NET...which is better..????
Printable View
Dear Experts,
I really confused..what is the different between VB6 and VB.NET...when we have to choose vb6 and when we have to use vb.NET...which is better..????
If you were given a choice, which one would you rather use?
Windows ME or Windows XP?
Think sincerely about the reply and that should be your answer.
vb.net is the newer version, so logically it is better.
VB.NET is object orientated, very powerful, vb6 isnt widely excepted, where as vb.net is. Anyway, this issue has been discussed over and over and over again, search for it in any decent search engine or on this forum you will get heaps of results.
Hi,
Vb.net is definitely a lot better and now Microsoft is also giving a way to use vb6 and vb2005 together.The latest version Visual Studio 2005 has come with similar features as the old VS we had.Its easy for vb6 programmers to quickly catch up with this latest version of Visual Studio. :)
Check out this link on how to use vb6 and vb2005 together..
http://msdn.microsoft.com/msdntv/epi...R/manifest.xml
Hope it helps
If you asked the same question in the Classic VB forum, you would probably get the opposite opinion :)
http://www.vbforums.com/showthread.php?t=365884
Here's a recent argument about it ;)
Bill
Newer is not always better. I didn't care for VB.NET that much for many reasons. One, is the fact that it is 100% object oriented, which means I now am forced to dig through all sorts of classes to find the functions I need rather than calling it on demand, which how it was in VB6. Two, it executes on average 3% slower than VB6. Three, it requires the .NET framework to run the exes, which means someone must have the 26 meg framework installed plus the correct version in order to run your app.Quote:
Originally Posted by Phill64
There are pros and cons, but it all depends. Like for example, the job market out there (mostly C++ and C#), requires you to know VB.NET if you are getting a job that uses that language.
We are along the same line of thinking. At the moment I prefer VB6 to VB.NET but I am concerned about the future: what if MS breaks compatibility with the COM technology and VB6 apps cannot run any longer once the successor to Windows Vista has come out?Quote:
Originally Posted by Jacob Roman
Well it may run if you have the VB5/VB6 runtime files with your app made on those languages. I highly doubt Vista is even gonna come with the runtime files.
Come to the dark side, .Net is for real men and women ;)
Your inability to use the documentation and namespace imports is not the fault of the language. ;)Quote:
Originally Posted by Jacob Roman
Which is really only if you are writing things like games, in which case I would agree that .NET is probably not the best thing to be using anyway.Quote:
Two, it executes on average 3% slower than VB6.
In most cases nowadays, 26 megs is not a huge deal as far as a download goes. But there are quite a few people that are on dialup, so let's call this one a push.Quote:
Three, it requires the .NET framework to run the exes, which means someone must have the 26 meg framework installed plus the correct version in order to run your app.
Vista is going to contain the VB6 runtime files because the OS will include MS Anti-Spyware which was developed in VB6:Quote:
Originally Posted by Jacob Roman
http://www.theregister.co.uk/2005/07...t_spyware_vb6/
This sounds very much like the argument quoted by conipto:Quote:
Originally Posted by crptcblade
http://www.vbforums.com/showthread.php?t=365884
The truth is, there are pros and cons in switching to .NET. It all depends on what you must do with your software.
I'd prefer Win2K...Quote:
Originally Posted by piscis
What a nonsense to say. Sorry couldn'r resist.Quote:
Originally Posted by Phill64
Non necessary - the truth speaks for itself.Quote:
Originally Posted by conipto
I certainly agree! :thumb:Quote:
Originally Posted by Jacob Roman
VB.Net is slow anf not just with games - all arround it slower than VB6 - that's a given fact.Quote:
Originally Posted by crptcblade
While I could be wrong I don't think that the poster is switching, but rather just starting out. The two main differences are the fact that VB.NET is object oriented and it uses the .NET Framework. If you already know and are comfortable with VB6 then that's one thing, but the only reason that I can see for anyone to start learning VB6 today would be if they had to because their employer said so, or they absolutely had to avoid the .NET Framework for some reason. There are a few things that are more difficult in VB.NET than in VB6, but this is almost always accompanied by an increase in power. With the language improvements and the class library provided by the .NET Framework, VB.NET is much more powerful than VB6 out-of-the-box. VB.NET is not perfect, but I liked it straight away. When I tried VB6 several years back I gave up almost straight away as I found it kinda icky. That was coming from a C++ background, so I was already used to OO and VB really did feel dumbed-down (sorry VB6 guys but that was my impression at the time). Particularly with VB 2005, I think VB.NET strikes a good balance between an easy to use language for the less technical, which was VBs purpose from the start, and a genuinely enterprise-level development tool.Quote:
Originally Posted by esposito
Full support of OOP doesn't necessary mean your program is better - in fact it could be the exact oposite.
As far as I'm concerned VB6 can do pretty much everything VB.Net can except for true multithreading. I am NOT however suggesting that VB6 should be language of your choice - you must decide that for yourself and your decision shouldn't be based upon which language has more features - it's all about budget, future needs, atc, atc, atc.
@jmcilhinney: VB was the reason I abandoned C++ as my primary dev language which I used for quite some years. I only use it (C++) to build some components to parse string and such - there is no any other language that comes close to C++ performance when it comes to strings. I'm working with VB.Net since its first beta and it still makes me nauseous - very cumbersome language.
My points exacly. VB.NET is slow all around cause of the fact that it's 100% object oriented. MS was trying to focus on ease of use over speed, but it actually is harder to work with than VB6, which is easier to use than VB.NET. I like the features that VB.NET has and all, but it still needs a lot of work.Quote:
Originally Posted by RhinoBull
I disagree that the reason it's slow is because it's object oriented. Blame the compilation and running through the framework and the JIT compiler for speed, ok, you might have me there.. but c++ is fully object oriented, and it's generally known for speed.Quote:
Originally Posted by Jacob Roman
Bill
Not really trueQuote:
Originally Posted by conipto
A lot of this is splitting hairs and personal opinion, as many have alluded to. C++ is OO. It was specifically designed as an OO version of C, as its original name of "C with Classes" would suggest. If VB.NET is 3% slower than VB6, which would be unnoticeable in the vast majority of GUI apps, then that can certainly be accounted for by the fact that it is managed code. Even if VB6 is easier to use than VB.NET, which I don't necessarily agree with, VB.NET is much more powerful, if only because of the availability of the .NET Framework class library, and power vs ease of use is always a trade off. As for which one is easier, maybe the concepts behind VB6 are easier to come to grips with for a rank beginner, but for an experienced developer I don't necessarily think that VB6 would be easier to use, although I've never really used VB6 myself so I can't say for sure. The simple fact is that, as far as its maker is concerned, VB6 is a dead technology. Fewer and fewer people will develop in VB6 and more and more in VB.NET, if only for the reason that Microsoft have ended (or will soon end) official VB6 support. VB.NET was created the way it was to unify it with Microsofts other development languages, and I for one am glad of it.
Basically, they are two different languages, each with its strengths and weaknesses, but which to use depends upon either the project requirements or budget and what is available to you from your employeer.
Performance differences are minimal at best (3%) depending upon what your application is performing. Development time is longer with .NET but what you can do with it is alot more. You can do more with less code in .NET but then there is more to deal with so its almost a wash out.
.NET has been out for 4 years now and it is about time to at least learn the new language as VB 6 dies a slow and painful death.
@jmcilhinney:
So what are preaching about? VB.Net being better language? It is NOT if you ask me. It has some additional functionality due to its availability in the framework and that's about it!
I remember when VB4 came out - it was like WOW, same was when VB5 appeared. With VB.Net it was something like "what the heck is that?" ... looks like crapy java ... In fact it is a java - just ms receipe. I don't know any serious C++/VB6 developer that would cheer up when it comes to VB.Net. And it is not because it's a brand new language they have to learn - serious people pick new stuff quick enough - but mostly because of the entire product. We all say "yes VB.Net is more powerfull", "yes it has more features" but as the whole thing it's a piece of crap. 2005 version is a bit more promissing.
To get back to the original question:VB6 is procedural while VB.NET is object-oriented. VB.NET is managed (uses the .NET Framework) and VB6 is not.Quote:
Originally Posted by zach007
You don't specifically have or choose any particular language at any particular time. The same job can often be completed with any of a number of different tools.Quote:
Originally Posted by zach007
Whichever does what you want it to with the least effort on your part in the short, medium and long term, which includes your current project and possible future employment prospects. "Better" is a very subjective term and depends heavily on what characteristics you choose to measure and who you choose to have measure them. ;)Quote:
Originally Posted by zach007
What are talking about? C is procedural language - VB6 (as well as VB.Net) is an event driven language. OOP has nothing to do with this what so ever.Quote:
Originally Posted by jmcilhinney
And BTW VB6 is object oriented but without inheritance support.
OK, I'm speaking through my lack of VB6 experience, obviously. Having said that, some would say that OOP without inheritence is no OOP at all. It would seem then that VB6 was simply a stepping stone between the older versions of VB that were not object-oriented and the newer versions that are. [argumentative]Why stick with what was obviously only a transitional technology? ;)[/argumentative]Quote:
Originally Posted by RhinoBull
I think we shall stop this discussion due to one party having a serious lack of knowledge in this area of expertise.Quote:
Originally Posted by jmcilhinney
Just FYI: VB6 was never a transitional technology as you named it but rather a very fine and finish product or it wouldn't be (by far) most popular language ever (btw, still is!) and businesses won't invest billions in it. Also, older versions of VB were object oriented as well.
Best regards.
Perhaps I should have put [joke] tags around that to make it more obvious.
Correct me if i'm wrong...
but isnt vb.net also known as VB7 ?
vb6.. vb7... how can you consider this a "different" or "alternative" language?
would you have this same argument about c# 1 and c# 2 ?
Ok so there is a big difference, but in reality, back to the windows statement, you are talking about a Microsoft product, one day, you will simply not be able to cope with meeting clients demands in vb6, when your competitors are whiping out programs with all those extra little things that clients love. Nobody uses MS Word 1.0, do they?
The argument i always go with here is this.. some people do not embrace change, would rather master the language theyre used to than be insecure with the new one, if that's you, than you should be a c++ developer, as this will never change, you cannot be a Microsoft user who does not upgrade, if Microsoft made products which only sell once.. they wouldnt be rich.
Believe it or not, Phill64, VB.NET is a totally different language with a totally different syntax than VB6. You can't compare the two and say that it is the same language with more features cause the code isn't even backwards compatible.
I think to say that the syntax is totally different is a bit of an exaggeration. I must say, regardless of the version numbering system, I'm interested to know whether VB.NET actually is a completely different language or not. I know that I've recommended to people that they think of it that way to prevent assumptions about its similarity to VB6 slowing their learning process. To say that it IS a new language though, implies that it was built as new from the ground up. C# IS a new language that WAS built from the ground up (although I doubt many would say that its syntax is completely different to C/C++) but I don't know whether that is the case with VB.NET or not. Can anyone provide definitive evidence either way? I've looked and I can't find it written anywhere that it was created from scratch, but I've also not seen anything to say definitively that it was a reworking of existing VB.
C# is not built from scratch as its more based upon C++ and Java/JavaScript. Same goes for VB.NET. Its based upon VB 6 but is not an upgrade or compatible to it. So if you feel C# is a new language then you would consider VB.NET a new language and visa versa.
It depends what you mean by a new language. When Microsoft created C# they did not start with C/C++ and go from there. They started with a clean slate and decided what this language needed to do and the best way to do it and then implemented that. This meant using C/C++ syntax and some features, but those were additions to an empty container, rather than the bits left behind when others were removed. Also, don't let anyone from Microsoft hear you even think that C# was based even slightly on Java. C# and Java have many similarities but the more naive of us like to think that that's because they were both trying to solve very similar probems. In the case of VB.NET, I'm not sure whether they started with VB6 and added and removed as necessary, or started with the aforementioned empty container and added the bits from VB6 that they thought would serve a purpose and then added the rest of the new stuff. It may be a subtle distinction to make in the context of developing WITH the languages, but I'm sure it would not be subtle at all if you developing the language itself.
It is certainly modelled off vb6, hence there being the VB namespace with all your old tools from vb6 converted to .net for your convinience, and commands like Mid() Lcase() etc still in the language, as an alternative to using the .net way of String.Substring() and .ToLower and the inclusion of a vb6 project upgrade tool! which OK leaves you to still go through and fix alot of things, but it does majority of the work for you, and you see alot of extra compatibility classes used just for this purpose, it is fair to say that vb.net code doesnt go backwards into vb6, but it is not fair to say vb6 code doesn't go foward into VB.NET, or that Microsofy intended it to be a "new" language where people do not upgrade their vb6 projects, because obviously, they did intend for you to convert your vb6 applications into vb.net.
But the upgrade wizard is at best only 95% accurate and complete. It basically does not work and was only attempted to be included to help make VB.NET more of a success if its easier for VB 6 programmers to get into it.
The MS VB Namespace was also only included for the VB 6 programmer to more easily integrate into .NET.
These two "features" were added after the fact that the language was developed and are nothing more then marketing attempts for the success of VB.NET.
That is exactly my point though, they never intended vb.net as an "alternative" language, obviously that wouldnt be smart of them, maybe their tools to help were not as good as they couldve been, but they exist, vb6 developers are supposed to get into vb.netQuote:
Originally Posted by RobDog888
Don't get the new IDE confused with the language, features of the IDE may make the new version better but the languages coould be wriiten in notepad, then consider howthe would compare.
I am sorry to disappoint VB.NET lovers, but statistics show that, by abandoning VB.COM (=VB6) and switching to .NET, MS just shot itself in the foot. Take a look at the following article:
http://www.bitwisemag.com/copy/byteg...ytegeist7.html
So, please don't take for granted that .NET represents the future: a lot of programmers (probably, most of them) don't want to depend on the framework and they despise Java-like byte-code. If they had wanted to use some byte-code technology they would have switched to Java a long time ago.
Again, the only fear I have is that MS could make non-.NET based software incompatible with the future versions of Windows (after Vista) in order to force everybody to switch. On the other hand, it is also true that, if they did it, millions of people would consider the possibility of moving to Linux , so they would just kiss MS goodbye.
Ok lets have a quick think about this,
Vb6, is OLD technology, no getting away from that. If anyone who isnt a hobbyest or in a current Vb6 job wants to succed .Net is the future.
I loved Vb6, but .Net is so much better.
Pino
O by the way that article is a lot of rubbish..... seriously moaning old man or what.
VB Code:
It seems that something like 2.5 million .NET licences have been sold. Let’s be generous and say that 1.5 million were for VB6 to VB .NET upgrades - the rest being C#/C++. So that leaves around 4.5 million of the great unwashed VB6 users who haven’t seen the light and upgraded to VB .NET.
Move to the light!
I also think that was written before express was released.....
Quoting the article.
That's the worst example in the world, the On Error syntax was garbage and everyone knows it, Try catch out does it on so many levels. Besides, you can still actually use the on error syntax if really want to, they put it in just because people would nit pick about it.Quote:
It seems to me that the language changes got out of hand. Once you’ve decided to, say, drop the On Error syntax, then why not do a few more ‘tidy-ups’?
Once again, so much of the old vb6 stuff is still there, noted that it is only there for support reasons. I personally loved the Mid() function because you can overload the length field without error, where as substring you cannot, and i choose to continue using Mid() where requiredQuote:
Normally, when you upgrade a language, you ‘deprecate’ certain features. That is, you say that you’ll support them in this new version, but in the future they’ll be gone.
This one's self evidentQuote:
Microsoft could have chosen to do another iteration of VB6 as a bridge to the .NET world. To repeat, technically it was perfectly possible. Microsoft chose not to do that. It chose not to ask its users what they wanted. Instead, it’s ended up with “a language that never should have been invented and nobody wants.”
Millions of people disagree ;) If you wnat to post an article post one to a neuturel not an old timer who has done vb6, and is angry because they dont like change.Quote:
a language that never should have been invented and nobody wants.
I'd say any programmer person comming into vb if they looked at 6 and looked at .Net, .Net is the one they would choose