Code Camp * June 2008 * La Jolla
Jun 30th, 2008 by Dave
So after over a decade in software development I finally went to my first code camp. It was definitely worth the trip. For those who don’t know what it’s all about, it’s basically an opportunity for the local dev community to get together every 4-6 months and learn from their peers. In January it was in Fullerton; in October it will be at USC. It has an impressive roster of presenters, speaking on 7-9 different topics each hour in 11 sessions over the two days. So there are over 8 billion different tracks you can take. Seriously. (8^11 ~= 8.6 billion). Saturday night you get a free dinner plus live entertainment. (Cash bar). Sponsors foot the bill so admission is free.
Here’s the track I took:
0. (Drove down from OC so I missed the 1st session, that knocked 7+ billion tracks off my schedule)
1. The Scaling Habits of ASP.NET Applications - Richard Campbell
2. Building Rich & Interactive Web Applications with ASP.NET AJAX Part 2 - David McCarter
3. Creating Custom Controls with Silverlight - Rafael Nenninger
4. Build Unit Tests the Easy Way with VS.NET 2008 - Paul Sheriff
5. Professional Exception Management - Paul Sheriff
6. .Net Widgets 1: Relational Data & ORM - Eric Kaufman
7. Using ASP.NET MVC to build a blogging engine in 60 minutes or less. - Adnan Masood
8. Advancements in .NET Compact Framework - Michael Morozov
9. Harnessing Business Rule Engines for Enterprise Agility - Raman Koovelimadom
10. Introduction to Design Patterns - Ogun TIGLI
Notes:
1. The Performance Equation, more info here.
2. Slick snippet - Add ScriptManager to your page and then you can type a button variable to a .NET like object in Javascript which gives you intellisense on the object and you can wire up event handlers.
4. Test Driven Development (TDD). a) Get code out of UI. b) Put code into classes that do validation. c) Don’t write CRUD (Create - Read - Update - Delete) code; autogenerate that code. d) nUnit versus Visual Studio built-in testing? PDSA switched over to VS. e) Open Source tools for scripting tests - WATiR / FireWATiR for automating testing of web UI.
5. Exception handler class that does logging to event logs, logfiles, DB, email; source is downloadable. I was going to write one of these but why reinvent the wheel? Someone suggested adding RSS.
Paul also discussed how to display friendlier error messages - you pick the correct one based on any combination of message name / number / class name. Can also extend this functionality to do localization.
6. Hibernate for Java and .NET to do ORM; someone suggested ActiveRecord which does the mapping for you. Eric had a list of reasons why he didn’t like LINQ.
7. Blogging Engine Example - this raised more questions about MVC for me; big one is - when will MVC be production ready? No official word yet. Everything goes through the URI; no more viewstate/postback with MVC. Order matters, you can’t just tack on additional parameters to the end of a query string. You can use RegEx to decouple URLs from your site structure but the bigger the difference between your structure and the URLs the more cryptic your RegEx.
8. .NET CF - thought this was going to be about mobile but instead it was more about new .NET features. I knew about WCF, implicitly typed local variables, and replacing anonymous delegates with lambda expressions but I had missed that you could write your own extension methods. More info here.
9. Business Rule Engines - Ramen took us through a demo of building a rule engine with InRule. The challenge is to move business rules out of the code and make them editable by analysts. InRule versus Windows Workflow (WF)? We saw a feature comparison between the two; InRule had a lot more features out of the box but costs. State persistence? The (xml) message persists state. If a request fails at some point in the application of rulesets, you have to build logic external to the rules engine to determine what to do with the request and rerun it (ideally from the point of failure) when the condition has been resolved.
10. Design Patterns - pretty much everyone had some exposure to patterns but only a couple of people in the class were actively using it.