Microsoft Virtual Tech Days – April 1, 2009

Microsoft is hosting a free, 24 hour virtual event this April 1st. There will be free training in languages, web, windows, Office, Sharepoint, and moblie development. For those unable to attend in real time sessions will be downloadable later for all registrees.

For session names and schedule, as well as to register, see their website at http://www.msfttechdays.com/public/home.aspx .

Getting into the Mix – Mix 09 that is

First, I want to say I think it’s incredibly generous of Microsoft to provide videos of all the sessions for free, to anyone. Many people spent thousands to attend, so giving this away is a real boon to us who were unable to attend for whatever reason.

If you haven’t downloaded the sessions yet, you can go to http://videos.visitmix.com/mix09/all to see everything, in various formats. The fastest way to get them all is to use Firefox with an add on called DownThemAll. When you use down them all, it will let you quickly select all the links on a page for a specific file time, or with words in their links. To grab all of the high quality ones, you can use the Fast Filtering feature, and type in wmv-hq which is part of the path name. For the portable format you can use mp4,or pptx will snare you all the slides.

A couple of things to note, Ask The Gu is only available in high quality, while the day 2 keynote is only available in standard quality. Also not all the sessions have slides. There’s also one session I noticed, T17F that only has a high quality session, no low or MP4 version.

If I had any complaint, it is around the file names. They are very short, just the session numbers, such as T20F. Not very useful when I’m looking through a directory trying to decide what to watch. So, I created a simple batch file to rename them. I thought others may find it useful as well, so here it is. They, actually, three, one for the WMVs, one for the MP4, and one for the Powerpoint slides.

WMVs

rename B01M.wmv "B01M – Scaling a Rich Client to Half a Billion Users.wmv"
rename B02M.wmv "B02M – Software Entrepreneurs – Go Big with BizSpark.wmv"
rename B03M.wmv "B03M – Copyright Laws for Web Designers and Developers.wmv"
rename B04M.wmv "B04M – Enhancing Large Windows Media Platforms with Microsoft.wmv"
rename B05M.wmv "B05M – Exposing Web Content to a Global Audience Using Machine.wmv"
rename C01F.wmv "C01F – Sketch Flow – From Concept to Production.wmv"
rename C02F.wmv "C02F – Improving UX through Application Lifecycle Management.wmv"
rename C03F.wmv "C03F – Microsoft Expression Web – No Platform Left Behind.wmv"
rename C04F.wmv "C04F – The Future of Microsoft Expression Blend.wmv"
rename C05F.wmv "C05F – C Sharp for Designers.wmv"
rename C06F.wmv "C06F – Ten Ways to Ensure RIA Failure.wmv"
rename C07F.wmv "C07F – Deep Zoomplusplus  – Build Dynamic Deep Zoom Applications with.wmv"
rename C08F.wmv "C08F – Using Total Experience Design to Transform the Digital.wmv"
rename C09F.wmv "C09F – A Website Named Desire.wmv"
rename C10F.wmv "C10F – Design Prototyping – Bringing Wireframes to Life.wmv"
rename C11F.wmv "C11F – Escaping Flatland in Application Design – Rich User.wmv"
rename C12F.wmv "C12F – Go Beyond Best Practices – Evolving Next Practices to.wmv"
rename C13F.wmv "C13F – Interaction Techniques Using the Wii Remote (and Other.wmv"
rename C14F.wmv "C14F – Interactive Prototyping with DHTML.wmv"
rename C15F.wmv "C15F – Touch and Gesture Computing, What You Haven’t Heard.wmv"
rename C16F.wmv "C16F – The Way of the Whiteboard – Persuading with Pictures.wmv"
rename C17F.wmv "C17F – Web Form Design.wmv"
rename C18F.wmv "C18F – Wireframes That Work – Designing (Rich Internet).wmv"
rename C19F.wmv "C19F – How Razorfish Lights Up Brand with Microsoft SharePoint.wmv"
rename C20F.wmv "C20F – State of the Art in Web Site Design on Microsoft.wmv"
rename C21F.wmv "C21F – User Experience Design Patterns for Business.wmv"
rename C22F.wmv "C22F – Creating a Great Experience on Digg with Windows.wmv"
rename C23F.wmv "C23F – Windows Internet Explorer 8 in the Real World – How Is.wmv"
rename C24F.wmv "C24F – Measuring Social Media Marketing.wmv"
rename C26F.wmv "C26F – Designing the Windows 7 Desktop Experience.wmv"
rename C27M.wmv "C27M – Creating Interactivity with Microsoft Expression Blend.wmv"
rename C28M.wmv "C28M – Integrating Microsoft Expression Blend with Adobe.wmv"
rename C29M.wmv "C29M – Effective Infographics with Interactivity.wmv"
rename C30M.wmv "C30M – User Experience Design for Non-Designers.wmv"
rename KEY01.wmv "KEY1 – Day One Keynote.wmv"
rename KEY02.wmv "KEY2 – Day Two Keynote.wmv"
rename T01F.wmv "T01F – A Lap around Microsoft .NET Services.wmv"
rename T02F.wmv "T02F – Simplifying Distributed Access Control with Microsoft.wmv"
rename T03F.wmv "T03F – Connecting Applications across Networks with Microsoft.wmv"
rename T04F.wmv "T04F – Mesh-Enabled Web Applications.wmv"
rename T05F.wmv "T05F – Live Framework and Mesh Services – Live Services for.wmv"
rename T06F.wmv "T06F – What’s New in Microsoft SQL Data Services.wmv"
rename T07F.wmv "T07F – Overview of Windows Azure.wmv"
rename T08F.wmv "T08F – Windows Azure Storage.wmv"
rename T09F.wmv "T09F – Building Web Applications with Windows Azure.wmv"
rename T10F.wmv "T10F – RESTful Services for the Programmable Web with Windows.wmv"
rename T11F.wmv "T11F – Developing RESTful Services and Clients with.wmv"
rename T12F.wmv "T12F – Principles of Microsoft Silverlight Animation.wmv"
rename T13F.wmv "T13F – Working across the Client Continuum.wmv"
rename T14F.wmv "T14F – What’s New in Microsoft Silverlight 3.wmv"
rename T15F.wmv "T15F – High-Speed RIA Development with the Microsoft.wmv"
rename T16F.wmv "T16F – Building Microsoft Silverlight Controls.wmv"
rename T17F.wmv "T17F – Deep Dive into Microsoft Silverlight Graphics.wmv"
rename T18F.wmv "T18F – Delivering Ads to a Silverlight Media Player.wmv"
rename T19F.wmv "T19F – Creating Media Content for Microsoft Silverlight Using.wmv"
rename T20F.wmv "T20F – Using Microsoft ASP.NET MVC to Easily Extend a Web Site.wmv"
rename T21F.wmv "T21F – Running PHP on Microsoft Servers and Services.wmv"
rename T22F.wmv "T22F – Using Dynamic Languages to Develop Microsoft.wmv"
rename T23F.wmv "T23F – Choosing between ASP.NET Web Forms and MVC.wmv"
rename T24F.wmv "T24F – The Microsoft Web Sandbox – An Open Source Framework for.wmv"
rename T25F.wmv "T25F – Web Development Using Microsoft Visual Studio – Now and.wmv"
rename T26F.wmv "T26F – Love the New Windows Live Messenger Web Toolkit for.wmv"
rename T27F.wmv "T27F – Protecting Online Identities.wmv"
rename T28F.wmv "T28F – Standards for Aggregating Activity Feeds and Social.wmv"
rename T29F.wmv "T29F – Adding Microsoft Silverlight to Your Company’s.wmv"
rename T30F.wmv "T30F – Advance Your Design with UX Design Patterns.wmv"
rename T31F.wmv "T31F – Microsoft Xbox Lips and Fable II -.wmv"
rename T32F.wmv "T32F – Cloud Computing – What’s in It for Me?.wmv"
rename T33F.wmv "T33F – Customized Live Search for Web and Client Applications.wmv"
rename T34F.wmv "T34F – Introducing the Microsoft Virtual Earth Silverlight Map.wmv"
rename T35F.wmv "T35F – Building a Rich Social Network Application.wmv"
rename T36F.wmv "T36F – Modeling RESTful Data Services – Present and Future.wmv"
rename T37F.wmv "T37F – Extending Your Brand to the Desktop with Windows 7.wmv"
rename T38F.wmv "T38F – See through the Clouds – Introduction to the Azure.wmv"
rename T39F.wmv "T39F – What’s New in Windows Presentation Foundation (WPF).wmv"
rename T40F.wmv "T40F – Building Amazing Business Centric Applications with.wmv"
rename T41F.wmv "T41F – .NET RIA Services – Building Data-Driven Applications.wmv"
rename T42F.wmv "T42F – Consuming Web Services in Microsoft Silverlight 3.wmv"
rename T43F.wmv "T43F – Microsoft Silverlight Media End-to-End.wmv"
rename T44F.wmv "T44F – Microsoft ASP.NET Model View Controller (MVC) – Ninja on.wmv"
rename T45F.wmv "T45F – Building Out of Browser Experiences with Microsoft.wmv"
rename T46F.wmv "T46F – Microsoft ASP.NET 4.0  – What’s Next?.wmv"
rename T47F.wmv "T47F – Microsoft ASP.NET 4.0 Data Access – Patterns for Success.wmv"
rename T48F.wmv "T48F – Microsoft ASP.NET – Taking AJAX to the Next Level.wmv"
rename T49F.wmv "T49F – File-New – Company – Creating NerdDinner.com.wmv"
rename T50F.wmv "T50F – ASP.NET MVC – America’s Next Top Model View.wmv"
rename T51F.wmv "T51F – The Microsoft Web Platform – Starring Internet.wmv"
rename T52F.wmv "T52F – A Lap around Windows Internet Explorer 8.wmv"
rename T53F.wmv "T53F – Building High Performance Web Applications and Sites.wmv"
rename T54F.wmv "T54F – Securing Web Applications.wmv"
rename T55F.wmv "T55F – Creating a Next Generation E-Commerce.wmv"
rename T56F.wmv "T56F – Delivering Media with Internet Information Services 7.wmv"
rename T57F.wmv "T57F – Developing and Deploying Applications on Internet.wmv"
rename T58F.wmv "T58F – Build Applications on the Microsoft Platform Using.wmv"
rename T59F.wmv "T59F – Building Scalable and Available Web Applications with.wmv"
rename T60F.wmv "T60F – Miss March and Other Distractions.wmv"
rename T61F.wmv "T61F – Windows Mobile 6.5 Overview.wmv"
rename T62F.wmv "T62F – There’s a Little Scripter in All of Us – Building a.wmv"
rename T63M.wmv "T63M – Building Data-Driven Scalable AJAX Web Pages.wmv"
rename T64M.wmv "T64M – Caching REST with Windows Communication Foundation.wmv"
rename T65M.wmv "T65M – Building Accessible RIAs in Microsoft Silverlight.wmv"
rename T66M.wmv "T66M – Building Microsoft Silverlight Applications with.wmv"
rename T67M.wmv "T67M – Building an Optimized, Graphics-Intensive Application.wmv"
rename T68M.wmv "T68M – When Errors Happen – Debugging Microsoft Silverlight.wmv"
rename T69M.wmv "T69M – Microsoft Silverlight Is Ready for Business.wmv"
rename T70M.wmv "T70M – Optimizing Performance for Microsoft Expression Encoder.wmv"
rename T71M.wmv "T71M – Going Inside Microsoft Silverlight – Exploring the Core.wmv"
rename T72M.wmv "T72M – Making XML Really, Really Easy with Microsoft Visual.wmv"
rename T73M.wmv "T73M – What’s New for Microsoft Silverlight and Microsoft.wmv"
rename T74M.wmv "T74M – Protecting Against Internet Service Abuse.wmv"
rename T75M.wmv "T75M – Five Killer Scenarios for the Windows Live Messenger.wmv"
rename T76M.wmv "T76M – Lighting Up Web and Client Applications with Microsoft.wmv"
rename T77M.wmv "T77M – Oomph – A Microformat Toolkit.wmv"
rename T78M.wmv "T78M – Offline Network Detection in Microsoft Silverlight 3.wmv"
rename T79M.wmv "T79M – How’d they do it? Real App. Real Code. Two Weeks..wmv"
rename T80M.wmv "T80M – How I Learned to Stop Worrying and Love the Microsoft.wmv"
rename T81M.wmv "T81M – Using the Windows Azure Tools for Microsoft Visual.wmv"
rename T82M.wmv "T82M – Introducing the Microsoft Web Platform.wmv"
rename T83M.wmv "T83M – Automated User Interface (UI) Testing with Microsoft.wmv"
rename T84M.wmv "T84M – A Shot of Windows Live Messenger and a Pint of.wmv"
rename T85M.wmv "T85M – Improving Mobile Experiences with the Microsoft Mobile.wmv"
rename T86M.wmv "T86M – Search Engine Optimization (SEO) for Web Developers.wmv"
rename T87F.wmv "T87F – Microsoft Silverlight and Windows Presentation.wmv"

MP4

rename B01M.mp4 "B01M – Scaling a Rich Client to Half a Billion Users.mp4"
rename B02M.mp4 "B02M – Software Entrepreneurs – Go Big with BizSpark.mp4"
rename B03M.mp4 "B03M – Copyright Laws for Web Designers and Developers.mp4"
rename B04M.mp4 "B04M – Enhancing Large Windows Media Platforms with Microsoft.mp4"
rename B05M.mp4 "B05M – Exposing Web Content to a Global Audience Using Machine.mp4"
rename C01F.mp4 "C01F – Sketch Flow – From Concept to Production.mp4"
rename C02F.mp4 "C02F – Improving UX through Application Lifecycle Management.mp4"
rename C03F.mp4 "C03F – Microsoft Expression Web – No Platform Left Behind.mp4"
rename C04F.mp4 "C04F – The Future of Microsoft Expression Blend.mp4"
rename C05F.mp4 "C05F – C Sharp for Designers.mp4"
rename C06F.mp4 "C06F – Ten Ways to Ensure RIA Failure.mp4"
rename C07F.mp4 "C07F – Deep Zoomplusplus  – Build Dynamic Deep Zoom Applications with.mp4"
rename C08F.mp4 "C08F – Using Total Experience Design to Transform the Digital.mp4"
rename C09F.mp4 "C09F – A Website Named Desire.mp4"
rename C10F.mp4 "C10F – Design Prototyping – Bringing Wireframes to Life.mp4"
rename C11F.mp4 "C11F – Escaping Flatland in Application Design – Rich User.mp4"
rename C12F.mp4 "C12F – Go Beyond Best Practices – Evolving Next Practices to.mp4"
rename C13F.mp4 "C13F – Interaction Techniques Using the Wii Remote (and Other.mp4"
rename C14F.mp4 "C14F – Interactive Prototyping with DHTML.mp4"
rename C15F.mp4 "C15F – Touch and Gesture Computing, What You Haven’t Heard.mp4"
rename C16F.mp4 "C16F – The Way of the Whiteboard – Persuading with Pictures.mp4"
rename C17F.mp4 "C17F – Web Form Design.mp4"
rename C18F.mp4 "C18F – Wireframes That Work – Designing (Rich Internet).mp4"
rename C19F.mp4 "C19F – How Razorfish Lights Up Brand with Microsoft SharePoint.mp4"
rename C20F.mp4 "C20F – State of the Art in Web Site Design on Microsoft.mp4"
rename C21F.mp4 "C21F – User Experience Design Patterns for Business.mp4"
rename C22F.mp4 "C22F – Creating a Great Experience on Digg with Windows.mp4"
rename C23F.mp4 "C23F – Windows Internet Explorer 8 in the Real World – How Is.mp4"
rename C24F.mp4 "C24F – Measuring Social Media Marketing.mp4"
rename C26F.mp4 "C26F – Designing the Windows 7 Desktop Experience.mp4"
rename C27M.mp4 "C27M – Creating Interactivity with Microsoft Expression Blend.mp4"
rename C28M.mp4 "C28M – Integrating Microsoft Expression Blend with Adobe.mp4"
rename C29M.mp4 "C29M – Effective Infographics with Interactivity.mp4"
rename C30M.mp4 "C30M – User Experience Design for Non-Designers.mp4"
rename KEY01.mp4 "KEY1 – Day One Keynote.mp4"
rename KEY02.mp4 "KEY2 – Day Two Keynote.mp4"
rename T01F.mp4 "T01F – A Lap around Microsoft .NET Services.mp4"
rename T02F.mp4 "T02F – Simplifying Distributed Access Control with Microsoft.mp4"
rename T03F.mp4 "T03F – Connecting Applications across Networks with Microsoft.mp4"
rename T04F.mp4 "T04F – Mesh-Enabled Web Applications.mp4"
rename T05F.mp4 "T05F – Live Framework and Mesh Services – Live Services for.mp4"
rename T06F.mp4 "T06F – What’s New in Microsoft SQL Data Services.mp4"
rename T07F.mp4 "T07F – Overview of Windows Azure.mp4"
rename T08F.mp4 "T08F – Windows Azure Storage.mp4"
rename T09F.mp4 "T09F – Building Web Applications with Windows Azure.mp4"
rename T10F.mp4 "T10F – RESTful Services for the Programmable Web with Windows.mp4"
rename T11F.mp4 "T11F – Developing RESTful Services and Clients with.mp4"
rename T12F.mp4 "T12F – Principles of Microsoft Silverlight Animation.mp4"
rename T13F.mp4 "T13F – Working across the Client Continuum.mp4"
rename T14F.mp4 "T14F – What’s New in Microsoft Silverlight 3.mp4"
rename T15F.mp4 "T15F – High-Speed RIA Development with the Microsoft.mp4"
rename T16F.mp4 "T16F – Building Microsoft Silverlight Controls.mp4"
rename T17F.mp4 "T17F – Deep Dive into Microsoft Silverlight Graphics.mp4"
rename T18F.mp4 "T18F – Delivering Ads to a Silverlight Media Player.mp4"
rename T19F.mp4 "T19F – Creating Media Content for Microsoft Silverlight Using.mp4"
rename T20F.mp4 "T20F – Using Microsoft ASP.NET MVC to Easily Extend a Web Site.mp4"
rename T21F.mp4 "T21F – Running PHP on Microsoft Servers and Services.mp4"
rename T22F.mp4 "T22F – Using Dynamic Languages to Develop Microsoft.mp4"
rename T23F.mp4 "T23F – Choosing between ASP.NET Web Forms and MVC.mp4"
rename T24F.mp4 "T24F – The Microsoft Web Sandbox – An Open Source Framework for.mp4"
rename T25F.mp4 "T25F – Web Development Using Microsoft Visual Studio – Now and.mp4"
rename T26F.mp4 "T26F – Love the New Windows Live Messenger Web Toolkit for.mp4"
rename T27F.mp4 "T27F – Protecting Online Identities.mp4"
rename T28F.mp4 "T28F – Standards for Aggregating Activity Feeds and Social.mp4"
rename T29F.mp4 "T29F – Adding Microsoft Silverlight to Your Company’s.mp4"
rename T30F.mp4 "T30F – Advance Your Design with UX Design Patterns.mp4"
rename T32F.mp4 "T32F – Cloud Computing – What’s in It for Me?.mp4"
rename T33F.mp4 "T33F – Customized Live Search for Web and Client Applications.mp4"
rename T34F.mp4 "T34F – Introducing the Microsoft Virtual Earth Silverlight Map.mp4"
rename T35F.mp4 "T35F – Building a Rich Social Network Application.mp4"
rename T36F.mp4 "T36F – Modeling RESTful Data Services – Present and Future.mp4"
rename T37F.mp4 "T37F – Extending Your Brand to the Desktop with Windows 7.mp4"
rename T38F.mp4 "T38F – See through the Clouds – Introduction to the Azure.mp4"
rename T39F.mp4 "T39F – What’s New in Windows Presentation Foundation (WPF).mp4"
rename T40F.mp4 "T40F – Building Amazing Business Centric Applications with.mp4"
rename T41F.mp4 "T41F – .NET RIA Services – Building Data-Driven Applications.mp4"
rename T42F.mp4 "T42F – Consuming Web Services in Microsoft Silverlight 3.mp4"
rename T43F.mp4 "T43F – Microsoft Silverlight Media End-to-End.mp4"
rename T44F.mp4 "T44F – Microsoft ASP.NET Model View Controller (MVC) – Ninja on.mp4"
rename T45F.mp4 "T45F – Building Out of Browser Experiences with Microsoft.mp4"
rename T46F.mp4 "T46F – Microsoft ASP.NET 4.0  – What’s Next?.mp4"
rename T47F.mp4 "T47F – Microsoft ASP.NET 4.0 Data Access – Patterns for Success.mp4"
rename T48F.mp4 "T48F – Microsoft ASP.NET – Taking AJAX to the Next Level.mp4"
rename T49F.mp4 "T49F – File-New – Company – Creating NerdDinner.com.mp4"
rename T50F.mp4 "T50F – ASP.NET MVC – America’s Next Top Model View.mp4"
rename T51F.mp4 "T51F – The Microsoft Web Platform – Starring Internet.mp4"
rename T52F.mp4 "T52F – A Lap around Windows Internet Explorer 8.mp4"
rename T53F.mp4 "T53F – Building High Performance Web Applications and Sites.mp4"
rename T54F.mp4 "T54F – Securing Web Applications.mp4"
rename T56F.mp4 "T56F – Delivering Media with Internet Information Services 7.mp4"
rename T57F.mp4 "T57F – Developing and Deploying Applications on Internet.mp4"
rename T58F.mp4 "T58F – Build Applications on the Microsoft Platform Using.mp4"
rename T59F.mp4 "T59F – Building Scalable and Available Web Applications with.mp4"
rename T60F.mp4 "T60F – Miss March and Other Distractions.mp4"
rename T61F.mp4 "T61F – Windows Mobile 6.5 Overview.mp4"
rename T62F.mp4 "T62F – There’s a Little Scripter in All of Us – Building a.mp4"
rename T63M.mp4 "T63M – Building Data-Driven Scalable AJAX Web Pages.mp4"
rename T64M.mp4 "T64M – Caching REST with Windows Communication Foundation.mp4"
rename T65M.mp4 "T65M – Building Accessible RIAs in Microsoft Silverlight.mp4"
rename T66M.mp4 "T66M – Building Microsoft Silverlight Applications with.mp4"
rename T67M.mp4 "T67M – Building an Optimized, Graphics-Intensive Application.mp4"
rename T68M.mp4 "T68M – When Errors Happen – Debugging Microsoft Silverlight.mp4"
rename T69M.mp4 "T69M – Microsoft Silverlight Is Ready for Business.mp4"
rename T70M.mp4 "T70M – Optimizing Performance for Microsoft Expression Encoder.mp4"
rename T71M.mp4 "T71M – Going Inside Microsoft Silverlight – Exploring the Core.mp4"
rename T72M.mp4 "T72M – Making XML Really, Really Easy with Microsoft Visual.mp4"
rename T73M.mp4 "T73M – What’s New for Microsoft Silverlight and Microsoft.mp4"
rename T74M.mp4 "T74M – Protecting Against Internet Service Abuse.mp4"
rename T75M.mp4 "T75M – Five Killer Scenarios for the Windows Live Messenger.mp4"
rename T76M.mp4 "T76M – Lighting Up Web and Client Applications with Microsoft.mp4"
rename T77M.mp4 "T77M – Oomph – A Microformat Toolkit.mp4"
rename T78M.mp4 "T78M – Offline Network Detection in Microsoft Silverlight 3.mp4"
rename T79M.mp4 "T79M – How’d they do it? Real App. Real Code. Two Weeks..mp4"
rename T80M.mp4 "T80M – How I Learned to Stop Worrying and Love the Microsoft.mp4"
rename T81M.mp4 "T81M – Using the Windows Azure Tools for Microsoft Visual.mp4"
rename T82M.mp4 "T82M – Introducing the Microsoft Web Platform.mp4"
rename T83M.mp4 "T83M – Automated User Interface (UI) Testing with Microsoft.mp4"
rename T84M.mp4 "T84M – A Shot of Windows Live Messenger and a Pint of.mp4"
rename T85M.mp4 "T85M – Improving Mobile Experiences with the Microsoft Mobile.mp4"
rename T86M.mp4 "T86M – Search Engine Optimization (SEO) for Web Developers.mp4"
rename T87F.mp4 "T87F – Microsoft Silverlight and Windows Presentation.mp4"
rename T55F.mp4 "T55F – Creating a Next Generation E-Commerce.mp4"
rename T31F.mp4 "T31F – Microsoft Xbox Lips and Fable II -.mp4"

