Preview: Visual Studio 2010 Beta 2 impresses

In beta 2, Visual Studio 2010 is beginning to show the rather attractive shape of things to come. It supports software process with Team Foundation Server (TFS), and provides intelligent targeting of different .Net versions, allowing most shops to stop using old Visual Studio versions. It supports test-driven development, and it adds historical debugging, as well as support for concurrency. Silverlight RIA development, the F# functional programming language, and ASP.Net MVC 2 are all included in the product. The new WPF-based IDE is now fast enough to use, and with a few exceptions, the entire studio is a little quicker than Visual Studio 2008.

I have been working with Visual Studio 2010 Beta 2 on and off since it was released last month, most recently for my first look at the SharePoint 2010 beta. In addition to the many, many attractive new features, Beta 2 corrects the deficiencies I noticed in my first look at Visual Studio 2010 Beta 1, and it corrects many bugs that I hadn't noticed. You can even go live with this version if you wish, which means that you can start using it to develop and deploy production applications. Overall, Visual Studio 2010 Beta 2 demonstrates credible progress toward having a kick-ass IDE for Microsoft's planned March 2010 release date.

[ A banner year ahead for Microsoft's back end? See "First look: Microsoft SharePoint 2010 beta spreads the wealth" and "First look: Exchange 2010 beta shines." ]

TFS BasicAs I mentioned early in October, in this beta Microsoft has dropped the ancient Visual SourceSafe in favor of TFS Basic. TFS goes way beyond Visual SourceSafe in many ways, starting with its use of a true database and continuing with its work item tracking and ongoing software metric collection. I had no abiding love for the often unreliable Visual SourceSafe, but I was a little hesitant about installing TFS, due to my experience with installing earlier versions; I was also put off by TFS Basic's confusing installation options. As it turned out, TFS Basic installed fairly smoothly on my Windows 7 for x64 box, and I was able to tie TFS to an existing SQL Server 2008 Express instance without too much trouble.

The only real installation issue I had was that TFS unexpectedly grabbed port 8080; I had to move the server software that had been using port 8080 to a different port. I worried ahead of time that running TFS Basic would slow down my machine, but I haven't noticed much of a change. Using TFS is a little more complicated than using Visual SourceSafe, but it offers much better options for version control -- such as shelving, unshelving, and better merging -- and adds significant support for software processes and software project management.

Developers using TFS can explore and query their source control archives directly from Visual Studio 2010.

The lack of Visual SourceSafe support does mean that Visual Studio 2010 can't safely edit my old Classic ASP Web site, which uses SourceSafe for version control. If there's a way to fix that site to use a more modern version control system, I'd like to know what it is. Meanwhile, I can still edit the site in Visual Studio 2008.

PerformanceI was pleased to see the improved performance of beta 2 compared to beta 1. For many things, Visual Studio 2010 Beta 2 now seems to be even a little faster than Visual Studio 2008 SP1. However, there are still episodes when the beta 2 UI becomes unresponsive for minutes at a time and the dreaded "Visual Studio is busy" notification displays. If there's a reproducible pattern to this, I haven't found it, but I most often see it during one kind of initialization or another. I know that the people currently managing Visual Studio 2010 are very sensitive to performance issues, so I'm confident that these bugs, however intermittent they may be, will be tracked down and fixed by March.

One of the small but useful old features missing in the beta 1 code editor was column select (Alt-drag). It's back in beta 2, but it's often disconcertingly slow to catch up to the mouse, especially if you're selecting a large box of text.

New Help engineA larger piece missing from beta 1 was offline help. Beta 2 has a brand-new offline help engine that doesn't seem to require the ridiculous indexing overhead of the old MSDN Library help engine and displays information considerably faster than the old engine. It also retains the option to get help online from MSDN, which has gotten a welcome overhaul.

I installed only a small subset of the full documentation locally. Local documentation displays in a browser window just like online documentation, only with a local URI, and generally displays faster than online documentation, a refreshing change from Visual Studio 2008, where the Web search would usually complete well before the local search. When local content is not installed, the new help engine redirects to the online documentation. In all the cases I've tried, this has worked without a problem. Local content can be updated easily as needed.

New language and environment featuresI have discussed the programming support for SharePoint 2010 elsewhere, so I won't repeat it here. This beta also supports both Office 2010 and Office 2007 programming.

Silverlight support is baked into this release, with targeting for .Net versions from 2.0 to 4.0. The two-paned drag-and-drop Silverlight designer works well, although the graphical pane often exhibits a noticeable delay as it updates.

Silverlight versions 1 through 3 are supported with a visual designer and a decent assortment of controls. A developer can target the desired .Net and Silverlight versions when creating a project.

Targeting various .Net versions is a major capability improvement in Visual Studio 2010. It must have caused the programmers working on it endless headaches, because it creates so many complicated use cases for the IDE, especially for IntelliSense. Nevertheless, it seems to be working well at this point.

I've been a fan of Test-Driven Development (TDD) for several years. You could do TDD with Visual Studio 2008 if you tried, but it took some manual scutwork and more planning than I could usually muster to keep from running afoul of the overly helpful but confused IntelliSense, which would gleefully and incorrectly complete new names. Beta 2 of Visual Studio 2010 adds support for automatically generating stub classes, properties, fields, constructors, and methods from unit tests. IntelliSense can now be used either in the old completion mode or the new suggestion mode; the latter is much better for TDD, since you are often writing test code that uses identifiers and APIs before they exist.

Programmers using Test-Driven Development can automatically generate types, methods, and fields in a base project directly from the test project where they are being implemented. In addition, IntelliSense can be tamed for TDD by switching to "suggestion" mode from the overly aggressive "completion" mode.

I'm happy to see that F# shipped with beta 2. F# is a dialect of ML (OCAML) for .Net and supports functional programming, compositional programming, lambda expressions, immutable data types, pattern matching, and both asynchronous and parallel programming (see figure). It also has an interactive interpreter, fsi, which can run as a console or as a window inside Visual Studio.

IntelliTrace adds historical debugging to Visual Studio's excellent live debugger. It supports debugging Visual Basic and C# applications that use .Net version 2.0, 3.0, 3.5, or 4, and F# applications on an experimental basis. It doesn't support C++, script, or other languages, and it doesn't support Silverlight, Xbox, SharePoint, or Windows Mobile applications.

The F# language, a .Net version of the functional programming language OCAML, has graduated from Microsoft Research and is part of Visual Studio 2010. This screen shows how F# integrates with the Visual Studio live debugger and the new IntelliTrace historical debugging facility.

.Net and concurrency.Net 4 beta 2 includes many worthwhile new features. One of the most interesting is an improved model for parallel computing, found primarily in the new System.Threading.Tasks namespace. Similarly, Parallel LINQ (PLINQ) is a parallel implementation of LINQ to Objects. Also, .Net 4 includes a simplified security mode, better runtime monitoring, background garbage collection, code contracts, the dynamic language runtime (supporting F#, IronPython, IronRuby, etc.), and a bunch of constructs (for example, memory-mapped files) that were previously available only as interop calls into the Win32 API.

C++ programmers can use the new Concurrency Runtime to simplify parallel programming. This new addition to the C runtime library allows for high-level parallelism using parallel patterns, asynchronous agents, a task scheduler, and a resource manager.

Web supportThe ASP.Net "new Web site" wizard is greatly improved. It starts you with a password system, jQuery scripts, a site master frame with navigation and login, and both Default and About pages. There's enough in that starter project to get you going quickly with a Web site that conforms to ASP.Net best practices.

The starter project for an ASP.Net Web site now includes a site master page, a home page, an about page, a login page, and both registration and navigation logic. In addition, a documented jQuery library is included in the project.

ASP.Net MVC 2 is included in beta 2; this creates a Rails-like modular model-view-controller architecture for Web applications. One of the selling points of MVC is that it allows a team to divide up the work on a site in a natural way, giving the model and controller parts to programmers and the view parts to designers, for example.

Dynamic data complement ASP.Net and MVC quite nicely; it automatically uses a LINQ-to-SQL or ADO.Net Entity Framework data model to validate fields and to generate page templates for list and details views, as well as scaffolding to provide display, insert, delete, and edit capabilities for each table in the model. Again, this is a Rails-like facility.

ASP.Net now includes a chart control right out of the box, so there looks to be little need for most people to buy a third-party chart control. Of course, I said that about Microsoft's grid control a couple of years ago, and enhanced third-party grid controls continued to sell.

ASP.Net supports AJAX, but it's a separate download, which now includes the AJAX Control Toolkit. You can use the ASP.Net AJAX library with ASP.Net Web Forms, ASP.Net MVC, static HTML sites, and other Web technologies. The library now supports the top five browsers: IE, Firefox, Safari, Chrome, and Opera. One limitation of the current beta ASP.Net AJAX library is that you can't use Extender Wizard from the Visual Studio Designer when targeting ASP.Net 4; if you want that functionality, you have to target ASP.Net 3.5. You can add an ASP.Net AJAX toolbox to Visual Studio for Web projects manually.

Go liveThe go-live license for Beta 2 of Visual Studio 2010 and the .Net Framework 4 means that you can use it for developing and deploying production applications. If you do so, you should register for beta-level support by e-mailing mvsgolive@microsoft.com.

Rico Mariani, the chief architect of Visual Studio, discusses the performance and reliability improvements in beta 2 in this video, and the history of Visual Studio 2010 in this blog post. There's a nice collection of download and resource links for Visual Studio 2010 and .Net Framework 4 Beta 2 on MSDN.

At this point, I'm trying to switch most of my current Visual Studio 2008 development projects to Visual Studio 2010. I'm not burning any bridges, but I don't expect to have to revert any of them to Visual Studio 2008.

Related articles

  • First look: Visual Studio 2010 Beta 1 teases
  • Microsoft Visual Studio 2010 Beta 1 highlights
  • First look: Microsoft Silverlight 3 challenges Adobe AIR
  • First look: Microsoft SharePoint 2010 beta spreads the wealth
  • SharePoint 2010: What's new for users
  • SharePoint 2010: What's new for IT pros
  • SharePoint 2010: What's new for developers
  • SharePoint Workspace: The renamed Groove has gotten groovier
  • Office suites in the cloud: Microsoft Office Web Apps versus Google Docs and Zoho
  • Office 2010 looks solid and smooth
  • 8 key tips for transitioning to Exchange 2010
  • Microsoft Exchange Server 2010 highlights
  • First look: Exchange 2010 beta shines
  • Don't upgrade to Windows Server 2008 R2 until you read this
  • Test Center preview: Windows Server 2008 R2

This story, "InfoWorld preview: Visual Studio 2010 Beta 2 impresses," was originally published at InfoWorld.com. Follow the latest developments in Windows, software development, development tools, Microsoft Visual Studio, ASP.Net, Silverlight, and rich Internet application development tools at InfoWorld.com.

This story, "Preview: Visual Studio 2010 Beta 2 impresses" was originally published by InfoWorld.

Related:

Copyright © 2009 IDG Communications, Inc.

  
Shop Tech Products at Amazon