views:

10306

answers:

38

Are there new features in Visual Studio 2010 that are must-haves? If so, which ones?

For me, the big draws for VS2008 as compared to VS2005 were LINQ, .NET Framework multitargeting, WCF (REST + Syndication), and general devenv.exe reliability. Granted, some of these features are framework things, and not tool things. For the purposes of this discussion, I'm willing to combine them into one bucket.

What is the list of must-have features for VS2010 versus VS2008? Are there any? I am particularly interested in C#.

Update: I know how to google, so I can get the official list from Microsoft. I guess what I really wanted was, the assessment from people using it, as to which things are really notable. Microsoft went on for 3 pages about 2008/3.5 features, and many people sort of boiled it down to LINQ, and a few other things. What is that short list for VS2010?

Summary so far, what people think is cool or compelling:

I read up on these at Zander's blog. He described these and other features. Nobody on this list said anything about:

  • Visual Studio engine

    • F# support
    • Javascript code-completion
    • JQuery is now included
    • UML
    • better Sharepoint capabilities
  • C++

    • moves to msbuild project files
+7  A: 

Jason Zander, the Visual Studio Developer Division General Manager, has a blog. You should read it... (There are many changes to how projects are handled, to the editor, and to various language-specific features in both - whether these make it a compelling upgrade for you... is something only you can answer)

Shog9
+10  A: 

As a guy who does a lot of interop, I cannot wait for the "interop done right" features of 4.0. Here's a great talk on some of the new features from PDC.

JP Alioto
+1: I do a lot of interop as well, and it's a mess right now.
Jon Tackabury
+25  A: 

The support for parallel programming designed for multi-core systems is a big one for me!

-JFV

JFV
oooh, now that sounds interesting.
Cheeso
yes, but you can get that in 2008, too
Igor Brejc
I understand there is also parallel debugging in VS2010, to go along with the parallel framework. I suppose the debugging piece is not available in VS2008.
Cheeso
+15  A: 

I like the optional and named parameters as well as the co/contra-variance stuff

http://channel9.msdn.com/posts/mike+ormond/C-40-New-Features-Optional-Parameters/ http://channel9.msdn.com/shows/Going+Deep/Inside-C-40-dynamic-type-optional-parameters-more-COM-friendly/

Matthew Whited
Did they *really* need a video to demo that feature which could have been summed up in one line of code? `int Add(a,b=1){ ...` which was a poor example, mind you.
Mark
Oh.. and `+1`. I thought they had deliberately left this feature out before because it was harder for the compiler and easy enough to overload yourself or something?? Dunno why they had a change of heart, but I'm glad.
Mark
There are still reasons to overload yourself. Such as if you want to use a calculated default value such as default DateTime? to DateTime.Now... but at least it makes the simple stuff easier.
Matthew Whited
+19  A: 

The new extensibility model is great. We should see a plethora of new, lighter-weight Visual Studio plugins with 2010.

Scott Guthrie demonstrates that in the PDC 2008 Keynote: http://channel9.msdn.com/pdc2008/KYN02/

Dave Ward
Haven't explored it yet, but it's about time the etension model was improved!
peterchen
+7  A: 

Visual Basic Collection and Array Literals.

They are super awesome.