Powerpoint

rename B01M.pptx "B01M – Scaling a Rich Client to Half a Billion Users.pptx"
rename B02M.pptx "B02M – Software Entrepreneurs – Go Big with BizSpark.pptx"
rename B03M.pptx "B03M – Copyright Laws for Web Designers and Developers.pptx"
rename B04M.pptx "B04M – Enhancing Large Windows Media Platforms with Microsoft.pptx"
rename B05M.pptx "B05M – Exposing Web Content to a Global Audience Using Machine.pptx"
rename C01F.pptx "C01F – Sketch Flow – From Concept to Production.pptx"
rename C02F.pptx "C02F – Improving UX through Application Lifecycle Management.pptx"
rename C03F.pptx "C03F – Microsoft Expression Web – No Platform Left Behind.pptx"
rename C04F.pptx "C04F – The Future of Microsoft Expression Blend.pptx"
rename C05F.pptx "C05F – C Sharp for Designers.pptx"
rename C06F.pptx "C06F – Ten Ways to Ensure RIA Failure.pptx"
rename C07F.pptx "C07F – Deep Zoomplusplus  – Build Dynamic Deep Zoom Applications with.pptx"
rename C08F.pptx "C08F – Using Total Experience Design to Transform the Digital.pptx"
rename C09F.pptx "C09F – A Website Named Desire.pptx"
rename C10F.pptx "C10F – Design Prototyping – Bringing Wireframes to Life.pptx"
rename C11F.pptx "C11F – Escaping Flatland in Application Design – Rich User.pptx"
rename C12F.pptx "C12F – Go Beyond Best Practices – Evolving Next Practices to.pptx"
rename C13F.pptx "C13F – Interaction Techniques Using the Wii Remote (and Other.pptx"
rename C14F.pptx "C14F – Interactive Prototyping with DHTML.pptx"
rename C15F.pptx "C15F – Touch and Gesture Computing, What You Haven’t Heard.pptx"
rename C16F.pptx "C16F – The Way of the Whiteboard – Persuading with Pictures.pptx"
rename C17F.pptx "C17F – Web Form Design.pptx"
rename C18F.pptx "C18F – Wireframes That Work – Designing (Rich Internet).pptx"
rename C19F.pptx "C19F – How Razorfish Lights Up Brand with Microsoft SharePoint.pptx"
rename C20F.pptx "C20F – State of the Art in Web Site Design on Microsoft.pptx"
rename C21F.pptx "C21F – User Experience Design Patterns for Business.pptx"
rename C22F.pptx "C22F – Creating a Great Experience on Digg with Windows.pptx"
rename C23F.pptx "C23F – Windows Internet Explorer 8 in the Real World – How Is.pptx"
rename C24F.pptx "C24F – Measuring Social Media Marketing.pptx"
rename C26F.pptx "C26F – Designing the Windows 7 Desktop Experience.pptx"
rename C27M.pptx "C27M – Creating Interactivity with Microsoft Expression Blend.pptx"
rename C28M.pptx "C28M – Integrating Microsoft Expression Blend with Adobe.pptx"
rename C29M.pptx "C29M – Effective Infographics with Interactivity.pptx"
rename C30M.pptx "C30M – User Experience Design for Non-Designers.pptx"
rename KEY01.pptx "KEY1 – Day One Keynote.pptx"
rename KEY02.pptx "KEY2 – Day Two Keynote.pptx"
rename T01F.pptx "T01F – A Lap around Microsoft .NET Services.pptx"
rename T02F.pptx "T02F – Simplifying Distributed Access Control with Microsoft.pptx"
rename T03F.pptx "T03F – Connecting Applications across Networks with Microsoft.pptx"
rename T04F.pptx "T04F – Mesh-Enabled Web Applications.pptx"
rename T05F.pptx "T05F – Live Framework and Mesh Services – Live Services for.pptx"
rename T06F.pptx "T06F – What’s New in Microsoft SQL Data Services.pptx"
rename T07F.pptx "T07F – Overview of Windows Azure.pptx"
rename T08F.pptx "T08F – Windows Azure Storage.pptx"
rename T09F.pptx "T09F – Building Web Applications with Windows Azure.pptx"
rename T10F.pptx "T10F – RESTful Services for the Programmable Web with Windows.pptx"
rename T11F.pptx "T11F – Developing RESTful Services and Clients with.pptx"
rename T12F.pptx "T12F – Principles of Microsoft Silverlight Animation.pptx"
rename T13F.pptx "T13F – Working across the Client Continuum.pptx"
rename T14F.pptx "T14F – What’s New in Microsoft Silverlight 3.pptx"
rename T15F.pptx "T15F – High-Speed RIA Development with the Microsoft.pptx"
rename T16F.pptx "T16F – Building Microsoft Silverlight Controls.pptx"
rename T17F.pptx "T17F – Deep Dive into Microsoft Silverlight Graphics.pptx"
rename T18F.pptx "T18F – Delivering Ads to a Silverlight Media Player.pptx"
rename T19F.pptx "T19F – Creating Media Content for Microsoft Silverlight Using.pptx"
rename T20F.pptx "T20F – Using Microsoft ASP.NET MVC to Easily Extend a Web Site.pptx"
rename T21F.pptx "T21F – Running PHP on Microsoft Servers and Services.pptx"
rename T22F.pptx "T22F – Using Dynamic Languages to Develop Microsoft.pptx"
rename T23F.pptx "T23F – Choosing between ASP.NET Web Forms and MVC.pptx"
rename T24F.pptx "T24F – The Microsoft Web Sandbox – An Open Source Framework for.pptx"
rename T25F.pptx "T25F – Web Development Using Microsoft Visual Studio – Now and.pptx"
rename T26F.pptx "T26F – Love the New Windows Live Messenger Web Toolkit for.pptx"
rename T27F.pptx "T27F – Protecting Online Identities.pptx"
rename T28F.pptx "T28F – Standards for Aggregating Activity Feeds and Social.pptx"
rename T29F.pptx "T29F – Adding Microsoft Silverlight to Your Company’s.pptx"
rename T30F.pptx "T30F – Advance Your Design with UX Design Patterns.pptx"
rename T31F.pptx "T31F – Microsoft Xbox Lips and Fable II -.pptx"
rename T32F.pptx "T32F – Cloud Computing – What’s in It for Me?.pptx"
rename T33F.pptx "T33F – Customized Live Search for Web and Client Applications.pptx"
rename T34F.pptx "T34F – Introducing the Microsoft Virtual Earth Silverlight Map.pptx"
rename T35F.pptx "T35F – Building a Rich Social Network Application.pptx"
rename T36F.pptx "T36F – Modeling RESTful Data Services – Present and Future.pptx"
rename T37F.pptx "T37F – Extending Your Brand to the Desktop with Windows 7.pptx"
rename T38F.pptx "T38F – See through the Clouds – Introduction to the Azure.pptx"
rename T39F.pptx "T39F – What’s New in Windows Presentation Foundation (WPF).pptx"
rename T40F.pptx "T40F – Building Amazing Business Centric Applications with.pptx"
rename T41F.pptx "T41F – .NET RIA Services – Building Data-Driven Applications.pptx"
rename T42F.pptx "T42F – Consuming Web Services in Microsoft Silverlight 3.pptx"
rename T43F.pptx "T43F – Microsoft Silverlight Media End-to-End.pptx"
rename T44F.pptx "T44F – Microsoft ASP.NET Model View Controller (MVC) – Ninja on.pptx"
rename T45F.pptx "T45F – Building Out of Browser Experiences with Microsoft.pptx"
rename T46F.pptx "T46F – Microsoft ASP.NET 4.0  – What’s Next?.pptx"
rename T47F.pptx "T47F – Microsoft ASP.NET 4.0 Data Access – Patterns for Success.pptx"
rename T48F.pptx "T48F – Microsoft ASP.NET – Taking AJAX to the Next Level.pptx"
rename T49F.pptx "T49F – File-New – Company – Creating NerdDinner.com.pptx"
rename T50F.pptx "T50F – ASP.NET MVC – America’s Next Top Model View.pptx"
rename T51F.pptx "T51F – The Microsoft Web Platform – Starring Internet.pptx"
rename T52F.pptx "T52F – A Lap around Windows Internet Explorer 8.pptx"
rename T53F.pptx "T53F – Building High Performance Web Applications and Sites.pptx"
rename T54F.pptx "T54F – Securing Web Applications.pptx"
rename T55F.pptx "T55F – Creating a Next Generation E-Commerce.pptx"
rename T56F.pptx "T56F – Delivering Media with Internet Information Services 7.pptx"
rename T57F.pptx "T57F – Developing and Deploying Applications on Internet.pptx"
rename T58F.pptx "T58F – Build Applications on the Microsoft Platform Using.pptx"
rename T59F.pptx "T59F – Building Scalable and Available Web Applications with.pptx"
rename T60F.pptx "T60F – Miss March and Other Distractions.pptx"
rename T61F.pptx "T61F – Windows Mobile 6.5 Overview.pptx"
rename T62F.pptx "T62F – There’s a Little Scripter in All of Us – Building a.pptx"
rename T63M.pptx "T63M – Building Data-Driven Scalable AJAX Web Pages.pptx"
rename T64M.pptx "T64M – Caching REST with Windows Communication Foundation.pptx"
rename T65M.pptx "T65M – Building Accessible RIAs in Microsoft Silverlight.pptx"
rename T66M.pptx "T66M – Building Microsoft Silverlight Applications with.pptx"
rename T67M.pptx "T67M – Building an Optimized, Graphics-Intensive Application.pptx"
rename T68M.pptx "T68M – When Errors Happen – Debugging Microsoft Silverlight.pptx"
rename T69M.pptx "T69M – Microsoft Silverlight Is Ready for Business.pptx"
rename T70M.pptx "T70M – Optimizing Performance for Microsoft Expression Encoder.pptx"
rename T71M.pptx "T71M – Going Inside Microsoft Silverlight – Exploring the Core.pptx"
rename T72M.pptx "T72M – Making XML Really, Really Easy with Microsoft Visual.pptx"
rename T73M.pptx "T73M – What’s New for Microsoft Silverlight and Microsoft.pptx"
rename T74M.pptx "T74M – Protecting Against Internet Service Abuse.pptx"
rename T75M.pptx "T75M – Five Killer Scenarios for the Windows Live Messenger.pptx"
rename T76M.pptx "T76M – Lighting Up Web and Client Applications with Microsoft.pptx"
rename T77M.pptx "T77M – Oomph – A Microformat Toolkit.pptx"
rename T78M.pptx "T78M – Offline Network Detection in Microsoft Silverlight 3.pptx"
rename T79M.pptx "T79M – How’d they do it? Real App. Real Code. Two Weeks..pptx"
rename T80M.pptx "T80M – How I Learned to Stop Worrying and Love the Microsoft.pptx"
rename T81M.pptx "T81M – Using the Windows Azure Tools for Microsoft Visual.pptx"
rename T82M.pptx "T82M – Introducing the Microsoft Web Platform.pptx"
rename T83M.pptx "T83M – Automated User Interface (UI) Testing with Microsoft.pptx"
rename T84M.pptx "T84M – A Shot of Windows Live Messenger and a Pint of.pptx"
rename T85M.pptx "T85M – Improving Mobile Experiences with the Microsoft Mobile.pptx"
rename T86M.pptx "T86M – Search Engine Optimization (SEO) for Web Developers.pptx"
rename T87F.pptx "T87F – Microsoft Silverlight and Windows Presentation.pptx"

