As an agency that helps clients in the web start-up market to design and build web apps, Howard Baines is familiar with the popular approach of using open source technologies and tools to get the job done economically. We’ve worked with PHP, Rails, MySQL and others, and have experienced the highs and lows of doing so. Late last year we decided to fly in the face of popular opinion and build a web app of our own… using the Microsoft platform.
Deciding on the app
We decided to build a meeting organizer application which we called ‘Meet with Approval’. The application allows anyone who wants to arrange a meeting to create a dedicated event page with date and time options and send out email invites. Invitees can then select the dates that suit them, add comments and are informed when the meeting is confirmed. We knew that from a technical perspective we wanted to use some AJAX, incorporate maps and integrate with third party services such as Plaxo and PayPal.

Our aim was to have an application that we could use to experiment with new concepts and technologies whether open source or paid for. The process of designing and building the application would provide a case study for us.
How to measure success
Our clients share key goals when it comes to web development: minimize development time to get their product to market faster, to start generating revenue and gain a competitive advantage; reduce development cost; and improve reliability. A reliable application requires less ongoing investment and is available to users more of the time, which maximizes revenue earning opportunities.
This means we need development tools that allow us to reduce development time and labor while delivering maximum reliability and a fantastic user experience. These were the challenges and benchmarks against which we wanted to test the Microsoft offering.
The development process
For those unfamiliar with Microsoft their platform is the .NET Framework and for web this means using ASP.NET (http://www.asp.net). At the time we were building our application Microsoft released the latest version of .NET and their development tool Visual Studio 2008. Possibly the main argument against using Microsoft from the open source point of view has been the issue of expense. However the .NET Framework can be downloaded for free plus they also provide ‘Express’ versions of Visual Studio and their SQL Server
database software which we used and are also free.

A key benefit of new web specific frameworks such as Rails is that they allow rapid development of common features. Visual Studio provides a number of prebuilt web controls that we were able to drag and drop onto our pages and allowed us to get a considerable way before having to write any code. A criticism of this approach is that such controls output bad HTML or restrict design however we did not find this. We were impressed by the way in which .NET produced relatively little code and we were able to apply all styling via CSS. Visual Studio 2008 offers a full WYSIWYG editor with CSS support that we found to be better than Dreamweaver although we did find rendering problems within the IDE when coding for cross browser CSS.
When it came to coding we used Microsoft’s latest data access offering called LINQ (Language Integrated Query). LINQ offers a way to access data held in a database or other format such as XML using a single language. The concept is not new and other frameworks and scripting languages offer a similar approach.

The real bonus came in the form of the InteliSense in Visual Studio which not only made learning and writing LINQ queries fast but also supported our underlying data model. InteliSense within Visual Studio included support for frontend JavaScript which again helped to speed up development. Moreover the InteliSense features really cut down on the number of time wasting runtime errors and helped to reduce bugs. In fact using the various prebuilt controls and functions of .NET helped us to significantly cut down the number of bugs.
One of our objectives was to provide a great user experience and today that frequently means using AJAX. Visual Studio 2008 has inbuilt support for Microsoft’s own AJAX libraries called ASP.NET AJAX. While these can be used independently and scripted against like JQuery Visual Studio provides a number of controls which can be added to by downloading the AJAX Control Toolkit. Once again these provide great AJAX features such as the textbox auto complete. We did script against the AJAX libraries to integrate the Plaxo widget with our AJAX functionality.
Using Plaxo (Free) was one example of where we integrated non-Microsoft services which included PayPal and a Yahoo! Geocoding web service (Free) which we used together with Microsoft’s Virtual Earth (Free).
Thinking about moving to .NET?
For any developers considering making the change to .NET Visual Studio 2008 makes it extremely easy. There is a range of programming languages to choose from including C#, VB.NET, J# and IronPython which means there is probably one that suits your taste. For Rails developers there is IronRuby and an MVC Framework currently in pre-release versions. The Microsoft website provides articles and tutorials for transitioning from other platforms such as PHP to ASP.NET and there is a wealth of blogs and websites with code examples or ‘Starter Kits’.
Whatever your preferred approach or experience there is probably something for you in the Microsoft offering and in many cases the IDE and integrated stack bring benefits over other development options we have tried.
How it worked out
Within three weeks we were able design, develop and deploy our application at extremely low cost. Since launching in late 2007 we have had only 2 bugs reported with over 2000 users in the system and over 500 meetings created. We felt that we were able to deliver on our objectives of fast, cost effective, reliable development that produced a great user experience which you can judge for yourselves at www.meetwithapproval.com.
Meeting Microsoft
We caught up with Microsoft at the October Future of Web Apps in London and discussed our experiences. They were excited to hear about what we had been doing and chose to write a case study about Meet with Approval.
A common misconception is that companies of the size of Microsoft are remote from small businesses. The truth for us has not been the case as we were invited to take part in the official press launch of Visual Studio 2008, SQL Server 2008 and Windows Server 2008 on 27 February in London. We were along side a select few companies that included McLaren, EasyJet and Grey Group.
Our case study is now available on the Microsoft website as part of the Heroes Happen Here Launch Evidence (www.microsoft.com/ casestudies).
Despite the frequent criticisms of Microsoft we have learnt that this should not be a barrier to prospective start-ups when looking for a suitable technology platform. Microsoft is clearly working hard to be friendly, accessible and cost attractive to entrepreneurs and potential start-ups.





Very interesting! I used to be a .NET programmer, and moved to PHP, and some Rails. I still use .NET in my consulting with larger companies, and I think their IDE (Express Editions) are fantastic pieces of software, and am just a little sad they don’t run natively on a Mac… but that is what Parallels is for!
Thanks for being willing to take a stand against the status-quo and present a fair view of Microsoft. They unfortunately got off to a really bad start years ago in adopting web standards, so I think people are generally still cautious of them now. Kinda like how Opera used to be a paid program, then ad supported, then free… but people still think you have to pay for it. (Lets not go there again! lol)
Thanks for writing!
On the live site, why is the email form on the homepage not in a form tag? It looks like the form doesn’t even work without JavaScript (I haven’t checked since I don’t actually want to get in touch).
Congrats on what looks to be a really nice app. It’s very interesting to hear someone speak so highly of Microsoft - you don’t hear it too often. :)
I applaud you for having had success with using Microsoft products for web development. I am still not convinced this is the best way you could have gone, though. It all sounds a bit too kludgy and market-research driven, what I am missing is the “genius” element.
Somehow using Microsoft products makes everything that is produced that way as dull and kludgy as Microsoft itself. No wonder nothing Microsoft has ever done on the internet has taken off in a big way (Live anyone?). It’s just not in their genes. They are using the wrong tools, wrong servers (IIS), wrong approach.
What happens when Microsoft moves to the next great platform technology COM#+? Seems like a bad idea to base your app on a nearly guaranteed to be replaced foundation.
@Andrew Ingram –
.NET wraps one form around the whole website. I always hated that. Not sure how it is now, but it used to be a pain if you needed to add more than one form on a page.
I also noticed that on 90% of .net sites, you can’t fill out a form and hit return to submit. You actually have to go to your mouse and click the submit button. Doesn’t seem to be the case with Meeting with Approval, which is good.
Interesting article, but somehow I can’t stop getting the feeling that Microsoft paid for the development of this app in .net as well as for this article. Not to start rumors, but it’s just a feeling I get.
It’s hard for me to understand why anyone who is aware of the benefits of open source and web standards would want to lock themselves into .NET. It’s like a huge step backwards. But that’s just my opinion.
[…] pm on May 8, 2008 | # | Tags: web And in other news a team of skilled developers proves you can use any technologystill produce good stuff. Its the rest of us that shouldn’t be using ASP.NET. […]
@Mark Jardine
I often choose not to enter into open source vs Microsoft debates, as they can so easily escalate in an unhealthy way, especially among passionate developers on both sides. The article was written to shine a light on the Microsoft development, not to criticize the approach of either.
However I felt it was important to state on the record that howard/baines has not received any remuneration for building this app or writing the above article.
I think you guys are serious? Microsoft products are a joke. I can tell just from the overall aesthetic and looking at the source of the calendar site that you guys are a joke. I’m surprised Vitamin would allow such a shameless plug for such a crap product.
How much did Microsoft pay you guys for this article?
As a Mac user and someone who generally dislikes Microsoft, I have to say that working in a .NET environment is pretty easy for my day job. Our bugs are self-induced just like any other environment. I’d recommend .NET without reservations. The tricky part for a startup is finding a reliable .NET host with SQL server that doesn’t cost an arm and a leg.
Quality PHP / Apache / Rails web hosts are plentiful and cheap.
@Dbross:
Sorry to say, but %99.999 people on this planet don’t give a rats ass as to what the ’source’ looks like.
Have fun in your mom’s basement stroking it to warcraft videos.
When I used to do more .NET I always though the express versions were for non-commercial use. Also, I’m pretty sure the express version of SQL Server limits to 25 commections and can only use 1GB ram. I think that’s great for a small site but scaling it is gonna be do-able but expensive. Facebook, for example, has about 2500 MySQL servers. The cost of an enterprise SQL server license for something like that would be insane. Fortunately none of the apps I write need that.
Decent write up — professionally, I have been using .NET since it first came out. Since becoming aware of web standards a few years ago, I have never really liked ASP.NET because of the markup problems as you mentioned, and actually bypassed the controls (using XSLT to generate the markup I want, from serialized objects etc). However, to be fair, they have improved the quality of the markup.
However, ASP.NET by its very nature is a leaky abstraction (I try to explain that further here: http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction)
In the hands of a standards-aware developer, I think it can be a useful tool (I certainly like C#). The WYSIWYG editor, in my opinion is often not the way to go for web site development.
Lastly, one has to really watch out for what controls they use and what markup it produces, and if it depends on JavaScript or not. Some controls work quite well with progressive enhancement principles, but many also do not.
The one single form thing is annoying but there are ways around it, and you can even change the markup output by their inbuilt controls (though it feels very kludgy and hard to maintain/read, IMO!)
I would surmise this is only meant to be accessed through a Microsoft browser, right? Trying to create an event using Safari send the site in an infinite loop…
Oh, well…
Yes, this is a very Microsoft-like article. I especially like how I can’t zoom the images when I click on them. Who needs clarity? It’s the final result that counts!
I only have second hand experience with .Net. My job is to scrape web pages, and so I have seen a lot of HTML code generated by .Net.
I have no doubt that it is possible to create a lean and mean web site using .Net. The problem seems to be that the default way of doing things works against this.
1. A sizable percentage of the web sites store their session object as a serialized form value! This will add several KB of extra data for every page.
2. Evil postback code turns simple hypertext links into Javascript-using freaks. The worst example that I have seen is a javascript link that posts a lot of data to the web server, just to redirect to another page…
My experience is that while I have seen good .Net pages, they were probably made by people who knew how to configure Visual Studio to be less Microsofty. All this drag’n'drop might make it easier for your average 14 year old, but it generates bloated code that depends too much on Javascript
@Jeremy Baines
I understand the purpose of this article. :) I just find it hard to justify going the Microsoft route unless you are a developer (or company) who is already deeply rooted in their .NET platform in the first place.
Last time I checked, you pretty much need Visual Studio to compile everything. So in a sense, you are stuck using their IDE. Then you are stuck with IIS. There’s also the strange quirks like wrapping your whole site in a form tag. Is that a requirement when building .NET sites?
@Mark Jardine, @B:
Wrapping your entire website in a form tag was the only convention for creating ASP.NET webpages, until recently. Additions and improvements to the 3.5 version of ASP.NET will make it so that that convention — as well as the worries of preserving state from client to server in that giant chunk of serialized data — can be eschewed in favor of a cleaner, more reasonable approach. I know this only addresses one of your concerns each, but I felt I should point it out nonetheless.
To the authors: While it is fairly interesting to read about your success with Meet With Approval, I think it’s disingenuous to refer to your approach as “the Microsoft way”. For example, using LINQ to SQL in your site is a luxury that many developers won’t have, as not only may they be using a database that does not yet map to a DataContext (such as Oracle), but they may be stuck in an earlier version of the framework as well. It will be a decent while before the companies using .NET 2.0 will move up to 3.0, and this method can truly be considered the default way of developing websites.
Although I’m a PHP guy, this was definately a good read, thanks!
Anup Shah and Mark Jardine, above, said what I would have. As a former .NET developer, I learned you don’t need Microsoft anything to do this and you’ll create a better product if you don’t.
Lots of uninformed posters here. Say what you will about WebForms and Postbacks, but you should know what you’re talking about first and they do have a lot of advantages.
B: that serialized form value isn’t the session, it’s called Viewstate and it holds information about the state of all the interface elements on a page. It is _immensely_ useful for pages with lots of elements on them - in php I had to worry about restoring a value to a textbox over and over again, but with WebForms it just works. Yes, it’s easy to abuse ViewState and end up with large page sizes. That’s why developers should probably learn more than the bare minimum about the technologies they use.
Mark Jardine: all you need to compile a .NET app is the appropriate compiler (for example csc.exe for C# code.) I developed C# apps for some time using SharpDevelop, an open source IDE, before ever considering Visual Studio. And you’re not stuck with IIS, you can serve ASP.NET sites on Apache for Windows or Linux using mod_mono.
Nathan: SQL 2005 Express doesn’t throttle connections.
Regarding single form tags: with the WebForms concept you’re not supposed to know or care about form tags. You write code against an API that works like a desktop application instead, so forms are abstracted away. I don’t imagine this is suitable for all web app situations but it’s very nice.
– James
I use Visual Studio in my day job and find Intellisense very valuable. Although, data connection wizards etc can be very annoying. I usually cancel them and write the code myself.
When coding PHP I use Notepad++ which has some awesome features that Visual Studio could benefit from.
E.g. the shortcut keys for duplicate line (ctrl-d), move a line of code up and down (shift+ctrl+up/down).
Sorry off-topic here. Just thought you would like to know that the link to the Fuel conference has an https in it which takes you to a Plesk page. You might want to fix that.
Btw, great article!
This article was pure market speak, devoid of insight and obviously trying too hard to put .NET under a good light.
I cant remember who said it first but I have only one thing to say to you mr Baines: SHOW ME THE CODE. Show us how it works. Can you do that ? Or maybe .NET projects are such a tangled web of code that you can’t even read it without the help of the IDE ?
PS.: Shame on you ThinkVitamin.com for letting your site become a marketing platform.
As someone who does a lot of ASP.NET development, this article kind of echoes my normal experiences. I do see some specific comment that critique the technology that point out possible issues that resolutions exist for. Again, on viewstate, if you don’t like it you can use session instead, or if you are in a webfarm you can persist the session to a central machine or database. There are a lot of options built into .NET and if you are willing to look at them openly like the author, some people might find that the trade-offs make it a good choice for some or even all your projects.
There is no one perfect way to develop everything, I think we can all admit that.
My own experience - I’ve been trying to build a web app in .Net on a part time basis (a couple of hours a weekend), and it was taking me months! I’d been led down the road of strongly typed datasets for example, only to find that doing advanced search with them is near impossible with the VS Express applications. And don’t even get me started on master pages - great concept, wierd to work with. And how come the data in my records is so hard to work with when using the built in Repeater web control?
The way I feel about this - I invested lots and lots of time into MS technology, and all the time felt I was swimming upstream. My day job involves ColdFusion (which may be dumb, but I love it!), and I’ve just recently started coding PHP out of work instead of .Net, the freedom I suddenly feel is super duper!
I ground my teeth writing CGI with perl in the early days of the web and moved on to use both PHP and “old” asp. I migrated to ASP.NET when I started my own company 3 years ago. The learning curve was steep, the event driven page model, viewstate, databinding, master pages and a bunch of other things threw me for a loop until I got used to them. However the problem was no worse than when I started using RedHat Linux after years of using MS products - I had to unlearn a bunch of things and learn some new concepts in order to go forwards.
Now I am way more productive using ASP.NET than I was with any of the earlier technologies. Our company builds XHTML 1.0 Transitional compliant websites (e.g. http://www.alvstranden.com/, http://www.brcenter.se/) based on our own in-house CMS. We have had few, if any, problems conforming to standards using ASP.NET. Admittedly we often roll our own AJAX, but that has more to do with reducing code overhead than anything else (we don’t use Ajax frameworks at all unless we really need the power of prototype or something similar).
Basically every platform and programming language I have ever tried has some good things and some bad things about it. The trick is to produce good results that make clients and users happy and if a tool helps you achieve that goal, then it’s worth using.
“Good” was the rails article “THE MAKING OF A WEB APP: ”
“Impressive” was that article where someone built an app i 30 hours from scratch.
This project took three weeks and produced some really bad frontend code, and wasn’t really even that advanced. Mostly about a form connected to logins.
I’m glad it was posted though, because now people can see why they *shouldn’t* build an app “the Microsoft way”.
I am glad you wrote this, I use .net for my day job and projects. Crowdstatus was written in it. It scales pretty well too, I wrote another app that got 20k hits in about an hour from digg and it didn’t even blink.
I am a mac user and run vs2008 via parallels and have no problems with it.
A lot of people complaining about .net are either using it like java or not tried 2.0+
I have website which has been designed from scratch, without off the shelf packages by a pseudo .net designer. He has now left web-design and taken a job in an unrelated industry. I am restricted by a very inflexible site. Most of the pages except for product pages are hardcoded into the site.
After searching through a number of .net web developer companies I found that no one was willing to work in our existing code. Each company has proposed a package based rebuild. One company has offered Able Commerce 7.0 shopping cart program as fundamental package that will function as both the cms and the shopping cart. The cost is around AU$60,000 to AU$80,000.
Able Commerce is being promoted to us as one of the most powerful ecommerce solutions on the planet. Particularly for it;s SEO meta tagging etc.
I am fundamentally unsure of :
1. whether to stay with .net.
2. whether, if I do, the price is right.
3. whether I should go to PHP?
Our site is aspx but since it has to be rebuilt anyway. I guess we can go anywhere.
Does any one know a reasonably priced .net design company?
We have a yoga meditation and therapy site (very small revenue presently), and want to make online learning our main product offering.
Thoughts from professionals very appreciated!
thanks
Jayne
Hi Jayne, that sounds like a lot of mony for a yoga meditation site to spend. I think that you should reasonably be able to find a solution that would come in at a more reasonable price and still be a professional solution.
You are right that the site could be rebuilt uing any technology if you choose a complete rebuild.
The underlying technology should probably not steer your choice of supplier unless you have a strong reason to continue with some of the code you already own (probably not by the sound of it). I would recommend that the main criteria for selecting a supplier are
a) That they understand your requirements, can be proactive where required and follow your lead when required. That you feel you have a good level of communication with them - in plain english (If they are spouting mumbo-jumbo you don’t understand and don’t care about then how will the two of you be able to communicate about how best to represent your company on the net?)
b) That they can demonstrate a range of delivered solutions that you feel show their competence.
c) That they can supply you with references. Try and make sure that the references are from sites that you feel are strong.
d) That the pricing is sensible and that the promised solution matches your needs.
I would also look for someone who in the first instance is focused on understanding your goals and needs and helping you through the process of understanding what you need for your site. The technology they use behind the scenes should really be a secondary consideration.
I hope that helps. You can contact me if you need using the address steve*at*training-time.com - replace the *at* with an @ sign of course ;-)