The following contains unfair generalizations about developers, rough language and a bad attitude. Dear reader, this is tough love from yours truly.

You’re participating in the stagnation of the World Wide Web and you hold the human race hostage.

Ouch, that was a bit harsh, but it probably got your attention. That’s important because what I want to address is no laughing matter. There seem to be a huge unwillingness among ASP.NET developers to participate in evolving the web. This is not acceptable and surely not understandable since the web is what brings food on the table for most ASP.NET developers.

The hostage situation

It seems that other developers are much better to push the web forward than our camp is. Python, PHP, RoR and even Perl developers seem to be much more ideological in their approach to web development and makes a bigger effort in evolving it. That might be because these languages are more common in universities. In the meanwhile, ASP.NET devs just sit back and watch it happen without contributing or maybe even caring about it. That is not a flattering attribute by any means.

In case you are wondering, I’m talking about the semantic web or Web 3.0 if you will. Whenever I have written about it, no one really seems to care. Most other .NET bloggers haven’t written about it and the online discussions rarely have ASP.NET devs joining in. As I see it, ASP.NET developers don’t care about the future of the platform they work with every single day and that is a crime.

It’s a crime because you as a developer limit the billions of web users from utilizing all the wonderful possibilities of the semantic web. It’s a crime because you hold them hostage for personal convenience. It’s more convenient to sit back than to learn something new, but this time it’s different. This is not equivalent to learning LINQ or the MVC Framework. This is bigger than you and it’s bigger than the client/company you are working for. This is what will define our online future.

It’s growing

You might think I’m being a bit dramatic about this matter and you are absolutely correct. According to Tim Berners-Lee, the semantic web is growing exponentially these days, but the ASP.NET camp is sleeping through it. The problem is that it will make the growth slower and then we are back at the hostage situation. If we don’t help push native support for these things in the next version of the .NET Framework and Visual Studio, then we become even further alienated and left behind. This matter demands dramatic change in the way we approach web development, so I think it is more than justified to be dramatic.

The semantic web is starting to become useful due to its growth lately, but for it to become truly useful, it has to be widely adopted by big, medium and small websites containing any structured data worth sharing (since it’s on the Internet in the first place, it most likely is worth sharing).

Make a small effort

What puzzles me again and again is that only a fraction of web developers use microformats or any other semantic formats. In the light of how easy and useful it is, it leaves me saddened. It is not a duty to implement semantic mark-up; it is a privilege to help drive the future of the web – and with a minimal effort as an added bonus.

So, if you have a website containing user profiles, calendar events or any other structured data, then please tag them up with the appropriate microformat and XFN tags. If you want to do a little more, then FOAF is a good place to start. Remember, it starts with us, the developers, so wake up! (the lack of the word 'please' is not accidental, although appropriate).

Semantic fun-facts

Did you know that Yahoo has a new search engine in beta that utilizes microformats in a very cool way?
Did you know that Technorati has an hCard microformat parser service?
Did you know that Google has a Social Graph API that takes advantage of microformats and FOAF?
Did you know that LinkedIn is the largest publisher of the hResume microformat?
Did you know that the Operator toolbar for Firefox let’s you utilize microformats on any web page?
Did you know that I've written a guide to implementing microformats in ASP.NET?

Update: If you hated this post then try this new friendly version


Comment by Dave White

Intriguing post, and one that at first glance appears to be absolutely correct. I have no no idea why this is so, but it appears to be true.

Comment by Nathan

So... because nobody comments on it and because none of the bloggers you read are talking about it, ALL of the asp.net community is ignoring it? Perhaps you are over inflating your importance to the asp.net/www community just a bit?

I think you're also overstating the importance just a bit and overstating the extent to which non-asp.net developers are jumping on the bandwagon.

The reality is, when economic pressures come to bear, people will change their ways. As it stands now, nobody is paying developers to generate all the extra markup required for "Web 3.0". If my clients aren't going to pay for it, I'm not going to write it. That probably sums up the mentality of the majority of the asp.net consulting world which, believe it or not, is not represented accurately in the "blogsphere"


