Missed
DevReach 2011? Take it easy, I have you covered. You are also free from the need to have your own (potentially wrong) opinion and you can use mine which is of course correct.
There was a bit of a fail with the registration. There were four queues for passes each one for a certain range of letters in the alphabet but someone decided to divide the queues so that each of them had equal number of letters instead of having equal number of attendees whose name started with the letters. So the first two queues were overcrowded while the fourth one had very few people.
We got the traditional shopping bag with that useless .NET magazine that has nothing to do with .NET. Of course this is entirely Microsoft's fault for choosing this bizarrely stupid name for their main development framework. How do you search online for something that is among other things a top level domain?
There was no lunch included in the price but there was plenty of coffee, muffins and fruit (no doubt a tribute to
Fruit Dealer). The event took place in the Arena Cinema which meant that the chairs were extremely comfortable and the screens on which presentations were projected were actual movie theater screens.
The keynote was presented by Scott Hanselman. If you do not know who
Scott is let me put it this way – Scott is for tech presentations what Anders (Hallowed be His name) is for programming languages or Scott is for tech presentations what
SlayerS Boxer is for e-sports. His presentation covered Microsoft's Web Stack both the past and the future. A good part of the talk was dedicated to Web Forms and he made sure everyone understood that it was not dead. In fact I think he talked about the future of Web Forms more than he did about the future of ASP.NET MVC. As always his talk was filled with a lot of jokes.
I have seen several world famous presenters that talk on events like PDC, MIX or TechEd but frankly I never felt like there is much difference between seeing the session live or watching a video. Of course if you visit an event you can ask questions and talk with the presenter after the session but the feeling of the actual talk is not different. However with Scott Hanselman it was different. It seems like the difference between seeing him present live versus watching the videos is similar to seeing a band live versus watching a recording of the concert. His sessions have spirit.
Scott asked me to pose for a picture with him and do his famous action pose There was a second keynote by Jesse Liberty on development for Windows Phone 7.5 but it was kind of boring and Jesse seemed like totally noob presenter after Scott. No one deserves such a punishment – going on stage after Scott. At least the embarrassment was short.
The first real session I visited was Common Design Patterns by Steve Smith. He is one of the speakers I like a lot because he speaks fast but remarkably clear English. His sessions are useful too. This particular session dealt with some common design patters (surprised?) like Singleton, Strategy, Command, Repository and Factory. They were used together in a small application to highlight their benefits instead of just mentioning them. According to Steve Singleton is a bad practice but not for the usual reason which is that it is a euphemism for a global variable. He claimed that it is a bad because it violates the single responsibility principle by making the class responsible not only for the task it is supposed to solve but also for managing his own creation. His proposed alternative was using an IoC container to manage the lifetime of the object. I am not convinced this is the right approach because it depends on unit tests to guarantee that people will get an instance properly instead of just new-ing up one. I do not trust unit tests and people. I trust the compiler.
The second session I visited was Making Your Blog Suck Less by Scott Hanselman . It was funny and contained a lot of interesting tips. Unfortunately most of them were not applicable to this website because it is not only a website I write articles for but also my pet project. I cannot just install some Wordpress plugin and while I can develop most of them it would take time. It was interesting that Scott's main reason for blogging is similar to mine. He calls it "saving keystrokes". I started writing here because I was tired of explaining the same thing to five different people. If you have a personal website you just give a link. It is interesting how after a year or so you sometimes pull out an article to answer questions. Scott did it live and it was pretty cool. Someone asked him how often he writes on his blog and he pulled an article for this. It has happened to me too and it is satisfying when you get to that point. This is when you know you have something useful.
The third talk I attended was about SQL Server "Denali" Contained Databases. The presenter was some guy from Serbia called Dean Vitner. Frankly he did not do a very good job. The session was kind of boring but I learned a bunch of useful things about databases like what a collation is. These things are useful but they further confirm my opinion that database devs are masochists. The contained databases are a feature that allows for reduced pain by packing up some settings of the database and the server into the backed up database. I cannot help but wonder why would anyone want a language that is case sensitive or not based on a setting?
Performance Tuning ASP.NET - Stories from the Trenches was a presentation Steve Smith and
.NET Rock's Richard Campbell where they talked about different performance horror stories. While the talk was interesting and the problems were non-trivial they seemed like totally noob problems compared to the real
ASP.NET horror that we encountered. Most of the problems discussed were around caching.
On the second day we arrived an hour early because we really love getting up early in the morning.
The second day keynote was about The Future of Software Now: NUI - A New Genre of UX presented by Tim Huckaby. He talked about history before going on to present (touch), then the almost present (Kinect) and the future (a video about existing software controlled with thought)
ASP.NET and Mobile – v.NEXT was a talk that dealt with mobile features coming in the next version of ASP.NET MVC and JQuery Mobile. I know the topic sucks but the presenter was Scott Hanselman and the hall was totally overcrowded.
.NET Rocks Live: Starting Your Own Software Business – was a recording of a .NET Rocks show featuring people who created their own software business - Tim Huckaby, Lino Tadros, Stephen Forte, Carl and Richard. They did not say anything I did not know from when I had my own business (an Internet Café) but the stories were interesting and funny.
Improving ASP.NET MVC Application Performance was another session by Steve Smith that I visited. He showed interesting micro optimizations of ASP.NET MVC like disabling unused view engines, comparison of performance of view engines (Razor is slower than the Web Forms view engine but it still can serve like 7000 requests per second), avoiding passing null viewmodels to the views, etc. The asynchronous actions feature of ASP.NET MVC seems worse than the asynchronous pages in Web Forms because it requires the use of AsyncManager but I guess they did not try very hard because they are waiting for C# 5.0 to fix async operations once and for all.
After having fun for almost two days I decided that it is time to learn something useful. When you want to learn something useful you visit a presentation by Vladimir Tchalkov. His sessions rarely deal with the newest or shiniest framework. Most often they are about something old but little known. This time he decided to talk about How to Work with Certificates and Digital Signatures in .NET – Tools and Practices. As it turned out the session focused on signing XML documents. It confirmed my opinion that cryptography is scary. If you are not an expert you are going to fail. It does not matter how clever you are there are subtle errors you will make. However even if you are not using encryption it is extremely easy to fail. Vladi showed how 10 lines of XML can DOS your server if you are using the default .NET settings for loading a document. Try pasting this XML in an XML document in Visual Studio if you do not believe me but make sure to save your work before doing so because you will likely need to restart.
<!DOCTYPE test[
<!ENTITY a "0123456789">
<!ENTITY b "&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;">
<!ENTITY c "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;">
<!ENTITY d "&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;">
<!ENTITY e "&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;">
<!ENTITY f "&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;">
<!ENTITY g "&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;">
]>
&g;
The last session I attended was Have Your Cake and Eat It Too – Using the
WebFormsMVP Framework to Develop Testable Web Applications by Charles Nurse. The presenter was not fun but he was competent. He works on
DotNetNuke. MVP is of course the Right Pattern and even BlogNET is being refactored to use it in the long awaited version 2.0 (no we cannot announce shipping dates). There was interesting information about the way the framework used the pattern. It is different from the way we use in BlogNET and it seems there are some advantages and disadvantages to both approaches. Theirs is to make the view completely ignorant of the presenter by using events but this makes the view somewhat heavier. Sadly there was too much focus on actual tests instead of the pattern.
Overall the event was pretty good. If Scott Hanselman was not present I would rate it as a mid-level DevReach event (which is still quite high because DevReach is the best Bulgarian IT event I have visited) but with Scott's appearance it is easily the best IT event in Bulgaria ever.