# Sunday, September 5, 2010

It has been almost a decade since I first learned C#. It didn’t take me long to become productive in this language; but years later, I am still uncovering its secrets. There are two reasons for this:

  1. C# is a relatively complex language and new features are added with each release. There is a lot to learn
  2. In many cases, C# offers multiple ways to accomplish the same task and it’s not always obvious which way is best for my project.

In Effective C#, 2nd Edition, Bill Wagner attempts to demystify C# by explaining much of the inner workings of the language and by providing specific advice points to improve your coding.

The book assumes a basic understanding of C# syntax. It builds on this understanding in two ways:

  1. Explaining the implementation details of the language
  2. Providing advice on how to use the language and the .Net libraries in your coding.

The second edition of this book includes new features introduced in C# 3.0 and 4.0, such as lambda expressions and LINQ.

The book is split into 50 chapters and each chapter advises developers on a specific coding preference. Wagner backs up his advice with an explanation of the inner workings of the C# language. Among the questions that Wagner answers are:

  • What is the difference between readonly and const and which one should I use and why?
  • What new C# feature reduces the need for multiple overloads?
  • When and how do I need to explicitly dispose of objects?
  • What does it mean for a variable to be statically typed as a dynamic variable? Does that even make sense?

I learned something new in nearly every chapter. Some chapters shed more light on topics that I thought I knew well. Other chapters introduced me to concepts about which I knew very little. And a few chapters contained information so complex that my head began to hurt (I'm looking at you, IDynamicMetaObjectProvider).

With 50 chapters of solid advance and concise explanations, everyone beyond a beginner level in C# can benefit from this book.

Effective C-Sharp book
Sunday, September 5, 2010 3:03:41 PM (GMT Daylight Time, UTC+01:00)
# Thursday, September 2, 2010

Don't let anyone tell you that nothing ever happens in central Kentucky. The Great Pork Chop Incident of Carrollton, KY was still fresh in my mind as I drove the 300+ miles from Michigan to Lexington, KY Tuesday to speak at the first-ever meeting of the Lexington .Net User Group.

The drive down was uneventful and I arrived early enough to review my presentation before the meeting began.

Matt McKnight, who - along with his wife Tiffany - had founded the user group, sent me several text messages directing me to a good parking spot, the ideal building entrance and the location of the meeting room inside the Lexington Public Library.

But I never made it inside the library. Matt's final text message arrived as I was getting out of my car. That was the moment that everything changed. The police had arrived and ordered an evacuation of the building. I found Matt outside the library and he took me to a local bar, where about 20 user group attendees were self-applying beer to help recover from the emergency evacuation. The bar wasn't adequately equipped for a presentation, so Matt made some phone calls and found that DeSha's Restaurant had an available back room. The entire group headed across downtown Lexington to our new destination.

The restaurant had no projector, so I gave an abbreviated version of my presentation - Writing Your First ASP.Net MVC Application - using only my laptop. It went well. People were engaged and asked good questions and no one complained that my presentation was too long.

I was really impressed with this crowd that was willing to walk 5 blocks across downtown Lexington in order to attend a user group presentation. I think this bodes well for the future of the group.

I'm very glad I was present for the nascence of this group. I expect great things from them in the future.

LEXNUG site.

Thursday, September 2, 2010 8:27:11 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, August 31, 2010
Tuesday, August 31, 2010 1:43:00 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, August 24, 2010
Tuesday, August 24, 2010 1:40:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, August 19, 2010
Thursday, August 19, 2010 1:41:00 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, August 17, 2010

John Kellar Sitting in the hotel bar last night, surrounded by geeks from around the country, I realized that I did not want DevLink to end. We all came to Nashville to exchange ideas and to learn a little more about our profession.

John Kellar – a Nashville resident until a few weeks ago – is the driving force behind the DevLink developers conference. With the help of a group of volunteers, he puts on an amazing conference that brings together a diverse group from the IT industry. People with a variety of roles, focusing on a variety of technologies traveled from all over North America.

I was scheduled to deliver only one session – Communication in the Workplace – an expanded version of a presentation I gave last year at the Kalamazoo X conference. I delivered it Saturday morning and was pleased with the reception it received. My main message was that you should be proactive in seeking frequent feedback from your manager, in order to improve your performance and raise the perceived value of your work. The slides are below.

After arriving at DevLink, I also arranged for a panel discussion on Finding a new Job in the IT Industry. I moderated a panel that included John Kellar, James Bender, Jay Harris, Diane Sanders, Jeff McWherter and Todd Anglin.  The panel participants did such a great job articulating ideas about the how to approach a job search. Everyone agreed on the high value of networking, but there was a spirited debate on the value of a college diploma.

The last few conferences I’ve attended, I have favored open spaces and hallway conversations over the more traditional “eyes-front” presentations. This one was different for me. At DevLink, I attended five sessions (other than my own two). A brief summary is below.

The Rich Standards: Getting Familiar with HTML5 by Todd Anglin.

This was an eye-opening session for me, showing a look into the emerging standards of HTML 5. The next version of HTML promises more semantic markup, making web pages more accessible to search engines and to screen readers. It will also provide native support for audio and video. Some HTML5 features have already been adopted by some of the major browsers.

NHibernate and Friends by Lee Brandt

In this introductory presentation, Lee ran through the basics of NHibernate, Fluent NHibernate and LINQ to NHibernate. He also explained why why he chose this stack over other ORMs (earlier adoption of key features), the conventions that NHibernate expects and how to configure NHibernate when your data and objects deviate from those conventions.

Getting Started with Entity Framework 4 by Dane Morgridge

This presentation assumed no prior knowledge of EF and walked the user through the creation of a data layer in less than an hour. I really liked the simplicity of the presentation and the demos. Don’t tell Dane, but I may borrow some of his ideas for an EF presentation I am developing.

Iconoclasm (Closing Keynote) by Ted Neward

The conference ended with a compelling lecture by Ted Neward, who warned of the changes to the American software industry and recommended that we set our vision higher and redefine our own roles in this industry. He refers to those who have blazed new trails in other areas as iconoclasts.

Todd AnglinIt’s hard to define why this conference is such a success. Sure, there are many great speakers and the attendee can sometimes choose between a dozen different sessions at a given time. But there are also open spaces and hallway conversations from which to learn. And, because so many of us stayed in the recommended hotel, there were numerous opportunities in the evening to meet smart people.

The attention to detail by the organizers added to the event’s quality. From the excellent speaker dinner to the hand-written Thank You notes given to each speaker, everything contributed to the quality of the conference.

If there is a DevLink next year, it is already penciled onto my calendar.

Photos from DevLink

Tuesday, August 17, 2010 5:50:06 AM (GMT Daylight Time, UTC+01:00)
# Monday, August 16, 2010

Episode 110

Jeremy Likness on MEF

Monday, August 16, 2010 11:42:22 AM (GMT Daylight Time, UTC+01:00)
# Wednesday, August 11, 2010
Wednesday, August 11, 2010 1:12:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, August 9, 2010
Monday, August 9, 2010 1:11:34 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, August 4, 2010
Wednesday, August 4, 2010 1:10:28 PM (GMT Daylight Time, UTC+01:00)