Q&A
If I use .NET for my Internet project, does this mean that Microsoft will have control over my application and possibly charge usage fees?
Absolutely not. Microsoft will have some indirect control because its developers wrote the compilers and code libraries that .NET uses. It's in Microsoft's best interest to provide top-notch development tools for you. Microsoft has done so in the past and will likely continue to do so in the future.
I have been reading about Web Services and the "Hailstorm" initiative. Will Microsoft control access to my Web Service?
Again, no. Web Services and the Hailstorm initiative are only loosely related. Hailstorm includes, among other things, services for your Web Services. By using Hailstorm services, you can let Microsoft take care of user authentication (usernames and passwords). You don't have to use Hailstorm, and it's not appropriate for many Web Services. .NET includes alternate classes that you can use for user authentication. The best part is that these alternative methods are easy to use and give you complete control over usernames and passwords and all security aspects of your application. Day 19's lesson will give details and sample programs that you can use.
.NET sounds interesting. Do I have to throw away all my existing code?
No. You can continue to use your existing code, such as Active Server Pages, for the foreseeable future. You can also convert all or part of your code to .NET, or create new .NET components from your existing programs, and you can use existing code in your .NET Internet applications without much extra work. Day 17's lesson gives details and sample programs.
I don't know if I should use Visual Basic, C#, or another language available with .NET. Which is better?
Your choice of language should be based completely on your own preference. There is no real performance difference between any of the languages you can use with .NET. Any performance differences between programs written in any of the languages are so small that they make no practical difference. As of this book's writing, the performance differences between Visual Basic and C# are essentially zero. This book, of course, focuses on Visual Basic.
I have heard that the Visual Basic and C# languages are compiled into intermediate language, similar to Java bytecodes. Will my .NET programs run slowly compared to code from previous versions of Visual Basic and C++?
All .NET code is compiled into native assembly language instructions, either before the code is deployed or as the code is executing. You can control which compilation method is used. .NET code is, in general, slower than a quality C++ program. By the same token, C programs are faster than C++ programs, and assembly language programs are faster than C programs. With today's fast computer hardware, considerations like this are a thing of the past. If you need to write a program with extremely tight performance constraints, such as a device driver or operating system, .NET isn't for you. If you need to create an Internet site or a service available over the Internet, .NET is a perfect choice.
What does .NET buy me in real terms?
First, faster Internet application development. .NET contains a huge amount of plumbing that most Internet applications require, which you can use "out of the box." Today's lesson showed how you can create a Web Service with about five minutes work. Second, better performing Internet sites. Web pages that use .NET are faster than the old ASP and other interpreted solutions by a large margin because they use compiled code. There are many more reasons, including rich XML support, better debugging and tracing, database access classes designed for scalability (ADO.NET), and many more. Read the rest of this book to find out the complete answer!