Tim's .NET Software Architecture Blog

Adventures in Architecting and Developing .NET Applications


News

Technorati Profile

Listed on BlogShares

My Stats

  • Posts - 157
  • Comments - 59
  • Trackbacks - 57

Tag Cloud


Recent Comments


Recent Posts


Archives


Post Categories


Image Galleries


Blogs


Link Blogs


Links


Podcasts


March 2007 Entries

Review: Beginning Ajax with ASP.NET


First let me say thanks to Craig Shoemaker for sending me a copy of this book.  Yes, I know it has been a while since it came out, but I just finally got around to going through it.  In that time Craig has been working on another book and Microsoft has renamed Atlas to ASP.NET Ajax.

Craig, Wally, Paul and Scott packed this text with gems, not only on Ajax, but also the technologies that it grew up from.

The book covers how we got to this point.  They start all the way back with JavaScript and the DOM and go right through XMLHTTPRequest and JSON.

The topics contained are a broad swipe at Ajax.  This 400 page book addresses the Ajax-like features of ASP.NET 2.0 and how they work.  It then goes on to focus on the Ajax.NET Professional Library and then gives a brief taste of five other Ajax frameworks.  The final Ajax technology addressed it Atlas.

The features I liked most about the book are that there are lots of code samples and explanations of how things work.  There are some excellent diagrams showing event lifecycles.  The final chapter is one of the best features since it discusses debugging Ajax and its client side Javascript.

The .NET and architecture communities owe this group a lot.  Not only for this book, but for all the wisdom that flows from their blogs, podcasts and speaking at events.  These guys did their homework and worked through ever changing tools to bring us these pearls.  Thanks guys.

posted @ Thursday, March 29, 2007 2:27 AM | Feedback (2) | Filed Under [ ASP.NET .NET Development ]


So What Is .NET Again?


As I have mentioned before I am a consultant.  Add to that the fact that I have been doing software development professionally for about twelve years and that means that I am moving into higher level work.  Unfortunately that means less time that I am getting my hands dirty in the code.  This is a painful transition, especially for a code junkie like me. 

So what is the prescription to ease my discomfort.  I think it is time to bury myself in some serious code learning.  I figure I have a number of books I haven't read and need to work on my certifications.  The nice thing is that in the end it actually helps with the architecture and design work that I do on a daily basis.

Long live the code junkies!

posted @ Wednesday, March 28, 2007 12:19 PM | Feedback (0) | Filed Under [ Architecture .NET Misc Development ]


Getting My Butt Kicked By Me


They say you are your own wost enemy, but this is ridiculous.  I have another blog that I used before joining GWB that I no longer post to.  Now over a year later that blog gets more direct hits than this one.  Of course I could just chalk it up to GWB's great aggregate page, but I think I am going to have to find more exciting topics to write about.  Anyone interested in watching grass grow ...

posted @ Tuesday, March 27, 2007 12:39 PM | Feedback (2) | Filed Under [ Misc ]


Who Knew Astronomy Hurt More Than Business Rules


I just finished listening to this week's Astronomy Cast. In it Dr. Pamela Gay explains how asking what the universe is expanding into is a nonsense question.

Now I have had some business rules over the years that were essentially this: "if it is the third Tuesday and there is a full moon in the Libra and you roll a 15 on a 20 sided die then ...".  Those seem like mild Excedrin days compared to trying to understand how the universe can be three dimensional and flat at the same time.  Then there is the whole planes on longitude lines and donuts explanation.  I'll let you know when my head stops throbbing.

Seriously though, check out the show.  It is a lot of fun if you are into astronomy.

posted @ Friday, March 23, 2007 12:25 PM | Feedback (0) | Filed Under [ Misc ]


Are Heavy Metal Bands Like Software Developers


This one is for Andrew who essentially threw the gauntlet down (whether he knew it or not) for me to write this post.

So are members of heavy metal bands like software developers?

I am going to say yes, and here are the reasons:

  • They are both creative (or at least we like to think we are)
  • Both can have serious attitudes
  • They don't like the way the previous generation did things (big band and COBOL)
  • Like to put together complicated combinations from the basic parts of their art

Ok, it might be a little weak, but we are just having fun here.

posted @ Friday, March 23, 2007 3:10 AM | Feedback (2) | Filed Under [ Misc Humor ]


Entering The Inner Sanctum


