Last Friday (11/6/2009) I attended the Tulsa Tech Fest held as OSU-Tulsa. Overall the speakers were very good and I learned quite a bit so I would consider it well worth my time. There were several times that I couldn’t see everything I wanted due to overlap, but I suppose that also shows how good the topics were. Here are the session I attended with my reaction to each:
.NET Entity Framework
Probably the session I was most interested in going into it, but probably also the most dissapointing presentation. The speaker was a little to “salesman” for my tastes, as at one point he blatently non-answered a reasonable question about an obvious weakness of the framework, and by that I mean he side-stepped the question with what sounded like “marketing speak.” The technology itself is still impressive, though, and I do enjoy how it is much more strongly typed than NHibernate. Less magic strings are always better. I also like the object manager side of things were you have a single source for object state/validation which is nice. Everything else corresponds quite nicely to NHibernate (entity context = session, kthx?), but of course with better tools. Not NHibernate’s fault for not having visual tools, of course, that’s out of scope for them. I’m seriously considering integrating this into CodeLibrary version 3.0.
Attended this with Brian Bickell, who I’ll let cover this in more detail since this is more his domain. Really I just attended it because I know how to use C# generics already, but I am very glad I went to this. Chris Koenig made a very simple and dry topic interesting, though, and he’s definitely one of the better Microsoft Evangilists I’ve met. He was very honest about the product and in general just a cool dude. SQL Azure is pretty neat, but of course carries some limitations since your in a cloud environment. Probably not a good fit for my current projects, but who knows what the future will bring. I’ll keep SQL Azure in mind at the very least.
Why Projects Fail
Unfortunately the only session I could attend in project management track. Brian joined me mid-way through this one since the speaker for the SQL track session was sick. The speaker Boyd Evert was very good. His main point was that projects fail because software is hard, and he explored why that is a little bit. The main advice I got out of it is split things down into as little pieces as possible, so one thing can’t throw off your plan too much. Also there’s a lot of social work to be done to make sure team skills compliment the project and such. Most of the points are obvious, but a good idea to review them from time to time to keep them fresh in the mind. Low-light of the session was when an audience member became “that guy,” jumping down the speaker’s and original questioner’s throats because they equated “short release schedules” to “agile programming patterns.” Although the guy claimed to have “30 years experience teaching project management” he was just a big windbag and instantly became the day’s re-occuring joke amongst the interworks crew. Good Jeorb, guy. Boyd handled it gracefully, however, so the experience wasn’t totally ruined.
Absolutely my favorite session of the day. Chris Patterson was able to sell me on this whole “MVC” thing. Granted I had been leaning towards it in theory before, but since he focused on code examples instead of the high-level architecture I was able to clearly see the tangible advantages (well, as tangible as software gets anway). The strongly-typed data binding was particularly impressive. So instead of having:
(x => x.Name) %>
Which though it looks a little less friendly (at least to someone new to MVC framework) it provides compile-time checking. Very cool. Pretty much a lock for use in for CodeLibrary v3.0 – I downloaded it the next day and will be using it for personal projects to try and find the gaps that CodeLibrary will have to fill.
Test Driven Development in C#
Very good session about test driven development, primarily because Brett Schuchert is a TDD evangilist, but not a zealot. Like Chris Patterson he took the approach of “let’s work through a small project together” rather than a formal presentation which worked very well for TDD in my opinion. He also covered mocking/stubbing in a way so that I am finally confident I understand not just what it does but also how to accomplish it. I still don’t think TDD is a very good fit for web projects since there is so much state to worry about and at Interworks we usually work on the UI as the same time as the other layers. If we truly worked from the bottom-up then it would probably work better for us. I think at least for now we’ll stick with agile methods and just try to make as much unit test coverage as possible. I’ll probably try to push to make sure we design more inversion of control in our architecture to make testing easier, though.