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

Tuesday, 9 February 2010

Silverlight UK User Group Video: Bing Maps Control for Silverlight

The EMC Blogs still seem to be down so click on the image below to go straight to ExposureRoom to view the latest video from last Wednesday's meeting of the Silverlight UK User Group

SIlverlight UK User Group - Johannes Kebeck on Bing Maps Silverlight Control (Feb 2010)

As usual, if you have the bandwidth the HD version (or the iPhone version) can be viewed by pointing your browser at

If you find the video is buffering/stuttering you may prefer to just download the original file (which will be higher quality than the transcode you normally see) which can be done by clicking on the Download Original link on the ExposureRoom site. You need to be a registered member (which is free) and logged in when you click on the above image to see this link.

Sorry this is a bit rushed - I'm on my lunch break!

Saturday, 6 February 2010

Silverlight UK User Group Talk on "MEF for Silveright 4" by Mike Taulty

At Wednesday's Silverlight UK User Group we had two excellent talks. One from Mike Taulty on A Guided Tour of Microsoft Extensibility Framework (MEF) in Silverlight 4, and a second from Johannes Beck on Working with The Bing Maps Control for Silverlight.

Ordinarily the video for the talks would be posted on the blog of one of the organisers - Mark Mann or Michelle Flynn at EMC Consulting, but unfortunately the blogs were hacked a few days ago and at the time of writing were still unavailable.

Video of the second talk won't be available until early next week (it's still being compressed)

The "standard resolution" can be viewed over on The ExposureRoom web site.

Silverlight UK User Group Video - Mike Taulty on MEF in Silverlight 4 (Feb 2010)

As usual, if you want to see the video in HD or on an iPhone you need to point your browser at

As soon as the EMC blogs are back up I'll update the link above and post the main EMC URL which will also have copies of the slides and Mark's notes about the meeting.

Thursday, 4 February 2010

2 Years of User Group Videos

It's rather scary to realise that next month will mark the two year anniversary of when I first started doing video for London-based 'Microsoft developer'-oriented user groups. It seems like only yesterday I lugged my gear across town to record my first user group session and then wrestle with everything that post-production involves.

User Groups I support

My regular 'gigs', when work doesn't get in the way of me attending, are: The Silverlight UK User Group, The Edge User Group (formerly Vista Squad) and The UK Azure User Group. But occasionally I've also got to video other events usually because they're very occasional, or because there's a 'rock star' speaker planned and people have recommended me. Examples include The London .NET User Group when Microsoft VP of .NET Scott Guthrie came over, or The ALT.NET Conference which is only held once a year.

In April and May this year it looks like I'll also be recording some talks outside London for the first time. This will be for the NxtGen User Group in Oxford, specifically to capture a highly-recommended Silverlight talk, and also to record a 'relative'ly well known speaker from abroad.

Pro's and Con's of the job

Demand for 'community' video seems to be rising and last month I actually had to turn away a couple of requests because there are only so many free weekends in a month to deal with post-production.

Fortunately I get to video many more interesting talks than bad ones, and I can recall only one occasion where a talk was so bad that the user group organisers themselves suggested it might be best to 'forget' publication (I was only too happy to oblige!) This weekend I'll be finishing off work on a couple of talks I recorded last night for the Silverlight UK User Group. When the talks are as strong as these were I feel somewhat blessed in having the opportunity to go back and re-view them, enabling the content to better 'sink in' while most of it is still fresh.

Why does it take so long?

I'm often asked how long it will be before a user group talk I've recorded will be available. I aim to get a video published within a week of a talk being given, but in a busy week this can stretch to a fortnight or even three weeks. When I explain to people what's involved or how long the video publishing process takes I tend to get one of two rather extreme reactions: shocked incredulity that something so seemingly straightforward could take so long, or a head-shake as someone pats me on the back while giving me a sympathetic smile.

The first reaction is the most common, and the second is invariably from someone who's done some video publishing on the web themselves, and knows first-hand what 'editing', 'rendering', 'compressing', 'transcoding' and 'publishing' really means in terms of lost wall-clock time. A talk of just over an hour on HD video will equate to many hours of your computer being locked up and unusable doing intense mathematical calculations to create a file which will then typically take at least a day to upload, even on a fast broadband line, only to then fail with some obscure and unclear error when being transcoded to Flash.

And that's before all the 'manual' work you have to do yourself is taken into account.

But things really have improved quite dramatically over the last couple of years. I'm still using the same (maxed-out) laptop I was using when I first bought my camera in January 2008, but the whole process is far more robust and reliable than it used to be.

