Ayende @ Rahien

It's a girl

Visual Studio 2010

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

image

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:

image

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:

image

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

image

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

image

 

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.

image

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:

image

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

image

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:

image

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.

Threading

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.

Comments

Jonas Follesø
10/26/2008 11:33 PM by
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
10/27/2008 12:29 PM by
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?

Stephen
10/27/2008 12:50 PM by
Stephen

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
10/27/2008 02:07 PM by
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).

Stephen
10/27/2008 05:43 PM by
Stephen

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..

Mike
10/27/2008 06:06 PM by
Mike

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

Adron
10/27/2008 09:20 PM by
Adron

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
10/28/2008 08:42 AM by
Frank Quednau

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

Stephen
10/28/2008 09:10 AM by
Stephen

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

James
10/28/2008 09:12 AM by
James

Is there a way to reproduce that TFS exception?

Ayende Rahien
10/28/2008 11:18 AM by
Ayende Rahien

Is there a way to reproduce that TFS exception?

Just use it, it is fairly easy to reproduce.

Cassio Tavares
10/28/2008 09:40 PM by
Cassio Tavares

Can we make Generic Windows Forms now?

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

I mean, without restrictions and bugs :)

Judah Himango
10/30/2008 09:44 PM by
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
11/01/2008 12:59 PM by
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 ?

Mauricio
11/04/2008 11:55 PM by
Mauricio

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
11/05/2008 09:37 AM by
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
12/13/2008 03:50 AM by
Danh Hong

Hello,

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
12/13/2008 05:24 AM by
Ayende Rahien

No, I can't.

But you can try with Microsoft.

Comments have been closed on this topic.