The official source of product insight from the Visual Studio Engineering Team
As Soma announced on his blog this morning, Visual Studio 2010 and .NET Framework 4 have just launched! The Visual Studio team has been working on this release for more than two years and we’re extremely proud to announce the availability of the final RTM build!
MSDN Subscribers can download Visual Studio 2010 later today from MSDN, and non-MSDN subscribers can go here to get a copy of Visual Studio 2010. For those that want to take a test-drive, a 90-day trial version of all Visual Studio 2010 products can be downloaded here. Also, for the hobbyist developer, the free Visual Studio 2010 Express products are now available as well.
As always, we’re excited to hear your thoughts on this release. Please make sure to send your feedback via Connect or post comments to this blog.
Download and enjoy!
Localized (international) versions will generally be available 30-90 days after the 4/12 ENU launch of VS 2010. Exact dates haven't been announced yet and may vary by language.
Hope this helps,
Program Manager, VS Platform - Editor
I have to agree with Jon about the lack of MDI. I too cannot believe this has been removed, and interestingly I also have a multi-monitor (1920 x 1200) setup, and run VWD2008 full-screen on one of them, with multiple documents open (not tiled!!). I'm interested to hear how anyone works in an SDI setup, but like Jon the obvious conclusion is that you only have small monitors.
With the SDI method you have to mentally remember stuff on the hidden pages when editing the current one. For example I might have an XSL file open and need to know the element names in the related XML - easy with MDI, impossible with SDI.
I am going back to 2008 - shame, because 2010 seems snappier ... but I can't take the productivity hit.
Sorry to hear about the troubles caused by the lack of MDI. I am somewhat surprised since we had 0 feedback during the 2 betas in which it was gone complaining about it not being there. I can open a bug about it not being around, but I don't have a time machine so I obviously can't go back in time and make it there in 2010 :) Again I would encourage you in the future to look at the Betas to lessen the chance that surprises like this happen.
>like Jon the obvious conclusion is that you only have small monitors.
Or our workflow is different. Or we have different preferences. I don't think it follows that if we don't use MDI mode we must have small monitors, everyone has different workflows/favorite features/etc... A few people on our team have large monitors, all of us have multi-monitor setups. I don't think it is valid to assume whatever your workflow is is obviously the best and most optimal for everyone in the world and if they do it differently it must be due to some constraint you don't have :)
unfortunately I don't have time to look at betas! I was expecting VWD2010 to have further new features and improvements - instead it feels like its legs have been chopped off. I can't imagine how you work without MDI ... but I accept that you obviously do.
As you say, it might be that your workflow is different. I am a heavy user of XML + XSL with the XslCompiledTransform, so for every page on my websites I tend to have an ASPX, along with an XML and an XSL file - and I need to be able to see all of them in the editor at once - and I might have a CSS and/or JS file open too. Without MDI I have to hold my "position" in all those pages in my head whilst editing the current file. That's a workload I really don't want!
I guess if your workflow is primarily one file at a time then SDI will work for you. However Jon's point about the space wasted on a wide-screen monitor with SDI is a good one. You must surely have noticed that regardless of what workflow you use.
What was the reason for taking out MDI? I realise you are not going to put it back in just for me, but none of the workarounds suggested above seem very satisfactory (and I use Win2008 for development not Win7, not sure if that is a factor). I suppose if files could be edited like you have in Word, that might work ... although Excel still has MDI ...
BTW, please don't take the MDI out of SQL Server Management Studio ...
DISCLAIMER: As has been stated before this is a dev blog, so don't look here for marketing spin and realize everything I say is my own opinion/view. While I am an employee of Microsoft I am not a spokesperson for them :)
>unfortunately I don't have time to look at betas!
I appreciate that, but you have to understand our side of things as well. We operate under time and resource constraints just like everyone else. Every development cycle there is an order of magnitude more things that we would like to do than we can reasonably afford given the time and staffing we have. We were unable to give 100% parity with 2008 in a few areas, notably lack of MDI mode in the shell and take backs in terms of command bar stuff (customization, drag undock/rearrange and some DTE functionality that didn't play well with WPF's layout philosophy). These were hard cuts for us but we were faced with the task of trying to duplicate multiple ship cycles worth of work undertaken by (sometimes) large teams of developers, with a small team of developers in one ship cycle. We really aren't trying to take away things you rely on out of some perverse joy of making your life more difficult. We tried to cut as surgically as possible and some things are certainly under consideration for 'bringing back' in future releases. Ultimately those decisions are made by management based on where they see the best case to invest. I am but a lowly dev so I argue for the things I think are important but I don't sign my own check nor can I run roughshod on a product that has millions of users :) I suggest filing Connect bugs, management really does look at them and they count very highly in terms of 'user feedback', much more highly than comments on a blog. There are a couple bugs already there (feel free to upvote them if you agree with them) around the loss of MDI mode, but they seem to be concentrated on small things that could be done to alleviate the users pain around loss of MDI, none of them that I saw seem to be 'give me back my MDI mode!!' type bugs, but perhaps I just didn't see those in my search.
>I can't imagine how you work without MDI ... but I accept that you obviously do.
I generally don't have the need to view documents side by side, if I do I split the tab-well into two vertically arranged tab groups. Otherwise I use the code navigation functions to jump back and forth between current file and say source of symbol/class/method I need info on (assuming the info I need isn't exposed in intellisense). Or I float the document I need to frequently reference and put it on another monitor. That said everyone has workflows that work best for them, I don't assume my workflow is best for everyone/anyone else or they are an idiot for not doing things like me. Unfortunately a vital part of your workflow (MDI) was cut in this release, that is very unfortunate and I can imagine why you would be upset (I would be equally upset if we went to ONLY having MDI mode).
>You must surely have noticed that regardless of what workflow you use.
No, as I said above I generally work on a given file at a time when I do need to hop files I navigate back and forth between other files using keyboard based navigation (Go to definition (F12) and NavigateBackwards (Ctrl- -) to jump back and forth as needed. This has the advantage of taking me directly to the line I want to be on / was on before hitting F12 so I have no need to 'remember' any locations in any files. If that doesn't work I would use Ctrl-Tab or Alt-W-(# here) to quickly open a recently accessed document if I can't get there via code navigation directly.
>What was the reason for taking out MDI?
Resourcing constraints as discussed above. The entire window management system was re-written from scratch in 2010. This is not a trivial undertaking, in fact to get all the functionality that partners depended on took a lot of work. We made the decision to cut MDI early on as a cost saving measure so we could focus on other thorny issues (like focus, which is rather nasty in a complex, mixed UI framework (Win32, WinForms, WPF) application like VS). No one internally or externally seemed terribly upset (via lack of feedback during dogfooding and betas) so we took that as evidence that MDI wasn't heavily used/missed. In retrospect we should only have taken it as evidence that the people dogfooding / using the betas didn't use MDI, the whole absence of evidence isn't evidence of absence and all. Unfortunately when decisions need to be made we have to go with the data we have at the time.
>although Excel still has MDI ...
Excel is a different app, it doesn't share any code at all with Visual Studio. Excel also has a Ribbon :) While we like to have parity in features between even disparate products, where it makes sense, I don't know if the user base of Excel and the user base of VS overlap significantly, I would have to look at some market research or something of that nature to know for sure though.
>BTW, please don't take the MDI out of SQL Server Management Studio ...
SQL Server Management Studio is not owned by my team. It is (afaik) an Isolated Shell application that re-uses the VS shell as a platform for its functionality. If it moves to be based on the 2010 shell then it will also not have MDI mode, as it isn't hidden away behind some switch in 2010, it is gone. If they continue to be based on 2008 then they will continue to have all the 2008 features, including MDI mode. That isn't a decision I have any say in or knowledge about.
Thanks for the explanation of the reasoning behind the decision to drop MDI. It is a shame that this is such a big change that it cannot be reversed.
One of the key things you said was:
> In retrospect we should only have taken it as evidence that the people dogfooding / using the betas didn't use MDI, the whole absence of evidence isn't evidence of absence and all.
I think that is exactly what has happened. Your guys at Microsoft use Visual Studio in a certain way - and those external people doing betas are by definition likely to use it in the same way too simply because they work closely with you. Those of us working at a greater distance from Redmond are bound to be doing things differently, and of course are far more difficult for you to engage with. I think you should remember also that design decisions that might be right for the target audience of Visual Studio are not necessarily right for VWD Express (although I can see that you need to use a common codebase).
Your explanation of how you work with VS is completely different from what I do. I can see that if you are using ASP.NET in the way you describe, there is less need to see code side by side. However I am probably coding in a way that is 5 years behind what you are doing (as I expect many other users of VWD are), and for what I do MDI is essential!
The one thing that I still can't understand you missed is all that white space on the right of the code window when running full-screen on a high-res monitor. Surely someone must have noticed that?
I realise SQL Management Studio and Excel are managed by different teams and have different codebases, but I mentioned these products because I was wondering if there was some general trend against MDI at Microsoft.
Finally, since I can see that nothing in VS is sacrosanct, please can I put in a word to keep the XMLDocument and XSLcompiledtransform ... they are such a versatile way of rendering HTML, way better than the usual ASP.NET controls.
>It is a shame that this is such a big change that it cannot be reversed.
Well nothing 'cannot be reversed', I said only that we can't change the RTM version as it has already 'left the building'. If there is enough customer feedback via Connect and other channels about the pain caused by lack of MDI then it could certainly be brought back, but like with all things it is weighed against the pain caused by other losses or new features users have asked for. If it doesn't rank high enough to justify focusing on it over some other fix/feature then it doesn't get done.
>I think that is exactly what has happened. Your guys at Microsoft use Visual Studio in a certain way - and those external people doing betas are by definition likely to use it in the same way too simply because they work closely with you.
I don't know if that is true necessarily. We had over 1 million installs of Beta2 (over 41k just of VWD alone). So I don't think we could say that ALL of those people 'work closely with us', well at least not with the shell team directly since our manpower wouldn't scale to support close relationships with 1 million people :) It is true everyone has different work styles, even on our team everyone has different work styles.
>However I am probably coding in a way that is 5 years behind what you are doing (as I expect many other users of VWD are), and for what I do MDI is essential!
Yep, understood. Different people have different workflows, it isn't that one is better/newer/cooler than another, simply whatever works best for an individual. I don't do any ASP.NET development (mostly C#, C++) so I can't speak to your pain or workflow around that without MDI. I assume you aren't 'just making it up' :)
>The one thing that I still can't understand you missed is all that white space on the right of the code window when running full-screen on a high-res monitor. Surely someone must have noticed that?
Perhaps, but if you have multiple tab wells, or side docked toolwindows that aren't auto-hidden there is less whitespace. Plus whitespace to me in and of itself isn't an issue. I don't view it as terribly wasted space considering I don't feel that I can't show anything I want to show in my IDE due to space constraints. If it were the case that there was simply no way to utilize it and I couldn't show other toolwindows and such because it was taking all the space it would be an issue, but that isn't the case. It takes as much space as is available to try to maximize 'room' for document editing. Not everyone has hard stops at 80 columns, I have seen code that runs quite long in a line (I try to avoid it myself and impose an 80-ish column max, but others don't).
> I was wondering if there was some general trend against MDI at Microsoft.
Not that I am aware of. Like I said we didn't 'axe' MDI out of some hatred of MDI. We cut it because we had too much work to do in the given time with the given manpower. If we hadn't of cut that we would have had to cut something else. In this case it came out very low on the stack rank of necessity (you can of course argue this was an incorrect ranking). It wasn't like we chose to not do MDI mode and then spent months sitting around doing nothing :) We honestly worked to the last minute getting what you see in VS2010. We had 0 time to do any more. If we had more time we would have done more, perhaps even MDI.
>Finally, since I can see that nothing in VS is sacrosanct, please can I put in a word to keep the XMLDocument and XSLcompiledtransform ... they are such a versatile way of rendering HTML, way better than the usual ASP.NET controls.
As I said we try not to make cuts if we can avoid it, we certainly would prefer to only and ever add new functionality and goodness. XMLDocument and XSLCompiledTransform are part of the .NET framework not VS proper. There are much different rules around them 'taking things away' than there are in VS. Few if any partner code relied on MDI mode being available in the shell, lots and lots of code out there likely relies on XMLDocument and XSLCompiledTransform. The .NET framework generally will not remove classes, so no worries there. That said there is a monumental difference between some piece of user functionality in VS and some piece of the .NET Framework.
Definitely and improvement over 2008 but sadly the upgrade pricing in Australia for VS2008 Pro to VS2010 is ridiculous. ($AU945 vs $US549(approx $AU590) WTF!). Seriously considering a pirated version at those prices which are blatant daylight robbery.
I don't see what's so special about MDI. MDI is kinda old, outdated WIN16 stuff, its been around for decades. The way we use most applications and websites today (in a more browser-oriented style) is different.
MDI oder no MDI in Visual Studio? I don't care. There are other features that are way more important to me so its good Microsoft invested in those. I've never used MDI anyway even though I do have a multi-monitor setup. If I had multiple code windows on my screens, I would proably get insane. Usually you focus on one code file at a time. In the rare event of having to compare two files with each other or stuff like that, I use the split function or the new undocking feature of VS2010 (you can just drag the window, no need to use the context menu btw). But I wouldn't want that to be my default setup. The second monitor can be used for other applications like SQL Management Studio and so on which makes much more sense to me.
Given that no one complained about the lack of MDI in advance, it doesn't seem to be an important feature. There might be some people who need it cause eveyrone's workflow is different. But you can't have it all.
> Usually you focus on one code file at a time.
I'm guessing you do mainly VB or C# developpment then, whereas I was referring to VWD. Modern web applications consist of XML files, XSL files, HTML files, CSS, ASPX, class files, JS files ... MDI is great for allowing you to work with all those together in an integrated way. Inspite of Ryan's explanation, I am still very surprised that SDI can compete with MDI for web development productivity.
I think what MS need to be careful of is what happened when they went from VB6 to VB.Net - a lot of people decided it was less hassle to jump ship to PHP. If others don't use MDI with Visual Studio, well fine - I can carry on working with VWD2008, which is an excellent editor.
you're right but I spend a lot of time on asp.net web applications as well. I agree that you have to work with many files in a web project but still I don't feel that I need any sort of MDI support to be able to handle it. There are so many convenient ways how you can switch between files in VS and the asp.net editor has a good split screen mode. If I really need a seperate window, I can use the undocking feature which is nearly as good as MDI (it also gets saved with the project).
I've been experimenting a bit. I actually quite like the un-docking feature suggested by Benjamin and Ryan. I think it is actually better than MDI because of the ability to move the child windows elsewhere on the desktop. Now, if only there was a way to automatically open files in un-docked mode ... I am sure there must be, but so far I have found that I can open the file as usual by double-clicking it in Solution Explorer, then double-clicking again on the title tab to change it to un-docked mode. That's not too bad, and being able to move the windows on to any of my other monitors is great.
I'm starting to think VS2010 might be pretty good after all, even for old-fashioned programmers like me. I may become a convert to VWD 2010 after all!
why??? why??? It's alway like this, one good thing added (returned actally), I mean Class Wizard, and another removed - I mean the IDE option to have tabbed or multiple documents. And please don't tell me that tabbed is more convinient. Not for me, and as I've read from this blog some other people are also upset because of this. Why do I have less options? You like tab's - please, use it, but if I don't like let me have it my way.
And for me this is so important, that I'm not going to use this 2010 edition, at least this option is added. Maybe Microsoft doesn't care about a couple of frustrated developers, too bad.
I explained the thinking behind the decision extensively in the posts/responses above. We (the shell team) don't look to make peoples lives difficult nor do we like cutting features. That said there are hard deadlines that can't be slipped and there are only so many devs on the team and so many hours in the day. Sometimes there isn't time to do everything, it is unfortunate but it isn't due to some hatred of users or MDI mode or anything other than constraint based on the laws of physics, if you know a way to create more hours in the day or have a time machine I would love to talk with you! :)
You're right I don't spend time doing web development, so don't take my workflow as a statement of an ideal workflow for that area :) "Default to floating" is something we have seen requested, and I believe there has been some investigation into its cost (I don't think it is terribly high, but I am not a windowing dev). It would be nice if we could do it as an OOB extension, but that kind of tweaking isn't supported in the window manager in a way that we could do it from the outside :(
Hello Ryan, thanks for the response. But believe me, people are just starting to use VS2010 and the majority of developers are not aware of some exclusions. We discussed already multiple documents option. I just thought if it’s “there” it's not a big deal to leave it. But colour schemes became poorer also, even though in another answer you are saying that everything is there. I’ve used the link you’d provided, downloaded corresponding extensions, but… The thing that frustrates me from this point of view is that in VS2010 all numeric values in my code became black and look like part of the text. And if the tabbing of windows it’s just matter of inconvenience for some people, the lack of option to display numeric values in different colour could be more serious, because it makes harder to write/read the code, which basically means spending more time on finding/fixing bugs.