Comment by Philipp Küng

I must admit that the major part of what you wrote is correct. But I think the main reason why most developers don't use the semantic web techniques is because, that means additional costs for the company, and most companies nowadays(even those who use PHP) are satisfied, if they have a good page rank.
And those who use PHP as their favourite platform, often make use of some CMS (Because there are a lot more). On the other side the ASP.NET Developers are building their own CMS (Extremely specific WebApps), and that's why they cannot be as effective as the PHP programmers in the same period of time. But I totally agree with your attitude, that we as .NET Developers have to do something aswell too, otherwise we isolate ourselves from the upcoming semantic standards.

Comment by Taras

Mads, on a side note, speaking about innovations on (ASP).Net scene, what do you think about n2cms project? (I've discovered it just a few days ago, but got eventually so excited about it's design, that now it is second to blogengine.net in my personal ranking ;-)

Comment by Steve Dunlap

Mads, your dead right in that we in the .NET community need to take a more proactive approach to the new technologies evolving today. As a Web Architect for one of the top Medical Laboratories in Canada, I've been pushing the semantic web in many areas. I know our company will be leveraging RDF in the near future.

To the readers who think "extra markup, more time, productivity, economic pressures...", I can't describe how much I disagree. The notion of watch, listen and play catch-up later will only hinder everyone in the long run.

In my industry (Canadian Healthcare), revenues are capped from government funds. The only way for a company to grow is to provide different and unique services to its customers. In our case, doctors, hospitals, insurance companies, etc. Currently, we distribute our data in a proprietary manner, soon it will be all semantics.

Comment by Scott

While ASP.NET developers may be behind the innovation curve in some areas, it is difficult to fault developers in this instance. FF3 and IE8 are not out yet so there is still plenty of time for implementation before those two browsers catch on. The services you mentioned above no one has heard of. Remember that most (probably at least 75%) of .NET developers are within large enterprises. What motivation does a company like a large bank or insurance provider have in using semantic markup? (this is a legitimate question - maybe there is value that I don't know about)


Comment by Thomas Hansen

There are alternatives to having everything "bundled" in Visual Studio you know and if you're hoping for anything that's not Silverlight from MSFT you're probably waiting in vain, at least until they've lost more than a "gazillion" on that project...

Comment by Dan

"Did you know that Google has a Social Graph API that takes advantage of microformats and FOAF?"

I checked that out:

"and now I have friends, and now I am happy"

That's where we are going with this?


Comment by Domenic

Nothing in this post provided a compelling use case.

Just to be sure I wasn't missing anything, I downloaded the Operator toolbar. Not that exciting... I've got your contact info, the ability to do some tag searches, and the ability to bookmark any blog posts on the current page. Putting these on a toolbar is not really a big gain in convenience... not even a little bit.

Of course, I myself will probably be implementing microformats as much as I can (time constraints), because I'm that kind of a nerd. *Shrug*.

Comment by Jesper Blad Jensen

Flame flame flame flame!!!

Well, its right that we all have to pay some attention to new standards and such, and maybe you are right about that alot of ASP.NET developers just develop applications that works, no matter if they are treating standards well or anything - its like the webpages that only work (or partially work) in IE, unfortunately there are alot of those in ASP.NET and ASP, although the technologies have nothing to do with it. We are so abstracted from it all, that we just sit down and states: If i'm gonna support XHTML then the controls must do it for me!
The same thing here, we are all about cost and benefit; If it don't give any noticeable difference, then why spend money on something that is hidden for the everyday user?

Although now that I've have read you're post, I've sat down and looked a little on how to implement the basics of this, and it looks to me that it don't take me more time to implement than writing the word vcard in a class attribute, and a fn class attribute for the basics. Really time can't be a problem here, its just something we have to get used to, and just do automatically. Its nice that on this website that there is a link for adding the contact to outlook or whatever vcard eating mail program, and I think that is worth the extra 10 secounds, if not now, then in the near future.

The friend thing for the other hand, it's cute, but really I cant see the use for it until maybe is used by search engines, to somehow link sites together more logically, or something - so it have a use for companies maybe (linking to there supplier, employee blogs or something), because the graph is just like a ego thingy :)

But anyway, thanks for this little wake up. Even though it was a hard way to wake up :)

Comment by Denny Ferrassoli

Right now adding microformats to your site does not add a lot of value to the average visitor. When search engines begin scraping sites for microformats (some have already) we will see more benefits. Also when better tools become available to take advantage of microformats we will see benefits. I am very excited about seeing the semantic web come to life but the usefulness has yet to be tapped.

One great programming tool I found was Microformat .NET which allows scraping of content for microformats: http://www.codeplex.com/microformat

Comment by Mads Kristensen


"[i]The following contains unfair generalizations about developers, rough language and a bad attitude.[/i]"
The purpose of that statement was to apologize for generalizing to make my point stronger. Inflating my own importants was not intentent and I have no delusions about that either.


Not much really except that ASP.NET devs have always been more keen on getting things done, than getting things done right. It is this lack of ideology and drive I'm lashing out at.

Comment by Dan Atkinson

I would have to say that, in large companies at least, it's very difficult to make changes which appear to have very little impact (ie no impact) in terms of revenue. It'll take Google adopting it by default to make semantic web really become a hit.

It's not easy to turn these companies around overnight, Mads. It takes time, and although the web as a whole has been slow in turning around to semantics, it's clearly taking off.

Comment by Nick Dunn

I'd argue that on the whole, ASP.NET developers aren't front end developers. They generally aren't fussed about the HTML output so long as it works across the board. They won't manually tweak control IDs to make them semantically correct, they won't obsessively indent their XHTML as native XML nodes, and aren't bothered about the hideous abstraction between control Styles/Themes and CSS.

The whole purpose of ASP.NET was to abstract that layer from the developer, and allow .NET developers to build web applications, using their application development experience, without being bogged down in the details of CSS and semantic HTML.

PHP, RoR and indeed ASP.NET MVC developers *need* to get dirty in the HTML on a daily basis. The workflow is to write some code which manipulates HTML into something useful. The ASP.NET workflow (for many) is to drag a control onto a page with an instant visual result. No HTML writing required.

Of course there's the crossover bunch, myself included, who are ASP.NET developers but strive for front end code. In fact, I'm a front end developer-turned-ASP.NET guy, so I start with the HTML and work backwards. But many don't.

And that's where the problem originates from. With a powerful IDE to allow WYSIWYG dragging-and-dropping of controls (which abstract the layer of structure and presentation) and with a massive user base of application developers building web applications (note I didn't use the term *web* application developers), it's only natural that the emphasis isn't on clean HTML. It's simply not in their job description ;-)

But let's not forget that microformats and even POSH isn't widely adopted throughout the entire *front end* development industry. The blogosphere and the developers active in these discussions are the exceptions to the rule. I know many front end developers who don't read blogs and don't keep up with the latest trends. So if only one or two ASP.NET developers are actively discussing this sort of thing, that's not a bad percentage!

Comment by Steve Lopez

If you want to be taken seriously, then stop using the word criminal.

Steve Lopez

Comment by Josh Stodola

>> Not much really except that ASP.NET devs have always been more keen on getting things done, than getting things done right. It is this lack of ideology and drive I'm lashing out at <<

Mads, the vast majority of ASP.NET web applications serve a [b]business[/b] purpose. Lots of these apps don't even get public exposure (authentication required). I don't see it as a "lack of ideology" what-so-ever. "Getting things done right" greatly depends on what you are working on, and 99 times out of 100, microformats are irrelevant to the task-at-hand (based on my experience, anyways). Real-world ASP.NET devs generally do what their bosses need them to do, and usually in record-time. My boss does not know what microformats are, and I wouldn't even waste my time explaining them because they just are not relevant in this business world.