Windows 7 Programmers Calculator

As I’ve been exploring Windows 7 I ran across a real gem. The newly redesigned calculator. For Windows 7 it’s received a nice face lift, and the previous functionality of standard mode and scientific modes are still there. There’s a statistical mode, but what’s cool for developers is the new programmers mode.

image

While the .Net Framework saves us from having to deal with a lot of bit math, this will still be useful to many developers. If you haven’t take a look do so, it’s one of the many things I’m looking forward to with Windows 7.

SQL Saturday 7 is Coming!

I’m getting excited, Birmingham’s SQL Saturday is rapidly approaching. I’m lucky enough to be on the planning committee and we’re really getting jazzed up. It’s still early and we’ve already filled over 25% of the available seats.

It’s not too late though, we still have opportunities! First of all, we still have some slots left for speakers. We’ve received quite a few submissions so far, but there is still a few slots left. Get your submissions in quick if you want to be a part of this event.

Sponsors are also vital to the success of the event, we have some but still need more. We want to create a win-win environment to hook up local DBAs and SQL Developers with your company or school. This is a great chance to meet the folks in the community.

Most of all though, we need YOU! Yes, you the local DBA or SQL Developer. This is a great chance to not only get a free day of education, but hook up with your peers in the community. And if that’s not enough, we have some great swag lined up.

