On Wednesday I presented a session on troubleshooting ASP.NET production issues at Developer Summit 2008 in Sweden. It offered a lot of good presentations as usual, and here is a summary of the ones I went to along with some links related to the topics they were covering.
I will write a separate post about the presentation I did along with a download for the actual presentation.
I spent most of my time on the Web track and I was only there for the first day since I had to get back to work to take care of my customers yesterday.
Building RIA with Silverlight 2.0
Robert Folkesson, Microsoft
Nikhil Khotari was supposed to deliver this session but unfortunately he was not able to make it so Robert, one of the Developer Evangelists in Sweden presented instead.
In the presentation, Robert covered the differences between 1.0 and 2.0, and showed off communication with WCF services, socket communication, Data binding and filtering, Styles, Isolated storage etc. and of course DeepZoom.
You can find his presentation here if you click on the “hittar du här” link. (Note: The presentation is in Swedish)
Note: This link is unfortunately no longer available
I have gone through a lot of the demos out there so a lot of this was a repeat, but it is always nice to see it done live.
My biggest takeaway from this presentation was the discussion about DeepZoom and Sea dragon, and of course Isolated Storage as these are areas that I have read about but haven’t tried out myself.
There are of course tonnes of good material on Silverlight, especially on http://silverlight.net but a great starting point with demos is Scott Guthries First Look at Silverlight 2.
In regards to Deep Zoom you might want to check out Photosynth, Seadragon and Deep Zoom Composer. And also the BigPicture project from Vertigo that is used to give mousewheel support to Deep Zoom.
Inside the Facebook Development Platform - Past, Present and Beyond
Benjamin Ling, Facebook
This was a very interesting session about the evolution of facebook and the facebook development platform. I and apparently 71 million other people have facebook accounts, the growth of facebook is just amazing. I have to admit that I am more than a little weary of applications like these. I don’t really like the idea of everyone knowing everything about you. But I am strangely fascinated by this type of social applications, especially when it comes to how fast things can spread on them, and I can definitely see a potential for new application developers on facebook, given how many potential users you can get.
Benjamin got the question, where do you think the web will go next? what is the future? and he answered that he saw a definite change from long term engagement with media to more short term interactions. For example, the move from TV shows, news papers, movies etc. to YouTube clips and blogs. And also moving from 1:1 conversations to broadcasting conversations (eg. facebook, twitter and other similar tools) where people get information about each other without committing to a 1:1 interaction.
I guess I’m still living in the old world, I prefer tv-shows and movies to clips, I like RL conversations, and I read the newspaper every day (even though I also probably read more blogs than the average Joe).
Microsoft ASP.NET MVC Framework
Fredrik Normen, Cornerstone
Fredrik has a great blog on http://weblogs.asp.net/fredriknormen/ where lately he has been focusing a lot on the MVC framework. The MVC framework is an alternative way to write asp.net web forms that builds on the Model View Controller concept.
The idea here is that rather than having the view, the business logic and the data retreival in one and the same location, MVC separates the view from the controller and the view is simply there to display the data produced by the controller. I have to admit that I haven’t looked at this in great detailed but from what I have seen so far the biggest win is that you can test the controller separate from the view so that you can perform real unit tests that are a bit harder to perform on standard web forms.
The MVC is an alternative to web forms, not the future of web forms, and like Fredrik mentioned in his talk, the people who will probably like this the most are developers who just recently moved from ASP and haven’t yet gotten used to ASP.NET.
I must say that I am a bit torn on this one, I like the ideas behind it, but on the other hand I love the ease of use of regular web forms, their web controls, view state and data binding. I am sure this will change a lot before MVC goes live but it does feel like people are going to miss using some of the web forms controls if they move to the MVC way of doing things.
I already mentioned Fredriks blog which has a lot of good samples. I would also recommend the ASP.NET MVC Framework Roadmap on Scottgu’s blog.
Work ethics in software development. What signifies a good developer?
Joakim Sunden, Avega
Sometimes when you go to these seminars you find a great one where you least expected it :) I mean I know pretty much what I’m going to get from an ASP.NET MVC session or from a Silverlight 2.0 talk, but from this one I really had no clue.
Joakim asked the question
If we know how to write good code and we know how to test it and the benefits it has on the quality of the product, why do we allow ourselves to write bad code and sacrifice testing? What would happen if a doctor just decided one day that he doesn’t have time to wash his hands before a surgery?
Time and money is of course always a factor when deciding what is necessary and not in a project, and that won’t really change, but his points was that if we want to keep the work ethics in software development we shouldn’t budge on quality and testing. If we do, we don’t value ourselves and our work.
He also talked about how most/a lot of developers come out of college and never receive any training again during their entire career. His main statement was, it’s time to put our foot down and demand collectively to be allowed to write good quality code and not have to budge on testing.
I saw a lot of nodding heads in the audience but I have a feeling that changing these kind of things is very hard. I know this is a bit of a controversial statement, but If you are a consultant it might not even be economically correct to spend a lot of time writing high quality code since the project bids are usually so low that they don’t allow for a high investment in development, so the cost recovery has to happen on the back end in the “upkeep/support” phase.
If buyers were willing to spend more money on the initial part and less on the upkeep that would probably lead to better quality code but that is something that is very hard to change.
For product development it’s a different story as support for “bugs” or “defects” is usually free to the customer so every bug/defect costs a lot of money rather than being part of the cost recovery.
Joakim mentioned a few things that he thought were good practices in order to produce good quality code. Of course test driven development was in the top and he mentioned a few other things as well.
One thing that I want to add that I think is really important, is investing time in learning the development platform and how it behaves. For .net that would be the CLR and the GC first and foremost. So that you have a high level overview of how things will behave and what pitfalls to avoid.
And of course stress testing, especially asp.net applications, so that you can avoid a lot of the production issues.
Microsoft Booth: The Naked Coder
Johan Lindfors and Jenny Nyberg, Microsoft
Johan Lindfors and Jenny Nyberg manned the Microsoft booth at Developer Summit.
This year the big pitch was for The XNA Framework, a set of .net libraries that allows you to develop games for Windows and XBOX 360. This spring there will also be a preview for XNA development for Zune which I am extremely excited about.
Before the conference the participants got a chance to submit suggestions for XBOX XNA games and Johan “The naked coder” developed the winning game at the Microsoft booth.
The winner was a combination of Guitar Hero and Asteroids called Guitardroids where the goal is to destroy asteroids by pushing the correct buttons on the Guitar Hero guitar. You can see a video clip of the result here.