The Dallas Code Camp held today turned out to be a great success. All of the volunteers did a great job despite some jolts and the event came together quite well. Initially we thought the attendance numbers would be low, but we were able to fill most of the rooms to capacity (some actually went over). Below is a summary of my thoughts on each of the sessions that I attended.
.NET Generics with Ken Byrd
This was a very interesting session giving an overview on how to use Generics in .NET 2.0. While I had initially used Generics for simple tasks like converted untyped ArrayLists into Type-specific Lists, I had only gone so far with them. Ken’s talk gave me an overview of the true power of generic lists with regard to Swapping, Sorting, and Finding. These are options I can immediately use in my daily job as we end up working with strongly typed lists quite a bit.
C#3.0 Overview with Tim Rayburn
Tim Rayburn is a very energetic speaker with a great ability to entertain as well as inform. I have known him as a friend and colleague for the past year after attending his talk last year on Biztalk. This year, he gave a talk on C# 3.0 that gave a good sneak preview of some of the cool features coming to C# including Implicit Properties, Implicit Variables, Object Initializers, and Extension methods. The talk was great because Tim made no use of PowerPoint and simply wrote code during the whole session. I was initially dubious of the usefulness of some of the more obscure Ruby-like concepts which seemed ripe for abuse in future development. However it all made much more sense when I got the full overview of LINQ later in the day since it seems that much of C# 3.0 was built specifically for LINQ. Tim’s talk provided a great foundation which made the LINQ concepts far easier to understand.
Software Development Chalk Talk with Dave McKinstry
Dave McKinstry held a small session with a group of developers to discuss the Software Development Process and share our experiences with it. Dave is a development process consultant for Notion Solutions and he is also the first development process consultant I’ve heard of. After speaking with him, I can immediately see the value in bringing someone like him in to evaluate and advise a company on their development processes. During the discussion we touched on Agile, CMMI, RUP methodologies and shared our experiences with them. It was interesting to hear other people’s perspectives on dealing with development teams and share some common “war stories” from the software development front. I have often become very pessimistic about the development processes at companies I have worked for in the past due to many bad experiences with poor process management. But after speaking with other developers facing the same issues, I realized that it’s only a matter of time before things get better. Dave also reaffirmed this thought as he said he has definitely seen a progression from chaos towards order happening in the industry. I look forward to a future with less pointy-haired bosses.
Developer Productivity with Dave O’Hara
Dave O’Hara is a friend and mentor who has an amazing arsenal of productivity tools at his disposal. He’s also very energetic and engaging and has a great style of keeping his presentations very hands on. For his session, Dave focused on showing developers the use of DevExpress’s CodeRush for Visual Studio.NET. Despite having some technical issues and borrowing another attendee’s laptop, he pulled off his demo spectacularly and got a very positive response from the crowd. I had been using CodeRush for a while, but I realized after Dave’s talk that I probably only use about 2% of its total functionality. Hopefully with all of the cool shortcuts and mnemonics Dave showed, I can start harnessing CodeRush a bit more. Considering what I saw today, I’d be happy if I could even use 10% of its total capability.
LINQ Overview with Claudio Lassala
LINQ is a new technology from Microsoft that will be introduced with C# 3.0 that will integrate SQL-like queries directly into the compiled language. While I had read overviews and blog posts about LINQ before, this talk really gave me a sense of how broad LINQ really is. I had initially thought that LINQ was really just a substitute for dynamic SQL and was likely to incite more religious debates with the Stored Procedure camp. But Claudio Lassala gave a talk that completely changed my perspective on LINQ. Claudio showed that LINQ can be used for collections and other data-related objects within C#, effectively making error-prone objects like DataSets and DataTables obsolete. By providing the strong typing of typed datasets without the extra maintenance and overhead, LINQ will absolutely change the face of data access and manipulation on the .NET platform. Tim Rayburn mentioned in an earlier user group meeting that one would be wise to choose an ORM that integrates with LINQ to be future proof and I full agree with him. LINQ will greatly reduce the complexity of Data Access and make building the data layer of an application much easier. In addition, Claudio was a wonderful speaker that brought great energy and enthusiasm to his session. I was so impressed with his presentation that I had to stay for his second session as well.
Design Patterns with Claudio Lassala
Design Patterns are often introduced to CS students in very vague and abstract concepts. I have always found it difficult to grok a particular pattern without seeing some code which implements it. But often the implementing code is too complex to truly express the concept behind the pattern. However this was not the case with Claudio’s examples. By illustrating the patterns with simple classes (my favorite was the singing and dancing Frog class), Claudio explained the usage of patterns like the Facade, Decorator, Factory, Template, and Iterator patterns. Additionally he showed an implementation of the Iterator pattern which literally “faked out” a foreach loop in C# to make the underlying object being iterated upon behave like it was a collection even though it actually was not. This talk was very informative and I would love to see a longer version from Claudio at some point in the future.
Thanks to Omar Villareal of DDNUG and Toi Wright of DAUG for helping to organize such a great community event.