Don’t wait though, the Atlanta code camp filled up quick, and it looks like Birmingham is on the same track. Head over to the SQL Saturday site and register for SQL Saturday 7 now!

If you’d like more info, or are interested in sponsorship, speaking, or volunteering, please don’t hesitate to e-mail us at sqlsaturday7@sqlsaturday.com.

Visual Studio Addins – SmartPaster and CopySourceAsHTML

In a recent presentation I mentioned two addins for Visual Studio that I love. I checked and was happily surprised they had been updated for Visual Studio 2008.

The first of these is SmartPaster. With SmartPaster you select some text, then come to Visual Studio, right click and pick “Paste As…” You’re then given four options: Comment, String, StringBuilder, and Region. I find the String or StringBuilder options very useful. When I write SQL I usually do it over in SQL Server Management Studio, I then come to my app and want to paste it in. This saves me from having to put all the quotes and concatenation, a huge time saver. Comment is also handy, I often type up a bunch of comments in a text editor, then want to paste them in quickly and easily. This takes care of line wrapping, etc.

The second tool is an essential one for any blogger: CopySourceAsHTML. It’s pretty simple, highlight a bunch of code, right click and pick “Copy As HTML…”. A dialog pops up that gives you some option to tweak the code. You can over ride the default font, font size, tab size, and other handy things. I use this for all my blog posts, I find it’s the easiest way to get the most accurate syntax coloring.

