locked
vb.net vs vb6 pros and cons help

    Question

  • Hi there

    i am a seasoned vb6 and vb.net developer and where i currently work, they use VB6. Now, we develop a range of office plugins for a client, and they currently use vb6, they also do some other projects with vb6. I want them to change to vb.net

    They have asked me for a list of Pros for switching, and also some Cons.

    The pros i have are:

    • .Net is future proofed, VB6 will not be supported by Microsoft for much longer
    • One standard platform to run on (.Net) removing problems of windows versions and missing dlls
    •  full OOP support and a generic Api for office application development.
    • Integrate seamlessly with Java using bridging components (they are primarily a java house)
    • Quicker performance
    • On event application loading (in office) to help application performance. Application controls are loaded but the code to execute is only loaded when required, reducing application load on start up.
    • Backwards compatible to Office and Outlook 2003 (office 2000???)
    • Feature rich language with many more capaabilities than VB6.
    • Utilises the .Net framework to carry out tasks, rather than binding directly to the windows operating system API. In VB6, if target systems do not have the required dll for the API call, the program will crash.
    • Office development suite integrated with Visual Studio (add on)
    • Streamlined and quicker development, tasks which can take hundreds of lines of code in VB6 can be done in one line of vb.net
    • Rapid development of PDA based software
    • Switching to .net will be required eventually
    • Allows for more stable application with enhanced error catching and error management
    • Visual basic 6 will not be a skill of developers, and not a preferred skill to use in development. .Net is the future and developers will want to work with current technologies

    The cons:

    Target machines require .Net to be installed

    • Requires purchase of Visual Studio software

    Now, as you can see, my Cons are a little thin! Can anyone suggest anymore pros and cons, are all of mine ok?

     

    Many thanks

     

    Jamie

    Tuesday, February 13, 2007 9:39 AM

Answers

  • "The customers needs are to have a future proofed software solution that is efficent to main tain, re usable, extendible, and able to meet to meet the needs of their future business. They will have to switch eventually, it is best to do it now, while the software is not released, than later, when they will have tio support a VB6 and .Net version, both end line support and development support"

    It's name is DOT NET.

    Tuesday, February 13, 2007 5:30 PM
  • Sounds like you are getting it :)

    Your arguments are looking much better; you are looking at support costs, time, future proofing, development support - these are important things to the customer. .NET is not important to the customer (it is, of course, but you won't convince them of anything other than 'this is the next tool with a whol host of different issues'). As an example when you buy a new car, do you care about the alloy used in the cylinder walls, and the CPU design for the engine management unit; or do you care about Leather seats and where can I put my Big Gulp? Those things are important, but they don't sell cars.

    Sell the customer on the fact that they have a problem and that you can fix it, rather than the other way around.

    Just so you don't think i'm bringing you down, I'm in a similar position - I have to support a lot of old VB6 code, but know that .NET is a better solution - luckily I could really make VB6 fly, so there's very few issues with it :). Over the past couple of years, a lot of it is gradually migrating to .NET.

    Tuesday, February 13, 2007 6:07 PM
    Moderator

