Tuesday, August 10, 2004

New Features in Visual Studio 2003

Microsoft Visual Studio .NET 2003 (VS 2003, doesn't introduce as much new functionality as the original Visual Studio .NET, also known as VS 2002. Microsoft's latest integrated development environment (IDE) brings lots of cool new features to the developer's table

VS 2003 includes plenty of new features. The following sections describe what I think are the best ones.

Better Database Support
The .NET Framework Data Provider for ODBC is now available with the .NET Framework under the namespace System.Data.Odbc.The .NET Framework Data Provider for Oracle now ships with the .NET Framework under the namespace System.Data.OracleClient. Developers using the .NET Framework version 1.0 can download the .NET Framework Data Provider for Oracle from http://msdn.microsoft.com/downloads.
In addition, ADO.NET now includes the following features:
• The DataReader object now exposes a HasRows property to determine if rows were returned without having to call Read.
• The Connection object now has an EnlistDistributedTransaction method to enable manual enlistment in distributed transactions.

Side-by-Side Execution:
The .NET Framework version 1.1 supports side-by-side execution. Side-by-side execution is the ability to store and execute multiple versions of an application or component on the same computer. This means that you can have multiple versions of the runtime, and multiple versions of applications and components that use a version of the runtime, on the same computer at the same time. In addition, subsequent installations of other versions of the .NET Framework or of a component will not affect the applications already installed. Side-by-side execution does not imply that a managed application is compatible with other versions of the runtime or of a component. Rather, it means that a managed application can choose the runtime and the components it executes with, and that multiple versions of the runtime, applications, and components can coexist on the same computer. It is up to you to decide which versions of the runtime and which components a particular application will use.

Java Support
VS 2003 brings first-time integration with Visual J#, a tool for Java developers who want to use Microsoft's .NET framework to build applications and XML Web services. Outside of Visual J#, VS 2003 also supports Visual Basic (VB), Visual C++, and Visual C# developers. The new IDE is available in Standard, Professional, Enterprise Developer, and Enterprise Architect editions.

Code Obfuscation
Also new in VS 2003 is a built-in utility for source code obfuscation. In addition, VS developers can now download Microsoft's Enterprise Implementation Framework (EIF), a tool that the company promises lets you quickly add runtime monitoring to your applications. The source code obfuscation tool, Preemptive Dotfuscator Community Edition, is the "little" version of a product from Preemptive Solutions, a Microsoft ISV partner based in Cleveland. Microsoft says it included the tool to protect the intellectual property of programmers who distribute VS 2003 code, as well as to help developers reduce the size and improve the performance of mobile and other .NET applications. The tool is designed to render Microsoft Intermediate Language (MSIL), which is said to be very difficult, if not impossible, to reverse-engineer into comprehensible source code.

ASP.NET Mobile Controls - (formerly the Microsoft Mobile Internet Toolkit)
ASP.NET Mobile Controls (formerly the Microsoft Mobile Internet Toolkit) extends the .NET Framework and Visual Studio .NET by providing support for mobile (wireless) devices such as cell phones and personal data assistants (PDAs). The .NET Framework version 1.1 release incorporates the mobile controls into the .NET Framework and Visual Studio .NET distributions. Because mobile controls are now a part of the .NET Framework, the terminology has changed to match the conventions used in .NET documentation, and the mobile controls documentation has merged into the larger .NET Framework documentation set. The name Mobile Internet Toolkit is replaced by ASP.NET Mobile Controls.ASP.NET Mobile Controls extend ASP.NET server controls such that they adapt to the mobile device on which the Web application is rendering. Through browser detection, the mobile controls conform to the capabilities of individual devices ranging from full-featured PDA browsers to small, 5-line × 20-character cell phone displays. This adaptive rendering feature handles many of the tedious device-specific rendering decisions and frees you to focus on your Web application logic.

Changes in .NET Framework Security:
In version 1.0 and 1.1, applications that receive less than full trust from the runtime code access security system cannot call shared managed libraries unless the library writer specifically allows them to through the use of the AllowPartiallyTrustedCallersAttribute attribute. If you plan on using libraries from partially trusted code, you need to be aware that some libraries will not be available to your code. In version 1.1, System.Web.dll, System.Web.Mobile.dll, and System.Web.RegularExpressions.dll are included in the list of assemblies that have the AllowPartiallyTrustedCallersAttribute and can be called from partially trusted code. Default security policy has been changed so that applications executing from the Internet zone and assigned to the Internet Zone code group now receive permissions associated with the Internet permission set. As a result, applications from the Internet now receive sufficient permission to execute. In the .NET Framework 1.0 Service Pack 1 and Service Pack 2, such applications received the permissions associated with the Nothing permission set and could not execute.

ASP.NET Security:
ASP.NET now supports partial trust in Web-based applications, offering greater security for multiple applications that are hosted on a single Web server. Although the operating system account under which an application runs imposes security restrictions on the application, the code access security system of the common language runtime can enforce additional restrictions on selected application resources based on policy that you specify. You can use this feature in a shared server environment to isolate separate applications and with standalone servers where you want applications to run with the minimum necessary privileges.ASP.NET provides a configuration directive that enables you to configure code access security levels for your applications. If your partially trusted ASP.NET applications call shared managed libraries, those libraries must contain an AllowPartiallyTrustedCallersAttribute attribute that allows calls from partially trusted code. For more information, see Using Libraries from Partially Trusted Code.

IPv6 Support in the .NET Framework:
The .NET Framework version 1.1 supports the emerging update to the Internet Protocol, commonly referred to as IP version 6, or simply IPv6. This protocol is designed to significantly increase the address space used to identify communication endpoints in the Internet to accommodate its ongoing growth. IPv6 is supported in the System.Net namespace, ASP.NET, and XML Web services.

Solutions Explorer - Track Active Item:
A new option in visual studio 2003, Track Active Item in Solution Explorer, has been added to the Projects and Solutions, Environment, Options Dialog Box. When this option is selected, Solution Explorer automatically opens the folder for the active item, scrolls to its node, and selects its name. The selected item changes as you work with different files within a project or solution, or different components within an Integrated Development Environment (IDE) designer. When this option is cleared, the selection in Solution Explorer does not change automatically. This option is enabled by default, but it is cleared when you choose the "Visual C++ Developer" or "Visual C# Developer" profile on the My Profile tab of the Visual Studio Start Page.

New icons:
• checked out Exclusive - Item is checked out from a source control database to one developer only. Other developers cannot access this file.
• checked out Shared - Item is checked out from a source control database for shared use by a development team. Different versions of the item will be merged upon checkin.

Options and Settings: (Copy Options and Settings from Previous version)
You can copy certain Options dialog box settings from a previous version of Visual Studio .NET to a more recent version visual studio 2003. If you have two different versions of the program installed on the same machine, the first time you launch the newer version of the Visual Studio .NET, a dialog box appears giving you the choice to migrate your existing setting. If you dismiss this dialog, you can display it later by executing the following command from the Windows command line: devenv /migrate settings .After you migrate your previous Options settings into the new version of Visual Studio .NET, select Options from the Tools menu to display the Options dialog box and review your settings. Most option settings should appear as you last set them.

Build: (Only build startup projects and dependencies on Run)
A new option in visual studio 2003, Only build startup projects and dependencies on Run, has been added to the Projects and Solutions, Environment, Options Dialog Box, under Build and Run Options. When this option is selected, pressing F5 or choosing the Start or Build command from the Debug or Run menu only builds the startup project and its dependencies. When this option is cleared, pressing F5 builds all projects, dependencies, and solution files. This option is cleared by default, but it is enabled when you choose the "Visual C++ Developer" and the “Visual C# Developer" profile on the My Profile tab of the Visual Studio Start Page.For Visual C++ projects only, three new commands have been placed on a new Project Only submenu of the Build menu:
• Build Only
• Rebuild Only
• Clean Only
These commands build, rebuild, or clean only the C++ project currently selected in Solution Explorer, without building or cleaning any project dependencies or solution files.
Debug: (Debugger Enhancements)
The Visual Studio .NET 2003 debugger has been enhanced by the addition of several new features:
• Security enhancements, including a new restriction that limits Just-In-Time Debugging to the local machine.
• Remote debugging using pipes, a new, more secure alternative to TCP/IP debugging.
• SOS, a powerful tool for debugging from the Command window.• Support for automatically downloading of debug symbols from a symbol server.• Improved error messages, especially for errors that occur while debugging web applications.

Installation: Side-by-Side Installations of Visual Studio .NET
Visual Studio supports installation of versions 2002 and 2003 on the same machine; however you should be aware of certain issues.• Visual Studio .NET 2002 shipped with the Microsoft .NET Framework SDK version 1.0. Visual Studio .NET 2003 ships with .NET Framework SDK version 1.1. If you developed applications that reference .NET Framework version 1.0 and attempt to open the solution in Visual Studio .NET 2003, the references to .NET Framework are changed to reference .NET Framework 1.1. You should review the latest .NET Framework documentation for information on changes that might affect your application
• If you open and then save solutions created in Visual Studio .NET 2002 in Visual Studio .NET 2003, you can no longer open the solution created in version 2002 in Visual Studio .NET 2002.