Real World Entity Framework 4.0 and ASP.NET 4.0: Interview with Howard Baines
One of my colleagues pointed me at Howard Baines as a recent example of a web consultancy already using Visual Studio 2010 and Entity Framework 4.0 to build web applications. I managed to grab a little time with co-founder Clive Howard (on twitter) to talk through some of the decisions, especially as I was intrigued to learn that they started out on Open Source Software including Ruby on Rails before switching to the .NET Framework.
We discuss:
- Why switch to the .NET Framework?
- Entity Framework 4.0 experiences
- Choosing between Web Forms and MVC
- Targeting HTML5
- and more
This is me and this is Clive:
You are a relatively young web development company. How did it come about?
My business partner Jeremy Baines, and I met at some shared office space we were both using. He was running a small web design company specialising in Web Start-ups (and founded his own web start-up built on Rails). My background is in development (Microsoft platform) working for more traditional businesses which is what my company did at the time. We decided to come together to offer a full design/dev service and therefore be able to deliver much more of the end solution.
I understand Howard Baines started off using Open Source Software and web frameworks such as Ruby on Rails but switched to Visual Studio 2008 and now Visual Studio 2010. Why was that?
When the company started we were working for web start-up clients who preferred Open Source technologies. Having a background in Microsoft based development and seeing the benefits of that platform (framework, tools, servers etc) over these others it became an aim of the company to move start-ups over. The integrated nature of the platform, framework and tooling that Microsoft offers means that we are able to develop high quality solutions much quicker than with many of the alternatives. We find that the “over time” costs are also lower with far less support required (or rather we found open source based solutions needed high levels of ongoing support). That all means less dev time and therefore less cost which is what start-ups like to hear (who doesn’t!).
Do your developers miss anything with the move to the .NET Framework?
Our developers are outsourced and so we did not have to convert any but rather convince prospective clients. Given the opportunity to have a conversation with them about the short and long term benefits of the platform for their business and armed with our experience of OSS they are usually won over. The key was to not talk “tech v tech” but rather make the business case for the Microsoft platform over the likes of RoR. The BizSpark program has helped a lot and we’re lucky to have some Microsoft folks in the UK who have become well established in the scene.
Do you still use OSS as part of your .NET solutions?
Yes, we do. There are applications such as WordPress that are extremely popular with clients (both start-up and traditional businesses) that provide great solutions for certain scenarios. A typical scenario is their application being built on .NET but their blog using WordPress. We can host them side-by-side on Windows Server which is great and allows integration between applications. Within the start-up space and especially around social media the use of web APIs is prevalent and therefore we are often accessing third parties in this way who are frequently open source based.
With https://www.fundthatdeal.com/ you made the switch to .NET 4.0 and Visual Studio 2010. What technologies/improvements were most appealing and why?
As a start-up “Fund That Deal” was keen to get something to market as soon as possible and keep costs under control but also have something that would grow over time. Looking at VS2010 and .NET 4.0 we saw certain benefits that would enable us to deliver their solution faster. As we were starting from nothing we thought it was best to be on the latest platform from the get go. We knew that we were going to be using Web Forms and .NET 4.0 provided enhancements that would really help us (more below). There were also productivity enhancements in VS2010 such as Intellisense when working in C# or connecting to a database and writing T-SQL (without having to open Management Studio) which appealed to us in terms of speeding up development.
Entity Framework 1.0 had a very mixed reception. How are you finding 4.0?
We worked with EF1.0 internally when it was released and found that it had a number of issues mainly in the tooling that meant we decided to stick with LINQ to SQL. V1 seemed to promise a lot and so when EF4.0 came about we were keen to go back to it. We are only just starting to get to grips with it and I think there are still some issues but we will use it by default from now on. Our main interest aside from the benefits of an entity based approach is that projects increasingly require web services whether for AJAX or creating other interfaces such as mobile. EF with WCF Data Services is ideal for this and when we built “Fund That Deal” we knew we would need a web service for certain AJAX features. We could quickly create a WCF Data Service based on our EF model and this allowed us to get on with other development without spending a lot of time creating the web service.
You went with Web Forms rather than ASP.NET MVC. How did you decide between the two very different approaches to web development with .NET?
Our experience is traditionally in Web Forms and it is our natural choice. Web Forms provide great benefits with respect to productivity within Visual Studio. We find that we can put together a robust and scalable application quickly as we are writing a lot less code whereas MVC seems to require more coding. MVC appears to be evolving fast and so this may change.
What new elements of Web Forms did you take advantage of?
The main feature was the improvements around mark-up and being able to use controls that output CSS friendly HTML rather than tables for example. We had increased control over the final HTML mark-up while still benefitting from being able to use controls within the VS designer. Usually a different developer will create HTML/CSS templates that are then brought into VS. The mark-up improvements in .NET 4.0 means there is little work to do on the templates because .NET isn’t injecting its own code. We also made use of the ability to have controls use specific IDs which was helpful in the context of using jQuery. It is also great for SEO to have easier control over the page META tags. I would also like to say URL routing but we only used that in a small way on “Fund That Deal”.
What approach do you take to ensure that a website like https://www.fundthatdeal.com/ works greats across all internet browsers given the popularity of browsers other than Internet Explorer?
This has always been a major issue and it’s better now than it was 10 years ago with respect to standards compliance. Within our team there are different OS platforms and browsers in play and so every project is inherently experienced through multiple browsers which helps. We always start by creating HTML templates which are tested in the major browsers plus any others that the client requests. That way we resolve most issues before .NET gets involved. We run different browsers across different machines and have VMs for browser versions such as older flavours of IE (though we are trying Expression SuperPreview). It is an ongoing battle with constant testing and I’m sure there are still a few quirks in “Fund That Deal” which will get ironed out over time.
With IE9 promising to offer HTML5 support, do you expect to be using the new HTML5 features in the near future?
The iPhone/iPad means I’m sure we will be doing some HTML5 but it may be a while before we do anything on the desktop. For many customers the lack of HTML5 support across the majority of users will be off putting initially. Clients are reluctant to invest in two versions of the same site for the same audience (for example, one HTML5 and one non-HTML5). For us the tooling support for HTML5 will be a big factor in how fast we adopt it. If a client were to opt for a non-universal RIA technology then I would rather suggest Silverlight (especially since VS2010). We still get a lot of pressure for IE6 compatibility!
And finally, what would you like to see Microsoft doing more of (or less of) in the Web development space which would make your business just that little bit easier?
We would ideally like to be creating Silverlight based frontends to address the cross browser and HTML5 issues discussed above. Unfortunately we feel that there is not enough promotion of the benefits of Silverlight (and RIA) aimed at end customers (our clients). More detailed stats and info about how RIAs and UX helps businesses in terms of productivity or user adoption for example would be very helpful. Team Foundation Server in the cloud would also be great for those of us with geographically distributed teams who want a cost effective solution.
That is great Clive. Thank you for your time.
Related Links: