After some projector issues Barry Dorrans set the evening in motion with his nugget titled “Silver Crypto – how to protect and defend in Silverlight”. Since the majority of the attendees had not touched Silverlight before and only a few had really done any cryptography in the wild it was great that Barry so nimbly switched gears on his nugget making it more of an introduction.
He began by laying the foundations of why you would want to use cryptography, touching briefly on a few different ways to approach it. As always Barry had a story to tell and this helped to highlight the boundaries of Silverlight in the field, along with some of the caveats of protected storage. Next up he explained how to check the integrity of the data using hashing algorithms along with a few gotchas for good measure. To compliment the presentation Barry pulled out a few demos that showed both cryptography and hashing in a clear and easy to understand way.
With Barry’s nugget completed he handed over to Ian Cooper for his session titled “An introduction to writing DSLs in C# 3.5”. Starting at a steady pace Ian described what DSLs or Domain Specific Languages were, and how they use different techniques than those employed in general purpose languages. Using the Insurance industry as an example domain, with the familiar premiums, claims and policies terminology, Ian was able to describe quite succinctly the relationship between the DSL and the domain it is encapsulating.
After breaking the acronym into it’s component parts and describing what each of these parts meant we all had a clear understanding of what DSLs were, why to use them as well as the benefits and pitfalls you may face. To complete the first half of the session Ian demonstrated the distinction between external and internal DSLs, touching on some example external DSLs including the well known “Starbucks coffee ordering” DSL.
It was at this point the obligatory pizza and cola arrived, and after a really interesting discussion on Chitty Chitty Bang Bang, The Vicar of Dibley, Star Wars, Battlestar Galactica, Red Dwarf and DDD (yes all on one conversation) we all sat down to for the Swag-O-Meter. This month we handed out a bunch of swag collected at SQLBits and the unlimited edition Microsoft TechEd Developers 2008 water bottles. We also ran an extra special “Super swag draw” where members who had given feedback at the last meeting they attended could win a JetBrains Resharper license, Telerik Controls Suite license, a SQLBits Welcome Pack or the very rare (well there were only three up for grabs at SQLBits) Idera Mug Warmer.
With the swag hand-out completed it was time to crack on with the next portion of Ian’s session where he showed how to build an internal DSL and demonstrated a real world scenario, in this case building test data, which helped solidify the reasons for using it. It seemed pretty apparent that, by using the fluent interface Ian had put together, the intent of the developer who had written the test could be expressed really clearly. The technique of writing fluent interfaces not only obviously gave benefits for testing but it also opened a world of extra opportunities when building objects especially immutable ones.
To complete the session Ian looked at writing progressive fluent interfaces which enabled the developer of a class to constrain users of that class ensuring all the relevant values are populated, or that they are populated in a particular order.
As the clock struck 10 past 9 it was time to depart for home with lots to think about, and feedback to give.