(disclaimer: I wrote that feature, so I'm a little biased)

Scott Wisniewski
@Scott: maybe add a quick example of the syntax.
John Saunders
+4  A: 

For me it is the new features that ship with the tester edition and TFS 2010, such as the new automated testing tools.

Bruce McLeod
+1 Test manager is awesome to record your manual tests and replay them! Web, WPF, Winforms and Silverlight (RTM)
Peter Gfader
Test/Lab manager is awesome, finally (some of) the automated testing can be left to the testing team!
Russell
@Russell if your tester can't handle automation by themselves, you have the wrong kind of testers
Bruce McLeod
+3  A: 

While the new features of C# may not seem as impressive compared to LINQ - variance is really nice and useful.

The library and runtime has a lot of new features. Personally I find the parallel library to be the most interesting. The demos and code I have seen so far are really impressive and the added debugging support in VS2010 for tasks etc. makes for a nice package.

The VS extensibility model has been changed as well and it allows for some pretty cool features and it seems much more accessible than the current model.

Brian Rasmussen
+2  A: 

Being stuck using VB.NET, I'm so happy to see automatic properties and inline subs.

Larsenal
+7  A: 

General

  • Supposed to finally get an XML Schema designer back (lost it in 2008 from 2005)

VB

line continuation is my #1 reason to upgrade, since we use VB 75% here.

Andrew Backer
Yay removal of line continuation characters! Took 'em how long?
MiseryIndex
since vb1, i'd guess :) the post about it details some of the reasons it is difficult for the compiler... but thats the side effect of not having a "statement end" character :)
Andrew Backer
No doubt implicit line continuation makes vb even better than cs!
Shimmy
+3  A: 

I would upgrade because of the new web application deployment features.

Adrian Godong
+5  A: 

I kept hearing about a "black box" debugging (or historical debugging) that would be included in 2010 version. That's what i'm interested in. Is it there?

It's only included in the overly expensive Team Suite editions, as far as I know. :(
Jon Tackabury
There is no "Team Suite" edition anymore, it confused people too much... you mean "Ultimate" probably
Peter Gfader
"black box" debugging (or historical debugging) is going back in time in a debugging session (not in the stacktrace!). Like watching a movie and rewinding back to see what happened (caused an exception)Checkout slide 61 here http://www.slideshare.net/PeterGfader/testing-with-vs2010-a-bugs-life
Peter Gfader
My MSDN Subscription doesn't include ultimate :(
JL
Yes, historical debugging (officially called "Intellitrace") is only in Ultimate.
Joe White
+26  A: 

Support for at least some of the new C++0X features:

For me, the lambdas and r-value references are almost compelling enough on their own. The multi-monitor support is the other thing that I can see being the most useful.

Eclipse
"almost"? Those features are awesome! :)
jalf
@Jalf: Yes, they're awesome, but we're talking about a several-thousands-of-dollars upgrade here.
Billy ONeal
Things GCC does for free (mostly, anyway).
tstenner
+105  A: 
Mehrdad Afshari
I'm glad MS finally realized that almost all devs have at least 2 monitors. :)
Jon Tackabury
@Mehrdad - can you post a link to the full size image? Or is that a screen shot from your machine? Is that like floating code windows that you can shuffle around over your various desktops?
BenAlabaster
@balabaster: Yes, you have floating Windows that you can move around and maximize in the other display. That's my own screenshot, btw. I can add another one to demo floating Windows more obviously.
Mehrdad Afshari
@Mehrdad - that would be great. I think this might perhaps be my favourite addition to VS! I can't count how many times I've complained that VS 2008 doesn't have this. This will allow me to keep all my ASPX files in one window and all their CS files in another which will allow me to reference each side by side without having to stretch my VS across my monitors
BenAlabaster
Man - I wish I could upvote this twice...
Erik Forbes
@balabaster: Added the floating Window screenshot
Mehrdad Afshari
@Mehrdad - perfect. Does it allow multiple files in that floating window for separation of logically similar files? Or is it a single code window?
BenAlabaster
It's already filed on connect. Vote for it: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=454154
Mehrdad Afshari
Wow that looks great. Can't wait.
Ziltoid
Uh.......I have multiple monitors, and I'm always ecstatic about programs supporting them better........but I can't think of a time when I've ever wanted that much damn code on my screen. What exactly are you guys using this for?
Mark
Mark: Most of the time, you are editing one code file, I agree, but there are cases where you need to have another source file to look at for comparison or consulting it as documentation...
Mehrdad Afshari
@Mark: Copying/Pasting code.
Greg
What's the actual resolution of the screenshot (prior to resize)?
Mauricio Scheffer
@Mauricio: The setup is 1920x1200 + 1280x1024, therefore, the original screenshot should have been 3200x1200.
Mehrdad Afshari
Thanks, I'm about to buy a 1920 screen and I was wondering if I could fit two source files side by side. Now I know I can :)
Mauricio Scheffer
Was anybody else incredibly disappointed by the purported multi monitor support? I was hoping for multiple top-level windows / full first class window support. As far as I can tell it is not possible to have visual studio 'on top' while having another floating window in the background. Is this correct?
fostandy
@fostandy: There are advantages and disadvantages to this approach. However I'd prefer the top level window implementation. This is MUCH better than nothing though.
Mehrdad Afshari
A: 
  • Better Workflow Foundation tooling and design
  • WS-Discovery Support in WCF
Anderson Imes
+8  A: 
  • WPF Designer is up to par with the WinForms designer in VS2010. The WPF designer in VS2008 is average at best.
  • ASP.NET MVC baked in
  • Ability to write rich extensions to the Visual Studio env using MEF - I think this opens the door to an even richer set of VS extensions (and easier path for internal type extensions instead of waiting for a vendor to provide on)
Adam
Better intergration between ASP.Net, ASP.Net MVC, and DynamicData will be great.
Matthew Whited
how does the wpf designer compare to Expression Blend?
Jimmy
I must be the only person who likes the WPF designer better than the WinForms designer.
rossisdead
yeah, the built-in ASP .Net MVC design support is a deal-maker for me.
Russell
+40  A: 

Code Contracts. The fact that they're statically checked makes them 100x better than asserts and other argument guards to me.

