number of technologies of interest to developers are incubating in Redmond right now. It’s been a long time since we first caught wind of “Whidbey” and we’ve got a good while yet to wait, at least for RTP code. Meanwhile, related technologies?some with dependencies?have also been revealed through the Microsoft crystal ball but the timeline for when developers will actually have these tools on their desktops is still quite hazy. With major trade shows such as VS Live! 2005 recently concluded and TechEd still a few months away, we wanted to take stock of all that’s coming down the pike and help you figure out what you should be looking forward to and why.
Visual Studio.NET 2005
Visual Studio 2005 (beta 1 has been out for some time; beta 2 is expected by end of March) will be the third major incarnation of Visual Studio since the release of the .NET framework. It is by far the most ambitious release of the IDE. Both the IDE and the framework on which it depends will get a major overhaul with this update.
Enhancements to the .NET Framework
This framework version (2.0) adds support for “edit-and-continue,” a way for developers to change the code in an application while debugging without stopping, recompiling, and restarting the application; generics, which lets developers create strongly-typed collections; and a much-expanded set of classes to deal with the underlying OS. All .NET languages (potentially) gain edit-and-continue, generics, and “partial classes,” which let the IDE and developer teams split the code for any single class across several physical files, although not all languages may choose to support all these features.
One nice side effect of partial classes is that they let the IDE keep generated code in a separate physical file, meaning that developers can add custom code to generated classes and if the IDE regenerates the base code, it won’t affect the custom code. The feature also lets multiple developers work on different parts of a single class independently. The compiler “stitches” the various partial files together at compile time.
Enhancements to .NET Languages
VB.NET gains the “My” keyword, which functions as a shorthand way to get access to the local machine, network, etc. as well as support for edit-and-continue, partial classes, and generics.
C# has no equivalent to the “My” keyword (although C# developers can use some of its power by importing portions of the VB.NET namespace), but?like VB.NET?C# gains edit-and-continue, generics, and partial classes. In addition, C# gains “refactoring” capabilities, which let developers globally rename variables and split code into smaller, more reusable segments.
Microsoft made changes to the C++ syntax to better support creating objects on the stack (managed objects) vs. objects on the heap (unmanaged objects). C++ also gains the capability to let developers build mobile applications directly within VS 2005?a feature missing from previous versions. New, more intuitive keywords replace the old double-underscore keywords in the current version. The new syntax is called C++/CLI, and is under consideration for standardization by ECMA. The new version also lets developers write unmanaged code targeted for 64-bit Windows running on both Intel and AMD processors.
ADO.NET EnhancementsData binding is much improved in Visual Studio 2005. Developers can now bind controls or sets of controls not only to DataSets (table data), but also to framework or custom classes and to Web services. Nearly everyone will be interested in this capability and developers are already rushing to learn to take advantage of it.
Windows Forms, Web Forms, and the Compact Framework
Windows Forms, Web Forms, and Compact Framework applications have all been enhanced with new controls, new IDE capabilities such as the ability to insert “snippets” of pre-built code, and improved mobile device simulation support. On the partner front, Agilix has made ink-aware note-taking controls available to .NET developers for free.
One feature left out of this version of Visual Studio is any O/R mapping?a way to span the divide between objects used in applications and the data storage of those object in a relational database. Currently, developers must either use a third-party tool or write custom code to retrieve data representing objects from a relational database. They then use the data to populate the object in their applications?and the reverse, store changed object values back into the database. Microsoft is developing an O/R feature, and it was initially intended for release with this version, but that feature has been cut for VS 2005. So, third-party O/R mapping tools or home-built mapping capabilities are your only option for now. When Microsoft’s O/R mapping tool does get close to release, it will be a huge source of interest for Microsoft developers.
SQL Server 2005
It’s been a long time, but SQL Server is about to get an upgrade. For developers, the database hosts the .NET framework, which means you can create stored procedures in your favorite .NET language rather than having to use T-SQL. Another big plus is Reporting Services, which integrates reporting with VS.NET, including specially tailored controls for use in Windows Forms and Web Forms. This version includes SQL Server Notifications, which lets you force SQL Server to notify your application when data changes?a major improvement for data-caching applications. Other enhancements include native support for XML, XQuery support, more robust security features including database encryption, a dedicated administrator connection for accessing databases even if they’re locked up, PIVOT tables and other T-SQL enhancements, built-in Web service capabilities, and full-text search enhancements. All in all, this version looks like a must-have for .NET developers, but with questions looming about whether it will be finished in time to ship even by the end of 2005, there’s still a significant wait to give it a whirl.
Visual Studio Tools for Office
In this version, Word documents and Excel worksheets function as the “visual editor” portion of Visual Studio, so you can drag-and-drop .NET controls directly onto documents or spreadsheets. Word and Excel objects become first-class .NET objects in code?in other words, you no longer need to know the complex Word/Excel object models to build Office solutions.
VSTO is particularly important because business functionality formerly deployed as Windows Forms or ASP.NET Web Forms apps are now candidates for VSTO development and deployment on Office. Therefore, Office database development, Office as a reporting tool, Excel’s graphing and math capabilities, Word’s drawing capabilities, document composition, etc., offer a new vein for developers to mine.
Team System and MSDN Subscriptions
The biggest overall enhancement to Visual Studio is the integration of Microsoft’s Team System, which is an “overlay” to Visual Studio intended to provide comprehensive planning, delivery, management, and testing to development teams. Visual Studio Team System will be a high-end edition of the Visual Studio IDE that will take the place in the line-up of the Enterprise edition. To run Team System, you need at least two machines, one running Team Foundation Server, and another running one of the three SKUs of the Team Suite: Architect, Developer, or Tester. The Team Foundation provides the database and management infrastructure, while the other products provide tools for that particular role. There is some overlap, and the release toolset for each product has not yet been finalized. There have already been many complaints from people who function in more than one role?and thus need the tools in more than one of the Team Suite products.
Each Team client needs a Client Access License (CAL) to access the Team Foundation server. The CAL cost has not yet been determined, nor has the cost of any of the individual products, or site licensing costs, or Team Foundation itself.
Further, a Microsoft representative announced in one session that people using their MSDN Universal subscriptions will need to switch that subscription to a new, as yet undetermined version?the MDSN Universal and Enterprise subscriptions are going away?and that even after the switch, MSDN Universal customers will have use rights for only one of the Team Suite editions.
At this time, a full Team setup has other Microsoft-specific technology stack dependencies, such as IIS, SQL Server, SharePoint Portal Server, Active Directory, etc. While that won’t be a problem for many large shops, it may be prohibitive for smaller shops and problematic for those not using a pure MS technology stack.
Indigo, Avalon, Longhorn, and WinFS
Indigo is a Web services framework and along with its sister, Avalon (presentation graphics engine), it will be released in a Customer Technology Preview (CTP) in March. Developers need Indigo to simplify the implementation problems with WS-Security, WS-Addressing, WS-Policy, WS-Routing, etc. Avalon essentially removes most of the huge divide between Web and desktop applications, by promoting a model that lets developers deploy code for desktop applications centrally, on a Web server. Clients download application code incrementally, as needed, just like a Web application?yet such applications have the display control and interactivity of desktop applications. Microsoft has backported Avalon to Windows 2003 and XP, so developers won’t have to wait for Longhorn to make use of it. Longhorn itself (new Windows OS) is still well off in the future and WinFS (new file system), having been dropped from Longhorn’s release feature set, is still under development, but even further away.
Orphans: Access, FoxPro
Microsoft’s long-term plan is to pull all its development tools into the Visual Studio umbrella. At this point, Visual FoxPro and Microsoft Access are the only supported tools that are still “standalone.” There has been some talk about pulling Access development into Visual Studio, but so far that hasn’t happened, and may never happen, because the enhanced data-binding capabilities of .NET are making it ever-easier to build database front-end applications, reducing Access’s primary advantage. For many applications, Microsoft has been advising developers to use .NET languages to target “lite” versions of SQL Server (such as SQL Server Express) rather relying on Access or the Jet engine. While FoxPro is still supported and has even been updated recently (Visual FoxPro 9), it’s not now, and never has been the main focus of Microsoft’s development toolset.
The counterpart to Microsoft’s one-size-fits-all IDE in the Java/Open Source world is, of course, Eclipse. Eclipse continues to gain converts, and IBM continues to provide resources for the project. Compared to VS and Eclipse, all other IDEs look small. Eclipse’s extensibility, IBM’s support, and the support of the open source community make it the IDE of choice for a huge and growing number of developers using all languages?including open source versions of C# and other .NET languages running on Mono, Novell’s open-source version of the .NET framework. Mono development for ASP.NET applications is growing rapidly, and when the Mono project releases its Windows Forms code (soon), the Eclipse platform will become even more important for open source .NET developers.