
| Visual Studio 2008 and the .NET Framework 3.5 |
| Monday, 17 December 2007 |
|
Visual Studio 2008 is the latest release of Microsoft's flagship developer product. Along with the accompanying release of the .NET Framework 3.5, Visual Studio 2008 includes significant new features that help developers access data; brings Visual Studio up to date with new features introduced in Windows Vista, the .NET Framework 3.0, and Office 2007; and further improves Visual Studio as a Web development tool. Because virtually every corporate application accesses and updates relational data of some sort, the feature most likely to gain the attention of corporate developers is Language Integrated Query (LINQ). LINQ allows Visual Basic and C# developers to access data from XML and relational databases in a way that most will find substantially quicker and simpler to code, less error-prone, and easier to debug and maintain. Other new features, such as support for creating applications built on Office 2007 and improved JavaScript debugging, will appeal to developers working on specific types of applications. While Visual Studio 2008 is a significant release for developers, Visual Studio Team System (VSTS), Microsoft's application life-cycle management product that provides collaboration between developers, testers, and other members of the software development process, offers only modest enhancements and developers will likely have to wait until 2009 to see major improvements in VSTS. IntroductionVisual Studio 2008 is the latest release of Microsoft's flagship developer product. Along with the accompanying release of the .NET Framework 3.5, Visual Studio 2008 includes significant new features that help developers access data; brings Visual Studio up to date with new features introduced with Windows Vista, the .NET Framework 3.0, and Office 2007; and further improves Visual Studio as a Web development tool. Visual Studio is a key part of Microsoft's developer platform and, along with the .NET Framework, is one of the company's greatest competitive advantages. The quality of the development environment—the ease with which it lets developers create and maintain code—bolsters the success of other Microsoft businesses, such as Windows and Office. Continuing to improve Visual Studio is important not only to Microsoft's developer tools business but to the company as a whole. Specifically, Visual Studio 2008 offers improvements in the following areas: Database access. The feature that will have the broadest impact is Language Integrated Query (LINQ). LINQ allows Visual Basic (VB) and C# developers to access data from XML, relational databases, and in-memory data structures in a way that most will find substantially quicker and simpler to code, less error-prone, and easier to debug and maintain. Other .NET improvements. The Windows Communication Foundation (WCF) has been updated to better support the growing popularity of REpresentational State Transfer (REST) or so-called RESTful Web services—Web services that avoid certain Web service protocols in favor of simpler alternatives. WCF also supports the latest version of several Web service protocols for Transactions and Reliable Messaging. Integrated development environment (IDE) improvements. The Visual Studio IDE has been updated to support some features of the .NET Framework introduced with Windows Vista in Dec. 2006, including the Windows Presentation Foundation UI library. IDE improvements also help developers who must build applications that run on older versions of the .NET Framework. Updated Office support. Visual Studio 2008 enables developers to build applications that take advantage of Office 2007, particularly the new UI introduced with that release. Other changes make debugging and deploying Office-based applications simpler, lowering the cost of development. Web development. Visual Studio is also used to build Web applications, particularly those that run on Microsoft's ASP.NET platform. With this release, Visual Studio gains new features that help Web developers, including better support for authoring Cascading Style Sheets and debugging JavaScript. Looking beyond Visual Studio 2008, Microsoft will bring portions of the .NET Framework to the Mac through Silverlight 2.0, its tool for developing lightweight, interactive Web applications, and will update portions of the .NET Framework to improve database access by making it easier to build "occasionally connected" applications—applications that make an offline copy of important data, allow the user to update the data, and then synchronize changes with the original data source when the application is connected to the network once again. Longer term, a major update to Visual Studio Team System—the team development portion of Visual Studio—could expand the reach of that product to better support automated testing. The Visual Studio release after that will be part of Microsoft's "Oslo" wave of products aimed at delivering updated messaging and workflow technologies, along with more comprehensive application modeling. Neither of those updates, however, is expected before 2009 at the earliest. LINQ Leads .NET Framework 3.5Since its introduction in 2000, the .NET Framework has become the lynchpin of Microsoft's developer platform. The latest update, version 3.5, introduces LINQ, a set of extensions to the C# and VB programming languages that make querying data such as XML, relational databases, and in-memory data structures substantially easier. In addition, updates to the WCF make it easier to build Web services based on the increasingly popular REST architecture. The .NET Framework 3.5 is not an entirely new version of the framework; rather, it is essentially an add-on to the previous version (3.0), which was itself an add-on to version 2.0. Despite the seemingly significant increase in the version number, all three releases share the same version of the Common Language Runtime (CLR), the software engine that loads, verifies and executes applications. (For more on how version 3.5 differs from its predecessors, see the illustration "When Is a Version Not a Version?".) Connecting to Data with LINQ LINQ consists of an updated set of .NET class libraries that provide basic query functionality, along with changes in the VB and C# programming language to make those capabilities more accessible. (The C++ language also can use the underlying class libraries, but it does not include any language extensions, so accessing LINQ from C++ is not as convenient as with C# and VB.) Virtually every application retrieves or updates data in some form—whether from relational database management systems (RDBMSs), XML files, or other sources—so improvements that help developers build the data-access portions of their applications have the potential to improve developer productivity and program reliability dramatically. Applications that access data often contain important logic that isn't expressed in the programming language but is instead represented as plain text (usually in quotation marks) that is sent to the database to be processed. For example, when a program queries a database for all attributes of customers living in a particular Zip code, ordered from highest sales to lowest, the program isn't using any of the traditional features of programming languages, such as IF and WHILE statements. Instead, it assembles a database query as plain text (e.g., "SELECT * FROM Customers WHERE ZipCode = '20212'") and sends that statement to the database. Such code makes an application more difficult to maintain and makes it harder for tools like an IDE to assist because they can't distinguish between quoted text that represents business logic and quoted text that is simply ordinary text. For example, the IDE is unable to detect that the name of a database column is misspelled and therefore that the query will fail. Instead, the developer runs the program, which then fails (often with a cryptic error message), and the developer is then forced to use the debugger to locate the error. Finding the mistake before the program was even compiled (translated from human-readable text to an executable binary) would have saved the developer considerable time and effort. With LINQ, the same queries can be expressed using built-in language features, enabling the compiler and IDE to assist the developer with features such as statement completion and checking for potential errors before the code is run. (For an illustration of how LINQ appears in Visual Studio, see "LINQ in Action".) Although LINQ does not duplicate all the functions of the dialect of SQL used by Microsoft's SQL Server, it allows developers to express many common query operations, including selecting data that matches a set of requirements and ordering the results. |