Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,124 | Comments: 45,486

filter by tags archive

Visual Studio 2010

time to read 4 min | 619 words

I got the chance to get an early CTP of Visual Studio 2010. 


This is the post I use to record my first impressions. There is no order to this post, it is just impressions jotted down as I see them.

We seem to have a new start page:


Following the MS & OSS new approach, one of the samples is Dinner Now using Lucene, which is the first project that I found to test.

TFS is still broken:


I really don't like to see this kind of issues in a source control system. It means that it cannot be trusted.


Looks like we have something new here. On first impression, it looks like we have UML integrated into VS.



I took a look at the generated XML, which is the backing store for the diagrams, and it looks like it should work with source control much better than the usual modeling stuff in visual studio.

Another feature that is very welcome for anyone doing presentations is the use of CTRL+Scroll Wheel for zooming.


We are also promised performance improvements for large files, which is nice. Part of the walkthroughs talk about integrating functionality using MEF, which is good.

Looking at the walkthrough for creating syntax highlighting, tagging and intellisense, it looks like a lot of ceremony still, but it seems significantly easier than before.

WPF - It looks like VS is moving to WPF, although this CTP is still midway.

C# has dynamic variables!

dynamic doc = HtmlPage.Document.AsDynamic();

dynamic win = HtmlPage.Window.AsDynamic();

This was talked about in the MVP Summit, a dynamic object is an object that implements IDynamicObject:


Note that we accept an expression parameter (using Linq expressions) and we return a meta object. Show below.


This looks like C# + DLR integration, which is cool. I am looking forward to see what we can do with it.

VS also get some R# like features:


There is also a quick search, apparently, but I am not really impressed. Again, show me something that I don't have.

There is CLR 4.0, so we somehow skipped CLR 3.0. I am glad to know that we have a new runtime version, instead of just patching the 2.0 very slowly.


System.Threading.Tasks is new, and looks to be very interesting. It also seem to have integration with Visual Studio. It is also interesting because we seem to have a lot more control over that than we traditionally had in the ThreadPoll.

Parallel extensions are also in as part of the framework, not that this would be a big surprise to anyone.

In the CTP that I have, there is nothing about Oslo, models or DSL, which I found disappointing. I guess I'll have to wait a bit more to figure out what is going on.

That was a quick review, and I must admit that I haven't dug deep, but the most important IDE feature, from my perspective, is the CTRL+Scroll wheel zooming. The diagrams support is nice, but I am not sure that I like it in my IDE. Threading enhancements are going to be cool, and I am looking forward to seeing what kind of dynamic meta programming we can do with it.


Jonas Follesø

Yeah - The VS2010 shell is going WPF, so that gives coll features like ctrl-scrolling to zoom text. You can also do cool WPF extensions to the text editor. Sweet stuff. Didn't know this was out in the public yet and not NDA.

Krzysztof Kozmic

I'm not happy with what I see about dynamic in C#

I hoped it would be "cast" to dynamic object on the caller side, and callee would use the object via duck typing unaware of its true nature.

Is there any DBC-spec#-like stuff there?


Skipping to 4 probably to avoid confusion.. I figured they would do dynamics this way.. I can't fully envision how it works yet - need some examples.

Andrey Shchekin

The bad thing about this is that AsDynamic can probably wrap any object into an IDynamicObject. Which not just easy to use for wrong cases, it is easier to use than the right thing is.

Why care about creating interface when you can call things dynamically?

You can argue that this is a beginner's mistake, but I have already seen places in ASP.NET MVC where dynamic objects are misused -- and where I have to look up to the documentation to find out the names of magic properties that are required (and have no way to validate them in the future).


I'm pretty sure that denoting an object as dynamic will let you call any method on it, the compiler or whatever will expect that a dynamic stated object is an IDynamicObject, and from that it expects to get the metadata back which it can use to determine the real calls to do..

Again I'm waiting until I see it in action..


As log as the change in VS2k10 doesn't get rid of block selecting/highlighting, I'll be happy.


Hmm, not sure that was exiting. I'm somewhat worried about the extra simplified startup screen. I also am really not sure about exactly what you pointed out with the source control. It's been about 3 years now, and the source control still has all sorts of solidity issues, and as you stated, "it cannot be trusted".

The dynamic aspects and the other things though, have me somewhat interested.

Frank Quednau

Have you seen anything about whether they have cleaned up the redundancies between WPF and WF? (DependencyObject and the like?)


Wouldn't that cause breaking changes? they won't do that just to align things up nicely


Is there a way to reproduce that TFS exception?

Ayende Rahien

Is there a way to reproduce that TFS exception?

Just use it, it is fairly easy to reproduce.

Cassio Tavares

Can we make Generic Windows Forms now?

public class MyForm <t : Form {....}

I mean, without restrictions and bugs :)

Judah Himango

@Krzysztof Kozmic,

You asked about Spec# stuff.

Given the talks I've seen so far from Anders and friends, it appears no, that's not in C#.

However, I watched Scott Hanselman's PDC 2008 talk, and about 20 minutes in, he shows a sample of design-by-contract and says they'll "be in the next version of Visual Studio".

I don't know what he meant by it.

Petr Vones

OMG - if the VS is WPF based then I would have to say it Good bye. I'm absolutely unable to read those extra-blurry WPF fonts with poor rendering. I can't stand any kind of "anti-aliasing" because it is unreadable for me. Is there any option to have good old sharp Win32 GDI non-blurry fonts ?


Apparently the sample app doesn't use Lucene but it has some references to Lucerne Publishing, which is probably a fake name for the payment gateway company.

Nick B

Petr Vones: Are you using ClearType font smoothing? With ClearType enabled, none of the fonts should be "blurry" at all. Now, using those new fonts without ClearType enabled will surely result in some blurring.

Danh Hong


I have downloaded Visual Studio 2010, but I can't install. When self extractive, it display "Packed data CRC failed in VisualStudio2010CTP.vhd" Can you let me know what is wrong?

Thank you,

Danh Hong

Ayende Rahien

No, I can't.

But you can try with Microsoft.

Comment preview

Comments have been closed on this topic.


  1. RavenDB 3.5 whirl wind tour: I’ll find who is taking my I/O bandwidth and they SHALL pay - about one hour from now
  2. The design of RavenDB 4.0: Physically segregating collections - about one day from now
  3. RavenDB 3.5 Whirlwind tour: I need to be free to explore my data - 2 days from now
  4. RavenDB 3.5 whirl wind tour: I'll have the 3+1 goodies to go, please - 5 days from now
  5. The design of RavenDB 4.0: Voron has a one track mind - 6 days from now

And 12 more posts are pending...

There are posts all the way to May 30, 2016


  1. RavenDB 3.5 whirl wind tour (14):
    02 May 2016 - You want all the data, you can’t handle all the data
  2. The design of RavenDB 4.0 (13):
    03 May 2016 - Making Lucene reliable
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats