If your goal is to produce significant, robust, and elegant applications with few bugs in a minimum amount of time, then a modern integrated development environment (IDE) such as Microsoft Visual Studio .NET is an invaluable tool. Visual Studio .NET offers many advantages to the .NET developer:
- A modern interface using a tabbed document metaphor for code and layout screens, and dockable toolbars and informational windows.
- Convenient access to multiple design and code windows.
- What You See Is What You Get (WYSIWYG) visual design of Windows and Web Forms.
- Code completion that allows you to enter code with fewer errors and less typing.
- IntelliSense pop-up help on every method and function call as you type, providing and types of all parameters and the return type.
- Dynamic, context sensitive help that lets you view topics and samples relevant to the code you are writing at the moment. You can also search the complete SDK library from within the IDE.
- Syntax errors are flagged immediately, allowing you to fix problems as they are entered.
- A Start Page that provides easy access to new and existing projects.
- .NET languages that use the same code editor, shortening the learning curve. Each language can have specialized aspects, but all benefit from shared features such as incremental search, code outlining, collapsing text, line numbering, and color coded keywords.
- An HTML editor that provides Design and HTML views that update each other in real time.
- A Solution Explorer that displays all the files comprising your solution (which is a collection of projects) in a hierarchical, outline.
- A Server Explorer that allows you to log on to servers to which you have network access, access the data and services on those servers, and perform a variety of other chores.
- An integrated Debugger that allows you to step through code, observe program run-time behavior, and set breakpoints, even across multiple languages and processes.
- Customization that allows you to set user preferences for IDE appearance and behavior.
- Integrated build and compile support.
- Integrated support for source control software.
- A built-in task list.
On the negative side, Visual Studio .NET can be a black box and thus inscrutable. It is sometimes difficult to know how Visual Studio .NET accomplishes its legerdemain. While Visual Studio .NET can save you a lot of grunt typing, the automatically generated code can obscure what is really necessary to create good working programs. The proliferation of mysteriously named files across your filesystem can be disconcerting when all you want is a simple housekeeping chore, like renaming a minor part of the project. Worst of all, it occasionally decides to reformat all your carefully constructed code, mashing indents and line breaks like a malevolent typist drunk on too much coffee.
Visual Studio .NET is a large and complex program in it's own right, so it is impossible to explore all the possible nooks and crannies in this book. This chapter will lay the foundation for understanding and using Visual Studio .NET and point out traps along the way.
For a thorough coverage of Visual Studio .NET, please see Mastering Visual Studio .NET, by Jon Flanders, Ian Griffiths, and Chris Sells (O'Reilly).