What's new in Visual Studio 2010 for WPF & Silverlight developers ?
Hi WPF designer forum users!
As readers of the WPF designer forum, I thought you would like to know that as of MIX09 last week, we now have some video available for you to take a look at if you're interested in understanding what new functionality will be in Visual Studio 2010 for WPF & Silverlight developers.
It would be great if you could spare 20 minutes to watching this video:
http://videos.visitmix.com/MIX09/T73M
Once you've watched it, we would really love to hear your feedback on the new version's features, and whether it solves the more important problems that matter to you in WPF & Silverlight development today (or not!).
You can respond here, or via twitter (Tag #VSDesignerSLWPF)
Thanks!
Mark Wilson-Thomas
Program Manager, WPF & Silverlight Designer, Visual Studio
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is'
Todas as Respostas
Well, I'm certainly very happy to get comprehensive IntelliSense and a resource binding wizard. Good job!
While browsing the MIX09 website, I noticed another video on WPF 4 that people might be interested in -- not sure if it's already been posted on these forums:
http://videos.visitmix.com/MIX09/T39F
edit: Looks like this is really the "prequel" to the T73M video so people might want to watch this one first!- Thanks for the feedback Chris! I'm glad these features are making sense for you.
The other session you mention (T39F), as well as having lots of great WPF 4 content, has a 20 minute section where I give a bit more depth on the Data Sources window in WPF, and then has some overlap on using the Databinding expression builder in the property browser, but it does not show the new Silverlight designer as it was a WPF-focussed session.
T73M stands alone as an overview of features for both Silverlight and WPF in the new Visual Studio, unless you need the details on how the Data Sources window gets populated. Watch away by all means though :-)
Thanks
Mark
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is' Please fix designer crashes, and add small font support.
Hard Core Soft WareThanks for the feedback Matt. We definitley take any crashing or hanging issue in our designer seriously and understand how frustrating these issues can be.
- We have already fixed an important set of crashing issues in our KB958017 Hotfix for Visual Studio 2008 (these fixes are of course rolled into the new Visual Studio 2010 release, and also rolled into the Silverlight Tools for Visual Studio RTM release)
- We are also working (as we speak) on testing a potential Hotfix for the Visual Studio 2008 Hangs which some WPF designer users have been seeing - we will make an announcement on these forums as soon as there is more to say on this topic.
- If you have a designer crash issue in Visual Studio 2008's WPF designer, that you don't think is already being addressed, please contact me directly at mwthomas at microsoft dot com, and I'll work with you to capture a crash dump and ensure your issue recieves the correct attention
Please can you clarify what you mean by "adding small font support" ? I'm assuming that you mean a change to the WPF platform here, rather than a Visual Studio designer feature?
Thanks
Mark
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is'- Hi Mark,
I might be wrong, but it seems the Expression Blend designer is much more stable and superb (of course, putting aside the XAML editor) compared to the VS one.
Why don't you guys use it instead of reinventing the wheel?
Thanks!
Maximilian Haru Raditya Max:
The blend designer has lots of problems too. No right click support, problems refreshing content, no intellisense, problems with object selection , problems displaying preview under certain data/web services scenarios............. However with VS2008 Blend was the way to go. From playing with the VS2010 beta, blend doesn't look nearly as appealing.
Mark: So far the VS2010 Beta 1 designer has exceeded our expectations keep up the good work!- One of the most infuriating traits of VS2008 is that in the designer, when you move a control around, it changes the anchor settings automatically for you. I HATE that, because I then have to go and manually change the anchors back to what they were. Has this been addressed in VS2010?
Next on my long list of frustrations with 2008 is that I can't edit an existing control template like I can in Blend. This is - well - annoying as h*ll.
Finally, what I would like to see is a tool that converts XAML to C# source code. Why? Because we need to obfuscate our code, and we all know that the XAML prevents us from being able to do that.
- @John Simmons:
I have some good news for you: the behavior you hated (changing the anchor settings automatically based on the quadrant of the parent container) has been removed from Visual Studio 2010's designer - you were not alone in not liking this behavior, and we will now only change the alignment/anchor for you if you ask us to (by pressing the anchor adorners, or using the property inspector or XAML pane). We will also always set the alignment to top right when a new control is created, regardless of where you create it. We hope this helps, and would look forward to your feedback on the Beta1 release. You will also find that the designer deals much better with cases where you use Auto sizing.
You'll be less pleased to learn that we have no plans to support control template editing in Visual Studio 2010; however I should explain that we have done this because the Control Template editing scenario is well taken care of by Microsoft Expression Blend, so we felt it was better to concentrate our resources on the RAD databinding/resource find and apply/Property Browser capabilities we have introduced in this release, bringing our capabilities for WPF and Silverlight line of business application developers more closely into line with what was possible in Windows Forms.
I'm not aware of any tool that lets you convert XAML to C#, and I'll forward your comment on obfuscation of XAML to the right folks here to get an answer for you.
Please send me your long list of frustrations with 2008 - seriously! Drop me an email at mwthomas at microsoft dot com - I'd like to make sure we understand your frustrations properly and let you know which ones we've had a chance to address.
@AviationPlanning:
Thanks for the complements - keep trying the beta and let us know how it wears with use.
Forum users may be interested to hear that we now have a library of video and documentary content for Visual Studio 2010 WPF and Silverlight Designer on windowsclient.net at www.windowsclient.net/wpfdesigner - check it out and let us know if it helps. We plan to add a lot of new content to this library to help you get oriented and productive in the new designer.
Thanks
Mark
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is' I have some good news for you: the behavior you hated (changing the anchor settings automatically based on the quadrant of the parent container) has been removed from Visual Studio 2010's designer - you were not alone in not liking this behavior, and we will now only change the alignment/anchor for you if you ask us to (by pressing the anchor adorners, or using the property inspector or XAML pane). We will also always set the alignment to top right when a new control is created, regardless of where you create it. We hope this helps, and would look forward to your feedback on the Beta1 release. You will also find that the designer deals much better with cases where you use Auto sizing.
Regarding the anchors, I would personally prefer that the default be top/left. It would actually be more helpful if that was configurable in Tools|Options.
You'll be less pleased to learn that we have no plans to support control template editing in Visual Studio 2010; however I should explain that we have done this because the Control Template editing scenario is well taken care of by Microsoft Expression Blend, so we felt it was better to concentrate our resources on the RAD databinding/resource find and apply/Property Browser capabilities we have introduced in this release, bringing our capabilities for WPF and Silverlight line of business application developers more closely into line with what was possible in Windows Forms.
Well, being told to use Expression Blend (and spending another $500 to get it) simply ain't right. In order to override the content/appearance of a control, we NEED to get the original template for a given control, and making us use another tool to do that is ludicrous. You could make the WPF designer 1000% better simply by adding that single capability. I shouldn't have to open another tool (with a completely different interface, BTW) just to do something the IDE should be able to do. Sure, I can add a few lines of code to my project to retrieve the template via the debugger, but as a workaround, we're talking suckage on a grand scale. When I complain about Blend, people say "but blend is for designers". Well, it's NOT for designers if Microsoft itself is saying that programmers have to use it to perform necessary (and critical) programming tasks.
And just in case you didn't know, I have yet to find *anybody* that thinks the WPF designer is worth a d*mn. Generally, I don't mind it too much, but given the relatively unstable nature of the IDE (VS2008), the tool essentially sucks. I admit to having a significant dislike for writing WPF apps. The current state of the tools (and evidently, the future state as well) makes me really dislike coding in WPF. The IDE constantly freezes up on me (it has *never* done that when I work in ASP.Net or WinForms), the designer is very fragile, I have to use Blend to do part of my work when I shouldn't have to, and there are apparently a lot of secrets involved in writing WPF that new adopters (like me) are finding difficult to coral in one place. I'm sure google is going to start charging me for searches sometime in the near future because it seems I need to reasearch every little thing I need to do.
I've been in this industry for over 30 years (before Microsoft was even a gleam in Bill Gates eyes), and I'll give you some free advice. If you want uncensored, honest feedback, you really have to "walk among the people" instead of waiting for them to come to you. Don't ask for the feedback - just watch it happen. Visual Studio has so much usage inertia that folks are bound to talk about it without being prompted. A good source for unprompted feedback is CodeProject.com. Those guys (and I'm one of them), eat/live/breathe Visual Studio in all of its evil incarnations - I've personally been using Visual Studio since Visual C++ 1.0 was released. There is an almost-daily "Why WPF sucks" thread posted in the Lounge (and I'm not the only instigator here).
Finally, I posted a bug in this forum yesterday regarding syntax highlighting in the XAML editor. It doesn't have any response yet, but I hope you guys address that in VS2010.
Thanks for your time, and I recognize the difficultly of your position. I'm just one old and very opinionated programmer, but since I pay for MSDN subscription, I feel entitled to ____ and moan constantly, even if I'm wrong once in a while. :)
- Hi John,
Regarding the anchors, please accpet my apologies: I mistyped my response. The default setting for the alignment anchors is indeed Top Left (where it belongs in the natural order of things!). The feedback on making it configurable is useful; we'll consider that for future releases.
In terms of Expression Blend usage: for a long time now I've been saying publicly that Blend is for design tasks (rather than "just for designers"). So in that sense, I agree with you that Blend is not just "for designers". I know that doesn't address your point about the additional cost of the tool or the other issues you raise with it elsewhere. So that we understand your situation properly, I would be interested to know from your experience, how many times in a typical WPF project cycle you find yourself needing to fully re-template an existing control rather than simply re-styling parts of it or picking up a template from a library of some sort? How does the frequency of that retemplating task compare with other typical WPF tasks such as basic screen layout, configuring databindings, finding and applying styles etc? Putting aside the argument about cost for a moment, do you find the workflow between the Visual Studio and Expression Blend environments lets you achieve that goal satisfactorily?
Regarding your comments about the stability of the existing Visual Studio 2008 designer, we've been working to elminate some known issues. As such I wanted to let you know (if you had not already discovered these) about the Hotfixes which are already available for Visual Studio 2008's WPF designer and can make your development life smoother:
1. KB958017 (http://code.msdn.microsoft.com/KB958017 which has been out for quite a while now and is also rolled-up into the Silverlight Tools for Visual Studio 2008 SP1 - please don't install it if you already have the Silverlight Tools) fixes a number of late-breaking issues in VS2008 SP1's designer (including some crashing issues)
2. The more recently issued KB963035 (http://code.msdn.microsoft.com/KB963035) solves in intermittent hanging issue in the designer which some customers had reported
3. The CLR team has recently issued a hotfix for an issue that affected some WPF designer users and could cause "hard crashes" in which no Watson dialog would appear (http://code.msdn.microsoft.com/KB963676 - it says it's for MS Exchange but also fixes the WPF designer "Grant Set Exception" failure)
We certainly recognise that the Visual Studio 2008 WPF designer requires a fair amount of expertise on behalf of WPF (and Silverlight) developers before they can become fully productive - and that's why we've put in the effort we have on making life easier in the new Visual Studio 2010 designer. I would really like to hear what you make of the new designer and its features beyond the lack of a control template editor - are there other things you find yourself doing regularly that you don't see the new designer helping with?
I'll take a look at your other post regarding syntax highlighting and make a response there.
I want to assure you and our other customers that we on the WPF and Silverlight designer team take our customers feedback very seriously. This is why we spend a lot of time both on public forums like this one and codeproject, and proactively at other venues (Blogs, trade shows, developer user groups etc) , looking for and responding to your feedback. Thanks to you and others for taking the time to provide it to us; constructive criticism of our products from those who buy them is always welcome.
Regards
Mark Wilson-Thomas
Program Manager, WPF & Silverlight Designer Team, Visual Studio
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is' - Some personal history: I've been programming for 30 years, and I taught myself Pascal in the early 80's, C/C++ in the late 80's, and started Windows programming around 1990 or so. About two years ago, I switched from C++ to C# and .Net (again, self-taught). Finally, I got my current job. In April, the powers that be decided that our flagship app should be converted from Oracle Forms to WPF (the original plan was to convert it to WinForms). I didn't (and still don't) agree with the decision to go with WPF because I don't think it's appropriate for enterprise-level LOB applications for the following reasons:
0) The requirement for DirectX. We sell our software to businesses, and as Microsoft is painfully aware, many businesses have seen no reason to move to Vista (notice that I didn't say "upgrade").
1) Shader 2.0 support on the part of the hardware for non-deprecated bitmap effects
2) NONE of the team members had experience in WPF are the primary reasons why), but they want what they call "pizazz" in the application. At this point, I am the "goto guy" for the interface because like I always do, I dig deep and hard into whatever I am tasked with. In this case it's WPF.
3) WPF in general is buggy (or "quirky" in Microsoft-speak), and is an immature evolving technology. This presents a problem because we probably won't move to .Net 4.0 development because of some weird perception on managements part that we don't want to "force" our users to upgrade to .Net 4.0. I'm thankful that we can still use VS2010 because we can stay with .Net 3.5 but take advantage of the improvements in the new IDE.
That being said, I have attacked WPF in my usual style - no holds barred, throw stuff at the wall and see what sticks. Some stuff that doesn't stick:
0) The IDE crashes with all too much regularity. To be honest, this is the FIRST time I've had the IDE crash on me since I started using Visual C++ back in 1990/91. This REALLY kills productivity, and it happens to everyone on the team, but it happens to me the most since I'm the one modifying the interface the most.
1) Having to completely re-template a control - I'm baffled by the requirement to completely re-template a control in order to change the appearance without losing original functionality. A good example of my experience with this is the TabControl and TabItem. If you want all of the original functonality, but want to change a single visual aspect, you have to retrieve the ENTIRE original template and modify it. What is the reason that there's no "BasedOn" property like you can do with Styles? This is what tripped me offline on having to use Blend. I either have to write some temporary code or use Blend to scrape an existing template. That's insane. BTW, "use a control from another library" doesn't teach me anything, and generally speaking, no 3rd-party control has ever been exactly what I want.
2) If you guys are going to insist on us using Blend (which will continue to tick me off), it needs to have the same interface as the IDE, and for the IDE features it includes, it has to have the same functionality (adding a reference in Blend is a joke).
3) I recently reported what I think is a bug regarding character casing of programatically applied text in a TextBox, and was told that because the behaior I cited is documented, that it's not a bug. That's just a load of solified bull methane. WinForms does it one way, and WPF does it another - that's just wrong, and the change appears to be arbitrary.
4) Why - in the name of all that's holy - isn't there an "Activated" event for TabItems? (This might best be posted as it's own thread.)
5) Window and UserControl code templates should include two constructors - one with no parameters, and one with a parameter for the owner window/control.
I will freely admit that some of this stuff is merely teething pains, but there are other things (IDE stability, and the Blend issue) that are not. This really impedes my ability to "like" WPF. I'm fully willing to be talked down from the bell tower and into giving up my weapon, but Microsoft's promises regarding the IDE are often left un-realized by the developer community (you guys REALLY need to recommit to the native code guys doing MFC and C++). I have no tangible reason to believe this will change.
4) Why - in the name of all that's holy - isn't there an "Activated" event for TabItems? (This might best be posted as it's own thread.)
Can't argue with your other points but this one's simple: just use the SelectionChanged event on the TabControl that hosts the TabItem.5) Window and UserControl code templates should include two constructors - one with no parameters, and one with a parameter for the owner window/control.
Another thing: are you aware of the new C# 3 property initializer syntax?
var win = new Window() { Owner = ownerWindow };
I'm not really missing constructor overloads thanks to this syntax. It makes using WPF classes from code much less painful.- Hi again John
Thanks for the continued conversation.
I won't answer all your points here and now, but do want to address a couple quickly
1.crashing of the IDE.
I really want to make sure that you and your team (and anyone else who has seen crash/hang behavior in the VS2008 WPF designer) has applied the appropriate hotfixes for the known crash/hang issues as mentioned in my earlier post:
1. KB958017 (http://code.msdn.microsoft.com/KB958017 which has been out for quite a while now and is also rolled-up into the Silverlight Tools for Visual Studio 2008 SP1 - please don't install it if you already have the Silverlight Tools) fixes a number of late-breaking issues in VS2008 SP1's designer (including some crashing issues)
2. The more recently issued KB963035 (http://code.msdn.microsoft.com/KB963035) solves in intermittent hanging issue in the designer which some customers had reported
3. The CLR team has recently issued a hotfix for an issue that affected some WPF designer users and could cause "hard crashes" in which no Watson dialog would appear (http://code.msdn.microsoft.com/KB963676 - it says it's for MS Exchange but also fixes the WPF designer "Grant Set Exception" failure)
We believe these fixes deal with all the problem cases we are aware of in Visual Studio 2008 SP1. If we are mistaken in that view, please put us right! Please let me know if you've installed these hotfixes and are still seeing a crash/hang issue with the designer - we want to work with you to ensure that it is properly dealt with.
2. DirectX requirement <> Vista requirement
Your comment sort-of implied that Windows Vista was a requirement for WPF applications - I just wanted to make clear that it isn't . You can run your WPF applications on Windows XP (see http://blogs.msdn.com/tims/archive/2007/01/05/comparing-wpf-on-windows-vista-v-windows-xp.aspx for a good coverage of minor differences you may see).
3. .NET 4.0
Multitargetting in Visual Studio 2010 will indeed let you target .NET 3.5, and I'm glad that's likely to help in your scenario. However I also wanted to let you know that adopting .NET 4.0 for client applications will be made easier for some scenarios by the new slimmed-down Client Profile installer (see http://blogs.windowsclient.net/trickster92/archive/2008/05/21/introducing-the-net-framework-client-profile.aspx for a great write up). This is particularly useful if your customers have no .NET Framework installation on their machines.
Thanks
Mark
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is' 1. Crashing of the IDE
Is there a way to find out what is already installed as far as hot fixes are concerned? That would be a nice thing to have in VS2010. I envision this as being a list of installed service packs, and any hot-fix not rolled-up (replaced) by a service pack.
1. Direct-X Requirement
I didn't mean to imply that Vista was required. I was making the point that new iterations of WPF require more stout hardware. Generally businesses upgrade their hardware every two-three years, and unless there is a specific need, they get the most minimal hardware they can get away with, and video performance is generally a tertiary concern.
3. .NET 4.0
Multitargetting in Visual Studio 2010 will indeed let you target .NET 3.5, and I'm glad that's likely to help in your scenario. However I also wanted to let you know that adopting .NET 4.0 for client applications will be made easier for some scenarios by the new slimmed-down Client Profile installer (see http://blogs.windowsclient.net/trickster92/archive/2008/05/21/introducing-the-net-framework-client-profile.aspx for a great write up). This is particularly useful if your customers have no .NET Framework installation on their machines.
Well, the problem isn't with our customers (all of them have .Net of one version or another), it's our management here that seems to think imposing the requirement to download/install a newer version of .Net would freak the users out. I really don't understand how they would come up with that since I've never had a problem loading up a new version of .Net (other than the now gargantuan download size). To be honest, this is going to be the company's first publicly distributed .Net application and I suppose I can understand them being a bit apprehensive, but on the other hand, they're technically savvy enough to know better. The .Net 4.0 argument may be a battle with management, but at least we can target 3.5 with VS2010.
Hi again John
Yes, there is already a way to find out what Hotfixes are installed for a given program: you can use the add/remove programs control panel. How varies by OS:
1. On Windows 7 bring up the Add/Remove programs control panel , and look under Installed Updates. You will see the updates ordered by the target so you can easily see which ones apply to Visual Studio for instance. You can find particular KB numbers using the search box on the control panel.
2. On Windows Vista, bring up the Add/Remove programs control panel, and look under Installed Updates; you will see a list of updates and the program to which they apply is shown in a column you can sort on to see which apply to Visual Studio. You can find particular KB numbers using the search box on the control panel.
3. On Windows XP, bring up the Add/Remove programs control panel, and check the "show updates" checkbox. Updates are then shown nested under the relevant program. There's no search box for finding specific KB's unfortunatley.
What's less easy is finding out whether a hotfix has been rolled up into a service pack - to do that you have to look up the KB article that corresponds to the relevant service pack, e.g. for service pack 1:
http://support.microsoft.com/kb/950263/ (see towards the bottom of the article, for list of Hotfixes included in the SP).
Perhaps we could make it easier to do this last step, for example by baking the list of included hotfixes into SP installs so they can be found in Add/Remove programs too if needed.
Now you have this data, I hope you're able to check for the Hotfixes I mentioned and apply them as needed. Let me know how you get on.
On the DirectX topic, I now understand your point. Fortunatley, I think even lower-end/entry level graphics cards are now becoming pretty performant, so there is some relief from increasing requirements when businesses buy new machines even though I agree that businesses don't always see graphics cards and video perf as primary purchasing parameters.
Thanks
Mark
Mark Wilson-Thomas - Program Team - WPF & SL Designer for Visual Studio - posts are provided 'as-is'- Use WPF ,I no, Very Slowly ,Very Slowly

