Solved

what data bases work with visual basic net 2010

Posted on 2015-01-31
25
231 Views
Last Modified: 2015-02-03
I am planning to convert a vb6 application that uses access 2000 and ado to vb net 2010 or later. I want the basic converted vb net program to run on a remote web site or on a local desk top. Looking for the best data base using ado to use in the new vb net program. The application will be a distributed system to a customer base that subscribes to our software, now written in vb6 using access 2000 and ado. Vb6 has access 2000 built in so that the end user is not required to have access 2000 installed. Hopefully this would work the same with vb net 2010 with some version of SQL.

Any help here is appreciated. Also any comments on using vb net as the development tool is appreciated. It is my understanding that I will need to purchase Visual Studio 2010 since vb net 2010 that needs to be run on a web site is not sold stand alone.

I realize that I am asking multiple questions here, but just want to select the best tools to develop the net version of our product.

Thanks for any help.

morrisbo
0
Comment
Question by:morrisbo
  • 7
  • 6
  • 5
  • +2
25 Comments
 
LVL 82

Assisted Solution

by:Dave Baldwin
Dave Baldwin earned 100 total points
ID: 40581952
When you start on the VB.Net version, do the Web version first.  Web servers typically have severe restrictions compared to a desktop program.
0
 
LVL 11

Assisted Solution

by:LordWabbit
LordWabbit earned 100 total points
ID: 40581971
Well the pick of your DB is kinda moot, since .net will work with all of them.  .Net does work better with other MS databases so going with MS SQL Server would be a logical choice.  Since you mention Access as being the current database that means you can probably use the free version of SQL Server and not pay any license fees.  If the application was written in VB6 then it is probably a Windows Forms application, converting it to a web based application is basically a rewrite.  Last but not least, you do not have to purchase Visual studio, there is an Express version which is free, and for small teams you can get the full version for free as well.  If I recall correctly the beta 2002 versions of Visual Studio could attempt to convert VB6 programs to .Net, but good luck in finding that.
0
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 300 total points
ID: 40582140
VB.NET can work with almost any database around. However, Visual Studio is developed in parallel with SQL Server, so SQL Server is the easiest database to use with it.

Access, is definitively something that should be forgotten for professional development. It has been clear for many years now that Microsoft wants to return to the root of what Access was when in came to the market: a database for everybody, not for programmers. One good example of that is that they developed libraries specifically geared toward SQL Server and Oracle when they developed .NET, but Access still uses the generic OleDB or ODBC libraries. You read me? Microsoft did something for Oracle, but not for Access. That says a lot. It's been 13 years now, and they have no intention of doing something specific for Access in .NET.

And please, for yourself and your customer, even it you stick to Access, drop Access 2000. It's 15 years old. Do you still deliver your software on diskettes? Access 2000 is no longer supported. That means that Microsoft is in no obligation to support it in newer versions of Windows. Eventually, sooner than later, your customer will be stuck and will not be able to upgrade Windows. If you wait too long, you will not be able to upgrade your old database either. You are better starting the transition to a newer version of Access or SQL Server as soon as you can, while the tools to do so are available. I do not know of any professional developer that still uses Access, unless they are forced to do it by circumstances that are out of their control.

And Access was not free with VB6, it has never been free for anyboy. It's The JET database engine that came with Windows that was free and already installed at your customer's place. JET is the real thing under Access, it takes care of the tables and the queries. Access is only an interface to the JET, that provides tools to create forms and reports, as VB6 does, and as VB.NET and almost any other language can do. JET has been replaced by ACE in new versions of Access, and neither is now provided with recent versions of Windows. So you will have to install it when your customer will upgrade Windows and move to 64-bits, and this can cause issues if you are still using 2000.

Good luck buying Visual Studio 2010. There has been a 2012 and a 2013 version, so 2010 is hard to find. Why not go for Visual Studio 2013 or wait a bit for 2015, starting your conversion work with the beta that will be available soon? The 2013 Professional Edition, the one for professional developers, that you needed to pay for in the past, has been made available for free a few weeks ago for groups of 5 developers. It's called the Community Edition and It's easy to find on the Microsoft site. 2015 will also be available in that format.

And do not think about simply upgrading your old code. The converter was not offered only in the 2002 beta, it has been for a few versions. But the results were so bad that Microsoft dropped it a few years ago. VB.NET is a different language. Same syntax, but another way of thinking and working. Converted code is a big buggy patch that is hard to understand even for an expert .NET programmer, gives bad habits to those who are learning, and is so painful to maintain that you will want to switch to another job.

