Related Articles
The goal of the ADO.NET Data Services Framework is to create a simple REST-based framework for exposing and consuming data-centric services easily. Elisa Flasko and Mike Flasko MSDN Magazine August 2008 ... Read more!
Download Visual Round-trip Analyzer (VRTA) to uncover the root of your Web page loading problems and identify these 12 common ailments. Jim Pierson MSDN Magazine November 2008 ... Read more!
In this installment we introduce you to new Web-oriented security guidance and tools straight from the Security Development Lifecycle (SDL) team at Microsoft. Bryan Sullivan MSDN Magazine September 2008 ... Read more!
If you're unfamiliar with Windows Presentation Foundation (WPF), building that first Silverlight custom control can be a daunting experience. This article walks through the process. Jeff Prosise MSDN Magazine August 2008 ... Read more!
Andrew Dai of the CLR team discusses the Transparency model, which creates a strong isolation boundary between privileged and unprivileged code for Silverlight apps. Andrew Dai MSDN Magazine October 2008 ... Read more!
Also by this Author
Many applications need to store user-specific settings to be persisted between sessions. But how do you go about saving and restoring these settings in your Microsoft® . NET Framework-based application? It's not all that easy to find the correct answer. Duncan Mackenzie MSDN Magazine April 2005 ... Read more!
I have to admit it; most of my Windows® Forms controls are an attempt to copy something that already exists. In my October 2004 column I showed you how to create a progress bar that mimicked the one shown during the Windows XP setup routine, and this month I'm at it again. Duncan Mackenzie MSDN Magazine January 2005 ... Read more!
As a parent of a young child, I take a lot of pictures—many more than anyone would ever be interested in seeing. Well, anyone except my mother. This is her first grandchild and the one or two pictures I send to her each week only brush the surface of her grandmotherly needs. Duncan Mackenzie MSDN Magazine November 2004 ... Read more!
Hansel and Gretel had the right idea when "they followed the pebbles that glistened there like newly minted coins, showing them the way. " The deeper you get into the forest or into your data, the more likely you are going to need help to find your way back out again. Duncan Mackenzie MSDN Magazine July 2005 ... Read more!
The My Namespace is best described as a speed-dial for the .NET Framework. It provides an intuitive navigation hierarchy that exposes existing .NET functionality through easily understood root objects. Here Duncan Mackenzie explains it all. Duncan Mackenzie MSDN Magazine Visual Studio 2005 Guided Tour 2006 ... Read more!
Popular Articles
Jason Clark MSDN Magazine July 2003 ... Read more!
The MVP pattern helps you separate your logic and keep your UI layer free of clutter. This month learn how. Jean-Paul Boodhoo MSDN Magazine August 2006 ... Read more!
C# allows developers to embed XML comments into their source files-a useful facility, especially when more than one programmer is working on the same code. The C# parser can expand these XML tags to provide additional information and export them to an external document for further processing. This article shows how to use XML comments and explains the relevant tags. The author demonstrates how to set up your project to export your XML comments into convenient documentation for the benefit of other developers. He also shows how to use comments ...
Read more!
When incorporating the ASP.NET DataGrid control into your Web apps, common operations such as paging, sorting, editing, and deleting data require more effort than you might like to expend. But all that is about to change. The GridView control--the successor to the DataGrid-- extends the DataGrid's functionality it in a number of ways. First, it fully supports data source components and can automatically handle data operations, such as paging, sorting, and editing, as long as its bound data source object supports these capabilities. In addition, ...
Read more!
Chris Tavares explains how the ASP.NET MVC Framework's Model View Controller pattern helps you build flexible, easily tested Web applications. Chris Tavares MSDN Magazine March 2008 ... Read more!
Our Blog
It’s helpful to think about secure design from a more holistic perspective by using threat models to drive your security engineering process. In the November 2008 issue of MSDN Magazine, Michael Howard proposes using the threat model to help drive other SDL security requirements, primarily code review priority, fuzz testing priority, ...
Read more!
Because Windows Workflow Foundation (WF) is based on a runtime that manages the execution of workflows and activities, testing must, in almost all cases, involve the use of the runtime – and this can introduce some interesting challenges. In the November 2008 issue of MSDN Magazine, Matt Milner presents some techniques for unit testing ...
Read more!
Every month, the CLR team gives us insight into the core of managed code, .NET programming best practices, technologies underlying the CLR and .NET Framework, and other tips and suggestions. In the December 2008 issue of MSDN Magazine, Erika Fuentes and Eric Eilebrecht cover some common issues developers encounter when tuning ...
Read more!
C# developers can use the Visual Studio Tools for the Office System (VSTO) Power Tools Office interop API extensions to streamline Office application development. The extensions provide a thin, strongly typed layer over the loosely typed Office object models. In the December 2008 issue of MSDN Magazine, Andrew Whitechapel, Phillip Hoff, and Vladimir Morozov walk you through developing ...
Read more!
Visual Studio 2008 Team Foundation Server Build (better known as Team Build) is a core feature of Team Foundation Server 2008. Microsoft designed Team Build to be an industrial-strength build automation tool. In the November 2008 issue of MSDN Magazine, Brian A. Randell introduces you to Team Build 2008 and walks you through the process ...
Read more!
|
{End Bracket}
And Along Came 10...
Duncan Mackenzie
If you are a developer focused on Microsoft products, you've probably been to Channel 9, where you can chat with fellow developers and watch videos that take you behind the scenes at Microsoft. Well, not content to offer just one massive online video project, the team behind Channel 9 decided to build a similar site targeted at the technology enthusiast who isn't necessarily a programmer. The new site, on10.net, covers a wide variety of topics, from the latest in medical technology to the work that goes into developing an Xbox 360™ game, all with a focus on how things work.
When we started this project in January 2006, we had only three programmers and approximately five weeks to get the site up and running. Our first big architectural decision was that, instead of building on top of an existing code base such as Channel 9 or Community Server, we would build the site from scratch. We had a very clear idea of the look and functionality we wanted to have on the site, and one of the essential features was the ability to let users comment on videos while watching them. This meant that we couldn't require postbacks to log in, to comment, or to page through comments, all of which pointed us at an AJAX implementation.With an AJAX system, info is sent back and forth from the browser through Web requests initiated from a client-side script, allowing asynchronous updating of page content without necessitating a full page refresh. One of the key requirements of an AJAX system, though, is a fairly complete Web service layer, and that was something that none of our current systems offered. As a result, instead of retrofitting a service-style architecture on top of an existing code base, we built a simple blog/forum engine, implementing only those features that were critical to the site.
We had another reason for treating on10.net as a completely new system: we were after a minimalist design and didn't want anything in the code base that wasn't part of our intended feature set. We identified a handful of key elements: Entries, Comments, Tags, and Media files. Every type of posted information would be an Entry, thus putting comments, threads, forum posts, and blog posts all into a single table and object. Tags were added as a list of IDs and names, along with the concept of Tag Groups, allowing us to classify a tag as "Content" or "Location" or even "Appearance." Media files were handled through associating a set of links with each entry, with the link describing the type of file and a URL.
Another reason to start fresh was our desire to make the site as compliant as possible with the current crop of Web standards. Producing valid XHTML output was one goal, as was making sure the site and the videos worked in as many browsers (and on as many platforms) as possible. In order to reach the Apple iPod and Sony PSP audience, we output our content in both Windows Media® and MPEG4 formats, which may be a first for a Microsoft-run Web site. We use the Windows® Media player when running inside Internet Explorer®, playing back the WMV video file, but switch to the QuickTime embedded player and a MP4 file when running inside any other browser. Being a blog, we also needed to properly support RSS along with Pingbacks and Trackbacks and some features specific to a video blog such as special iTunes extensions.
We tried to build on top of existing technology wherever possible. For instance, we took advantage of ASP.NET 2.0 for all the required authentication plumbing, including the membership tracking of Users, Roles, and Profiles, allowing us to avoid writing much of that code. All of the underlying page generation is handled through the use of the Virtual Path Provider, another new feature in ASP.NET 2.0. We are also using the Microsoft® ASP.NET "Atlas" framework primarily to provide a way to call our Web services from client-side JavaScript and handle moving our data around as easy-to-use objects. We also utilized other services such as MapPoint ® and Virtual Earth™ for mapping and plotting location coordinates.
All in all, there are quite a few requirements to put up a working blog, but we ended up with a great foundation on which to build new features as on10.net evolves and as we move Channel 9's massive body of content onto this new code base. In addition to on10.net and Channel 9, the team has also built a smaller single-person blog engine that we have currently deployed to our personal sites (see duncanmackenzie.net as an example). Once we have worked out the kinks in this code base, code-named "Oxite," we'll be shipping that code out (in C# and the .NET Framework 2.0). Check out Welcome to 10 for more information on our team and for links to two videos where we describe the system in juicy geeky detail.
Duncan Mackenzie is a developer for on10.net and Channel 9. He can be reached through his personal site.
|
|