User Group Video - What's the Point?

All of which begs the question 'Are user group video's worth doing?' Originally I didn't think so. I helped out more to 'get practice' with my video gear while the project they'd been purchased for stalled, than for any altruistic or 'there's a need' reasons. But given that the typical audience for a user group video is 3-4 times that able to attend the original event I have changed my mind. Video tutorial or marketing sites may talk in terms of video needing thousands of hits to be deemed a 'success' but I think the sort of 3 to 4 -fold increase in audience size we're seeing for user group events can only be perceived as a 'win' for the speakers and the user group.

Just occasionally a user group video will totally 'jump the shark' and become almost viral. I'm still trying to work out precisely why it is that Serial Seb's talk on MVC Best Practices (mistakenly published twice) has hit close to 7000 views (and rising) at the time of writing, where the more typical audience figure for a user group video is around 200. It's a great talk, but such a large variance doesn't make sense.

My workflow - and a call to action!

My video workflow is pretty basic, and has remained relatively unchanged over the last couple of years. Most of MY time (as opposed to the computer's) is spent editing the titles and converting the Powerpoint slides that were used to the right format. This last job is a tedious chore, and a largely manual process. It involves taking a 4:3 format Powerpoint presentation and converting it to a set of 16:9 'widescreen' format bitmaps that can then be injected and animated in the video. Speakers would make my workflow so much easier if they produced their slides to the widescreen format. Powerpoint, which is what everyone uses, has had a Widescreen template for years now - it's just nobody seems to realise it's there! Since the user group venues typically feature wide-screen plasmas (which incorrectly 'stretch' the speaker's 'square-ish' slides) and projectors, most laptops and the A4 paper in printers tend to be widescreen format it seems crazy we all still produce those square 4:3 format slides for our talks! If you're a speaker, regardless of whether you're being video'ed or not, do me a favour and switch to widescreen today - it makes sense all round!

The manual 'slide conversion' process involves using TechSmith's excellent SnagIt product to snap a full-screen copy of the slide presentation running on a PC at HD resolution, and then tweaking it in Photoshop so that the black borders automatically rendered by PowerPoint are more in tune with the colours used on the actual slides. One side-effect of this 'manual' slide editing process is that I have grown to detest speaker slides that feature fussy backgrounds or graduated fills, where before I positively encouraged them!

When I started doing video I used Sony Vegas Pro 8 to produce a compressed render that would get video file sizes down from a typical uncompressed 20GB in HD format to under 1GB for the web. For a 70 minute video Vegas would take anywhere between 11 and 15 hours to produce a render, typically having to deal with about twelve 'tracks' once all the titles, transitions, slide effects, intro music etc had been placed on the timeline during the edit.

One day I'll be able to afford that 8-core processor beast with a huge RAID array that will reduce this render time, but in the meantime my trusty 'maxed-out' Dell D820 laptop with external USB-2 drives will have to do. Given the cost and the time available I think it does a great job.

Sony Vegas Pro is an under-rated video editing package that's powerful, but very easy to use and can even be programmed against in .NET. But in its version 8 incarnation running under Windows Vista it tended to crash. A lot! I also own a copy of Adobe Premier Pro CS4, but I find it just as unreliable, and it loses serious points for usability, intuitiveness and too many years of baggage!

My camera, the Sony PMW-EX1 records video to two hot-swappable PCI Express RAM cards which can then be used directly in the laptop. With two 16GB cards and two 8GB cards and a laptop with a cheap "Passport" external hard drive I've been able to shoot HD video footage at an all day conference (i-Design08 and i-Design09) and I could never go back to recording on tape! On the down-side my camera only shoots High Definition (despite the fact most people won't care and will be happy with 'standard' definition sized video) which is what requires all the horsepower when it comes to editing, rendering and compressing the recorded results. Why bother with HD? Most speakers run laptops at HD resolution and code demo's can be hard (impossible) to make out unless viewed in HD! Interestingly, my camera is the only piece of technology to have significantly gone up in price since I bought it just over two years ago. But it is probably not the best tool for producing SPEEDY video for the web. Sony just announced a newer version of the camera which will also record SD, but ironically I think this is at a time when everyone's insisting on HD.