As a trainer, I meet a lot of programmers from a lot of companies. I have seen a dozen of companies try to convert their code, and they all lost a few months trying to make the result work before understanding that it was worthless and that they had to rewrite the code for it to be efficient and maintainable in .NET. Out of the dozen, only one had some success, because most of their VB6 work was done in dll libraries. The .exe where limited to the interface and the real work was delegated to the dlls. They redid their interfaces in .NET and slowly, through many years, rewrote the dlls as needs arose to upgrade them. Since very few programs where written that way in VB6, very few programs can move to .NET and be functional without a complete rewrite.

Sorry if there are things in there that you do not like, but that is the reality. So many things happen in 15 years that unless you follow the flow and upgrade a few times during such a long period (in computing time), the switch is not easy and eventually comes to require a lot of work.
0
 
LVL 11

Expert Comment

by:LordWabbit
ID: 40582228
Sad to say but I agree with Jacques Bourgeois, trying to convert VB6 code to .Net is basically a rewrite.  If you do go the rewrite route I would strongly suggest looking at the entity framework for database interaction, it may seem confusing at first but once you get used to it, it will accelerate development in leaps and bounds.
0
 

Author Comment

by:morrisbo
ID: 40583166
Thanks for your input guys - Dave Baldwin, LordWabbit, and James Burger. This has been very helpful in guiding us to the right decisions about development tools and methodology for the project.

We plan to use the latest version of vb net along with SQL using ADO. Was happy to learn that vb net is now offered free for small software development companies like our ( 2 programmers). Our company has offered products for Insurance companies and insurance agents for over 35 years, beginning with DOS, then VB3, and now VB6.

We have a large base of customers, running our VB6 product on Windows XP, 7, and 8.

The plan is to develop a version of our product using VB Net that will provide the ability for our customers to upgrade from VB6 by offering the same data base fields using SQL in addition to several new storage fields and tables.

I appreciate any thoughts on short cuts and/or tools to convert the various critical forms to the new product. The main 3rd party controls in use now are the Component One tools, mainly for the ability to display various reports with option to  print a hard copy,  Lead Tools for scanning, and Codejock for dressing up the forms.

I am hoping there is something in VB Net that corresponds to CLASSES in vb6.

In the new product we are hoping to be able to include ability for customers to access and edit their data with hand held devices.

We have in house a Windows 2003 server and think we should be able to test the web version using that computer. Am I on track here? I know Microsoft plans to discontinue support shortly.

Our web site is www.arsmanagerplus.com.

If we don't get any additional experts exchange experts in the next day or so, I will award points and close the project out.
0
 
LVL 82

Expert Comment

by:Dave Baldwin
ID: 40583223
You should go with the newest versions of everything that you can.  Windows Server 2003 is too old, it only supports IIS6.  IIS7 or IIS8 will be what are available on commercial hosting.  .NET Framework 4.5 will probably be expected and it doesn't work on Windows Server 2003.  And you may not be using ADO either.  This article https://msdn.microsoft.com/en-us/library/ms810810.aspx describes the Microsoft Data Access technologies though I note that it is 4 years old now.

In every question like this I've seen here before, the conclusion has always been that you are not going to translate VB6 code, you will be writing a new version in .NET code.  And the third party tools you mention are not likely to work on a web site.  Any time frame you had in mind for this project should be doubled.
0
 
LVL 82

Expert Comment

by:Dave Baldwin
ID: 40583229
Also, your current web site does not appear to have anything directly to do with putting your product on the web.  It appears to be a standard company web site (in PHP) and not a web interface to your real software.
0
 
LVL 40
ID: 40584184
As Dave says, move everything to the latest technologies. The changes you are making won't be easier if you stick to 2010 technology than they will be if you move right now to 2013 or 2015. But what you will do with the newest technologies will last longer.

You are talking about ADO. Know that names can be misleading. ADO.NET has almost nothing to do with the ADO you know. Think that there is no Recordset object, and this automatically tells you that the thing is very different. You can still use the old ADO, but it is not recommended, specially with SQL Server. It is slower and Microsoft has plans to drop the OleDB driver for SQL Server, which will render your code useless. And god know how long the old ADO will still be supported in .NET. You thus have to think about moving to a new database access technology, be it ADO.NET or technologies that runs over it such as LINQ and data entities. Research these before you embark on your rewrite of the application.

And since you are talking about mobile development, know that ADO and ADO.NET are not available there anyway. You will have to learn to create a Web Service. Also be aware that coding for mobile applications and creating the interfaces has almost nothing to do with coding for regular windows applications.

Yes there are classes in VB.NET, and they go a lot more farther than the classes in VB6. If you had fun with those in VB6, you will be in paradise in .NET, if you are willing to learn what real classes are. The ones in VB6 were very limited as far as object oriented programming was concerned.

I would suggest a few training sessions. In my 13 of experience as a VB.NET trainer (and 10 more in VB6 prior to that), I have met a lot of programmers that are in your situation. I have evaluated that in average, VB6 programmers who try to learn by themselves usually take around 6 months before they feel comfortable with .NET. But they often see at that point that most of what they did during these 6 months was crappy, sometimes to the point were they have to restart from scratch. They brought their old VB6 habits with them, and this is the worst way to go in. I also see many of these in my classes. They find out after 6 months that they cannot do it properly without solid bases. I often see programmers who have learned on the job and have 1 or 2 years of experience come to my advanced courses; and then I see them in my introductory course a few weeks later because they found out that they were not using .NET to its full potential, still thinking as VB6 programmers instead of .NET programmers.

Programmers who have training usually take around 2 months to feel at home, but what they do during that period is not so bad and can usually be used even if it is not the best they could have done.

And if you want to go into mobile development, then as least one of you should also get training on the subject.
0
 

Author Comment

by:morrisbo
ID: 40584267
Jacques Bourgeois (James Burger)

Specifically, what training material do you recommend for us?

morrisbo
0
 
LVL 40
ID: 40584363
I live in Montreal and teach in French, so I am not aware of what is available somewhere else and in English.

I suggest that you look for a good training center in your area.

In my opinion, books are not very useful nowadays. Things are going too fast, books needs to be big, and they cannot follow up. Most books are written on the beta version of the software, by programmers that did not have the possibility of using the tools on real world applications, and thus do not know their problems and limits.

A good trainer is up to date with the real world and can bring you a lot more.

You might also search for audio-visual material. But there too, I would prefer something that is live instead of a collection of DVDs. The DVDs suffer the same problems as the books. Web base training is usually better because they can update their documentation as the developers of the site content gain experience with what they teach. You can also usually chat with them and sometimes join special online sessions.
0
 
LVL 11

Expert Comment

by:LordWabbit
ID: 40585220
Whilst I agree mostly with what Jacques is saying, in that the technology is changing fast, I disagree that picking a decent book and settling down for a good read will not add value.  Anything you didn't know before can only help going forward.  That being said it's almost pointless reading about deprecated code, LINQ to entities is dead, skip that and move to the entity framework or code first methodology (not a fan, but it does work).  MVC is a design pattern, was doing it before it even had a name.  Moving from VB6 to .Net now is going to seem like a large hurdle (and it is) but in around 6 months you will wonder why you did not make the move sooner.  The changes in the IDE alone are monumental and will increase your coding rate drastically.  Learn the keyboard shortcuts, download a cheat sheet of the most common / useful shortcuts.   Spend a bit of time going though the basic assemblies, get a handle on the stuff you will be doing most, System.IO.File, System.IO.Path, System.Data.SqlClient etc.  Use stringbuilders A LOT when building long strings, that sort of thing.
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
ID: 40585232
@LordWabbit

...LINQ to entities is dead...
Did you mean LINQ-to-SQL? Wouldn't "LINQ to entities" be Entity Framework  = )
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 11

Expert Comment

by:LordWabbit
ID: 40585238
To Jacques, I would add that there is an old adage, those who can't do, teach.  But it's clear from your comments that you are well versed in your subject matter.  I wish my initial instructor in .Net was as well versed as you.
0
 
LVL 11

Expert Comment

by:LordWabbit
ID: 40585249
@kaufmed
Quite right, my bad.
0
 
LVL 40
ID: 40585345
@LordWabbit

The word "instructor" is quite large in meaning.

In many companies, the instructor is another programmer that just had training and is giving it back to his colleagues. The worst instructor you can get, since he has a superficial grasp of the concepts and no experience at all.

Then, there is the teacher, who is too often somebody who studied, studied, studied... and then started teaching. He is topnotch in theory, but lacks a lot if not all about what happens in the real world. And there is an abyss of difference between theory and the real world.

I cannot say for elsewhere, but in my part of the world, teachers are usually hired full time. They need to fill these hours, so they are often asked to teach subjects in which they have absolutely no experience, even in theory. I often have in my classes teachers that come to learn VB.NET because they have to teach it the following semester. Since they teach full time, do you think that they have much time to get experienced before they start teaching? Or that they do practice during their 2 months of vacation? Also, most teachers in my part of the world are unionized, so there is no way to get rid of them if they are bad at teaching, only if they do bad things as human beings.

