Web Forms Model-View-Presenter on Hanselminutes

Over the last few months Damian Edwards and myself have been spending quite a bit of time building out a Model-View-Presenter framework for ASP.NET Web Forms.

Until now we’ve been pretty quiet about it all on our blogs because we were busy polishing off v1 and trying to get all the documentation in order. Nevertheless, the word has definitely started to spread as Scott Hanselman interviewed me about the library on this week’s Hanselminutes episode.

Listen to the podcast

Learn more about the library

Video: Building Fast, Public Websites

Following up from my last post about the ASP.NET MVC vs ASP.NET WebForms debate, we’ve had a second TechTalk posted, also from TechEd Australia. In this video, Michael Kordahi, Damian Edwards and I sat down to discuss building fast, public websites. It was a bit of a teaser for our breakout session at the conference, which will be available online as a screencast in the next week or two.

If you’re interested in learning more about building large public websites on ASP.NET, remember that the full video from our recent REMIX session is still available online too.

Building Fast, Public Websites

Watch Online or Download

Video: ASP.NET MVC vs ASP.NET WebForms – Will WebForms be replaced by MVC?

At the recent TechEd Australia conference, Paul Glavich, Damian Edwards and myself sat down to discuss what we thought about the current MVC vs WebForms debate. Our TechTalk has now been posted on the TechEd Online site, and available for anyone to watch.

Check it out, and feel free to continue the debate with any of us. 🙂

ASP.NET MVC vs ASP.NET WebForms – Will WebForms be replaced by MVC? 

Watch Online or Download

A Career in Business

This is the transcript of a presentation I’ll be giving at a joint schools careers night in Sydney tomorrow. The hosting school are my old high school, SHORE.

I’m here this evening to discuss small business.

It’s my personal opinion that a business degree will prepare you for running your own business little more than your HSC already will.

Your prospective universities may disagree.

Running a business is an expression of entrepreneurialism, and is not something that can be taught or learnt in a class room. They may be able to teach you financial ratios, an obscure set of legal structures and some basic marketing techniques, however each of these are somewhat superfluous to the core of running a business.

Many of the business people I value the most have either never attempted university, or more often, never completed it. The success of these individuals and their lack of (completed) formal tertiary educations should not however be interpreted as a free pass for anybody to skip uni, jump in head first and expect an equivalent outcome. Nor should it devalue the relevance of finance, law, marketing and the myriad of other business-related professions that I have skipped over. Instead, they each highlight what is at the very core of a successful business person; the individual themselves. If business success was a simple as following as defined set of parameters that you were taught in a classroom, the free market economy would simply fail to exist in the first place.

Partnerships

Running a business is a tough road. It requires one to act in many roles and demonstrate a diverse range of skills over an extended period, all whilst maintaining balance and focus. Larry Page and Sergey Brin suspended their PhDs to found Google. The pair’s success serves to highlight what I see as a very important aspect of the individual; the partner. All too often, starting a business is seen as something done by an individual.

Running a business demands a set of behaviours that one person will often struggle to deliver consistently. Particularly during the start-up phase, it can be a struggle to maintain focus in the right areas and avoid the wrong areas, particularly when you’re so passionate about getting it perfect instead of getting it done. Having a business partner can deliver the balance required, as well as a sounding board for ideas and the always needed set of helping hands. I know that I wouldn’t have achieved but half of what I have today without my business partner Tom.

In our business, Tom also provides a complementary set of skills. He’ll leave a lunch with three business leads and I’ll be asking him what the host’s name was again. Our partnership allows me to focus on building out product, and Tom to focus on the capitalization, two processes that require distinct skill sets.

There’s another description I quite like, which is that if you can’t convince one person to join you, you probably want to revisit your idea. I can’t remember exactly where I heard that, but I suspect it may have actually been one of my teachers here.