The only thing is I wish C# 4 had a special syntax for it to hide the library calls.

Neil Williams
Deserves 100 upvotes.
Larsenal
Static checking is only available in the team system editions of Visual Studio right now, we all need to get onto Microsoft and make sure they include it in all editions.
Lee Treveil
Very good point, that's very unfortunate. Do we have an issue open somewhere?
Neil Williams
Please excuse my cold hearted economic reasoning, but wouldnt petitioning Microsoft to include this feature in all versions just affirm the MS marketing team's decision to make this a premium feature? Perhaps a better idea would be to petition OSS folks to produce a plugin with Code Contracts. Its a pity there is practically no commercial competition to Visual Studio.
Alex
I think this explains it better: http://www.cauldwell.net/patrick/blog/CodeContracts.aspx
Mark
A few things could happend here. 1) the tool is really useful... so useful that everyone buys a version of visual studio that supports it. 2) The tool is okay... but no one buys team VS just for it so in the next verion they move the feature to professional. 3) they intergrate contacts deeply into the next verion of .Net. Making them part of all of the compilers as well as IL/Metadata features everyone lives happily every after.
Matthew Whited
@Neil Williams Code Contracts is nice and for any .NET compliant language but as a C# developer Specsharp had way more promise with it being embedded in the syntax.
Martijn Laarman
For reference static checking is available for: Visual Studio 2008 Team System, Visual Studio 2010 Premium Edition, or Visual Studio 2010 Ultimate Edition. http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx see Premium Edition.
Martijn Laarman
+10  A: 

Newly implemented C++ intellisense.

I played with it a little and it looks much better than VS2008 and it can only improve until the release.

Idan K
I'm not sure why you say 'newly implemented,' I'm getting intellisense on my C++ code with VS2008 here.
Sukasa
it's a known fact that VS03/05/08 intellisense is broken (and that's an understatement). if you want info on the "new" intellisense, read this: http://blogs.msdn.com/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx
Idan K
+4  A: 

MSVC 2010 is getting rid of the side-by-side configuration model and going back to where you can just distribute the runtime dlls alongside the exe. I am pretty excited about that.

JimDaniel
What does this mean? Can you elaborate?
Cheeso
It has to do with how c/c++ applications are distributed on Windows. With MSVC 2005 Microsoft implemented a system called side-by-side configuration. Before 2005 you could just distribute the MSVC runtime dlls alongside your program and everything would just work. With side-by-side configuration it was not so easy, and it caused headaches for many people who couldn't understand the intracacies of the new system (myself included). But with 2010 they've gone back to the old model, and it works great!
JimDaniel
If I understand what you're talking about, in VC2005 or 2008, wasn't it recommended, as per this: http://blogs.msdn.com/vcblog/archive/2008/05/15/vc-runtime-binding.aspx to package the VCRT MSM's in with the application MSI? I think the problem they were trying solve was servicing deployed MSVC runtimes: how to patch them? I will be surprised if MS reverses that decision. Can you post a citation or link?
Cheeso
http://blogs.msdn.com/vcblog/archive/2008/10/28/visual-studio-2010-ctp-released.aspxFrom the last bullet in the first set of bullets, starting with Deployment: "New deployment model for Visual C++ Libraries (changed to not use Windows SxS configuration)"
JimDaniel
Interesting; thanks.
Stuart
A: 

Following beta 2 announcements and release, many things to ponder.

Visual Studio product line is completely revamped. 3 SKUs (excluding express editions): Professional, Premium, and Ultimate. Premium includes many features that used to be team system edition features. Ultimate is where the "new" team system features will go, such as UML.

Premium VS will come with the Premium subscription. Slight price increase from the old Professional VS + Premium subscription.

All VS subscriptions will have TFS, which will now run on client systems (Win 7 and Vista)! If you're looking for a compelling reason to upgrade, TFS may be enough all by itself.

Cylon Cat
+1  A: 

I like it that Silverlight 3 is in the box (runtime, SDK, tools), you don't have to install anything extra.

Call Hierarchy feature is quite nice too ;)

I also like Generate From Usage, Highlight References, Navigate To.

Kirill Osenkov
+5  A: 

F# is definitely something to watch (and explore) in VS2010. It's going to be a paradigm shift for many OOP (Object Oriented Programming) programmers, in much the same way that OOP was a paradigm shift for the people steeped in the "structured programming" approaches of the 1980s and '90s.

The draw for F# will be much the same that OOP had over "structured programming": do more with less code while making your code more stable at the same time.

dagilleland
F# rocks but I'd say interactivity is another major advantage as well as the language itself. Using Visual Studio 2010 for high-performance interactive technical computing is awesome!
Jon Harrop
A: 

Built-in project templates for SharePoint 2010 features, webparts and solutions. One-click deployment to SharePoint 2010

