Summary - Desert Code Camp 2006
Posted: Sunday, May 07 2006 12:06 AM GMT
Overall, I (fully) attended 7 sessions and garnered quite a bit of useful information
(especially what should be on my reading material list). I consider the Desert Code
Camp a tremendous success and look forward to the next one. A big thank-you to the
organizers and presenters.
Creating Custom Controls for ASP.NET 2.0
Posted: Saturday, May 06 2006 10:59 PM GMT
A number of new facts came out of the final talk I attended on the day, Mickey Williams'
discussion of ASP.NET 2.0 custom controls. These key facts for me were:
- Embedded resources can be used in 2.0 controls (i.e. graphics)
- ControlState
can be used for critical data rather than ViewState. ControlState can't be turned
off (be sure to use this for good and not for evil)
- SmartTags can be easily
created to expose the most common elements of a control to the page developer for
easy modification and configuration
- Controls can now inherit from CompositeControl
or CompositeDataBoundControl
- Mickey highly reccomends Reflector as a class browser, explorer,
analyzer and documentation viewer for .NET
I'm sure the slide-decks and samples will be posted soon.
Exception Handling Block
Posted: Saturday, May 06 2006 8:57 PM GMT
Rob Bagby continued his outstanding presentations with not just an overview of the
Exception Handling Block, but a full-blown strategy for handling exceptions. Rob
had 5 goals for the session which I have paraphrased below:
- Understand when and why to catch an exception
- To Recover from the error
(or attempt to)
- To Add Context
- To Clean up (close connections, etc)
- To
Log or Notify
- To hide the details of an exception
- Understand the categories of exceptions
- Business
- Technical
- Security
- Understand what is truly an exception
- Don't use exceptions for flow-control
- Understand Exception Propogation Options
- Automatic Propogation (bubbling)
- Catch & Rethrow - Clean, Resolve or Log
- Catch, Wrap & Throw Wrapped
- Understand Custom Exceptions and When to Use Them
- when an appropriate exception
doesn't already exist
- To add discreet handling
- To add a specific behavior
or information
Rob went into quite a few specifics on exactly how this information could be utilized
which is in the slide decks that I will link to asap.
This session got my vote as the most useful session of the day. Thanks Rob!
Enterprise Library Overview
Posted: Saturday, May 06 2006 7:55 PM GMT
In this excellent session, Rob Bagby gave a warp-1 overview of much of the .NET
Enterprise Library (Application Blocks). Some key points of the talk were:
- Config files for all blocks are now unified
- Crypto block provides Hashing
& Encryption functionality
- Logging block provides a number of canned sinks including
EventLog, DB, Text, MSMQ, Email and WMI
- A good resource on the Caching block
is at http://www.ronjacobs.com
Of course, there were many other interesting items which I am unable to document
here due to my mild case of brain disfunctionality, but again, I will post links
to the slide-decks as I get them.
VB.NET 2.0 Language Changes Give You More
Posted: Saturday, May 06 2006 7:15 PM GMT
Unfortunately, the presenter for this session never showed-up and a number of us
were left sitting in the room for about 10 minutes. I'm glad I slipped in a 5-minute
power-lunch beforehand.
Web Parts in ASP.NET 2.0
Posted: Saturday, May 06 2006 6:52 PM GMT
Again, not too much new material here but still a good session. Chris Rolon gave
us a high-speed overview of the Web Part framework in .NET 2.0 including many of
the key features and his suggestions for using them. I will post links to
the slide decks as I get them.
Holding the Web on Your Shoulders With Atlas
Posted: Saturday, May 06 2006 5:57 PM GMT
Despite the title (smirk), this session was actually interesting and valuable. Tim
Heuer, who gave us many ways to contact him, is a Microsoft guy who definately likes
the capability of AJAX using the Atlas framework. There was simply too much information
to try and summarize it here, but suffice it to say that, when used in the proper
way, Atlas appears to be a strong model for UI development that is consistant with
the way we currently do development. It may even help to extend the boundaries of
where and why it is appropriate to use client-side JavaScript.
- Some links Tim showed us were:
- http://atlas.asp.net
- http://atlas.asp.net/atlastoolkit
- http://forums.asp.net
Introduction to Agile/Extreme Programming
Posted: Saturday, May 06 2006 4:55 PM GMT
This session was given by Josh Knowles who gave a good overview of Agile methodologies.
There wasn't much new for me here, but Josh did give some good selling-points for
these types of methods, and did solidify a few concepts for me. Primarily, the keys
to Agile development are as Josh described them:
- Individuals & Interactions over Process and Tools
- Working Software over
Documentation
- Constant Collaboration
- The ability to respond to change
rapidly
Some ways to accomplish these things include:
- Short release cycles (i.e. Quarterly)
- Refactoring - Don't Repeat Yourself
-
"Spike" unknowns - Reduce Second-Order Ignorance
- Stories should be told on Note
Cards - Keep 'em Short
Some tools at our disposal:
- nAnt
- An automated build tool
- CruiseControl.net
- An integration
tool
- Subversion
- A freeware Source-Control System that Josh likes better
than VSS
I'll post links to some of these slide-decks as I get them.
Loosely Coupled Apps
Posted: Saturday, May 06 2006 3:20 PM GMT
I was expecting more of a "Best Practices for Data-Store Independance" type of session.
This turned out to be more of a "Creating Web-Sites that Work Similarly Across Scripting
Engines" thing.
T-SQL 2005
Posted: Saturday, May 06 2006 2:55 PM GMT
The first session I attended was T-SQL 2005 Enhancements, Tricks and Tips. David
Lundell was the instructor and did a nice job.
Some key points were:
- Common Table Expression (CTE)
- A way to alias a query for use within another
query. This can also be used to execute queries recursively.
- nTile
- Allows
a resultset to be "partitioned" into segments. i.e. 100 segments make it a percentile,
4 segments is a quartile, etc.
- Rank
- Similar to nTile except the values
are ranked in order. If two or more items tie for a rank, subsequent ranks are skipped.
That is, if two items are tied for first, the next item would have a rank of 3.
- Dense_Rank
- Same
as Rank only no ranks are skipped, regardless of ties
- Row_Number
- Same
as Dense_Rank only with no duplicates, just lists the items in order from 1..n.
Ties are arbitrarily broken and consistant order by broken ties is not guaranteed.
- Pivot
- Allows
the creation of Pivot Tables but in my opinion, won't be very useful until we can
set the columns dynamically. Currently in SQL 2005 the Pivot columns have to be
explicitly defined.
Arrival
Posted: Saturday, May 06 2006 2:00 PM GMT
Nice. On arrival, we were given Free copies of "Writing Secure Code" from Microsoft
Press, along with schedules and a few other things. This looks to be more organized
than I thought it would be and should turn out to be very interesting.