That's the hype and now comes the reality check. One of several major problems with this rather cool technological vision is that network resources are not transparent in the same way that local resources are. Network resources do not tend to have the same availability, latency, and reliability as resources on the local machine. The software that you write must take all of this into account, and using some of the very convenient programmatic interfaces that .NET provides can even make these problems worse by concealing the hairy details from you. Furthermore, if your application reaches into the Internet cloud where thunderstorms regularly rage, it can go down faster than the Titanic .
Another key difficulty with this vision is that .NET's default security model grants only minimal permissions to code downloaded from the local intranet and even fewer rights to Internet-based code. Without a good understanding of this security model and the implications of changing security policies in general, debugging security and permission problems can rapidly turn into a nightmare.
So VB .NET allows developers to build software systems, especially network and Web applications, much easier than in the past. However, it also introduces many new ways of creating bugs . This leaves developers with the daunting challenge of trying to build more complex systems that are still easy to diagnose and fix when things go wrong. If we're not careful, the more distributed and more complicated our software applications become, the more we will be digging ourselves into a very large hole.
Larger systems, and especially distributed applications, have to be designed and debugged using different methods than those used for their smaller counterparts. Real-world experience has to be earned the hard way. The introduction of middleware elements in the form of firewalls, caches, accelerators, translators, gateways, and messaging infrastructures means that your software application must overcome several barriers in learning to cooperate with its surrounding environment. Software requirements seem to be increasing in complexity daily, with reliability, availability, security, and integrity becoming ever more critical to businesses.
The "programming via blunt object" school of thinking that often prevailed when using VB.Classic is no longer sufficient. If developers don't understand that the rules have changed with VB .NET and that the process of delivering reliable and low-defect software has to change likewise in order to compensate, the storm clouds will grow ever darker and more ominous. Eventually the bugs will fall like rain upon our applications. Technological progress will have merely provided us with a more efficient means for going backward.
This book is about many of the traps and dangers associated with designing and debugging software in the interesting new world of VB .NET. It is definitely not a criticism of the language or framework. Every technology has aspects that can cause problems for developers who are starting to use that technology. These dangerous aspects should not blind you to the potential benefits of this new language and class library. If you can understand and steer around the storm clouds, you will experience the benefits of a powerful and productive development environment matched with some excellent debugging tools that can work across your entire application.