I might agree with this post had you targeted ASP.NET developers of [b]personal[/b] web sites and blogs, but shouting at all ASP.NET devs is so irrational, it's not even funny. That's my two bytes.

Comment by Josh Stodola

Another thing, what percentage of ASP.NET developers do you suppose have [i]anything[/i] to do with the development of the front-end?

Comment by Mads Kristensen


Microformats and other semantic technologies are irrelevant because no-one implements them. That's the whole point. If people start using them, then browser vendors, search engines etc. will start supporting them. It doesn't matter if authentication is required to see the pages, because browsers and browser plug-ins can still take advantage of them. It takes minutes to tag up contact information. This has nothing to do with bosses or time or money. It's fast, easy and it opens up a new world.

I'm sorry you find it irrelevant Josh and I know I was out of line by generalizing so heavily, but that was meant to illustrate the point as stated at the top. Besides, I don't find the generalization so far off even though it is unpopular.

Comment by Hank Lynch

Mads, I totally agree with you that this stuff is cool, but the reason we are probably not swarming over it is that it doesn't make our jobs/lives/hobbies any easier. We have Linq, WCF, WPF, Silverlight, Expression, MVC Frameworks, SQL2008, IIS(8)?, IE8, etc etc to worry about on a daily basis. PHP, Ruby and company can focus on this stuff because there isn't the flood of innovation/tools/job requirements flying at them on a daily basis. I'm swamped, and fail to see where it makes my day any easier. That's the problem in a nutshell for me.
Good article though, and when I see how they are used in the next release of your awesome blog engine...you might make a believer out of me.

Comment by Josh Stodola

Perhaps irrelevant was not the word I should have used. I did not mean semantic technologies were not applicable to business apps, I meant that in most cases they do not have beneficial value. For instance, what good would XFN and FOAF do for a banking application?

Comment by Simone

I don't think it's about ASP.NET developers, I think it's about all web developers except the ones that are into this kind of stuff...
Someone said that Web 3.0 will be the semantic web, but as history teaches, innovation if cannot generate more business is useless.
My wife has been working on semantic searches, ontologies and that stuff for the last 2 years, but according to her, and to all the scientific community, the "consumer oriented" semantic web is far from being.

Comment by Mads Kristensen


The [i]consumer oriented semantic web[/i] is not going to be if we don't start to implement it. It's the classic question of the chicken and the egg, but the difference is that we are able to influence it.

Comment by Claus

Before we even begin to talk about a semantic web, let’s go one step back and ask this basic question: how many web sites/pages ever written follow the basic W3C standards?
Do you really think it even possible that people can or will follow one standard for a semantic web? What about meta-crap? http://www.well.com/~doctorow/metacrap.htm

Comment by Rob Conery

>>In the meanwhile, ASP.NET devs just sit back and watch it happen without contributing or maybe even caring about it.<<

Really? Based on what? I didn't see you at the MVP Summit BTW... :p

>>>Whenever I have written about it, no one really seems to care.<<<

And this is *our* problem?

>>>As I see it, ASP.NET developers don’t care about the future of the platform they work with every single day and that is a crime.<<<

Lots of technologies out there Mads - lots of things people think everyone "ought to embrace fully". This conclusion makes your point look like a rant and really pulls the rug from your whole idea.

>>>It’s a crime because you as a developer limit the billions...
It’s a crime because you hold them hostage for personal convenience...
It’s more convenient [for you] to sit back than to learn something new...
This is bigger than you and it’s bigger than the client/company you are working for.<<<

Should we be writing cranky posts too? Or should I just accept that it's *my fault* in a Global Warming way and move on with my lowly self?

>>>So, if you have a website containing user profiles, calendar events or any other structured data, then please tag them up with the appropriate microformat and XFN tags. If you want to do a little more, then FOAF is a good place to start.<<<