Installing either addin is very simple, extract the zips, then just navigate to your C:\Users\<username>\Documents\Visual Studio 2008\Addins folder (create it if it doesn’t exist) and copy the appropriate files in there and restart Visual Studio 2008. See the respective websites if you need more detailed info.

If you are still on Visual Studio 2005, there are 2005 versions of these addins as well, available from their sites.

Generating a PDF file from a Reporting Services Report Viewer Control

In yesterday’s post, I demonstrated how to generate a SQL Server Reporting Services report without having to have SQL Server Reporting Services. The sample application used the Microsoft Report Viewer control to display the report. A common need in business is to generate documents, such as PDFs, that will later be archived. It turns out if you are using a report viewer control, this is easy to do programmatically.

First, you need to add one using statement to the top of your class, in addition to the others that were added yesterday.

using System.IO;

Next, we only need a few lines of code to generate the PDF.

      Warning[] warnings;

      string[] streamids;

      string mimeType;

      string encoding;

      string extension;

 

      byte[] bytes = reportViewer1.LocalReport.Render(

        "PDF", null, out mimeType, out encoding, out extension,

        out streamids, out warnings);

 

      FileStream fs = new FileStream(@"D:\ReportOutput.pdf", FileMode.Create);

      fs.Write(bytes, 0, bytes.Length);

      fs.Close();

This code snippet came right from the MSDN Books on Line, and is pretty simple. I could have selected another format by changing the first value passed into the Render method, for example “EXCEL” would have rendered it as a Microsoft Excel document.

In the code samples I placed the above sample in it’s own button, but I could just have easily placed it under one of the other demo buttons.

This ability brings up some interesting possibilities. For example, the report viewer control does not have to be visible to the user in order for this to work. Thus you could create an application that every night generated a series of reports and saved them as PDFs to some central location, such as a web server or document control server. All the user (assuming one was around) would have to see is a progress bar, the reports themselves never get displayed.

Using SQL Server Reporting Services in Client Mode

Recently I did a presentation at the March BSDA meeting. I showed how to use SQL Server Reporting Services without a SQL Server, or more specifically a SQL Server running Reporting Services. It got an enthusiastic response so I thought I’d add to it here by adding some reminder documentation, as much for myself as for all of you wonderful readers.

Using Reporting Services in Client, or Local mode is a 4 step process. First, you will need an XSD schema file to create the report on. Once you have the XSD you will be able to move to the second step, creating the report. Third you will need to place a Report Viewer control on your windows form, WPF form, or ASP.NET page. Finally you will need to write some code that generates an ADO.NET dataset, loads the report in the report viewer control, then binds it all together. Lets look at this step by step.

Normally when you create a report you connect to a database, then base it off of some object like a query, view, or stored procedure. The report is then uploaded to a Reporting Services server, which takes care of hosting it, displaying it, and generating the data for it. With client mode you have no server available, so we have to instead create a surrogate. That’s where our XSD file comes in.

Right click in Solution Explorer and “Add a new item”, and from the list of goodies select “XML Schema”. Name it something appropriate, letting the default extension be XSD. For this example I will be getting customer order data, so I’ve given it the name CustomerOrders.xsd. Visual Studio will think about it then add it to the project, and even helpfully open it for you. I don’t know about you, but hand typing XML Schema’s isn’t my idea of fun, so you should glace at it, go “that’s nice” then close it.

Now right click on the XSD file in Solution Explorer, and pick “Open with….”. In the dialog that appears, select “Dataset Editor”. When you do, Visual Studio presents a big scary warning message letting you know that you could lose contents, and that this will forever be a dataset XSD file. We have nothing in the file, so we’re cool with this, just click OK.

You will now be presented with a big surface area. In the middle it tells you to drag items from the server explorer or right click. If you have a table, view, or stored procedure you are free to drag it in, but most of the time you’ll want to base this off of a SQL query. Right click on the surface, and select Add…., Table Adapter from the menu. The first screen asks you for the database connection. This is the only time you’ll actually need a connection, in this example I am using the good old Northwind database. I pointed at Northwind and clicked next.

image

Next we are asked how we are going to access the data. Since we have a SQL Statement just pick the default of “Use SQL statements” and click Next.

image

Now take your SQL Statement and paste it in, and click Next.

image

OK, click Finish to wrap up the addition of the XSD. By default the adapter has a generic name, we should give ours something more meaningful. Click in the top bar, then enter a new name. Since my example report is for customer order data, I’ll name it CustomerOrders. I then went to the bottom bar and renamed the TableAdapter1 to CustomerOrderTableAdapter. You should now see something like:

image

Note that this will become your Data Source for the report. The data source will have the name of the XSD followed by the name of the source, in this case it will read CustomerOrders_CutomerOrders. OK, now it’s time to create the report.