Someone who I see as being in dire need of a business partner is Mark Zuckerberg, the founder of Facebook. In 2006 Microsoft tried to buy Facebook and arranged an 8am breakfast catch-up. His office responded that “this simply would not be possible, as Mr Zuckerberg would still be in bed at that time.” Around this same time he was still attending trade fairs handing out a business card that read ‘I’m a CEO … bitch’.

Whilst we can all appreciate the humour, Facebook has failed to achieve anywhere near the profits required to match the US$2.2 billion that Microsoft laid on the table. I have some suspicions that Mark would be better served building the website we know and love and leaving someone else to make the deals.

Risk Capacity

Another business you might be familiar with from your computer lab periods is CollegeHumor.com. Launched by two US college mates spreading fliers around their campus, traffic grew organically – and quickly. At the three-month mark, the site was attracting 600,000 visitors per week, largely thanks to a video of a man sitting on a tree stump being hit on the back of a head with a shovel.

What started out as a joking search for advertisers to pay for their beer ended up as an online media business attracting advertisers like Coca Cola and Dreamworks. Had the business failed, Josh and Ricky would have lost little more than their initial $200 investment and their $30 per month internet bill. No doubt, they would have held on to their now extensive collection of funny videos.

Josh Abramson, the site’s co-creator once commented that “the greatest thing about starting a business in college is that there is very little risk.”

He’s right; and you’re in that sweet spot right now. You don’t go broke when you’re 18; you just go back to your parent’s place for dinner. You might miss a night out on the town; but you won’t miss a mortgage payment.

You’re all sitting at the peak of your risk capacity, and shouldn’t be afraid to take advantage of that. I’ve certainly had my fair share of failed ideas along the way. Most just lost time, some lost money and I certainly had varying amounts of cash in my wallet along the way. All of them were good fun though, and all of them prepared me better for the subsequent, and successful, attempts.

Skills Crossover

All of the businesses I have mentioned so far have been web based, but this does not make them purely technology businesses.

Lots of people author good content on the web, but that doesn’t make them good at promoting it. Google does that for them.

Plenty of people can make a funny video, YouTube demonstrates that. The simple act of publishing the video doesn’t make it popular with college students though. College Humor does that.

In their simplest sense, each of these businesses operates on the divide between two different skill sets. Generally, I find this to be the space where the most opportunity exists.

Brendan Powning is a 42 year old rigger on construction sites, with a side hobby of electronics. With 20 years of experience on construction sites, he’s seen countless tools go missing and no great solutions. Using his basic electronics skills he developed an inexpensive motion sensor that could be buried alongside the entrances to construction sites and activated from a mobile phone. Now, every time somebody drives on to one of his constructions sites out of hours, he gets a text message and can investigate.

Having being featured on the ABC’s New Inventors, he’s now developing a successful business around this device. Whilst not an overly complex or unique idea, it took the rare crossover of construction site experience and basic electronics skills for the idea to eventuate and be practical.

Think about the activities, sports and hobbies you participate in today, and where the frustrations exist in each of them. As its simplest level, business is about providing solutions and finding the frustration is generally a good place to start.

Enablement

This can all sound a bit ominous though; finding an idea, finding a business partner, and then (hopefully) finding your first customer. Picking the trifecta is hard, and it should sound at least a little bit ominous because if you’re successful in doing so you’ve done bloody well.

You don’t always have to do that though. There are plenty of useful ideas out there already; more often than not from people who will fail to execute them. Similarly, there are plenty of people ready to achieve, but still looking for that golden idea.

Think about which group you are in now; then find the other.

One of the businesses I run is a based in male fashion PR and export. I don’t know any designers, I don’t know any fashion editors, and I don’t know any fashion trends until they turn up in Chatswood Westfield. I do know how to build a website, my business partner knows how to market it, and our strategic partners know how to make it look good. Our involvement is silent, based around enabling someone else’s idea using our skills.

Closing