When I first started producing video for user groups I would re-compress the video for the web using standalone compression software Sorenson Squeeze 5 but this would add ANOTHER 12 hours to the rendering process, and often produced files that were just as large as the original render, but worse looking (for obvious reasons as compression loses data each time it is used). It was all a bit of a nightmare and I'd lose whole weekends failing to get video published: If Vegas Pro didn't crash on Windows Vista (usually 10 hours 50 minutes into an 11 hour render!) then you could pretty much guarantee that the video uploading service's file uploader would repeatedly die on attempting to transfer the file. And if the upload finally worked OK on the fourth or fifth attempt then the server-side software would choke on trying to transcode the uploaded file to the Flash format. When this happens there's typically no support or help available because these video hosting services are providing what limited resources they have for free and already swamped with issues from 'new to video' users who have no idea what 'editing' or 'compression' or 'transcoding' actually means.

Recent Changes that make Video Much Easier to Produce

Thankfully, several things have happened over the last 2 years which have made life a whole lot easier.

Firstly I discovered there is life beyond Vimeo! Vimeo tends to be the first recommendation for video hosting to anybody who hasn't got megabucks to spend on video for the web, but who has reached the limits of YouTube's paltry 10 minute running time limitation. They have a free service, or for those wanting to post HD video without waiting an eternity for transcoding, a reasonably priced alternative that costs about £60/year. The trouble is they're too popular, their software is buggy (and they keep changing it) and their support is .... well, about what you'd expect when there's no income available to support it!

Luckily I discovered an alternative service. Exposure Room is a video hosting community that's second to none. When I had a problem that Vimeo had been ignoring for weeks, ExposureRoom diagnosed it within hours. Admittedly it was an obscure problem: Sorenson Squeeze had a nasty bug which rounded 1280 pixel wide video down to 1278 pixel wide video and Adobe Flash transcoding couldn't cope with a pixel count that wasn't a multiple of 4! When I've had other problems Exposure Room have quickly provided workarounds. For example, when my router seemed incapable of using their browser upload program without stalling before completion, they offered a reliable direct FTP service instead. Now that's what I call service! Other benefits: Their turnaround time is incredibly fast AND they allow you to embed HD versions of your video in your own pages, rather than insisting you direct users to their site. They allow anybody registered on their site to download the originally uploaded file before it was transcoded to the Flash format. They have recently added iPhone support that streams the best looking video I've ever seen on that device. And they've already announced support for the iPad! They are the best, and I still have to keep pinching myself to be sure that I'm not dreaming the fact they're not charging me anything for their services.

New releases of software (Sony Vegas Pro 9 and Sorenson Squeeze 6), both running on the vastly improved Windows 7 operating system mean that the 'run for a long time and then crash' problems of old are now long gone. I render out at 'full fidelity' (35Mbps 720p HD 25 frames per second) in Sony Vegas 9 which now takes about 2-3 hours for a 1 hour video with multiple tracks. Then I use Sorenson Squeeze to render out a compressed 3Mb 'HD' Mp4 version for the web, which takes about 14 hours to run. The most important improvement is that my PC is totally usable whilst this rendering/compression is going on, whereas under the old software on Windows Vista I was 'locked out' of my PC for whole weekends as responsiveness was close to zero and would typically cause a 'blue screen of death' if I even thought about using the keyboard. Uploading the compressed MP4 file, even using direct FTP on a line that BT insist is 8MB broadband, then adds on another 12 hours, and transcoding/publication by the video hosting service on top of that adds a few more.

But this is acceptable when the time can be accurately predicted, the way it can now. It means I can usually have a video available worldwide on the Monday morning after a user group talk has been given, here in London.

One of my new year's resolutions was to be a bit more 'professional' about the way I do user group video. This year I've started publishing all user group video in three different formats. The 'standard size' (640x320) is usually embedded on the user group site or blog that 'owns' the meetings. The HD and iPhone versions are then embedded on a single web page which I host myself at because it enables me to host the Exposure Room supplied script that's needed to auto-detect the iPhone and switch between the two formats appropriately. I've introduced speaker 'permission to publish on the web' forms to keep the legal folks happy. I'm starting to produce a DVD or Blu-Ray copy of the talk for the speakers who want them. I'm promoting those 'sponsors' who give the events I video free stuff for the meetings, as well as those organisations who let us use their buildings or provide free pizza and/or drinks at the event. I've started making regular backup copies of all the video assets (as well as the raw footage, full definition edited masters, and published web versions). I also intend to start remembering to update this blog as new video's gets published!

New Videos This Week

With that last point in mind, this last week saw two video's from the January meeting of The Edge user group being published.. Check out An Overview of Sharepoint 2010 by Dave McMahon or
SOLID Design by Ian Cooper, if the title sounds relevant.