I asked myself this question when early releases of .NET first arrived on the scene. Visual FoxPro allowed me to do pretty much anything I wanted, from building single-tier applications with a VFP back end, all the way to building distributed Internet applications accessing clientserver data.
Then, I started to dive into the .NET Framework to see what it had to offer, and I was amazed. First of all, I realized .NET wasn’t just for building Web applications—it was also a great tool for building desktop applications. I discovered a number of things I had to spent hours writing custom code to get working in Visual FoxPro were now simple property settings! I also found Visual Studio .NET was a pleasure to work with. Although there were a few nits here and there, by and large, the VS .NET team did a great job creating tools that would save me hours of development time.
After spending a few weeks toying with Visual Studio .NET, I moved on to the .NET Framework class library. There I found over 2,000 classes providing the building blocks for creating .NET applications. Personally, I learn best by documenting, so I fired up Rational Rose and spent a few months manually documenting all the classes in the .NET Framework, building class diagrams, showing the relationships between classes in each .NET namespace. I found the .NET Framework to be well designed, extensible, and huge. This is where you’ll find the biggest learning curve in .NET.
Next, I began studying the new C# and Visual Basic .NET languages. Both of these languages are top-notch, advanced, object-oriented languages that allow you to take full advantage of the .NET Framework base classes. Of the two languages, I personally favor C#, for its advanced language features, compact syntax, and enforcement of good programming practices. Fortunately, my technical editor helped keep me honest in providing a balanced view of both languages throughout this book.
Another benefit I’ve found with .NET is a single learning curve for building all different types of applications. Once you learn how to create a .NET Windows Forms application, you’re about 90% up the learning curve for ASP.NET applications, Web Services, and so on. Now you don’t need two teams of developers—one to create desktop applications and the other to create Web applications. You can now divide up your team in more logical units—developers who perform design and analysis, developers who create business components, developers who create user interfaces, and developers who know how to crunch data. Or, if you’re a single developer on your own, you can do all of these things yourself with a much shorter learning curve.
Don’t’ be afraid of .NET. In all honesty, you’re in a great position to learn .NET. Its object-orientation model is similar to Visual FoxPro’s, and I find VFP developers are able to learn .NET quickly and begin using it to create software applications. More often than not, you may be using .NET to access your existing Visual FoxPro code. In recognition of that, Chapter 15, “Interoperability with Visual FoxPro” shows you how easy this is.
I hope this book answers many of your questions about .NET and helps you get up to speed quickly. Personally, I’m having a blast working with these technologies, and I think you will too.