Stepping back for a moment, you may have noticed that I haven’t actually used the phrase “small business” since the very beginning of this talk. The techniques, behaviours and skills required in running a small business are equally applicable to operating larger businesses. The experience gained from making those front-line business decisions along the way has given me a respect for the wider organisational context. What may seem right and justified to you at one time is but a single point of view in the tug-of-war that is running an enterprise. Attempting to understand this wider context without having experienced it is an exercise in futility. The consulting role that I am currently engaged in may be one of technical strategy, but I won that role more so from my capacity to engage with the business as opposed to technical flair.

Closing on that statement, I’d like you to leave this evening thinking of business as both an end-game, as well as a flexible opportunity to develop a highly valuable set of skills.

If you’d like to review this talk at another time, the transcript is available from tatham.oddie.com.au, and I’ll ask Mr Scouller to circulate that address.

Thank you.

Tech.Ed AU 08: The Ugly, The Bad, The Good

Bugger it. Despite being ridiculously exhausted, I’m going to write this now because I can’t sleep. I’m also doing it in reverse order to finish up on a vaguely positive incline.

The Ugly

I got rightfully slammed in my presentation evals for ARC402. 44% of the audience were Very Dissatisfied. That placed me with the 6th worst scoring session at the conference.

The general trends were:

  • I represented a knowledge of the subject (42% very satisfied – a positive here!)
  • My presentation skills were satisfactory (47% satisfied – neutral)
  • The information presented was bad (42% dissatisfied with usefulness)
  • The presentation was ineffective (42% dissatisfied with effectiveness)

Armed with an array of comments to analyse, what did I do wrong? Thinking out loud, this is what I’ve come up with:

  • I was put off by the noise from the neighbouring room and the mobile smackdown. I shouldn’t have been affected by this as much as I was.
  • I rushed the content, when I was by no means under time pressure. I generally covered this content as a 20 minute segment at the end of a more holistic ASP.NET MVC presentation. While I had added additional content, and that is generally a rushed 20 minutes, I certainly shouldn’t have been rushing here.
  • I lost the structure. I didn’t introduce myself (which people highlighted in the comments) and somehow I even forgot to ask for Q+A at the end, even though there’s a whole slide that prompts me to do just that.
  • I focused my content too much on the blurb which came from Tech.Ed US instead of thinking myself about the wider architectural considerations. There’s a lot more too it than IoC and some attributes.
  • Despite being crowned the Australian Annual IT Demonstration Champion this same week, my demo crashed and burned. Massive fail here.
  • I’m still not good at dealing with non-developer audiences. This was something that also affected me at Web on the Piste, and is something I need to actively work on. As much as I am a fan of minimal slides + heaps of live code, if the people ask for high level content in an architecture track, it’s what you’ve got to give them.

Summarising:

I failed to identify the key differences between the demands of this session and those demands of previous talks I had done in this technology space. I was over confident in the content and thus failed to properly prepare and update my content for the latest release, the audience and the timing. I’d like to apologize to those who attended and expected more, the content owners who trusted me to be there and the community who supported me in getting there in the first place.

– Tatham Oddie, not-so-demo-champion

The Bad

I’m forever fighting with a balance between helping and helping too much. I was a key person on the Dev.Garten project this year, having done a significant amount of work pre-event including meeting with the client and developing infrastructure. Once the event actually started I began to realise the shear number of things I’d committed to doing throughout the week and that I was being stretched. While there were plenty of great people to keep the project moving, I could have done a better job of documenting the directions I had started and ensuring a smoother handover.

The Good

Despite this post starting on a decidedly (and deservedly) sour note, there were some amazing this that happened during the week.

My other session (TOT352) about Software+Services had a particularly small audience, however came out with 100% of the evals saying the demos were effective and 100% saying the technical content was just right. Ok, so the data is only working off 2 evaluations because there were only about 12 people in the room, but it’s better results than above either way.