Go back to Solution Explorer, right click and pick Add New Item. Navigate to the Reporting area and pick Report Wizard. Note the file extension should end in RDLC. If you have used Reporting Services before, you will know that reports typically end in RDL. However, client mode reports have just a slightly different syntax to them, thus the RDLC extension to differentiate the two. While you can modify an RDL to become an RDLC and vice versa, you have to do so by hacking the XML behind the report.

Note you can also choose just Report, but then you’ll have to setup everything manually. For this simple example though, we’ll just use the Report Wizard.

image

Give your report a meaningful name and click Add. The report wizard then shows you a welcoming screen if you’ve never run it before, just click Next.

Now we need to pick the data source. In this example, you want the CustomerOrders branch, so select it and click Next.

image

The next screen asks if we want a Tabular or Matrix report. Select the one for you, in my example I picked Tabular and clicked Next. The next screen asks how we want to display the data. For my example, I opted to group by the customers company name and contact name, then the order data went into the details area. Fill out as appropriate for your report and click Next.

image

The next screen asks how we want things laid out. This affects the look and feel of the report. For my example I just took the default and clicked next, however you are free to play with this to experiment with the different looks and feels your reports might have.

Likewise the next screen is also a look and feel one, asking what colorings we want to apply. Pick one that makes you happy and click next. You can always change it later, many times I pick the Generic one (which adds no colors) then fix it up afterward.

The final screen is the wrap up. Give your report a meaningful name and click Finish.

image

OK, you have a report, now you need a container. Open up the user interface you want to place the report viewer control on. In my example I went with a very simple Windows Forms application.

In my toolbox, I navigated to the Reporting section, where I only found one control, the MicrosoftReportViewer control. (Note I am using Visual Studio 2008 SP1, if you are on an earlier version your names may differ slightly). Grab it and drop it onto your design surface. I also added a Button control to the form to kick off the report display process.

image

Now it’s time for the last step, adding some code. In this example I’ve used a Windows Form. Opening it, the first thing we find in the form load area is::

      this.reportViewer1.RefreshReport();

(Note I left my report viewer control named reportViewer1.) Delete it, we’ll have it refresh elsewhere.

Now we need to add some using statements to the top of our class.

//Add these to the standard list above

using System.Data.Sql;

using System.Data.SqlClient;

using Microsoft.Reporting.WinForms;

The first two will be used in accessing our Northwind database, you may need to use different libraries if you were going to another database. I’ve also included a referenced to the Reporting.WinForms library so we can manipulate the report programmatically.

Now let’s go to the code for the button click event. First, we need to reset the report viewer in case we’d been using it to host another report.

      // Reset in case report viewer was holding another reportViewer1

      reportViewer1.Reset();

Next We need to set the report viewer to local mode. This tells it we’ll be supplying the report name from a local file, and binding the report to a local ADO.NET datasource.

      // Set the processing mode for the ReportViewer to Local

      reportViewer1.ProcessingMode = ProcessingMode.Local;

Our third step is to create a local report variable, and set it’s reference to the report viewer’s local report. This will make it easier to work with. Then we’ll set the location of the report we want to use.

      LocalReport localReport = reportViewer1.LocalReport;

      localReport.ReportPath = @"D:\Presentations\SQL Server\SSRS RDLC\SSRS_RDLC\Report2.rdlc";

Now we need to create an ADO.Net dataset, and populate it. I implemented most of that functionality in a method called GetCustomerOrders, which I’ll append at the bottom of these instructions. It’s very straight forward code.

      DataSet dataset = new DataSet("Northwind");

 

      // Get the sales order data

      GetCustomerOrders(ref dataset);

At this stage we have told it where our report is, and have created the dataset. Now we need to create a datasource for the report itself. We’ll use the ReportDataSource object. For the name, we’ll use the same name as the XSD schema, CustomerOrders_CustomerOrders. Then for the value we will give it the table from the dataset we created in code. It’s possible for a report to have multiple datasets, in the report we’d give each one it’s own name (based on the XSD) then here we’d bind the dataset table to the name we’d used in the report. Once done we will then add the new ReportDataSource to the local reports DataSources collection. Finally, we’ll referesh the report viewer to make it generate the report.

      // Create a report data source for the sales order data

      ReportDataSource dsCustomers = new ReportDataSource();

      dsCustomers.Name = "Customers_Customers";

      dsCustomers.Value = dataset.Tables["Customers"];

 

      localReport.DataSources.Add(dsCustomers);

 

      // Refresh the report

      reportViewer1.RefreshReport();

You can download a copy of these instructions, along with the entire sample project including code and reports, at the Microsoft Code Gallery site http://code.msdn.microsoft.com/SqlServerRSClient . As promised, below is a copy of the GetCustomerOrders routine, for your reference.

    private void GetCustomerOrders(ref DataSet dsNorthwind)

    {

      string sqlCustomerOrders = "SELECT c.[CustomerID]"

        + " ,c.[CompanyName]"

        + " ,c.[ContactName]"

        + " ,c.[ContactTitle]"

        + " ,c.[Address]"

        + " ,c.[City]"

        + " ,c.[Region]"

        + " ,c.[PostalCode]"

        + " ,c.[Country]"

        + " ,c.[Phone]"

        + " ,c.[Fax]"

        + " ,o.[OrderID]"

        + " ,o.[CustomerID]"

        + " ,o.[EmployeeID]"

        + " ,o.[OrderDate]"

        + " ,o.[RequiredDate]"

        + " ,o.[ShippedDate]"

        + " ,o.[ShipVia]"

        + " ,o.[Freight]"

        + " ,o.[ShipName]"

        + " ,o.[ShipAddress]"

        + " ,o.[ShipCity]"

        + " ,o.[ShipRegion]"

        + " ,o.[ShipPostalCode]"

        + " ,o.[ShipCountry]"

        + "  FROM [Northwind].[dbo].[Customers] c"

        + "  join [Northwind].[dbo].[Orders] o on c.CustomerID = o.CustomerID";

 

      SqlConnection connection = new

        SqlConnection("Data Source=(local); " +

                      "Initial Catalog=Northwind; " +

                      "Integrated Security=SSPI");

 

      SqlCommand command =

          new SqlCommand(sqlCustomerOrders, connection);

 

      SqlDataAdapter customerOrdersAdapter = new

          SqlDataAdapter(command);

 

      customerOrdersAdapter.Fill(dsNorthwind, "CustomerOrders");

 

    }

Follow

Get every new post delivered to your Inbox.

Join 102 other followers