On the 3rd Tuesday of the month two very interesting Special Interest Groups (SIGS) from the TRIangle .Net Users Group meet. Both sessions were excellent tonight and here are some of the highlights:
The Web Development SIG lead by Chris Love of Extreme Web Works took a code level look at exception handling. Chris walked us through some code examples and shared some best practices that he has developed based on real world experiences. Some things we covered were:
-
What are “Exceptions”?
-
How can Exceptions be handled gracefully?
-
How can we create our own Exceptions?
-
How can we extend our Exception Handling to include error logging and notifications?
One of the things Chris shared was the following code that he uses to programmatically capture the contents of all control on a form to include in an error report.
Dim
_control As Control
Dim ErrorDescription As New System.Text.StringBuilder
For Each _control In Page.Controls
'Find the HTML Form Control
If _control.GetType.FullName = "System.Web.UI.HtmlControls.HtmlForm" Then
Dim _ctr As Control
ErrorDescription.Append("Controls -------------" & vbCrLf)
For Each _ctr In _control.Controls
'For each control on the form, pull the appropriate content for
'it's defined type.
Select Case _ctr.GetType.FullName
Case "System.Web.UI.WebControls.TextBox"
Dim tb As TextBox = CType(_ctr, TextBox)
ErrorDescription.Append(tb.ID & " - " & tb.Text & vbCrLf)
Case "System.Web.UI.WebControls.Literal"
Dim ltl As Literal = CType(_ctr, Literal)
ErrorDescription.Append(ltl.ID & " - " & ltl.Text & vbCrLf)
Case "System.Web.UI.WebControls.Label"
Dim lbl As Label = CType(_ctr, Label)
ErrorDescription.Append(lbl.ID & " - " & lbl.Text & vbCrLf)
Case "System.Web.UI.WebControls.RadioButtonList"
Dim rb As RadioButtonList = CType(_ctr, RadioButtonList)
ErrorDescription.Append(rb.ID & " - " & rb.SelectedItem.Value & vbCrLf)
End Select
Next
End If
Next
This was one of those great informative sessions that made us all think of things we could do better in our code.
The second group is the newly created Architecture And Patterns SIG lead by John Brady of Organelle. This group is very interesting because it is still in the process of defining it’s scope. The simple question of “What is architecture?” has turned into a very interesting topic. We quickly discovered that this term can mean a lot of different things to a lot of different people.
Part of the conversation led us to try and compare Software Architecture with more traditional Building Architecture. While some interesting parallels were drawn, it was very clear how unique software development can be from other “building’ projects. Another key issue was how far should architecture go before it becomes something else? And what is that something else officially, design? Implementation? Plumbing?
It was good to look back at some of the different models including the initial move to Object Oriented Development, Client/Server and Web based, to the current visions of a Service Oriented Architecture. In the end we decided to do a little research for next month about how Industry, Open Source, and Academics define SOA. Hopefully some comparisons will allow us to see their views on architecture and compare the differences.
I really enjoyed this session and look forward to seeing where things take us as we proceed through architecture and make our way through patterns. This is a fun, code neutral group and encourage anybody interested in this area to make it out and join in. More information about the TRINUG SIGS can be found on the group website.