same output binary to be produced from any .NET programming language. Development environment Visual Studio provides minor differences in the development environment for C# and VB.Net. With each subsequent release of Visual Studio, the differences between development environments for these languages have been reduced. For instance early versions of Visual Studio had poor support for Intellisense in C# compared to Visual Basic .NET, and did not offer background compilation for C#. Currently, the main differences in the development environments are additional features for Visual Basic .NET that originated in VB6, including: The default namespace is hidden (but can be disabled) Certain project files are hidden (the user can show them) The auto-generated My.* namespaces contain many commonly used shortcuts brought over from VB6, such as methods for operating on the registry and application configuration file Background compilation is a feature of the Visual Studio IDE whereby code is compiled as it is written by the programmer with the purpose of identifying compilation errors without requiring the solution to be built. This feature has been available for Visual Basic since .NET 1.1 and was present in early versions of Visual Studio for Visual Basic .NET. However, background compilation is a relatively new concept for Visual C# and is available with service pack 1 for Visual Studio 2008 Standard Edition and above. A distinct disadvantage for C# is that the Error List panel does not update until the solution is rebuilt. Refactoring large projects in C# is made more difficult by the need to frequently rebuild the solution in order to highlight compilation errors. Such is not the case with Visual Basic because the Error List panel is synchronized with the background compiler. Background compilation is less demanding on system resources and results in faster build cycles. This is a particular advantage with large projects and can significantly reduce the time required to start debugging in the IDE. Language features The bulk of the differences between C# and VB.NET from a technical perspective are syntactic sugar. That is, most of the features are in both languages, but some things are easier to do in one language than another. Many of the differences between the two languages are actually centered around the IDE. Features of Visual Basic .NET not found in C# Variables can be declared using the WithEvents construct. This construct is available so that a programmer may select an object from