If you're a professional front end web developer, you care deeply about web standards and professional best practices like semantic markup, unobtrusive JavaScript, and CSS. And you're used to seeing Microsoft's web products painted in a not very flattering light regarding these best practices. It's practically cliche to see a litany of standards validation errors on a random Microsoft web site; especially ironic on web sites which are intended to sell the Microsoft web platform. And if you've been in this industry for any amount of time, you probably know people who have turned down contracts with clients who demand that the site be developed in ASP.NET or Sharepoint, because of a perception that "it's impossible to use ASP.NET to produce clean, semantic markup".
While some of these past criticisms were warranted, things are changing rapidly. With the release of Oxite and the accompanying articles, you have everything you need to accept ASP.NET projects without abandoning professional web standards and practices. Oxite is the first and only ASP.NET based open-source CMS and blogging engine that encourages you to do "standards first, markup first" web site creation; a professional best practice on other platforms like Django, Ruby on Rails, and PHP. Nishant's article takes you step-by-step through "standards first, markup first" web site creation and the process of leveraging Oxite. And Molly's article can be used to convince skeptical business decision makers who might not yet be sold on standards-first web site creation.
It's Our Job
In the past couple of years at Microsoft, we've redoubled our efforts to support web standards. Examples include IE8 passing Acid 2, Visual Studio supporting JQuery, Expression Web built from the ground up to support web standards, and our web services stack baking in REST and JSON support. Because of our unique market position, Microsoft has a unique obligation to interoperability. In fact, Steve Ballmer and Ray Ozzie recently made it official -- it's our commitment and responsibility.
So, if respect for web standards is Microsoft's official policy, why is it still so common to see skepticism regarding Microsoft products and web standards? This may be due to some lingering historical bias, but this alone isn't sufficient to explain the perception. The simple truth is that there are still plenty of sites and projects out there which don't produce clean, semantic markup (let alone markup that validates). I think this can largely be explained by historically different perspectives.
For starters, many of the most vocal and influential .NET developers come from a background similar to the people in the Enterprise Java community (in fact, many are converts from EJB). For them, the markup and JavaScript are a side-effect of the backend code, and the most important priority is to factor the server-side object model, state management and code as elegantly as possible. The server code is the starting point and purpose, and the markup is essentially a "necessary evil" that is used to connect the code with an end user.
Conversely, people coming from a professional front-end web development focus tend to see the markup (and JavaScript and CSS) as the most important part of the application. Elegant semantic HTML plus unobtrusive JavaScript make your application future-proof, open the door to automation, accessibility, and numerous other benefits. To these professionals, the server side code is less important -- a necessary evil that exists to connect their elegantly factored client markup and code with a database or other service.
This isn't to say that one perspective or the other is "wrong", but it does help explain the historical dearth of focus on "standards first, markup first" samples on the Microsoft web platform. When the most vocal and prolific community members have historically seen professional web standards as being secondary to server-side code factoring, it's not surprising to see their samples, recommended practices, and products reflect those priorities.
Enter Oxite
We created Oxite, first and foremost, to show how easy it can be to support professional web standards best practices on ASP.NET. Nishant's article walks you through the process we used, and you'll notice that it's very similar to the best practices you would follow in Django, Ruby on Rails, or PHP. Don't ever let anyone tell you that ASP.NET is a different beast -- it *is* possible (and easy!) to start with clean semantic markup and have it emerge from the framework unscathed.
In addition, we created Oxite to be something that you can download and use in your own projects. We provide source and a liberal license, so you can use and modify the software how you like. We provide you with fully working code, so that you don't need to become a backend coder yourself, but it's exciting to see people from the community already creating tutorials and providing information about how to extend and improve Oxite.
Finally, you should know that there are other CMS and blogging platforms available for .NET, and Oxite isn't intended to be a competitor or replacement. One of the most exciting things we've seen as a result of the Oxite launch, is renewed attention to "standards first, markup first" functionality across the board. While the other engines don't claim to be focused on "standards first", you can fully expect that some will be tweaked soon to encourage and support professional front-end web engineering best practices. The positive feedback from those of you doing "standards first, markup first" development has been encouraging, and will undoubtedly influence all of us who build platforms.
We’d love to hear what you think. Is there room for a "markup first" CMS running on ASP.NET? What direction would you like to see Microsoft products move regarding web standards?