I won the national final of the Demos Happen Here comp. Among other things, this means I’m off to Tech.Ed Los Angeles in 2009 and will shortly receive a shiny new Media Centre PC. When I made the original entry video it was an 8 minute demo, however by the national final I had it down to 4 mins 50 seconds which is a real testament to the quality of Windows Server 2008.

I built a Surface application. Amnesia own the only two Surface devices currently outside of the US and were kind enough to let me spend a day and a half playing on it before they took one to the event. It was my first time ever compiling a line of WPF or seeing the Surface SDK but in that 1.5 days I managed to get an application working which would pull session data out of CommNet and display it in response to a conference pass being placed on the table. The Surface team should be really proud of the quality of SDK that they have achieved to make that possible and I look forward to when we finally get to see a widespread public release of the bits.

The table achieved quite a bit of interest throughout the week:

surface5

Photo: Ry Crozier

On Wednesday I had lunch with Amit Mital who is the GM of Windows Live Mesh. Six of us (him, 2x MS, 2x others, me) spent a good 90 minutes discussing some of the longer term visions for Mesh. The original plan was for us to ask questions and him to answer them, but it became more of a discussion between ourselves about scenarios we wanted to see / achieve and him (relatively) quietly taking notes. In the end this was a better approach because it allowed him to walk away with some real world scenarios and didn’t result in us constantly asking him questions he wasn’t allowed to answer yet. PDC sounds set to deliver some exciting changes as we see the release of the Mesh SDK.

Friday lunchtime I was invited to present with Lawrence Crumpton about open source at Microsoft. We were presenting to a lunch of open source alliance and higher education administrators trying to demonstrate that Microsoft aren’t actually evil. Lawrence’s full time job at Microsoft Australia lies around open source and it was amazing to hear some of the things he’s involved in. I jumped on stage after his talk to demonstrate PHP on IIS7 as a first class citizen and talked about leveraging the platform with functionality like NLB. (This may or may not sound very similar to my DHH demo.)

Tech.Ed week is also a big week for Readify because it’s the only time we get to have almost all of our people in the one place. It’s a strange feeling knowing a whole group of people but then meeting them for the “first” time. It was particularly good meeting our new WA gang (Hadley Willan, Jeremy Thake and Graeme Foster) as well as catching up with the out of towners and management teams again.

Friday night was the Readify Kick-off party followed by a company conference / meeting on Saturday.

Who’d have thought I’d get to see my Principal Consultant gyrating his hips on stage with Kylie? I’ve had a quick look around Flickr and Facebook but I haven’t found any photos of the night online yet. I look forward to our resident photographers catching up on their uploads early this week. Update: Links at end of post.

Rog42 came along as a guest speaker on Saturday and delivered a great presentation about some new approaches for community. In a demonstration of how a little information goes a long way, the pizza thing is now pretty superfluous having seen his presentation but I think we can keep the jokes going for a little bit yet. 😉 It was encouraging to see the level of Readify involvement in Tech.Ed.

Overall it was a great week and another well executed Tech.Ed on Microsoft’s behalf. I was privileged to be invited to participate in lots of different ways, albeit with different qualities of outcome. It’s been an eye opening week which has highlighted needed work on my behalf, but also being rewarding for work I’ve already done. I look forward to the next event, and all of the other things that will need to be tackled between now and then.

Update 7-Sep-08: Photos from Thursday night courtesy of Catherine Eibner:

Update 8-Sep-08:

Video: The best web stack in the world

This is the demo I made for the Microsoft Demos Happen Here competition. The criteria was that it had to be under 10 minutes, and show one or more of the features from the launch wave technologies – Visual Studio 2008, SQL Server 2008 and Windows Server 2008.
I chose to demonstrate PHP running on IIS7 using FastCGI, then integrating this with an ASP.NET application before finally load balancing the whole application between two servers in a high availability, automatic failover cluster.
I managed to do all that with 2 minutes to spare, so I think it’s pretty clear that Windows Server 2008 is the best web stack in the world.