All replies

  • Hi,

    Some more Pros>>

    1.  Integrates web site development easier with SQL Server and Visual Web developer.
    2. .Net express editions can be used to get a feel for the environment and are all FREE from this url link>> http://msdn.microsoft.com/vstudio/express/default.aspx
    3. Each program installs to a separate directory so there are no worries of VB6 clashing with any .Net package. At least they don't on my P.C.
    4. VB.Net 2003 and VB.Net 2005 can also be installed alongside the Express edition due to the last point made.
    5. Server and Visual Web developer Express editions are also free. :-)
    6. ASP.Net web sites can be built fairly rapidly with just a few clicks of the mouse and dragging controls onto the web pages in the I.D.E. and these sites tie in with SQL for e-commerce or other database driven websites.
    7. This forums site is generally very friendly for those starting out.
    8. Keep VB6 on your systems for those "older" developers that don't like change. Just make sure you have enough hard-drive space.
    9. I believe you can use VB6 created dll files with VB.Net.  
    10. Intellisense makes writing code a lot easier as command options just pop-up in a menu when you type a dot.  

     

     Need i say more?

     

     

    Regards,

    S_DS

     

    Tuesday, February 13, 2007 1:40 PM
  • Okay, here's a few more cons:

    • VB6 will be around for a while.
    • Very (by todays standards!) small runtime.
    • Your code is already written in vb6 and is earning money.
    • 'upgrading' existing VB6 code can be as simple as a chore, or a complete nightmare.
    • There is no advantage to upgrading existing VB6 code.
    • VB6 can run faster than .NET code.
    • VB6 has been atround a long time - there are still tons of resources available: if you want to do it, it already has been done.

    A sweeping upgrade will not work - it will be expensive and time consuming: basically this makes all your pros irellevant. If the VB6 applications are having problems, .NET is not going to fix them - poor code is poor code, whatever language you use.

    If your customer had any sense, they would pretty much tell you to go jump in a lake. And quite rightly so. If you want to convince them to upgrade, you need to demonstrate how it's going to make them more money, how there's going to be fewer errors, how happy all their employees will be, how much energy they will save, and how everyone will have 5 day weekends and be eating caviar for breakfast. Basically, they could care less about the programming language: how will it solve their immidiate problems (if any?)

    To reiterate, people (customers) could care less about the language used (or operating system); they want results.

    I would recommend that you start the curve gently - get a feel for the .NET environment and start new applications in .NET, but keep the old code around. Learn about COM interoperability, and how to write new modules in .NET that can work with VB6. Gradually migrate over (this may take months to years). Demonstrate the strengths of any 'new' stuff; let the customer argue for you ('why are we still using this old crappy application, when this new stuff is great?'). Obviously, you actually need to deliver the goods :)

    I would never, ever recommend upgrading a system (language wise) unless the system has problems and there is plenty of time to do the upgrade. There are other reasons, but that's the main one.

    Tuesday, February 13, 2007 1:49 PM
    Moderator
  • As SJWhiteley pointed out, the big reason to upgrade has to be financial, at least in most companies. Converting existing apps is expensive so there has to be a financial incentive to do so. Technical reasons, unless they impact the bottom line, aren't that good of an argument.

    The biggest reason to convert that I see is that the existing application set has become impossible to maintain or that it cannot scale to meeting changing business needs. For example, if you need a team of 4-5+ programmers to just keep fixing bugs in a set of apps, you have a big problem. If every 'enhancement release' means hours or days of downtime due to unexpected interactions, you have a big problem. If the app crashes constantly and nobody can figure out why, yep, big problem. If the business needs features like web services or smart device applications to compete in their marketplace, the old VB6 ways won't cut it. However, if the application set is stable and requires minimal amounts of work to maintain then it doesn't make good financial sense to replace it. As the old saying goes, "If it ain't broke, don't fix it."

    A secondary financial reason that you touched on in your list was that VB6 is a fading technology. It is unlikely that there will be any bug fixes or security upgrades for it. As more and more developers in the marketplace move to .NET the talent pool to draw from will shrink and those who're left will either be more expensive to hire or contract or will be less skilled (ie more costly in terms of time).

    Tuesday, February 13, 2007 3:25 PM
  • Hi there

     

    thankyou all for the replies

    SJWhitely

    Sure, i understand this is the core driver for any business. But the fact is, is that at the moment, we are having problems with target systems not containing dlls, dlls being removed un knowuingly, etc. This is a real hassle. then there are all the office applications the tools are integratin with. on a number of target systems, users experienced errors, but they were errors due to not having patches iinstalled. Sure we can notify them to upgrade their outlook or office, but they still put it down to our Add ins.

    The  application has only been rolled out to a few users at the moment, and these are the main issues we are experiencing. , when we roll it out to the masses, exponentially, this could cost a fortune in support costs, even though the problems arent anything to do with our addins! using .net, it would remove DLL hell, as calls are made via the .net framework, and not direct API calls to the target system, Using Addin express, we can ensure that when the add in is compiled, it will run on any un patched versions of office and outlook 2000+

    To re write the software wont be too much, as it is quite small.

    Frank Carr

    A future requirement is to move to PDA based office. Using .net this will be efortless abd will allow us to build a .Net engine, which can be used by Office, Outlook 2000+ as well as PDA based software

     

    Asmentioned before, i have used .net for years, and i was a VB6 developer, going back an developing VB6 apps seems so restrictive. i also have my own business whihc we create a very large software application for the motor industry. We took the decision to go .Net, and the speed to create systems has increased considerably, as well as support calls for target system based errors dropping.

     

    Many thansk everyone

    Jamie

     

    Tuesday, February 13, 2007 3:51 PM
  •  

    My compliments for your some really intelligent commentary. There may be a middle ground however. I'm an old VB6 programmer and DOT NET can make things that were laborious in VB6 quite easy. It's quite possible that the bad code SJ addressed could be much better code much more compact code in DOT net.

    If I were your company I'd be considering a phased conversion especially with the reality of Vista. With a phased approach, you could catch up to the endlife and also, the Net V2.0 and 3.0 Frameworks are already on Vista. I think there could be an enormous downside if you don't. If you don't begin a phased approach you may, given the new modularity of Vista that one day you applications appears to just stop working and you won't have anything but an emergency on your hads. Also if you wait much longer, you're going to feel like a rip van winkle. It's not easy even for a vb6 proammer to just jump into Vista and soon we're going to begin to Net 3.0 WPF applications and in their current state would be an incredible challenge to understand the architectural approach so different will it be for Dot Net 3.0. It's really, really different.

    Were it me, I'd started a phased update NOW, because we know this is the twilight of VB6. I think my scenario is a likely one and where I agree with SJ and Frank, I'd start looking at DOT Net while before the house began to burn down.

    Tuesday, February 13, 2007 3:52 PM
  • Thanks RenneC :-)

    In all this thought i completely forgot about Vista!!

    I was only reading about Net 3.0 this morning too lol!

    That is a huge plus to switching.

    .Net 3.0 looks amazing, im glad i switched to .Net years ago!

    Many thanks

    Jamie

    Tuesday, February 13, 2007 4:08 PM
  • I believe that VB6 applications should still run on Vista, but that's an aside. If your customer has an objection to upgrading to .NET, then isn't a Vista upgrade also unlikely to happen?

    If you are having issues with the existing installations then that may be the most compelling reason to upgrade - remember, though, that it isn't a magic bullet.

    From a basic installation issue, I've had no problems installing VB6 applications, with 10's of support files. Does your upgrading to .NET eliminate these support files? It doesn't prevent anyoune from deleting anything - so if you have a crucial DLL, then your application will fail, regardless of the framework it's written in. This isn't a language problem.

    If your application is failing due to actual code complexity, this again may be a compelling reason to upgrade - but it depends on the actual failure: there are so many things that are just so easy to do in .NET compared to VB6. But, if the code is not failing (even if it can be done in 10 lines in the .NET framework Vs. 1000 lines in VB) that's no reason to upgrade. If the support costs are costing the customer (as opposed to you) then I'm sue they will go for it. If the support costs are costing you, then why should the customer help you out?

    You've mentioned some new developments - absolutely use .NET! To do otherwise would be foolish! But I don't believe your customer is saying use one language or the other - to reiterate (again!) the customer could care less about the language its written in. I'm sure they wouldn't care if you used twix wrappers and bubblegum; as long as they achieve what they need. But if it means ripping out everything they have already got, you might run into issues - the customer won't like that.

    I think you are treating this as a this-or-that decision: it's not. Concentrate on what the customer needs, rther than the language needed (development environment, or whatever) and design appropriately. The only way you will be able to use the tools you want to use is to take that off the table as a bargining item.

    (as an aside: the .NET framework version 3.0 is ot a 'pro' for anything except as a programmer wanting a cool toy to play with - that's what the customer will hear, and is probably unwilling to pay you to play around).

     

     

    Tuesday, February 13, 2007 4:45 PM
    Moderator
  • hi there

    Thanks for the reponse. I have taken all you have said on board.

    To clarify, the customer, is a business that owns the software we develop for them.

    It will ultimately cost the customer in support costs, not us, though we will actaully gain more money through it because we have more bugs to fix.

    The greatest difficulty is the target Office applications, this brings a whole new problem to the equation. I have worked on many VB6 programs, with no problems, when you start to integrate with other software, there are far more difficulties ahead!

    Calls to the windows API also brings problems, as we are using alot of file manipulation and threading, we have had instances where the target systems did not have the required windows api DLL. we cant add it to our installers, otherwise it will over wrtie the existing one on the target system, and we all get head aches on un installs. With .net, the framework manages all of this, so if .Net is there, it will work.

    My opinions on .Net 3.0 were obviously something for me to play with in my own time. I realise this is nto a pro, hence why i did not include it in my pro list.

    The customers needs are to have a future proofed software solution that is efficent to main tain, re usable, extendible, and able to meet to meet the needs of their future business. They will have to switch eventually, it is best to do it now, while the software is not released, than later, when they will have tio support a VB6 and .Net version, both end line support and development support

    But this is just my opinion

    Cheers

    Jamie

    Tuesday, February 13, 2007 5:09 PM
  • "The customers needs are to have a future proofed software solution that is efficent to main tain, re usable, extendible, and able to meet to meet the needs of their future business. They will have to switch eventually, it is best to do it now, while the software is not released, than later, when they will have tio support a VB6 and .Net version, both end line support and development support"

    It's name is DOT NET.

    Tuesday, February 13, 2007 5:30 PM
  • Sounds like you are getting it :)

    Your arguments are looking much better; you are looking at support costs, time, future proofing, development support - these are important things to the customer. .NET is not important to the customer (it is, of course, but you won't convince them of anything other than 'this is the next tool with a whol host of different issues'). As an example when you buy a new car, do you care about the alloy used in the cylinder walls, and the CPU design for the engine management unit; or do you care about Leather seats and where can I put my Big Gulp? Those things are important, but they don't sell cars.

    Sell the customer on the fact that they have a problem and that you can fix it, rather than the other way around.

    Just so you don't think i'm bringing you down, I'm in a similar position - I have to support a lot of old VB6 code, but know that .NET is a better solution - luckily I could really make VB6 fly, so there's very few issues with it :). Over the past couple of years, a lot of it is gradually migrating to .NET.

    Tuesday, February 13, 2007 6:07 PM
    Moderator
  • Big Con is Training .net is not vb6 I still find myself writing an app and trying a method I used to use in VB6 and I have to look up the new way. It will take at least a year to get used to it. Another con is you are going to spend much time rewriting apps that you had %100 done and need to be updated. Hey I did it and it is great because now my apps work with any vista and 7 without me having to do much. 
    Friday, February 19, 2010 8:48 PM
  • The first step is to make some simple declarations. Add the following code to your projects declarations.
     
    Private Const VER_PLATFORM_WIN32s = 0
    Private Const VER_PLATFORM_WIN32_WINDOWS = 1
    Private Const VER_PLATFORM_WIN32_NT As Long = 2
     
    Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As Any) As Long
     
    Private Type OSVERSIONINFO
      OSVSize         As Long
      dwVerMajor      As Long
      dwVerMinor      As Long
      dwBuildNumber   As Long
      PlatformID      As Long
      szCSDVersion    As String * 128
    End Type

    Cheers, Eliza
    Friday, March 19, 2010 11:48 AM