Then there is the trainer, a technical trainer to use the more official term. I am not a teacher, but a trainer. I do not teach in schools, colleges or universities, but through specialized training centers that offer training to companies. So when I say that I teach, I should say that I train (choo...choo). English is not my main language, so I do not always use the right words. I do have some academic training in programming, but most of what I learned, I learned the hard way, by reading a lot, by experimenting and by doing it... through so many years, always following the flow instead of sitting on what I already knows.

A trainer (at least in the places where I have teached/trained) is a programmer who had a lot of real experience before he started to work as a trainer. He usually works part time as a programmer and part time as a trainer, so he keeps an eye on what goes on in the real world instead of being isolated in his academic world. That makes a big difference.

There are a few good teachers (Mr. Bazinet, my university math teacher, is someone I will have in my heart all my life), but not many bad trainers. Training being mostly a freelance affair (at least here in the Montreal area), and your students being professional programmers who pay quite a good amount of money for their training, you do not survive long as a trainer if you are not able to bring answers to real world problems.

And most trainers that I know do it because they like or even love their job. It is very stimulating and rewarding. So much that when things are slow, they end up spending a lot of time answering questions on Expert-Exchange, because they miss the pleasure of communicating what they know from others. Most of what I learned came from places such as this one, not from teachers or from books.

Sorry if I offended a few teachers with my comments. If you are here, you are probably a Mr. Bazinet, one of the good ones, and what I said about teachers probably does not apply to you.
0
 

Author Comment

by:morrisbo
ID: 40585462
From what I am hearing about the importance of selecting our training material and help wisely, I am beginning to think that maybe the best situation for us is to attempt to locate and hire a "consultant" who is proficient in some later version of vb net, and pay for their services at an hourly rate, since we have no knowledge of the new language except where the syntax may be similar to what we already know about VB6 and do not know how much assistance we need. Let me know if any of you guys might be interested in a project / arrangement like this let me know.

I do know that it is imperative to begin the project fairly soon. We are quickly being stuck with an obsolete language, and therefore a "program" or application that may be losing value should we decide to sell the package. It currently runs very smoothly with very little maintenance requirements.  We have been programming using VB3, then VB6 for approx. 16 years and consider ourselves very proficient with these tools.

Also, I looked into the suggestion that we would qualify for the free version of vb net 2013. I am wondering about SQL. I think Microsoft also has a free version of it also.  Important when we start distributing the new product.

As far as the testing of the net version, our best approach may be to rent a box  with a later version of Windows server from a web hosting company.

For marketing the new program we will have customers that have little interest in using a remote data base / program site, so just offering a more up to date product would permit new functionality . Other current customers and future prospects we believe would like the idea of being able to access and edit their customer data from virtually anywhere with an internet connection. The shift in customer preference is towards the latter.

We have explored working with web hosting companies that are able to load vb6 exe programs and run on their web site. Just not prepared to use this arrangement that would make us completely dependent on a 3rd party for our product and our customers, (quality of service, price increases, etc.).  Once our customers have invested their time in loading their insureds data, I think it would be an almost impossible task in changing where the program and data reside, i.e. some other web hosing vendor.

All comments on the above thoughts are greatly appreciated.

morrisbo
0
 
LVL 40
ID: 40585660
Before hiring a consultant, be sure to have references. A lot of people out there present themselves as consultants and do not know that much. I've had consultant in my introductory course that took it because they were starting on a new mandate that required VB.NET the following week.

There is a free version of SQL Server called the Express edition that can do the job quite well if the needs are not to high. If Access 2000 was enough, this would be more than enough. It has some limitations, such as 5GB of data and a limited number of simultaneous transactions, but it is a Ferrari compared to the Lada that is Access. It could well fit the bill.

For a distant repository that could be used to store your customers' data, have you thought about the cloud. This is not something I have used, but something I would consider if I were in your position. Microsoft (under the name of Azure) and Amazon offer cloud solutions that are said to be affordable and from which you should expect good service. The one from Microsoft offers SQL Server storage and might the answer to your needs. Last time I looked, they gave 1 month free to try the thing. The latest versions of Visual Studio are designed to work with Azure.
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
ID: 40586180
Before hiring a consultant, be sure to have references.
I second this. Working in the government sector, I've seen my share of consultants/contractors. In my current scene, we've got some pretty knowledgeable folks, but at another agency some of our contractors were less knowledgeable than our entry-level FTEs. Not having any folks experienced with the technology puts you at a slight disadvantage, but references and work samples should help to bridge the gap.
0
 