http://vimeo.com/1439786

Update 5-Sep-08: I won. 🙂 

Tearing down the tents (and moving them closer together)

Being fairly focused on Microsoft technologies myself, I see a lot of the “us vs. them” mentality where you either use Microsoft technologies, or you’re part of “the other group”. Seeing Lachlan Hardy at Microsoft Remix was awesome – he was a Java dude talking about web standards at a Microsoft event. The more we can focus on the ideas rather than which camp you’re from, the more we’ll develop the inter-camp relationships and eventually destroy this segmentation. Sure, we’ll still group up and debate the superfluous crap like which language is better (we’re nerds – we’ll always do that) but at least these will be debates between the sub-camps of one big happy web family. (It’s not as cheesy as it sounds – I hope.)

What’s the first step in making this happen? Meet people from “the other group”!

The boys and girls at Gruden and Straker Interactive have put together Web on the Piste for the second year running. It’s a vendor neutral conference about rich internet technologies – so you’ll see presentations about Adobe Flex and Microsoft Silverlight at the same event (among lots of other cool technologies of course). These types of events are a perfect way to meet some really interesting people and cross pollinate some sweet ideas.

It’s coming up at the end of August, and I understand that both conference tickets and accommodation are getting tight so I’d encourage you to get in soon if you’re interested (Queenstown is crazy at this time of year).

And of course, yours truly will be there evangelising the delights of Windows Live as well as ASP.NET AJAX to our Flash using, “fush and chups” eating friends. 🙂

Will you be there?

Video: ASP.NET MVC Preview 3

Last night I gave an introduction to MVC at the Wollongong .NET User Group. We had a bit of time at the end, so I also covered off Inversion of Control (IoC) and how it can be used with the MVC framework.

The talk assumed a working knowledge of ASP.NET, but required no existing knowledge about ASP.NET MVC or IoC.

You can watch it on Vimeo:

Tip: Watching on the actual Vimeo site instead of this embedded player will give you a bigger and clearer video.

Or download it as a WMV:

http://tatham.oddie.com.au/presentations/20080709-WDNUG-AspNetMvcPreview3-TathamOddie.wmv (64MB, 68min)

Tip: Learn through sharing

Finula sent out an email yesterday asking a group of us to supply some tips for being a successful developer. The short versions will get included in this afternoon’s MSDN Flash newsletter, and we’re each blogging our full response.

My personal advice is to recognize the power of learning through sharing. Coatesy touched on the idea at the end of his own tip.

Attending user groups is one thing, but getting up and contributing your own knowledge is what really drives these groups. You’ll be pleasantly surprised at how much you’ll actually learn about a technology if you step back and prepare a presentation for your peers which explains what that technology is, and how it works.

One of my work mates, Steve Godbold, recently delivered a presentation about LINQ. In prepping for the talk he knew he’d need to explain expression trees, and he guessed he’d get some questions about LINQ to SQL vs LINQ to Entities. Pleasantly shocked about how much more there was to know about LINQ, he’s know turned this prep into a series of blog posts too.

Presenting isn’t for everyone though, but this is where blogging steps in. It might seem a bit egotistical at first to think that people want to read what you have to say, but the reality is people genuinely do! Think about the number of times you’ve ended up reading somebody’s blog post before to help you solve a problem. Posts don’t need to be technical wizardry to warrant publishing either – it’s often the simple little tricks that people find real value in. One of my more popular posts describes how to do a hover effect in CSS. It also opens up your ideas for others to comment on, which might prompt something you’d never thought of before.

Hopefully this will give you a bit of inspiration to get up and really participate in the vibrant technical community around you.

What now? If you haven’t already, subscribe to MSDN Flash, submit your 10 minute demo for the chance to win big prizes, contribute to your local user group, and start a blog.

What’s your tip for being a great developer?