Ahh - finally! Something I can do aside from being lazy :). But you kind of leave me hanging... why is this only one paragraph?

Mads, we've never met and I'll share with you some thoughts:

1) Writing while angry always gets me in trouble. You sound angry.
2) Decisive, compelling writing wherein I provide an argument, support it with as much fact as I can dredge up, and then draw my conclusions (you know, basic debate stuff) has always served me well.

Calling people lazy, hostage-taking criminals really hasn't served me over the years to be honest.

I haven't written any "call to action" before, but I imagine that if I did, I might include 3 (the magic number) things that people can do to mitigate my personal crisis. And then I'd show them how to do it. Heck I'd probably write the code for them as well - maybe even Open Source it.

Perhaps you can show us how you implemented this stuff in BE.net?

So, to that end here's what I think would be great. How about you expand on this sentence:
>>>So, if you have a website containing user profiles...<<<

And tell me specifically what I can do. Assume (as you have :) that I'm really lazy and take hostages on the weekends out of lockup - tell me what you're talking about in detail and why I should care. Tell me what FOAF is. Tell me which is better.

Better yet write me some code and show how it's done.

Better better yet - if you're not an MVP you should be and you should come to the summit where we talk about these things, and you can give a presentation (and call the room lazy hostage-taking criminals) wherein you explain why this is so important.

As with @Claus - I see a lot more that needs to happen in our community than just embracing "yet another x" - but hey if this is really "reverse the earth" kinds of stuff...

Rob Conery

Comment by Mads Kristensen


Good advice and I was a bit angry or at least wired up and have been for a while on this topic. You make solid justified points, but as I stated this was written [i]with unfair generalizations[/i] as [i]tough love[/i] only to raise awareness. My other attempts have failed so I thought I would try a different approach. It seemed to have worked judging by the number of comments :) In that sense I would say the [i]bad attitude[/i] approach gave merit to my mission in this particular case. It's my first go at [i]bad attitude[/i] and it will probably be my last.

It's funny in a way, because I would also believe that writing samples on how to implement this stuff would be the best awareness raiser, but my previous attempts show it isn't. This topic is different to me than most other topics because I believe in its importance on a global scale. It simply means more to me than many other dev topics.

I'm not an MVP so that's why I didn't show up at the summit. Maybe I'll see you there next year :)

Comment by Chris Pietschmann

It's like the chicken or the egg. No one implemented microformats because they aren't supported by the browsers, but the browsers don't support them because no one uses them.

I do have a question... Does BlogEngine.NET support these microformats?

Comment by Mads Kristensen


BlogEngine.NET 1.3 supports xFolk, rel-tag, XOXO, VoteLinks, XFN, rel-home, rel-enclosure and rel-nofollow.
BlogEngine.NET 1.4 also support FOAF, hCard, SIOC, APML and geo.

Comment by Domenic

Still didn't get any answer to my comment about use cases. Really, as a user, why should I care? In the ideal world, what would I ever use a microformat-full web for? Why would this be better than what I do now---as opposed to simply different?

Comment by Pete

This post has nothing to do with .NET at all.

".NET developers seems to just make things work and no more..."
That's a crazy, stupid generalization that would be just as inaccurate if you replace ".NET developers" with "PHP developers" or "RoR".

I was positively surprised about seeing Rob Conery responding to this post. You should be honored that he would take any time out on this. But the most ironical thing about this post is that he did. You've probably kept your head in the sand the last 6 months and missed out on the whole ASP.NET MVC , where Rob, Phil Haack and Scott Hanselman, who, among others, are working on this product has done the most community-friendly development-cycle that Microsoft has EVER seen so far.

You are totally out of your league and out of your place in time. Keep up the pace and get back to us in a while. Catch up.


Comment by Sean

There's lots of talk of a warm, fuzzy and wonderful new world, but what's missing from this article and the implementation one is why these micro-formats are so darned important? What benefits do they actually reap? Why are they the wave of the future and not just another self promotion tool? How is social bookmarking going to change the face of the web?