Combined with the fact that it is possible to install SharePoint 2010 on a developer Vista/Windows 7 environment this will greatly speed up SharePoint development

Mel Gerats
+1  A: 

Unit testing and visual designer for Silverlight. That's what made me to take the decision of installing beta 2, even though generally I don't like to rely too much in betas.

Konamiman
+5  A: 
Mohit
A: 

Note that Visual Studio 2010, with its WPF rewrite, dropped the MDI option for documents. Tabs are the only way now, barring some macro magic.

This is the only big regression in functionality I've noticed yet.

Scott Bilas
Lack of MDI is a regression? My car lacks a hand-crank on the front to start the engine, but I find I don't miss it much...
Joel Mueller
Gotta love car analogies. :)
Scott Bilas
A: 

I'd be interested in hearing what you think about the code visualization and exploration tools in Visual Studio 2010 Ultimate such as creating sequence, dependency graphs, and layer diagrams from code and using Architecture Explorer to browse and explore your solution. VS 2010 also supports UML class, sequence, component, use case, and activity diagrams for software design. You'll also be able to link UML diagrams to Team Foundation work items and extend your UML models.

I've posted more links on my profile for more info.

Esther Fan - MSFT
+3  A: 

Auto-Start for web applications - the ability to automatically startup and proactively initialize a web application without having to wait for an external client to hit the web server.

Box select / Multi-line editing - Allows you edit multiple lines of code at once.

Greg
+1 for multi-line editing, it's a tiny feature but I find myself using it all the time.
Groky
+6  A: 

IntelliTrace (called "historical debugging")
--> Going back in time during a debugging session.

Not to confound with the Stacktrace.
--> Going back in the call hierarchy.

IntelliTrace: Like watching a movie and rewinding back to see what happened (what caused an exception)

MSDN info here
http://msdn.microsoft.com/en-us/library/dd264915(VS.100).aspx

Personal plug: Checkout slide 61 here
http://www.slideshare.net/PeterGfader/testing-with-vs2010-a-bugs-life

Peter Gfader
+16  A: 

Add Reference dialog doesn't take six hundred million years to open.

File>New New Item > Class generates public class by default.

Igor Zevaka
I wouldn't call that second one a feature. Things should be as little visible as possible until there's a reason to make them more visible.
Kyralessa
A: 

I have listed most of the features in my blog access http://rajsoftware.com/ See ASP.NET links.

Raj Aththanayake
A: 

I just wrote up a blog post that kinda discusses a little of this (Which Visual Studio 2010 Edition Do I Buy?) but the Microsoft Marketing website is starting to have some really good information about the features that are beneficial to you if you were to upgrade to 2010.

Ed Blankenship
A: 

Easy:

  • F#.

  • Parallel programming.

:-)

Jon Harrop
A: 

Some new features in Visual studio 2010.

link text

renjucool
A: 

As I am not a pro developer, so i haven't explored it deeply. I tried my hands on VS2010 immediately after its beta release. I found it more cooler & smarter than its ancestor. I like the following features that every dev must have experienced:

1. Highlighting References : all instances of that symbol are highlighted 
                             in the document.

2. Intelligent Intellisense, searches on as you type. Even searches in any part 
                             of the reference. also CTRL+ALT+SPACEBAR to toggle 
                             between completion mode and suggestion mode 
                            (also in earlier version CTRL+SPACEBAR).
3. The new ClientIDMode() property  in ASP.Net 4
4. ASP.Net Chart tools, that was lacking by default in VS2008
5. Multi monitor support
6. The most important is quick reference adding. In earlier version you have to 
    wait for 1-2 minutes for add reference dialog to appear,but in this within 
    2-3 secs. Really optimized one. 
Amit Ranjan
+1  A: 

not sure multi-monitor support is a selling point. haven't we already been using ULTRAMON for years?

phillihp
+2  A: 

So, obviously, there are a ton of new features but I have a few of my favorite things in the IDE listed here: http://blogs.msdn.com/b/zainnab/archive/tags/vs2010+new+features/

They range from seriously cool (WPF Tree Visualizer, Zero-Length Box Selection, Call Hierarchy) to the more mundane (remove projects from project list); but they all, in my opinion, make a compelling argument to upgrade is you are using any version of the CLR from 2.0 to 4.0 -- just my .02 :)

zainnab
A: 
  • Co- and contravariance in delegates and generic classes (finally... I wonder what the people at MS thought when they left that out?)

  • Fully usable XamlReader - class (which is VERY important for what I'm doing)

  • Better WF (MUCH better)

  • WCF supports now gzip (I know, it's a facepalm that MS only brought us that in 4.0, but hey... it's here now!)

  • Memory mapped files (yay!!!)

Turing Complete