As a consultant you can get into some interesting situations.  I have been on projects before where I am the only person, but that has always been for small companies.  My current project is for a large company doing work for one of their career development/process improvement groups.  Yesterday I had to make a presentation to the entire group.  I have to say that it felt like walking into the secret chambers of the Free Masons.  Here I am seeing part of the company that no other outsider does.  Of course in the end it is just another project, but it is a strange feeling all the same.

posted @ Thursday, March 22, 2007 12:10 PM | Feedback (0) | Filed Under [ Misc ]


How Are Martial Arts Like Software Development


Around the end of high school I studied Tae Kwon Do for a short period of time. Now my oldest son is taking Goju-Shorei at the local park district which has gotten me re-interested in the subject. Aside from causing pain in my muscles which demonstrates that I'm not a teenager any more it has had another affect. It got me thinking about its similarities between martial arts and software development.

posted @ Monday, March 19, 2007 5:04 PM | Feedback (0) | Filed Under [ Misc Development ]


[Repost] Lists of Items In Configuration Files


This was originally posted in February of 2006 on my other blog.  Recent interest in the subject prompted me to repost it here.

I have been working on this one for a little while and I have to thank Brian and Dmitryr for helping me get this working. I am developing a web site where I wanted to get a list of items from a custom configuration section. Unfortunately this is a subject that seems to be a very closely guarded secret since almost no one has posted anything about it. Either that or I am the only person silly enough to try it.

What I wanted to end up with is a collection that I could manipulate and conceivably bind to. Below is an example of the XML layout. The "add" element will be repeated several times similar to the way it is in the appSetting section of the web.config file.

So how do you load this information into an application without having to get each item one at a time? The answer is a custom configuration section handler. There are several classes that are involved in creating a handler. These include:

  • ConfigurationSection
  • ConfigurationElement
  • ConfigurationElementCollection
There are also some attributes that you will need to be aware of including ConfigurationProperty and ConfigurationCollectionAttribute.

The ConfigurationProperty attribute defines the relationship between a class property and an attribute within the XML element. So the name attribute of the add element maps to the Name property of the ListItemsElement class.

So now lets see what the code looks like. The first class you need to create is derives from ConfigurationElement. This will contain the actual data of your list. Based on the XML above the code should resemble the listing below.

Next you will need to define a collection class to hold the elements. I modified the collection that was produced by Dmitryr's SCDL application so that it has a default property so that elements can be retrieved by their index.

We almost have all the pieces we need now. The final class of the section handler is the section itself. As with the ListItemsElement class, the ConfigurationSection derived class uses the ConfigurationProperty attribute to define the element that it is meant to handle. In this case it is listItems which contains our list of add elements.

We now need to create our elements within our configuration file. The type attribute contains two parameters. The first is the fully qualified class name of your new section handler. The second is the name of the assembly.

The last task is to add code to the application to retrieve the collection.

As with any solution there are always alternative. It may have been easier to use a separate XML file or possibly a database, but then what fun would that be.

posted @ Tuesday, March 06, 2007 12:20 PM | Feedback (0) | Filed Under [ ASP.NET .NET Development ]


Some Notes About Mentoring


As most of us continue on our career paths we eventually end up in a position of mentoring.  To be asked to take on this responsibility says that you are trusted and considered knowledgeable.  There are a few things you will want to remember as you take on this role.

First, allow the person you are mentoring to learn as much on their own as possible.  They cannot learn to stand on their own if you are constantly spoon feeding them answers to every problem that comes up.  Instead answer a question with another question.  Ask the person where they think the answer might be.  Many times having someone talk through problem will allow them to realize they already know the answer.  The funny thing is that this also works as a device for solving your own problems.

Of course you have to explain the basics of a subject area before a person can start to find things on their own.  This brings me to the second point.  When downloading information do not overload the person you are mentoring.  There is only so much that anyone can absorb in one sitting.  Cut your topics into multiple small sessions and let the person go back and come up with questions.  This will give them a much better understanding of the topic.

The last point is to realize that you can learn as much as you are teaching.  If you follow the second point then you may find that your student will come up with approaches to problems that you had not previously thought of.  Do not spend you time lecturing.  Listen as much as you talk and you can both learn more.

[PS] Andrew, sorry about the deficit of reading material.  We wouldn't want you to get bored.

posted @ Tuesday, March 06, 2007 10:51 AM | Feedback (2) | Filed Under [ Misc Development ]