Monday, 15 February 2010

Scott Guthrie Web Chat/Q&A (Transcript)

Every 3 months Scott Guthrie (VP of .NET Developer Division that covers IIS, ASP.NET, Silverlight, WPF etc) gives an online audio webchat/Q&A on LinkedIn which invariably contains all sorts of information that just hasn't been publicised elsewhere. These chats are pretty unmissable.

The most recent chat took part last Thursday, but since I was on a train at the time I only caught up with the downloadable version this evening. You can get it (as a zipped wmv file) here. I have been going through it to spot 'hidden' announcements, and if you're as time-pressed as I am, you may find the following transcript more useful than the one hour+ audio file.

I have re-ordered the rough transcript to fall into the topic areas I'm personally interested in. Alas, in places the answers don't quite tie up with the questions asked (so I've given them headings instead). I was particularly interested to find out what the Silverlight 3/WCF RIA Services story was, but the answer given really related only to Visual Studio 2010. My reading of that answer is that there will be no new release of WCF RIA Services that works with Silverlight 3 - the PDC 'beta' release we got in November is all we get. This means that Microsoft will not add it to the official support cycle, that there will be no security patches and no bug fixes which is bad news for the client project I'm currently working on (where there is resistance to any sort of auto-upgrade of Silverlight to Silverlight 4).


"Silverlight 4 is the first version I’d say we have a powerful end-to-end story for the tools for building line-of-business applications."

"Silverlight 4 beta is not currently supported with the Visual Studio 2010 Release Candidate release, but it is supported with the Visual Studio 2010 Beta 2 release. The main reason it is not supported is that we have a new version coming out: The Silverlight 4 Release Candidate. The tooling for the Visual Studio 2010 Release Candidate targets the Silverlight 4 Release Candidate which hasn’t shipped yet. We didn’t want to back-target the old Silverlight 4 beta release that we shipped in October. It’s a matter of timing and focus and it definitely does not mean what some folks have said: ‘You don’t like Silverlight’! It’s just a question of scheduling. When Silverlight 4 RC does come out the tooling will obviously come with that as well. When it’s happening isn't too far away. If you are working on a large Silverlight 4 project today you can contact me and we’ll try and get you early access to those bits but in the meantime the Visual Studio 2010 RC does support Silverlight 3"


"When can you expect a ‘Go live’ license for Silverlight 4? We’re not going to have a separate ‘Go live’ license for Silverlight 4 since it’s a web runtime license. But you will find that the release of Silverlight 4 is not too far away. Once that ships we’ll basically support ‘Go Live’ with that."


"There are definitely lots of changes coming, mostly in the order of nice small features people asked for, as well as some tooling improvements. [in answer to specific question about serializer classes:] I’m not sure if we’re adding new classes on the serializer front."


"Timeframe for Silverlight dev environment for mobile? You’ll hear about that very soon. I would recommend you come to MIX. We’re streaming it all live and we’ll be revealing more about our plans then (next month). The timeframe is not too far off."

"We don’t have all the details to share right now. Keep an eye out over the next month.You’ll see a lot more detail coming out. Hopefully you’ll be pretty excited by what you see. I spend at least 50 to 60 percent of my time right now focused on mobile – a large proportion of my team has been as well the last year. Hopefully we’ll have a lot of cool stuff to show off next month at MIX that will get everyone pretty excited. I’m excited by it so...."

"None of the versions of VS2010 out there right now support development for mobile. As soon as we talk about our Mobile strategy in the weeks ahead then you’ll start to see the Mobile tools for VS2010 and I think you’ll be happy with what you see in terms of the capabilities that we come up with."


"We are making good progress. If you want to write a Silverlight app for Nokia drop me an email and we may be able to send you some bits. The bits will be available for everyone to use shortly and you’ll start to see Silverlight used on Nokia phones in the not-too-distant future."


"Plans for charting controls in WPF and Silverlight? We have charting controls now in the Silverlight Control Toolkit. We don’t have all the features that ASP.NET and WinForms controls have but we’re working hard on that. They’ll be getting richer in future. You’re going to see us build a pretty rich set of reporting controls and charting controls that anybody can take advantage of. It’s definitely something that we’re focusing on, and planning to enable."


"With .NET 4 are WPF and Silverlight 4 data binding pretty much in sync? Pretty much, yes. What we’ve been trying to do with Silverlight is pretty much that whatever we put into Silverlight is compatible in terms of skills re-use. The last couple of releases we focused on code re-use and building up Silverlight 4 features so they had parity with some of the things in WPF 4. In Silverlight 3 we added a lot of things to make data binding richer. With Silverlight 4 we’re adding the next set of things. Some of the new things are INotifyPropertyChanged support is in there (?), handling null is in there, string format is in there and a bunch of other capabilities have been added. CollectionViews and sorting and paging and things like that which were in WPF are there in Silverlight 4. All the major constructs that were in WPF are there in Silverlight 4. There’s a few more advanced features that are still in WPF on the data binding side but I think all the basics now are there and should enable some good code-sharing across WPF 4 and Silverlight 4."


"It’s a question that I’m asked a lot. I know we’re looking hard at supporting something like that in the future. I was actually talking to Anders Heljsbergyesterday about that. He’s starting to think about the next release of C# and there were one or two features I put in his ear. One was that one. That’s top of line for him to look at and think about.


"The application has been released. It was a different team from mine that wrote the application and I’m currently negotiating with them to release the source code as well."


"I think you might be able to on PCs with COM support when you’re running in full trust mode. I don’t think Macs have serial ports but in Windows you can take advantage of the COM support."


(new programmer question wanting to know what to start learning) "First, you’re going to have to stick with WebForms – they’re not going away. That’s important to say upfront. Try and spend some portion of your time – not more than a few percentage points – of understanding what’s coming out and the roles. That doesn’t mean you need to know the APIs. Understand what is Silverlight? What is WPF? What is MVC? To the point where you understand what it is, but not to the point you can write code with it or to the point where you have to buy a book about it. Know what its role is. And then be pragmatic about what you decide to invest your time in. If there’s a project where you want to do something with video, or a very rich forms app inside the browser or you want to do something with graphics ... something like Silverlight makes total sense. Likewise, if you want to incorporate unit testing more into your app or you’re frustrated with the data control model in web forms then starting to use MVC makes sense. Don’t feel you have to keep learning and mastering new things – it’s a good way to avoid feeling overwhelmed and you can adapt the skills you have pretty easily so long as you don’t let yourself get overwhelmed by it."


"WPF 4 now uses new DirectWrite text system. You should see much improved rendering in WPF 4. Silverlight 4 does not use DirectWrite yet, but it’s something we’re looking at for the future. It does include a bunch of font rendering and text improvements as well."


"Silverlight 4 supports this model we call 'Elevated apps' when you’re running outside the browser and on the desktop. The user can optionally allow the app to do more than it can do in the sandbox – and that applies to Mac and Windows. Outside the browser it isn’t really a cross-browser thing it’s an “outside the browser” thing and, again, it works on Windows and the Mac. On Windows the one feature it does have that Mac doesn’t have is COM support so that you can activate and use COM objects. There isn’t COM object support on the Mac and we couldn’t add that feature. For the future we’re going to be looking at AppleScript support as there are similar things people want to do there. A ton of Enterprise application people asked for COM support. A lot of Adobe Air developers also really asked for it."


"I get asked this a lot. The main reason for that is mainly around security. People want to print without a ‘Confirmation’ dialogue. The trouble with that is on a website they could choke your printer if we didn’t ask permission. Likewise if we did full-screen mode they could display what looks like a login prompt that causes you to enter your user name and password. There were certain things we needed to do to keep your machine safe. The WebBrowser control is a tough one in that you can do a heck of a lot with it, including spoof attacks – and IE, Firefox, Chrome and Safari have all had exploits like that recently – and so we’re just being careful with Silverlight running inside the browser to make sure it’s not susceptible to those attacks which is why WebBrowser inside the browser is not available today. If we can find a way to make it 100% safe then we will do that."


"I think we support F# support for programming Silverlight today. I don’t believe we support the Parallel extensions yet, but I do believe we support multi-threading with Silverlight 4."


"Will Silverlight 3 with WCF be supported in the Visual Studio 2010 release? Silverlight 3 will definitely be included in the Visual Studio 2010 release. As soon as Silverlight 4 ships it will also be supported in the Visual Studio 2010 release. Visual Studio 2010 will also support the WCF RIA technologies that will ship as part of Silverlight 4. The WCF RIA technologies will require Silverlight 4. It uses some of the new data binding capabilities of Silverlight 4 that it requires on the proxy generation. We expect very quickly after Silverlight 4 ships we’ll turn on the auto-upgrade flag so we expect most users to be on Silverlight 4 within about 4 weeks of the point we ship. So to answer the question you will be able to use Silverlight 3 and a combination of Silverlight 4 and WCF RIA Services with Visual Studio 2010 as well."

"There are tooling improvements coming for WCF RIA Services"


"It will be supported in the future. It’s not currently supported but as soon as .NET 4 is there and WCF RIA ships we’ll definitely make sure that you can support it."


"Visual Studio 2010 and .NET 4 have been focussed on fit and finish rather than giving developers lots of new stuff they have to learn"


"We rebuilt the VS 2010 UI using WPF so you can customise everything with XAML. You could make the text editor a circle instead of a square if you really wanted to!"
"We don’t actually ship a dark theme out of the box. I think you’ll see with PowerTools and other downloads you’ll be able to set up a dark theme pretty easily."


"The planned launch for Visual Studio 2010 is April 12th. We are planning to have the RTM (Release-to-Manufacturing) release done by the launch event but at the end of the day we’re driven by quality. If you tell us we’re not ready, we won’t ship but we will try very heard to be ready. We are targeting a date to try to ship before then. I’m not sure if the discs will be available before then or not because once we go to RTM we actually hand off the discs to a production company. It takes about 7 days to cross the bits from our servers onto MSDN for download. I’m not sure whether it will be available before April 12th but certainly we’re trying to target so they are available ON April 12th, which is why I’m asking people if they find problems with the release candidate to email me directly."


"I’m not aware of any gotcha’s. We’ve done a lot of testing of those scenario’s. We support both running side-by-side and you can select on an application pool basis."


"It is much, much, much richer than any previous release. You can now pretty much plug in anywhere, whether it’s X-editor shell, build system. Everywhere is pretty much extensible. We have tried to maintain compatibility with the existing add-ins and packages though. We worked very closely with all the big vendors and open source projects that build add-in packages for VS, but you will find there’s a ton of new extensibility features that you can take advantage of."


"I believe the mouse wheel does do scroll-up and scroll-down – at least in Beta 2 and the Release Candidate. If you hold down the Control key it does Zoom-in and Zoom-out. I think in Beta 1 it did zoom-in and zoom-out and we changed it"


"DataAnnotation can be used with property-level validation. It also supports model-level validation. You can add an attribute at the fat (?) level and do validation of multiple properties. If you want to do validation on the state of the object or something like that you can plug-in other validation frameworks – things like Castle Validator, Entity Library validator or your own validator. All can be plugged into MVC 2 or that whole system. "


"There is a ribbon control for WPF 4. It’s a separate download on CodePlex. I’m not sure if the version updated for Release Candidate 4 is available yet."


"There is going to be a new version of Blend coming out that takes advantage of all the new WPF 4 and Silverlight 4 features. I wouldn’t call it a dramatic overhaul but you’ll find it gives you a better experience than today. Hopefully you should see that in the not-too-distant future"


"We haven’t announced Expression Studio 4 yet. It’s something we’ll announce in the future. We do plan on shipping Silverlight 4 and Visual Studio 2010 in roughly the same time frame. Silverlight 4 is a separate release that includes tooling for Visual Studio 2010 but it will ship separately."


(Question asking if Scott working with Moonlight to support Silverlight 4) "I’m afraid I don’t know. Moonlight is an open source project for running Silverlight on Linux. It’s sponsored by the Mono project and by Novell. We work very closely with them. We do deliver some bits of code eg a lot of the media code that Moonlight uses as well as the codecs that Moonlight uses. We also deliver all the test cases that we use for Silverlight ourselves. That allows Miquel and his team to use the same unit tests and test cases that we use. We are very supportive of their project."


"MVVM stands for Model-View-ViewModel that’s popular with WPF and Silverlight. It’s like a Model-View-Controller (MVC) pattern in that it’s separating out your view from what’s called a ViewModel and your controller object from your model objects. It enables richer unit testing and code composition. MVP is the Model-View-Presenter pattern is another derivation of separation of concerns that you can use which is popular with WebForms and WinForms. All these patterns are good and if they help you unit test better that’s great. If you’re doing WebForms or WinForms I would look at the MVP pattern. If you’re using Silverlight or WPF I’d encourage you more towards the MVVM pattern. In Silverlight 4 we’re introducing Commanding which integrates better with MVVM and you’ll see both our Visual Studio and Blend tools better able to support MVVM with both WPF and Silverlight."

"There’ll be a better tooling experience."

"In the short term there won’t be an official MVVM framework coming. What we’ve focussed on now is the core MVVM infrastructure for WPF and Silverlight – providing the hooks for everyone to use their own MVVM patterns on top. I think you’ll see more prescriptive advice or more of an out-of-the-box solution in the future as well."


"We have done a bunch of work around optimising script downloads in ASP.NET 4 using our new AJAX framework so definitely that is something we spent a lot of time on. Look at my .NET 4 blog posts – I did a post in October/November about our Content Delivery Network (CDN). With the ScriptManager we’re building in CDN support. The way CDN works is think of it as servers positioned all over the world that allow caching much closer to the browser that’s actually requesting the content. It’s useful for video and JavaScript files and for images. If someone in Germany is accessing us here in Seattle there is a cache server in Germany that will download images from there, which is quicker."


"We’re hoping to contribute some nice things there with the JQuery core team. It’s up to the core team what gets included. What we contribute today is the Intellisense stuff for JQuery and we distribute it. We are hoping to make some code contributions to JQuery in the near future so hopefully some good things happening there in the future."


"MVC 2 is a pretty major upgrade from MVC 1. It is completely compatible so nothing breaks. Some of the big features are around strongly typed helpers so you get Intellisense and compile-time checking and a built-in validation system. Pluggable but out-of-the-box you get an easy way to apply attributes for validation as well as client-side JavaScript for validation automatically. We have new what we call Editor4 helpers that will help with scaffolding for forums as well as individual control inputs. We have new area support so that you can segment your project and route controllers and regions together in an easier way. We have async support so you can go off and do network access and not block over threads so it’s much more efficient. We have this thing called RenderAction which allows you to define a region of a page and have it be output by a separate controller or a separate action method from the rest of the page which answers the question about making pluggable modules and a portal-like framework. With areas you can actually group your site in a more pluggable way. Then using RenderAction you can actually do things similar to UserControls today in that you can have a page with controllers that render a part of a page and then for each of the sections."


"Go to my blog and about two weeks ago I did a blog post on MVC2 validation features which should make validation really easy for most scenarios."

‘ORCHARD’ – MVC CMS Framework

"You’re also going to see us come out with this project we call Orchard in a couple of months. It provides a nice CMS blogging framework where you can assemble sites using ASP.NET MVC2. Site navigation and pluggable composition of UI are the sorts of things it will provide a nice out-of-the-box experience to use that. We are looking at richer MEF integration with MVC in the future. Until now our approach has been ‘Make sure that in MVC everything’s extensible’ so that we can work with any dependency injection framework or any extensibility or component framework but at the same time be able to provide out-of-the-box features like validation. MEF integration in the future will allow you to take advantage of services in an easy way where you don’t have to wire anything up."


"The release notes today walk you through how to migrate your application. With RTM we’ll also have an automated process where you won’t need to change any code to do that."


"Will source code ship under MS-PL? Yes it will ship with an open source license that anybody can to use to modify or change things."


We are updating it. There was a bug around empty string input which caused some unit tests to fail. We are looking to upgrade it and we’re also working with Jon Galloway for a new store-front –based tutorial for the final release of MVC2. You’ll see a lot more tutorials on that coming out as we get closer to final release."


"I did a blog post on this a couple of weeks ago because I wanted to clarify that MVC definitely does not kill WebForms. We think there’s a large number of developers out there who prefer each of those two types of models. MVC is new and there’s huge support for it and excitement around it but reality is that 80-90% of .NET web developers are ASP.NET developers who use WebForms. It’s not going away. With .NET 4 there are enhancements on the WebForms side – better markup, ability to control client ids, more ViewState management, SEO for URLs, new data controls, new validation features, new charting controls. I could go on and on. It’s definitely not going away. I see big improvements to both MVC and WebForms in the future because a lot of people are using both and we use both ourselves."


"Yes, you can use MVC2 with the Express editions of VS2010, just as you can use MVC1 and MVC2 with the Express editions of VS2008."


"Is there a better way to create MVC views eg easier way to avoid spaghetti code? That’s really two questions. Are there better ways to create MVC views that we’re coming out with? Yes – we’re looking at features like strongly typed helpers and how to create forms in a cleaner and more componentised way. We’re also adding support with the final MVC release so that when you add a View you can optionally add T4 templates to use the Spark view engine as a syntax option. We’re also looking for an upgrade for MVC 3 – an alternative view engine that we might also support to provide a nice clean syntax for generating View markup. What we find is different groups of people have different opinions as to what the best way is to do view generation so you’re going to see us support all of them in the future."


"I’m doing the big keynote for most of day 1 and it’s looking like I’ll be doing part of the keynote on day 2 as well. MIX keynotes will be streamed live. All the breakout sessions will get posted as video on the web."

"I’ve got about 2 hours of content to deliver in the keynote."


(Question asking if new stuff should be written in F# rather than C# or VB): "If you’re new to programming or Silverlight I’d recommend you start with C# and VB which are our two primary languages. You’ll find most samples written in those languages and the tooling support’s great. F# is a new language coming in 2010. It’s a functional language, optimised around a couple of scenarios: where you want to parallelise your operations – you want to run things across multiple cores or multiple servers. The functional aspects of the language make it very good for that sort of execution. It’s also very good for scientific and engineering things and financial analysis or quantitive statistics and analysis. We have great support coming with VS2010. It’s not something we expect most people to use – it’s more for specific workloads. The nice thing is it is a .NET -basedlanguage so you can use any .NET API with it."


"There’s a bunch of features coming with EF4 which is part of .NET 4, but not from my team. In general you’ll find a lot of the pain points that people have complained about in the past have been addressed. In particular POCO (Plain Old C# Objects) is supported. Lazy loading is supported now by default. I believe self-tracking identities is supported so if you want to do entities that cross different WCF boundaries between client and server there’s much richer support for that now. Automatic pluralisation and singularisation of tables from the database eg Categories table becomes a Category object. Better support for exposing foreign keys which is useful for stateless web scenario’s. The ability to do ‘code only’ so that you can define your mapping metadata with a Fluent API as opposed to having to have a mapping file. I’ll try to blog about it in future but search on it and you’ll find a bunch of articles out there."

.NET 4 and AZURE

"We’re working on that right now. I don’t have an exact date. It’s definitely something we’re working hard to make sure it’s available soon."


"There’s rich support in VS2010. You can now open projects, edit projects in Sharepoint, code, get Intellisense, debug, deploy, add new controls, databind to lists and services. The feedback we heard from Sharepoint developes is phenomenal so we have a great story for Sharepoint developers with VS2010."

"Sharepoint tools for VS2010 only work with Sharepoint 2010 that’s about to come out."


"There is a VS2010 Starter Kit that came out in the last day or two which has WCF content."


"With VS2010 we have made installation of Team Foundation Server a lot easier. We had feedback it took too long with too many steps in VS2008. We have ‘Basic Setup’ mode where you can get source control, work item tracking, automated builds up and running on a completely clean machine in less than 20 minutes. I did that without having ever installed TFS in my life on a recent conference trip. You can now install it on servers and client operating systems. So you can install it on a local Windows 7 box if you want to."


"With TFS we’re shipping it as a free component of all MSDN subscriptions. If you’re an MSDN Professional or Premium or Enterprise subscription you will get a free version of TFS both at the server level and at the CAL level. We don’t plan to have a free version of TFS for non-MSDN subscribers, but we will have a version of TFS that’s very inexpensive to buy. The price point will be about the same as Visual SourceSafe."


"We don’t support it today but I think you’ll see a lot more stuff around that and mobile development in the next few weeks."


"There’s a project type we have called the Web Deployment Project that we supported with VS2005 and VS2008. We had separate project types that let you automate deployment to servers so you could change connection strings, run custom tasks as part of the project. What we did with VS2010 we built this deployment into the Web Project itself so that instead of having a separate project you could in VS2010 do deployment directly. In VS2010 you can right-click the project and say “Deploy”. There is a Deploy tab on Project Properties that allows you to customise that. Generally I would recommend that you lean towards that model for deploying your web applications. It’s a lot richer – there are a lot more options. We are looking at trying to provide guidance for people who already have deployment projectsin the next two to three weeks – on how to migrate projects and also looking at do we another revision of the web deployment type so that it will just work with VS 2010."


"No. Silverlight is cross-platform. You can however host WinForms controls within WPF (which is Windows-specific)."


"Search the web for MonoTouch – a tool built by Novell. What’s nice is you can use C# and standard .NET UIs and they have an API for building iPhone UI. There’s a lot of people raving about it."


"We’d like that too. Obviously we’re looking into what we can do. We have done work so that you can stream Silverlight content to the iPhone. Enabling Silverlight to run inside Safari on those devices is something we’re interested to do but it’s something that Apple controls. We’re talking to them but ultimately it’s their decision not ours."


"We will definitely be supporting updates to PRISM in the future. Expect to see announcements there."

IIS7 FEATURE SUPPORT IN CASSINI FOR VS2010 (Debugging like with Cassini for IIS 7)

"You won’t see this in the initial release of VS2010 but you’re going to see more details coming out in the not-too distant feature. It’s definitely something we want to enable."


"Is there going to be an IIS Smooth Streaming Service with Azure? It is something we’re thinking about. There is now a EC2 role that you can use for Media Services with EC2 that you can take advantage of. But we are looking at this for the future."

1 comment:

Assaf Stone said...

Wow! So much content - much needed content - in one place.

Great interview! Thanks!