Author Comment

by:morrisbo
ID: 40587567
Thanks all.

The post generated a good discussion and gave us some important things to consider in beginning the work. Also, now have a good educated idea on the tools I should consider.  I personally have been programming now for 40 + years, from the IBM 1401 main frame, then Cobol on IBM 360 main frame, then with the first IBM PC using 5 1/4 floppy disks, then 3 1/2 disks, CDs and now we send out new versions of our DBMS using cloud products like Dropbox.  Guess I am a computer nerd.  Love the programming profession.

Its a shame that there is a limit of 500 totals points to be awarded.

Also, this discussion may be beneficial to others using Experts Exchange.

morrisbo
0
 

Author Closing Comment

by:morrisbo
ID: 40587573
Experts Exchange is an excellent venue for computer related solutions.
0
 
LVL 40
ID: 40587580
You did not work with 8 1/2 floppies? If you want know what floppy means, try to find one. I still have one that I show to my students from time to time, and they think that it is a joke for programmers. But they were really used in the first TRS-80 micros. And what about the operating system for the PDP-8, that needed to be loaded from paper tape each time we booted the thing.

Yes sir. Programmers who lived in these times and are still here and going strong with modern programming practices are surely the greatest computer nerds. And they are probably the ones that appreciate today's programming techniques the most, because they know how hard it was in the past, when you were lucky if you could compile your Fortran program on perforated cards more than 2 or 3 times in a day.
0
 
LVL 82

Expert Comment

by:Dave Baldwin
ID: 40587634
8-inch floppies were used extensively with CP/M in the late 1970's and early 1980's.  I have boxes of them with software on them in my desk drawer, hundreds of them.  5-1/4 inch too.  I don't know if they are any good at this point since I haven't used them for 20 years now.
0
 

Author Comment

by:morrisbo
ID: 40587637
You are right about 8 1/2 floppy.  At first I thought I had made a typing error with my comment. We both go back a long ways with data processing, a term that probably most newbies would not even recognize.

My first program on the IBM PC was written using the Basic interpreter that came with the computer.  I believe it had 265 k memory and no hard disk. Also the screen was green, no color screens available yet. The computer and Okadata dot matrix printer cost $5000.00 plus.

One thing I forgot to mention as a good source of information are the internet search engines like Google.

Don't know how many times I would enter "How do I ..... using VB6 or ADO or something else?

We have a library of VB6 text books, some were good, some very bad. Persistence is the name of the game in getting answers in developing software.

 You are right about how fast the technology is changing. We may go for VB Net 2015 to try to get ahead of the curve.

Also, had not even thought about the possibility of using the new Microsoft azure for SQL Server storage.

morrisbo
0
 
LVL 40
ID: 40587691
256K (you probably made a typing mistake with 265K)?

My first contact with personal computers was a Timex Sinclair that my father won : 2K.

The first one I bought myself was a Color Computer : 16K.

I bought a kit to extend it to 64K. This involved replacing 8 chips (the one with these so delicate legs that tended to fold onto themselves instead of entering properly into the sockets), completely cutting 8 capacitors out of the board, cutting 3 traces on the motherboard with an X-Acto, screwing in a little electronic circuit and connecting it to components of the motherboard in 3 places with clips. You then crossed your finger and turned on the switch, wondering, during the 2 or 3 seconds it took to know if you had ruined everything, what you would do with all that memory.

First hard drive was 20 Mg. It came on a board that was folded at an angle in order to fit in the computer case. Cost 620$ somewhere at the beginning of the 80's. I used a severance package from losing a job in order to afford it.

Did you say nerd?

Ah, these wonderful days.
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
ID: 40587758
Well you could always compile your COBOL to .NET if it would be easier to digest   ; )
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

To stay competitive, modern businesses must adapt and stay innovative, and this is increasingly only possible by working with outside talent. Managers and executives have understood the power of outsourcing for quite some time, but traditional clien…
As freelancing is becoming more and more common in the tech industry, certain obstacles are proving to be a challenge to those who are used to more traditional, structured employment. This article is meant to help identify such obstacles and offer a…
This video walks the viewer through the process of creating Hyperlinks for the web and other documents. Select the "Insert" tab: Click "Hyperlink":  Type "http://" followed by a web address to reference a website or navigate to a document to ref…
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now