Telling me (angrily, albeit as a way to make your point) that I should do this or I am a jerk for not doing it isn't likely to do much. I think your point would be much more effective if you expanded on why you feel this is the greatest thing since sliced bread. I'm not talking about links to other people's opinions either, I am talking about your opinion. You seem to care passionately about this subject, so tell us what you feel are the "wonderful possibilities of the semantic web".


Comment by Glenn

What a lot of these great ideas seem to forget is "incentive". Data is usually worth viewing because it's privately owned and maintained. With the costs incurred in doing that, sharing is usually only done when rewards are present. What's the incentive to do this?

What are we really talking about? Labeling web-pages/documents with proper meta-tags so it's more integratible? Ok, where's the incentive for that? Already meta-tags have been irresponsibly used to boost search ratings, and try to deceive web crawlers for years. It wasn't until Google steered search away from looking at meta-tags that any gains were made in accuracy.

We're talking about minor gains, with major over-head. ...We have to remember that it is PEOPLE who drive the internet. People and their incentives drive the internet more than technology. Who's going to want to do this and why?

Yes, there will probably be a general migration to more open file-formats, and open data-standards. Applications will be more network/service driven than machine driven. Programmers and companies will share their services, and software won't be made by a single company like it was in the past.

But I can tell you this... ...Micro-payments will have more to do with making this happen than any language technology. The languages and software for making this happen already exists. The micro-payment incentives however do not.


Comment by Lea Johnston

Wow - yet another person telling me to learn yet another web x.0 thing. Great. I could spend my entire life learning everything new there is in this area. But how many of them are really useful? You can't learn them all, so you have to make a choice.. so why should I choose to learn what you are promoting? why is what you are talking about better than any other of the 200 "great, change the entire web" things?

If you make it easy to see people will follow. Make it easy.

Lea Johnston

Comment by Rob Conery

>>>In that sense I would say the bad attitude approach gave merit to my mission in this particular case. It's my first go at bad attitude and it will probably be my last.<<<

Well you did ring the bell with the title, that's for sure - and yes you got attention but I'm not sure it's the attention you want :). Homeless guys pooping on the sidewalk gather attention too you know :). But are you going to listen to their investment advice?

I'm nominating you for MVP today - you deserve it for your OSS work at the very least :). I'd be happy to also have you pitch in on the MVC eCommerce store I'm working on (sample app for MVC) if you think microformats would help stuff.

If you're interested - send me an email (robcon at the Big Blue Monster) and I'll set up a time where we can do a screencast.

Rob Conery

Comment by Chris Love

Matt, great as always. You are more than right. Thanks for helping me know that someone else feels the same way. And BTW, why were you not at the MVP Summit?

Comment by Chris Brandsma

While I don't agree with "why" Asp.Net developers need to wake up, I do agree they need to wake up.

I would argue that, more important than microformats, is JavaScript. I know way too many asp.net developers who actively abhor writing javascript -- yet they love the Asp.Net AJAX Library. Many have fundamental misunderstandings of how the web works (they learned everything they were ever going to learn about programming from VB6).

So, please: Wake up and learn how things work. Lean raw HTML. Learn what GET and POST do. Learn JavaScript (or at least learn JQuery/Prototype/MooTools/etc). Learn what AJAX is really doing.

Finally, don't assume that if Microsoft isn't pushing something it isn't important. (or did that sound too Alt.Net). One of the reasons many other frameworks are thriving is because they do not rely on a company like Microsoft for everything.

Comment by Branko

An eye opener... thank you...

To be honest, it's s first time I hear about microformats. So powerful yet so easy.

Thank you once more.

p.s. Love the BlogEngine, can't wait for 1.4 release.


Comment by Dityo Nurasto

I already aware of this, you got the point right. I consider this post as motivation to learn forward. I do agree with Chris, the web is not about the ASP.NET component can do but the raw format beneath it. Yay!