As it turns out October is a conference-heavy month. Just ten days after
Java2Days 2010 I visited
DevReach 2010. Like
last year the event was held at the Arena Cinema in Mladost, Sofia – a venue that is really big and comfortable. The presentations are projected on actual cinema screens and the audience sits in comfortable cinema seats. The conference had visitors from most countries from the Balkans and some visitors from more distant countries like Germany and Norway and they were not speakers. This meant that even Bulgarian speakers did their presentations in English...
Day 1
The conference started with several keynote sessions. Richard Campbell of .NET Rocks fame was in the role of an M.C.
The first keynote session was The Future of UX Technology by Scott Stanfield CEO of
Vertigo Software. In the .NET world Vertigo are known as one of the Microsoft partners who get on stage to show some pretty cool app when Microsoft are announcing new technology. It seems like Scott is a UX/UI freak and a devoted Apple fan. He gave his presentation on an iPad and showed some of the UX concepts implemented on the iPad itself. I learned what the difference between a typeface and a font was. The session was really interesting and Scott is a talented speaker.
The second keynote session was Experiencing the new IE 9 by Roman Russev from Microsoft Slovakia. It made me wonder how Microsoft manage to sell their products. The guy was a bad speaker with bad English and he made a boring presentation. I managed to fall asleep which is not much of a waste because I feel like I know more about IE9 than he does.
The third keynote session was presented by Beth Massi who is a product manager on the Visual Studio team. It was about the new Visual Studio LightSwitch which is obviously made to compete with PHP for the hearts of beginner developers. While Beth seemed a good speaker I could not care less about this useless product and truly wish Microsoft spent their time on stuff that I can actually use. Let me remind you that I had to get up at 5:00 A.M. to get to this conference so I promptly fell asleep on this presentation as well.
The first actual session that I visited was Anti-Corruption Layers by Donald Belcham. Basically he advised creating wrappers around everything we used including visual controls. I find this stuff pretty basic for a whole session despite the fact that I am too lazy to do it in actual projects. Maybe I should pay more attention to the level score (200) next time. There was an interesting mini discussion about composition (wrapping) vs .inheritance.
How to Partition and Layer a Software Application by Michael Stiefel was a session about reducing the coupling between layers and actually showed that a normal application has a lot more layers than one would expect. He managed to create a simple app that consisted of about ten assemblies in two solutions. Most of the stuff did make sense but I think that if you follow all of these practices and you have less than 10 developers working on the project (i.e. it is not extremely large) the project is probably suffering from overdesign.
Kanban vs. Scrum by Joel Semeniuk was an interesting presentation about a process of development that I had never heard of before called
Kanban. As it turns out the concept is invented by Toyota for manufacturing and can be applied to software development. The process can be applied to different software development methodologies especially agile ones. A part of the lecture explained how you can apply Kanban in a Scrum environment. I think that this process makes much more sense than actual Scrum which I feel is more of a trendy thing than something that produces actual results.
Building RESTful Applications with the Open Data Protocol was a relatively standard session on OData. However the presenter is one of the coolest and funniest presenters I have ever seen live – Stephen Forte. After the session I had quite long conversation with him about the struggles I am having with WCF Data Services. The moral of the story is that OData as a protocol is the coolest way to do REST. In the past weeks I read about one third of the actual specification and all other REST stuff out there including the Twitter and Facebook APIs is just primitive compared to OData. You know there is a catch, don't you? If you want to produce an OData feed right now you need to be using an ORM or at least be able to hold all your data in memory. Everything else will cause you severe pain and you will probably fail like I did. This may change in the future because there is nothing in the protocol that makes it impossible to create a good producer library that does not rely heavily on ORM but the fact it that this library does not exist at this point in time. What is more despite the fact that there are client libraries for every major technology the only non-.NET producer currently is the Java based WebSphere from IBM.
Day 2
In the first day I visited a lot of heavy and abstract talks about architecture, practices and other slightly boring stuff. I decided to start the second day by visiting what I considered a recreational presentation on game programming with Silverlight. As it turned out the session was cancelled and was replaced with an HTML 5 presentation. While I was considering going to something else I realized that the speaker was Scott Stanfield whose keynote presentation I liked so much. He gave an interesting talk on HTML 5 discussing the politics behind it and how the new features (most notably the video tag) are adopted by different browsers. I was about to start a discussions about the questionable priorities of browser vendors when implementing HTML 5 but the session was already overtime. Expect my rant on HTML 5 very soon.
Dynamic State Storage Using the ASP.NET Provider Model was a presentation by Miguel Castro that dealt with the details of implementing your own provider for ASP.NET. It was not about creating an alternative implementation of the built-in providers like Membership but creating your very own provider instead. The demo itself was building a storage provider that could be configured to use Session, Cache or Application as a backing store and had some additional options. The only reason why I do not consider this presentation very useful is because I always imagined building a custom provider exactly like this despite the fact that I have never read or seen anything about it. Everything seems really straightforward. You just inherit from some base class, declare your configuration options via some attributes on properties and pretty much that is it. On the other hand Miguel Castro is really fun to watch and listen to.
After lunch I visited Vladi Tchalkov's presentation on CLR in SQL Server. The presentation was deep and interesting as his presentations always are. I cannot explain the actual interesting stuff here but it was one of the best presentations on DevReach this year.
Tightening Web Forms Screws was a presentation from Miguel Castro for ASP.NET developers to help them build good Web Forms systems and stop embarrassing themselves in front of the MVC guys and the non-.NET world. I feel these kinds of talks are really needed because the way ASP.NET Web Forms is taught is usually very bad and incomplete. I did not find the talk particularly useful to me though because I knew almost everything he showed. I also felt that he might focus on some more complicated issues like handling the One Form to Rule Them All problem.
Worst Practices and Anti-Patterns by Steven Smith was a session that pointed out some of the worst practices in software development like leaving unused code in the project, feature creep, tight coupling, etc. Steven is an excellent presenter and I admire him for speaking fast but remarkably clear English. I asked a question about applying best practices and getting motivation for doing so in a legacy project full of bad practices. He recommended a book for working with legacy code and explained how you should isolate and rewrite pieces of the project with good practices. This is what we are trying to do but in practice it is not as easy as it sounds in theory.
The last session I visited was about EF 4 and was presented by Branimir Giurov. For some reason in the list of sessions it was called "The Power of the Conceptual Model" but it did not deal with the conceptual model at all and the actual session was "What Is New in EF 4". At first I was disappointed not because the session was bad but because it was the same session from MS Days that I had already seen but at the end there was a good discussion about the best practices when
storing files in the database where we all agree that we should store user-submitted files, right?
Everything ended with a raffle where I did not win the Xbox… again.
The organization of the event was O.K. There was plenty of water, treats and fruits (undoubtedly a tribute to the great Fruit Dealer*). There were two Xbox consoles in the lobby where people could play Call of Duty and The Beatles: Rock Band. While the DevReach speakers were traditionally better MS Days 2010 wins in terms of organization for having lunch included in the price, many more side events including video games tournaments, having electronic (as opposed to paper) feedback forms and most importantly being rock themed.
* A StarCraft II player who recently won the largest (in terms of prices) e-sports event I know of – the GSL Season 1