Code Camp in Reston

This last Saturday I attended my first MSDN Code Camp
in Reston, VA.  I am a big advocate of developer training events,
and any all day affair that gives me an excuse to mingle with fellow
developers, and Microsoft .NET experts, gets a thumbs up from me. I have
attended a number of training events in the past, but this was my first
“code camp” (as it says in the first line of this post).  Code
camps are cool for the following reasons:

1. They are free.
2. They are organized by members of developer user groups.
3. The speakers are not MS reps and thrilled to talk about what excites them.
4. Code Camps run on weekends.
5. Free CDs, magazines, book give-aways and other paraphernalia.
6. Free lunch.

I attended the following sessions:

Building Advanced Server Controls – Randy Hayes (Web Track).

This was a very informative talk. I have prior experience in developing
.NET server controls, both user and custom, so the beginning part of
this talk was glossing over knowledge I already had.  As the talk
progressed Randy explained how to develop designers and editors so that
custom server controls can be edited in Visual Studio at design time. I
was very excited to see an elaborate demonstration of an book
viewer with an effect panel.  I wanted to run home right there and
then and start looking at Randy’s code. 
I asked Randy if server controls have changed much from v1.1 to v2.0.
From what he knew not much is different – great news, since I have recently purchased and read
this great book.

Web Services Security for Humans: Security Fundamentals – Julie Lerman (Web Track).

Awesome talk. Julie’s talk demystified the whole security paradigm,
including RSA Public/Private Key, Symmetrical Key and Key Signing
principles. The talk was specifically about how these principles are
adopted by Web Service Enhancements 2.0 (WSE),
but everyone attending the talk was thrilled to hear Julie’s simple
explanation of how security works on a general level.  So many
questions were asked of Julie about general security methods that the session over ran into lunch. 
Julie was good enough to continue her talk while the audience munched
on the free sandwiches, chips and soda.

Using Web Services Enhancements (WSE) to Build Secure Web Services – Dwayne Taylor (SOA Track).
This talk followed on from Julie Lerman’s talk, which I had attended
previous.  Dwayne had a wealth of knowledge about WSE 2 and how
to develop enhanced web services in ASP.NET.  Unfortunately a lot
of the session content went far beyond what I was looking to learn in a 75
minutes of talk time.  Dwayne covered specifics about the WSE
configuration scheme, API, and how the WS-* standards are incorporated
into the .NET technology.  I was happy to learn about WS-Security but
the rest was overkill for any future development I have in mind. 
Never less, Dwayne did a good job at fitting in a “day’s worth of
content into a single session”.

Having Fun with SQL Mobile – Bill Ryan (Smart Client Track).
A refreshing change of pace from the intensity of the last talk.  Bill
explains the cool features of SQL Server Mobile edition – a reworked
version of SQL Server CE.  I don’t think I’ll be adding a database
to my PDA any time soon, but this talk gave me the insight should I
decide to in the future.  Bill explained how to synchronize data
from mobile databases to a central Yukon server, and the key
differences between Yukon and the Mobile edition.

Concurrency Management Techniques in ADO.NET 2.0 – Real Code – Sahil Malik (Database Track).
By far my favorite talk of the day.  It was late into the
afternoon, many attendees had either left or moved to the back of the
room to sleep. Sahil did a great job in keeping the audience alive with
his amusing analogies and witty statements, which made his talk fun to
listen to and to participate in. In my experience as a developer, data concurrency is
something that developers either: ignore, avoid by using awful locking
mechanisms, or deal with by developing elaborate methods in business
code layers.  Sahil uncloaked the concurrency problem and showed how easy it is to solve using ADO.NET 2.0 with the DataSet
class.  Sahil taught the session attendees that database pessimistic
locking is bad, and should never be used, with the single exception of
dealing with insert, updates and deletes to hierarchical tables in
datasets.  Sahil explains this theory further on his web log here.  I caught up with Sahil’s posts this morning, and here is what he has to say about yesterday’s code camp.

Unfortunately I had to cut my camp attendance short and missed Session
6. Of the 5 tracks, if I had stayed, I would have attended Configuration Management in an XP world, also by Sahil Malik.

Many thanks to Andrew Duthie and all those involved in making the Mid-Atlantic Code Camp a success.