Over the past two years (and with the help of many of you), I have created a CMMS that is used by my company. I have all the machine data stored in SQL Server. I have used MS Access and ASP's as the front end for data entry. I use SQL Server Agent to run exception reporting (email).
When I started I had no Experience at all with programming other than classes taken 98-99 (html, C++, vb).
Having said that, I am sure some of you can recall your first attempts at creating an app. With the constant upgrades to do more stuff, I am at the point that I need to go back and clean up (remove obsolete code).
Now for the question. I want to revamp my front-end particularly the Access App. If you were going to create a new app for data entry/reporting and your main strength was vbscript, what would you use?
My recommendation would be c#. There are enough differences between vbscript and vb.net that transitioning to c# is marginally steeper - c# also encourages better techniques for object oriented development. Also, you can translate easily to java once you have learned c#.
Anyway, research books on amazon.com to see which books would best suit your needs (whether it be vb.net or c#). Also, which will you focus more on - windows or web development. If you will develop in asp.net, then search for the appropriate books. Do you have access to visual studio .net or 2003 ?
"Front end" applications ought to be simple .. as simple as possible .. and there's usually a lot of rationale for "stick with the devil you know." That would be Visual Basic in some variation or another. And if possible, it ought to be the existing application if you can possibly do it.
First, you should carefully and systematically identify exactlywhat it is about the present application that compels you to replace it. That makes it absolutely essential to commit many thousands of dollars to doing so (even if you'll be the one who receives most of those dollars!). You need to be able to write down exactly what the deficiencies are, exactly how you'd be able to recognize an appropriate solution to those deficiencies if one hit you in the face (a solution, that is, not a deficiency...), and you ought to be able to defend those conclusions and decisions against your favorite "devil's advocate." Think from the business's point of view, not your own, and defend your company's supply of liquid cash as hard as you can. It's a good exercise.
You ought to thoroughly explore the "build vs. buy" decision angle: why is it impossible for your business not to simply buy a solution? Is your company really the first one to have been faced with this problem? Has no one solved it before? If such a solution does exist, how much would that alternative cost? (And don't blink at "$50,000" 'cuz your alternative might cost more. Again, be honest. Even cynical.)
If the true answer is, "well, I wanna learn another language and this sounds like a good excuse to do it," be honest, from a business point of view that don't wash.
Maybe the existing application can be tweaked a little and fixed. You've put a lot of time into what you have now and it's tough to justify scrapping it.
These are the kinds of arguments you should impose on yourself. If your project flies through all of this self-imposed rigor, then ... you've found a project really worth doing, and you'll have developed a crystalline idea of exactly how to succeed with it.
First you must know that in the beginning my job was to "administrator" a canned MMS and not in the development of a program. My background is in day to day maintenance of machinery. I wear several hats and the developer is not even in the job description. It is something that has happened out of necessity.
It is kinda complicated, but the short of it is that my program is very custom to our plant, and in the past 6 months, I have had several people from other plants and divisions come in to review our maintenance program. All have liked our program as it keeps the end user in mind, but because it is so custom it is not easily transferable. It combines machine history with plant performance down to the operator.
What I would like to do is take the custom code (machine specific to our plant hard coded in) out and make it dynamic, so that it would work for other plants. I want to do in a way that is most efficient and most appealing to the user. And in that I mean low resource usage (hardware and people‘s time).
I understand your last 4 paragraphs and that is the reason that the majority of the redo will be done by me on my own as an opportunity to continue to grow as a developer. Having said that, that is why I am wanting to find a platform that is easy to learn and not expensive to purchase as an individual.