Microsoft open-sources a chunk of its Channel 9 code
Proving its refreshingly serious intent to become a truly contributing member of the open source community, Microsoft this week is releasing part of the engine for its own development blogs.
A recent incarnation of MSDN's very popular Channel 9 blog (one of Microsoft's best ideas in its history) remodels its ASP.NET infrastructure to take advantage of Microsoft's model-view-controller architecture. ASP.NET MVC is the system where the software components responsible for creating, assembling, and requesting data are kept separate from one another, resulting in simpler, faster code.
Yesterday, the company took a bold -- and many would add, unprecedented, at least for Microsoft -- step in advancing this architecture, by releasing into the open source community a basic edition of the engine that runs Channel 9, along with its source code. It's being called Oxite, it's described as in alpha, and it can be used as a simple content management system for individuals to post and maintain their own blogs.
"Oxite provides you with a strong foundation you can build upon," Microsoft's introductory page reads today, "[with] pingbacks, trackbacks, anonymous or authenticated commenting (with optional moderation), gravatar support, RSS feeds at any page level, support for MetaWebLog API (think Windows Live Writer integration made easy), Web admin panel, support for Open Search format allowing users to search your site using their browser's search box, and more -- so, you can spend time on designing a great experience."
Anyone wanting to host his own blog on Oxite for now will need Windows on the back end, along with support for ASP.NET -- which in and of itself may be too much to expect of a hosted service. If you've got the servers and the bandwidth for yourself, however, you need as a minimum Visual Web Developer 2008 Express Edition (a free, scaled down edition of Visual Studio 2008 specifically for Web development), along with the basic ASP.NET platform and SQL Server 2008 Express Edition. Microsoft Web Platform Installer is perhaps the simplest way for a new developer to obtain and install these principal components.
Despite the effort the company has evidently spent coming up with a promotional approach, it doesn't look like Oxite will become a "product" for the company, even as FOSS. This as evidenced by a comment posted yesterday by lead developer Erik Porter, who told one Oxite user, "We have no plans to make this anything but a really good developer sample that should be able to run any site you want. That said, this is a community project now and if the community decides to take it a different direction, we won't stop it."
ASP.NET MVC
An extension to ASP.NET that enables Web developers to make their work more sensible and extensible by compartmentalizing the functions of managing and displaying content into three discrete actors: the model, the view, and the controller.
For the Visual Studio programmer, ASP.NET MVC is a new Web Application Project (WAP) type. Once engaged, it enables him to build the controller, which is effectively the producer of the content of the Web page. Its job is to process requests from the user; through those requests, the controller generates the model of the data for the site. This is the type of content for which sites rely on content management systems of one form or another; here, the controller performs the management functions at the code level.
At runtime, the user requests result in the controller creating views of the data. How the site displays those views depends on specific view modules which are named for each view. The product is pure HTML, though CSS can (and obviously should) be employed to enable formatting; JavaScript scripts may also be helpful.
The absolute division of labor in the development of a content-driven Web site could easily drive down development time. That said, the use of MVC in ASP.NET is nowhere near automatic; its senior program manager at Microsoft, Phil Haack, compared the differences between programming in ASP.NET 3.0 and ASP.NET MVC to driving a manual transmission and an automatic. With a stickshift, Haack said, you have more driving fun, but you have to pay more careful attention to how your brakes are set and what your RPM is -- factors on a much lower level.
For Microsoft, ASP.NET MVC helps score more points with the open source community -- which have contributed ideas to the project, as well as JavaScript scripts that Microsoft tends to use with it (jQuery being one of them); and the standards community which welcomes (or at least should welcome) the trend toward sensibility and practicality. It's also a low-intensity project that requires a minimal development team at the company (Haack works with just a handful of other people), that has a maximal payoff in terms of visibility and developer interest.