Code:
Also how tough is it to learn VB.net and what software do you need for it?
Had to chuckle a little, 'cause my original reply to your post was gonna be "don't use Access if you want a form that doesn't look like its running in Access!"
The first part of your question, "how tough is it to learn
VB.net", really reduces to "How hard is it to learn
true object-oriented programming", cause thats what the shift from Access/VBA (even
VB to a lesser extent) to
VB.NET, or any other .NET language, would really be all about. The language isn't harder to learn than any other, just study the on-line help. But learning to think differently as you make the leap from procedural to object-oriented programming is definitely challenging. For example, VBA supports some object-oriented features, like class modules. But you can work with Access/VBA your entire life, and never have to write one (the topic is practically never discussed, for example, on this forum). In .Net languages,
all you write are classes, and your classes inherit from other classes, and override methods in base classes, and get cast as base classes to behave polymorphically, etc. Of course, you write other types as well, interfaces, structures, enums, delegates. But there is no such thing as VBA/
VB standard modules or sub procedures/functions (though static methods in .NET classes sort of resemble VBA/
VB sub procedures/functions in standard modules). In .NET, everything is an object, and objects have methods. Even the primitive data types, like Integer and String, are structures or objects with properties and methods of their own. In VBA you think in terms of procedures; in .NET, you think in terms of objects. There is nothing trivial about the switch from VBA/
VB to .NET because there is nothing trivial about the switch from procedural to object-oriented programming, but its the best move you can make if you're serious about programming.
However, I'd strongly suggest learning C# instead of
VB.NET. Again, the language is no harder to learn than
VB.NET (once you get used to the curly braces). But there is a larger C# mindshare out there to tap into than you'll find for
VB.NET (as evidenced by, for example, the number of C# vs.
VB.NET applicants for MCAD/MCSD Certification exams, and the respective size and quality of the languages blogging communities). In short, more folks are doing more interesting things with C# than
VB.NET.
Finally, the other steep learning curve aspect of moving to .NET, regardless of language preference, involves learning the architecture of the .NET framework development platform itself. You'll run into all kinds of totally brand new things like managed code, garbage collection, assemblies and how to disassemble them into intermediate language to view the code that really makes your apps run (regardless of source code language), the classes available in the .NET Framework Class Library (thousands of them), how the Common Language Runtime Works, and what the types in the Common Type System are. When I started writing C# apps about three years ago, I just skimmed this stuff, which made learning C# a lot more conceptually difficult than it needed to be. So here's my last piece of advice: Read Jeffrey Richter's "Applied Microsoft .NET Framework Programming"!!!!! Then read it again!! (It's written in C# by the way).
What do you need to run it? Get VS.NET 2005 Pro. Or you could just download the Framework which includes the language compilers and write your programs in note pad (just kidding, though you could). Or download SharpDevelop, an open source version of the VS.NET IDE from
http://www.icsharpcode.net/. Wrox even published a book on it, "Dissecting a C# Application: Inside SharpDevelop".
The move from VBA/
VB to .NET ain't easy. There are enormous differences between languages and platforms. But do it, and you'll be thanking me a year from now.
Bob