Integrated Help System
If your like me, you can’t be expected to know all the possible API’s (or in this case the .NET Framework) off the top of your head. This is where the integrated help system comes into focus. One thing Microsoft is good at is creating help systems for the development tools and languages. In fact, sometimes they go just a bit overly helpful and document the same item twice, using two conflicting explanations. However, from what I can tell so far, they have outdone themselves with this release. All the information you would expect is available, from how to customize the IDE, right down to cross references for base classes in the .NET Framework.
But that’s not the end of it (or even the beginning). The whole point is does it integrate into the IDE. Not only does it integrate nicely, it does an extremely good job of it. But, how hard could that be, it’s been their in the past, and most everyone has a help system. Well, for one, they added a “Dynamic Help” system to the IDE. As you are writing code, it updates the Dynamic help window with relevant information, so help on a particular function or related topic is just a mouse click away. Included in the Dynamic Help are topics that cover the specific class that you may be working on, and even samples that may contain code that uses the classes.
One thing that is
still undecided is the level of updates to the system that Microsoft will be
releasing. It has been stated that the next release of the MSDN Library will
be updated to include the Visual Studio .NET and .NET Framework help.
However, if that is going to be to the method keeping up on the latest help
files, I for one hope that once it is installed, I don’t have to wade
through the entire help system of Visual Basic 6 and Visual Interdev from
within Visual Studio .NET. To me, that would ruin the entire help system.
The last thing I want my fancy Dynamic help to show me is language syntax or
code examples from a previous version.
Debugging Your Code
As all developers know, all code has problems the first time it is written. And if your one who believes you write “bug free” code, then the integrated debugger in Visual Studio .NET will set you straight. The rich set of features that it includes are vastly under rated, and its ability to debug multiple languages at the same makes it one of the most important features of the Visual Studio .NET IDE.
Whether you are debugging a normal windows application, or a web project on a remote system, stepping through your code could not be simpler. Lets take for example a web project on a remote server that uses Visual Basic .NET. You simple select the start page in the Solution Explorer, select the breakpoints in your code, and start the debugger using keyboard shortcut or menu command. The IDE will compile all dependant code that it has access too, upload the information to the web site, connect to the remote debugger and launch the page in a web browser. When it hits a breakpoint, it pops into the IDE and allows you to see what’s going on using a number of available windows and options. You can modify the results of a command that you just executed, and see how you code reacts, or you can pinpoint the specific line of code that caused a problem. While you can’t actually modify the code that is being executed, you can step into or over certain portions to see how each behaves.
The debugger also lets you debug multiple sources at the same time. For example, if you are calling a stored procedure within your project, you can set a breakpoint within the stored procedure, and when your project calls the stored procedure, it will allow you to debug that as well. Or perhaps your solution in the IDE contains multiple projects. One for actual code on a web page, and a separate assembly that you created that is used within that web page. The web project is written in VB.NET and the assembly is written in C#, but since both projects are loaded into the same solution, you can debug both at the same time. So, in essence, you are debugging three languages at the same time (VB.NET, C#, and TSQL). Sure, some of us have debugged numerous languages at the same time using other tools, but I do not know of a single debugger that will handle all of them at the same time.
The only real important thing that is missing, and every developer needs is a profiler. But that’s more in the realm of optimization of your code, and most will agree that’s not actually Microsoft’s strong suit. Perhaps some third party company will develop such a tool that nicely integrates into the IDE.
Visual Studio .NET Macros and Add-Ins
While not actually integrated into the same IDE, it does launch a separate IDE, which is similar, for editing of macros that can be recorded and played back within the Visual Studio .NET environment. This seldom used, but powerful addition allows developers to automate processes within the IDE that you may need, but is not provided by default. Developers also have the ability to create Add-Ins that allows you to customize and extend the IDE. With a comprehensive extensibility model of over 200 objects, you can create your own additions to the IDE in a variety of languages.